日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

利用日志備份實(shí)現(xiàn)雙服務(wù)器方案的處理示例.sql

系統(tǒng) 1934 0

/*--說明:
?下面的代碼演示了如何利用日志還原功能,將主數(shù)據(jù)庫中的數(shù)據(jù)變化及時(shí)反饋到備用數(shù)據(jù)庫中
?備用數(shù)據(jù)庫的數(shù)據(jù)可以隨時(shí)用于查詢,但不能被更新(備用數(shù)據(jù)庫只讀)。
--*/

--首先,創(chuàng)建一個(gè)演示用的數(shù)據(jù)庫(主數(shù)據(jù)庫)
CREATE DATABASE Db_test
ON
( NAME = Db_test_DATA,
????? FILENAME = 'c:\Db_test.mdf' )
LOG ON
( NAME = Db_test_LOG,
?? FILENAME = 'c:\Db_test.ldf')
GO

--對(duì)數(shù)據(jù)庫進(jìn)行備份
BACKUP DATABASE Db_test TO DISK='c:\test_data.bak' WITH FORMAT
GO

--把數(shù)據(jù)庫還原成備用數(shù)據(jù)庫(演示主數(shù)據(jù)庫與這個(gè)備用數(shù)據(jù)庫之間的同步)
RESTORE DATABASE Db_test_bak FROM DISK='c:\test_data.bak'
WITH REPLACE,STANDBY='c:\db_test_bak.ldf'
?,MOVE 'Db_test_DATA' TO 'c:\Db_test_data.mdf'
?,MOVE 'Db_test_LOG' TO 'c:\Db_test_log.ldf'
GO

--啟動(dòng) SQL Agent 服務(wù)
EXEC master..xp_cmdshell 'net start sqlserveragent',no_output
GO

--創(chuàng)建主服務(wù)器數(shù)據(jù)訓(xùn)與備用服務(wù)器數(shù)據(jù)庫之間同步的作業(yè)
DECLARE? @jogid uniqueidentifier
EXEC msdb..sp_add_job
?@job_id = @jogid OUTPUT,
?@job_name = N'數(shù)據(jù)同步處理'

--創(chuàng)建同步處理步驟
EXEC msdb..sp_add_jobstep
?@job_id = @jogid,
?@step_name = N'數(shù)據(jù)同步',
?@subsystem = 'TSQL',
?@command = N'
--主數(shù)據(jù)庫中進(jìn)行日志備份
BACKUP LOG Db_test TO DISK=''c:\test_log.bak'' WITH FORMAT

--備用數(shù)據(jù)庫中還原主數(shù)據(jù)庫的日志備份(應(yīng)用主數(shù)據(jù)庫中的最新變化
--實(shí)際應(yīng)該時(shí)主數(shù)據(jù)庫備份與備用數(shù)據(jù)庫的還原作業(yè)應(yīng)該分別在主服務(wù)器和備用服務(wù)器上建立,并且備份文件應(yīng)該放在主服務(wù)器和備用都能訪問的共享目錄中
RESTORE LOG Db_test_bak FROM DISK=''c:\test_log.bak'' WITH STANDBY=''c:\test_log.ldf''',
?@retry_attempts = 5,
?@retry_interval = 5

--創(chuàng)建調(diào)度(每分鐘執(zhí)行一次)
EXEC msdb..sp_add_jobschedule
?@job_id = @jogid,
?@name = N'時(shí)間安排',
?@freq_type=4,
?@freq_interval=1,
?@freq_subday_type=0x4,
?@freq_subday_interval=1,
?@freq_recurrence_factor=1

-- 添加目標(biāo)服務(wù)器
EXEC msdb.dbo.sp_add_jobserver
?@job_id = @jogid,
?@server_name = N'(local)'
GO

--通過上述處理,主數(shù)據(jù)庫與備用數(shù)據(jù)庫之間的同步關(guān)系已經(jīng)設(shè)置完成
--下面開始測(cè)試是否能實(shí)現(xiàn)同步

--在主數(shù)據(jù)庫中創(chuàng)建一個(gè)測(cè)試用的表
CREATE TABLE Db_test.dbo.TB_test(ID int)
GO

--等待1分鐘30秒(由于同步的時(shí)間間隔設(shè)置為1分鐘,所以要延時(shí)才能看到效果)
WAITFOR DELAY '00:01:30'
GO

--查詢一下備用數(shù)據(jù)庫,看看同步是否成功
SELECT * FROM Db_test_bak.dbo.TB_test

/*--結(jié)果:
ID?????????
-----------

(所影響的行數(shù)為 0 行)
--*/

--測(cè)試成功
GO

--最后刪除所有的測(cè)試
DROP DATABASE Db_test,Db_test_bak
EXEC msdb..sp_delete_job @job_name=N'數(shù)據(jù)同步處理'
GO


/*===========================================================*/

/*--服務(wù)器檔機(jī)處理說明
?使用這種方式建立的數(shù)據(jù)庫同步,當(dāng)主數(shù)據(jù)庫不可用時(shí)(例如,主數(shù)據(jù)庫損壞或者停機(jī)檢修)
?可以使用以下兩種方法使備用數(shù)據(jù)庫可用。
--*/

--1. 如果主數(shù)據(jù)庫損壞,無法備份出最新的日志,可以直接使用下面的語句使備用數(shù)據(jù)庫可讀寫(丟失最近一次日志還原后的所有數(shù)據(jù))。
RESTORE LOG Db_test_bak WITH RECOVERY


--2. 如果主數(shù)據(jù)庫可以備份出最新日志,則可以使用下面的語句。
--先備份主數(shù)據(jù)庫的最新的事務(wù)日志
BACKUP LOG Db_test TO DISK=''c:\test_log.bak'' WITH FORMAT
--再在備用數(shù)據(jù)庫中恢復(fù)最新的事務(wù)日志,并且使備用數(shù)據(jù)庫可讀寫(升級(jí)為主數(shù)據(jù)庫)
RESTORE LOG Db_test_bak FROM DISK='c:\test_log.bak'

利用日志備份實(shí)現(xiàn)雙服務(wù)器方案的處理示例.sql


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 华亭县| 石屏县| 内乡县| 沾化县| 宁夏| 南靖县| 子长县| 丘北县| 于田县| 牟定县| 镇坪县| 宿迁市| 涟水县| 黄梅县| 垦利县| 怀化市| 望都县| 阿坝| 新疆| 宁德市| 灵武市| 延安市| 碌曲县| 乌兰察布市| 五指山市| 青神县| 丰顺县| 罗甸县| 临泽县| 丹东市| 仁寿县| 阳信县| 七台河市| 东山县| 贵南县| 巩义市| 丰镇市| 龙州县| 涪陵区| 弥勒县| 格尔木市|