激情五月天婷婷,亚洲愉拍一区二区三区,日韩视频一区,a√天堂中文官网8

<ul id="buwfs"><strike id="buwfs"><strong id="buwfs"></strong></strike></ul>
    <output id="buwfs"></output>
  • <dfn id="buwfs"><source id="buwfs"></source></dfn>
      <dfn id="buwfs"><td id="buwfs"></td></dfn>
      <div id="buwfs"><small id="buwfs"></small></div>
      <dfn id="buwfs"><source id="buwfs"></source></dfn>
      1. <dfn id="buwfs"><td id="buwfs"></td></dfn>
        始創(chuàng)于2000年 股票代碼:831685
        咨詢熱線:0371-60135900 注冊(cè)有禮 登錄
        • 掛牌上市企業(yè)
        • 60秒人工響應(yīng)
        • 99.99%連通率
        • 7*24h人工
        • 故障100倍補(bǔ)償
        全部產(chǎn)品
        您的位置: 網(wǎng)站首頁(yè) > 幫助中心>文章內(nèi)容

        SQL Server 2008高可用性

        發(fā)布時(shí)間:  2012/9/15 14:50:45

        有一個(gè)法則叫“九法則”,人和高可用性解決方案的終極目標(biāo)是五九法則,即99.999%,這樣每年只有比5分鐘多一點(diǎn)的死機(jī)時(shí)間。目前災(zāi)難恢復(fù)一詞已經(jīng)不再受人們歡迎。人們更喜歡使用的詞是業(yè)務(wù)連續(xù)性business continuity。其思想是希望防止系統(tǒng)(QQ:小默862693539)變得不可用,如果服務(wù)確實(shí)失敗,使其對(duì)環(huán)境的影響最小。這篇文章介紹的高可用性解決方案可以幫助在停機(jī)事件中維護(hù)業(yè)務(wù)連續(xù)性。

        故障轉(zhuǎn)移集群

        SQL Server集群基于Windows服務(wù)集群服務(wù),集群的工作方式是在兩個(gè)或多個(gè)服務(wù)器(稱為節(jié)點(diǎn))作為一個(gè)單獨(dú)的虛擬服務(wù)器為終端用戶服務(wù)。

        如果要開始集群的話,需要兩臺(tái)服務(wù)器,還需要一個(gè)共享的存儲(chǔ)設(shè)備。串行聯(lián)接SCSI,光纖通道和iSCSI是許多集群存儲(chǔ)設(shè)備的常用接口。如果選擇在集群解決方案中使用iSCSI,那么需要確保對(duì)于Windows網(wǎng)絡(luò)適配器相分離的iSCSI聯(lián)接采用一個(gè)專用的網(wǎng)絡(luò)接口卡。如果使用Windows Server 2008,確保使用一個(gè)兼容的存儲(chǔ)設(shè)備。在這個(gè)設(shè)備上將至少創(chuàng)建兩個(gè)卷。一個(gè)卷將作見證磁盤,保存集群配置信息。而對(duì)于應(yīng)用程序,將需要一個(gè)或多個(gè)數(shù)據(jù)卷。此外,要使集群起作用,需要為它定義一個(gè)虛擬服務(wù)器。該虛擬服務(wù)器在客戶端和終端應(yīng)用程序看來是一個(gè)服務(wù)器。它有一個(gè)唯一名稱和IP地址,可以將SQL Server安裝在這個(gè)虛擬服務(wù)器上。

        主動(dòng)/被動(dòng)集群:在主動(dòng)/被動(dòng)集群中,對(duì)于單個(gè)應(yīng)用程序,有一個(gè)節(jié)點(diǎn)被指派為主節(jié)點(diǎn),所有進(jìn)入該集群虛擬服務(wù)器的請(qǐng)求都被導(dǎo)向至主節(jié)點(diǎn)。輔助節(jié)點(diǎn)時(shí)故障轉(zhuǎn)移節(jié)點(diǎn),只有在主節(jié)點(diǎn)不可用且其中沒有檢測(cè)信號(hào)時(shí),他們被變成主動(dòng)的。當(dāng)這種情況發(fā)生時(shí),一個(gè)輔助節(jié)點(diǎn)會(huì)開始接收集群的工作,使得應(yīng)用程序繼續(xù)運(yùn)行而幾乎沒有明顯的中段。

        主動(dòng)/主動(dòng)集群:主動(dòng)/主動(dòng)集群是這樣一幅場(chǎng)景,其中運(yùn)行著許多個(gè)集群感知的應(yīng)用程序,而且每個(gè)應(yīng)用程序都有一個(gè)不同的節(jié)點(diǎn)被配置為該應(yīng)用程序的主節(jié)點(diǎn)。這主要是受數(shù)據(jù)庫(kù)和其他應(yīng)用程序服務(wù)的工作方式的限制。例如,如果只關(guān)注SQL Server,那么每次只有一個(gè)服務(wù)器可以寫主動(dòng)事務(wù)日志。由于其他節(jié)點(diǎn)無法寫入同一事物日志,他們還能做什么呢?可以配置另一個(gè)虛擬服務(wù)器,把一個(gè)現(xiàn)有的備用節(jié)點(diǎn)配置為該虛擬服務(wù)器的主節(jié)點(diǎn),然后在該服務(wù)器上安裝另一個(gè)SQL Server實(shí)例。假如,假定您有兩個(gè)服務(wù)器,節(jié)點(diǎn)A和節(jié)點(diǎn)B,節(jié)點(diǎn)A是集群服務(wù)器1的主節(jié)點(diǎn),節(jié)點(diǎn)B是它的輔助節(jié)點(diǎn)。您決定使用這兩個(gè)服務(wù)器創(chuàng)建一個(gè)叫做集群服務(wù)器2的輔助虛擬服務(wù)器。只有在這個(gè)時(shí)候節(jié)點(diǎn)B才是主節(jié)點(diǎn),而節(jié)點(diǎn)A是輔助節(jié)點(diǎn)。要想使主動(dòng)/主動(dòng)集群發(fā)揮作用,那么如果兩個(gè)虛擬服務(wù)器都出現(xiàn)故障,備用服務(wù)器必須能夠處理他們兩個(gè)加起來的工作量。因此,如果服務(wù)器A死機(jī)了,服務(wù)器B就必須能夠響應(yīng)針對(duì)兩個(gè)虛擬服務(wù)器的客戶端請(qǐng)求。

        日志傳送

        日志傳送時(shí)用于維護(hù)業(yè)務(wù)連續(xù)性的另一種方法。和故障轉(zhuǎn)移集群不一樣,日志傳送時(shí)基于每臺(tái)數(shù)據(jù)庫(kù)進(jìn)行管理的。它允許指定一個(gè)或多個(gè)服務(wù)器來存儲(chǔ)某數(shù)據(jù)庫(kù)的輔助副本。其實(shí)現(xiàn)方法是 先常規(guī)備份事務(wù)日志,然后把這些備份還原到一個(gè)輔助服務(wù)器上。

        準(zhǔn)備日志傳送:首選確定主服務(wù)器和備用服務(wù)器之間存在可靠的網(wǎng)絡(luò)連接。其次,確保數(shù)據(jù)庫(kù)使用了完整恢復(fù)模式;還需要確保備用服務(wù)器上不存在目標(biāo)數(shù)據(jù)庫(kù)。

        使用SQL Server Management Studio配置日志傳送:右擊該數(shù)據(jù)庫(kù),選擇任務(wù)-傳送事務(wù)日志命令。在事務(wù)日志傳送頁(yè)面上,可以配置備份數(shù)據(jù)庫(kù),指定輔助服務(wù)器和監(jiān)視服務(wù)器所需的選項(xiàng)。首先,必須把這個(gè)數(shù)據(jù)庫(kù)啟用為日志傳送的主服務(wù)器。單擊“備份設(shè)置”將會(huì)出現(xiàn)一個(gè)新的窗口,允許指定備份操作的位置和頻率。如果有多個(gè)輔助服務(wù)器,而且希望在其中一個(gè)輔助服務(wù)器升級(jí)為主服務(wù)器之后繼續(xù)使用備用輔助服務(wù)器,那么可以考慮把備份文件夾放在所有服務(wù)器都可以訪問的共享位置上,但要確保當(dāng)主服務(wù)器上發(fā)生一般的服務(wù)故障時(shí),該位置不會(huì)受到影響。一旦配置了備份作業(yè)設(shè)置,就可以配置一個(gè)或多個(gè)輔助服務(wù)器?梢詫⑤o助服務(wù)器配置為熱備用服務(wù)器,使之處于NO RECOVERY狀態(tài),直至出現(xiàn)故障轉(zhuǎn)移,或者也可以把它們配置為數(shù)據(jù)庫(kù)的一個(gè)只讀副本。

        要配置一個(gè)新的輔助服務(wù)器,可以在事務(wù)日志傳送頁(yè)面上單擊添加按鈕。如果用于故障轉(zhuǎn)移,那么輔助服務(wù)器的名稱應(yīng)當(dāng)和主服務(wù)器一致,這樣可以避免重新配置客戶端應(yīng)用程序。然后還可以配置數(shù)據(jù)庫(kù)初次還原的選項(xiàng)。在復(fù)制文件選項(xiàng)卡中,可以配置有關(guān)文件復(fù)制任務(wù)的選項(xiàng)?梢詣(chuàng)建一個(gè)新的作業(yè),把備份操作創(chuàng)建的文件復(fù)制到輔助服務(wù)器上的目標(biāo)文件夾中。在還原事務(wù)日志選項(xiàng)卡中可以配置還原操作,包括恢復(fù)模式,頻率和使用備用數(shù)據(jù)庫(kù)的任務(wù)。還可以配置延遲還原操作以保證備份及復(fù)制操作有機(jī)會(huì)完成,并制定在多長(zhǎng)時(shí)間內(nèi)如果沒有執(zhí)行還原就發(fā)出警報(bào),還可以為還原任務(wù)配置適當(dāng)?shù)挠?jì)劃。

        另外,也可以配置服務(wù)器來監(jiān)視日志傳送操作,但并不是必須這么做。該服務(wù)器應(yīng)該是一個(gè)不直接參與日志傳送過程的SQL Server。要添加監(jiān)視服務(wù)器,可以在事務(wù)日志傳送頁(yè)面上選擇“使用監(jiān)視服務(wù)器實(shí)例”,然后單擊設(shè)置按鈕添加和配置新的服務(wù)器。在配置了日志傳送監(jiān)視器之后,也可以使用它來查看該服務(wù)器監(jiān)視的所有日志傳送數(shù)據(jù)庫(kù)的報(bào)表。為此,可以在對(duì)象資源管理器中右擊服務(wù)器名稱,選擇報(bào)表-標(biāo)準(zhǔn)報(bào)表-事務(wù)日志傳送狀態(tài)命令。

        一旦配置了日志傳送選項(xiàng),就可以把它們應(yīng)用到數(shù)據(jù)庫(kù),如果所有的配置都正確,備份就會(huì)立刻開始。

        使用Transact-SQL配置日志傳送:直接上實(shí)例代碼

        1. -- Execute the following statements at the Primary to configure Log Shipping  
        2. -- for the database [AUGHTEIGHT].[AdventureWorks2008], 
        3. -- The script needs to be run at the Primary in the context of the [msdb] database. 
        4. -------------------------------------------------------------- 
        5. Adding the Log Shipping configuration  
        6.  
        7. -- ****** Begin: Script to be run at Primary: [AUGHTEIGHT] ****** 
        8.  
        9.  
        10. DECLARE @LS_BackupJobId     AS uniqueidentifier  
        11. DECLARE @LS_PrimaryId       AS uniqueidentifier  
        12. DECLARE @SP_Add_RetCode     As int  
        13.  
        14.  
        15. EXEC @SP_Add_RetCode = master.dbo.sp_add_log_shipping_primary_database  
        16.  
        17. @database = N'AdventureWorks2008'  
        18.  
        19. ,@backup_directory = N'\\AughtEight\SQLLogs'  
        20.  
        21. ,@backup_share = N'\\AughtEight\SQLLogs'  
        22.  
        23. ,@backup_job_name = N'LSBackup_AdventureWorks2008'  
        24.  
        25. ,@backup_retention_period = 4320 
        26.  
        27. ,@backup_compression = 1 
        28.  
        29. ,@monitor_server = N'AUGHTEIGHT\HOTH'  
        30.  
        31. ,@monitor_server_security_mode = 1  
        32.  
        33. ,@backup_threshold = 60  
        34.  
        35. ,@threshold_alert_enabled = 1 
        36.  
        37. ,@history_retention_period = 5760  
        38.  
        39. ,@backup_job_id = @LS_BackupJobId OUTPUT  
        40.  
        41. ,@primary_id = @LS_PrimaryId OUTPUT  
        42.  
        43. ,@overwrite = 1  
        44.  
        45.  
        46. IF (@@ERROR = 0 AND @SP_Add_RetCode = 0)  
        47. BEGIN  
        48.  
        49. DECLARE @LS_BackUpScheduleUID     As uniqueidentifier  
        50. DECLARE @LS_BackUpScheduleID      AS int  
        51.  
        52.  
        53. EXEC msdb.dbo.sp_add_schedule  
        54.  
        55. @schedule_name =N'LSBackupSchedule_AUGHTEIGHT1'  
        56.  
        57. ,@enabled = 1  
        58.  
        59. ,@freq_type = 4  
        60.  
        61. ,@freq_interval = 1  
        62.  
        63. ,@freq_subday_type = 4  
        64.  
        65. ,@freq_subday_interval = 15  
        66.  
        67. ,@freq_recurrence_factor = 0  
        68.  
        69. ,@active_start_date = 20081111  
        70.  
        71. ,@active_end_date = 99991231  
        72.  
        73. ,@active_start_time = 0  
        74.  
        75. ,@active_end_time = 235900  
        76.  
        77. ,@schedule_uid = @LS_BackUpScheduleUID OUTPUT  
        78.  
        79. ,@schedule_id = @LS_BackUpScheduleID OUTPUT  
        80.  
        81. EXEC msdb.dbo.sp_attach_schedule  
        82.  
        83. @job_id = @LS_BackupJobId  
        84.  
        85. ,@schedule_id = @LS_BackUpScheduleID   
        86.  
        87. EXEC msdb.dbo.sp_update_job  
        88.  
        89. @job_id = @LS_BackupJobId  
        90.  
        91. ,@enabled = 1  
        92.  
        93.  
        94. END  
        95.  
        96.  
        97. EXEC master.dbo.sp_add_log_shipping_primary_secondary  
        98.  
        99. @primary_database = N'AdventureWorks2008'  
        100.  
        101. ,@secondary_server = N'AUGHTEIGHT\DAGOBAH'  
        102.  
        103. ,@secondary_database = N'AdventureWorks2008'  
        104.  
        105. ,@overwrite = 1  
        106.  
        107. -- ****** End: Script to be run at Primary: [AUGHTEIGHT]  ****** 
        108.  
        109.  
        110. -- Execute the following statements at the Secondary to configure Log Shipping  
        111. -- for the database [AUGHTEIGHT\DAGOBAH].[AdventureWorks2008], 
        112. -- the script needs to be run at the Secondary in the context of the  
        113. -- [msdb] database.  
        114. ----------------------------------------------------------------------------  
        115. -- Adding the Log Shipping configuration  
        116.  
        117. -- ****** Begin: Script to be run at Secondary: [AUGHTEIGHT\DAGOBAH] ****** 
        118.  
        119.  
        120. DECLARE @LS_Secondary__CopyJobId  AS uniqueidentifier  
        121. DECLARE @LS_Secondary__RestoreJobId      AS uniqueidentifier  
        122. DECLARE @LS_Secondary__SecondaryId    AS uniqueidentifier  
        123. DECLARE @LS_Add_RetCode     As int  
        124.  
        125.  
        126. EXEC @LS_Add_RetCode = master.dbo.sp_add_log_shipping_secondary_primary  
        127.  
        128. @primary_server = N'AUGHTEIGHT'  
        129.  
        130. ,@primary_database = N'AdventureWorks2008'  
        131.  
        132. ,@backup_source_directory = N'\\AughtEight\SQLLogs'  
        133.  
        134. ,@backup_destination_directory = N'C:\CopiedLogs'  
        135.  
        136. ,@copy_job_name = N'LSCopy_AUGHTEIGHT_AdventureWorks2008'  
        137.  
        138. ,@restore_job_name = N'LSRestore_AUGHTEIGHT_AdventureWorks2008'  
        139.  
        140. ,@file_retention_period = 4320  
        141.  
        142. ,@monitor_server = N'AUGHTEIGHT\HOTH'  
        143.  
        144. ,@monitor_server_security_mode = 1  
        145.  
        146. ,@overwrite = 1  
        147.  
        148. ,@copy_job_id = @LS_Secondary__CopyJobId OUTPUT  
        149.  
        150. ,@restore_job_id = @LS_Secondary__RestoreJobId OUTPUT  
        151.  
        152. ,@secondary_id = @LS_Secondary__SecondaryId OUTPUT  
        153.  
        154. IF (@@ERROR = 0 AND @LS_Add_RetCode = 0)  
        155. BEGIN  
        156.  
        157. DECLARE @LS_SecondaryCopyJobScheduleUID  As uniqueidentifier  
        158. DECLARE @LS_SecondaryCopyJobScheduleID   AS int  
        159.  
        160.  
        161. EXEC msdb.dbo.sp_add_schedule  
        162.  
        163. @schedule_name =N'DefaultCopyJobSchedule'  
        164.  
        165. ,@enabled = 1  
        166.  
        167. ,@freq_type = 4  
        168.  
        169. ,@freq_interval = 1  
        170.  
        171. ,@freq_subday_type = 4  
        172.  
        173. ,@freq_subday_interval = 15  
        174.  
        175. ,@freq_recurrence_factor = 0  
        176.  
        177. ,@active_start_date = 20081111  
        178.  
        179. ,@active_end_date = 99991231  
        180.  
        181. ,@active_start_time = 0  
        182.  
        183. ,@active_end_time = 235900  
        184.  
        185. ,@schedule_uid = @LS_SecondaryCopyJobScheduleUID OUTPUT  
        186.  
        187. ,@schedule_id = @LS_SecondaryCopyJobScheduleID OUTPUT  
        188.  
        189. EXEC msdb.dbo.sp_attach_schedule  
        190.  
        191. @job_id = @LS_Secondary__CopyJobId  
        192.  
        193. ,@schedule_id = @LS_SecondaryCopyJobScheduleID   
        194.  
        195. DECLARE @LS_SecondaryRestoreJobScheduleUID      As uniqueidentifier  
        196. DECLARE @LS_SecondaryRestoreJobScheduleID       AS int  
        197.  
        198.  
        199. EXEC msdb.dbo.sp_add_schedule  
        200.  
        201. @schedule_name =N'DefaultRestoreJobSchedule'  
        202.  
        203. ,@enabled = 1  
        204.  
        205. ,@freq_type = 4  
        206.  
        207. ,@freq_interval = 1  
        208.  
        209. ,@freq_subday_type = 4  
        210.  
        211. ,@freq_subday_interval = 15  
        212.  
        213. ,@freq_recurrence_factor = 0  
        214.  
        215. ,@active_start_date = 20081111  
        216.  
        217. ,@active_end_date = 99991231  
        218.  
        219. ,@active_start_time = 0  
        220.  
        221. ,@active_end_time = 235900  
        222.  
        223. ,@schedule_uid = @LS_SecondaryRestoreJobScheduleUID OUTPUT  
        224.  
        225. ,@schedule_id = @LS_SecondaryRestoreJobScheduleID OUTPUT  
        226.  
        227. EXEC msdb.dbo.sp_attach_schedule  
        228.  
        229. @job_id = @LS_Secondary__RestoreJobId  
        230.  
        231. ,@schedule_id = @LS_SecondaryRestoreJobScheduleID   
        232.  
        233.  
        234. END  
        235.  
        236.  
        237. DECLARE @LS_Add_RetCode2    As int  
        238.  
        239.  
        240. IF (@@ERROR = 0 AND @LS_Add_RetCode = 0)  
        241. BEGIN  
        242.  
        243. EXEC @LS_Add_RetCode2 = master.dbo.sp_add_log_shipping_secondary_database  
        244.  
        245. @secondary_database = N'AdventureWorks2008'  
        246.  
        247. ,@primary_server = N'AUGHTEIGHT'  
        248.  
        249. ,@primary_database = N'AdventureWorks2008'  
        250.  
        251. ,@restore_delay = 0  
        252.  
        253. ,@restore_mode = 1  
        254.  
        255. ,@disconnect_users   = 1  
        256.  
        257. ,@restore_threshold = 45    
        258.  
        259. ,@threshold_alert_enabled = 1  
        260.  
        261. ,@history_retention_period  = 5760  
        262.  
        263. ,@overwrite = 1  
        264.  
        265. END  
        266.  
        267.  
        268. IF (@@error = 0 AND @LS_Add_RetCode = 0)  
        269. BEGIN  
        270.  
        271. EXEC msdb.dbo.sp_update_job  
        272.  
        273. @job_id = @LS_Secondary__CopyJobId  
        274.  
        275. ,@enabled = 1  
        276.  
        277. EXEC msdb.dbo.sp_update_job  
        278.  
        279. @job_id = @LS_Secondary__RestoreJobId  
        280.  
        281. ,@enabled = 1  
        282.  
        283. END  
        284.  
        285. -- ****** End: Script to be run at Secondary: [AUGHTEIGHT\DAGOBAH] ****** 

        配置故障轉(zhuǎn)移:要配置主服務(wù)器和輔助服務(wù)器之間的故障轉(zhuǎn)移,可以使用下列步驟:如果備份共享中有任何為復(fù)制的備份文件,需要把它們復(fù)制到每個(gè)輔助服務(wù)器上的復(fù)制目標(biāo);把所有剩下的事務(wù)日志按順序應(yīng)用到每個(gè)輔助數(shù)據(jù)庫(kù)上;如有可能,在主數(shù)據(jù)庫(kù)上執(zhí)行活動(dòng)事務(wù)日志的備份,復(fù)制該備份,然后將其應(yīng)用到每個(gè)備用數(shù)據(jù)庫(kù)中;如果主服務(wù)器仍然可以操作,那么故障轉(zhuǎn)移完成時(shí)可以將主數(shù)據(jù)庫(kù)配置為新的輔助數(shù)據(jù)庫(kù),使用NO RECOVERY選項(xiàng)在主數(shù)據(jù)庫(kù)上備份事務(wù)日志有助于完成這項(xiàng)工作;把數(shù)據(jù)庫(kù)設(shè)置為恢復(fù)模式,選擇一個(gè)輔助服務(wù)器來主流新的主數(shù)據(jù)庫(kù)。

        如果有額外的輔助服務(wù)器,則可以將新恢復(fù)的數(shù)據(jù)庫(kù)配置為額外輔助數(shù)據(jù)庫(kù)的主數(shù)據(jù)庫(kù),并使原來的主數(shù)據(jù)庫(kù)成為一個(gè)新的輔助數(shù)據(jù)庫(kù),執(zhí)行下列步驟來進(jìn)行角色轉(zhuǎn)換:禁用原主服務(wù)器上的備份作業(yè);禁用原輔助服務(wù)器上的復(fù)制和還原作業(yè);對(duì)新的主數(shù)據(jù)庫(kù)的備份使用為原主數(shù)據(jù)庫(kù)創(chuàng)建的共享;添加原數(shù)據(jù)庫(kù)作為一個(gè)輔助數(shù)據(jù)庫(kù);在原數(shù)據(jù)庫(kù)的輔助數(shù)據(jù)庫(kù)選項(xiàng)中,指定該數(shù)據(jù)庫(kù)已經(jīng)初始化,這樣就沒有必要進(jìn)行完整還原。

        由于日志傳送是基于每個(gè)數(shù)據(jù)庫(kù)配置的,因此可能需要執(zhí)行一些額外的任務(wù)以確保用戶能夠一致地訪問該數(shù)據(jù)庫(kù),即便發(fā)生了故障轉(zhuǎn)移。首先,客戶端使用的應(yīng)用程序必須知道這一更改。這可能要求手動(dòng)配置應(yīng)用程序使用新的主服務(wù)器或?qū)⑴f的服務(wù)器名稱重新指派為新服務(wù)器的別名。另外,要確保應(yīng)用程序?qū)?shù)據(jù)庫(kù)的一致訪問,將需要確保已經(jīng)遷移了該數(shù)據(jù)庫(kù)所有關(guān)聯(lián)的元數(shù)據(jù),包括SQL Server登錄名、作業(yè)和報(bào)警等。由于日志傳送有一些限制,創(chuàng)建只讀備用服務(wù)器很好,但是它對(duì)于故障轉(zhuǎn)移來說只是一個(gè)一般的解決方案。

        數(shù)據(jù)庫(kù)鏡像

        數(shù)據(jù)庫(kù)鏡像與日志傳送非常相似,即事務(wù)日志記錄是從源數(shù)據(jù)庫(kù)發(fā)送到目標(biāo)數(shù)據(jù)庫(kù)。不過,和基于文件復(fù)制的事務(wù)日志不同的是,單獨(dú)的日志記錄是基于事務(wù)發(fā)送的。盡管數(shù)據(jù)庫(kù)鏡像也是一個(gè)數(shù)據(jù)庫(kù)級(jí)別的冗余解決方案,但它依賴于服務(wù)間不斷通信來維護(hù)事務(wù)完整性。數(shù)據(jù)庫(kù)鏡像還提供了一個(gè)在配置了另外一個(gè)見證服務(wù)器時(shí)自動(dòng)并且?guī)缀跛矔r(shí)故障轉(zhuǎn)移的額外好處。數(shù)據(jù)庫(kù)鏡像的配置是通過在駐留主體數(shù)據(jù)庫(kù)的服務(wù)器和主流鏡像數(shù)據(jù)庫(kù)的服務(wù)器之間建立合作關(guān)系完成的。兩者之間的通信通過使用SQL Server端點(diǎn)建立和維護(hù),而不是使用文件系統(tǒng)(QQ:小默862693539)作為維護(hù)兩個(gè)服務(wù)器之間的一致性方法。日志傳送和數(shù)據(jù)庫(kù)鏡像的另外一個(gè)主要區(qū)別是,數(shù)據(jù)庫(kù)鏡像限制每個(gè)數(shù)據(jù)庫(kù)智能有一個(gè)主題服務(wù)器和一個(gè)鏡像服務(wù)器。

        數(shù)據(jù)庫(kù)鏡像配置中的3個(gè)服務(wù)器角色如下:主體服務(wù)器、鏡像服務(wù)器、見證服務(wù)器(可選)。在使用數(shù)據(jù)庫(kù)鏡像時(shí),客戶端請(qǐng)求無法直接訪問鏡像數(shù)據(jù)庫(kù),因?yàn)樗恢碧幱诨謴?fù)事務(wù)日志記錄的狀態(tài)下。但是,可以通過創(chuàng)建鏡像數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)快照配置間接訪問。還要注意,數(shù)據(jù)庫(kù)鏡像不能與啟用了FILESTREAM存儲(chǔ)的數(shù)據(jù)庫(kù)一起使用。

        客戶端重定向:數(shù)據(jù)庫(kù)鏡像的優(yōu)勢(shì)之一是如果主體數(shù)據(jù)庫(kù)出現(xiàn)故障,客戶端可以被自動(dòng)重定向到鏡像服務(wù)器。然而,自動(dòng)重定向不是基于服務(wù)器的功能。通過添加Failover Partner屬性,可以將客戶端的聯(lián)接字符串配置為與鏡像的數(shù)據(jù)庫(kù)一起工作,如果聯(lián)接Server屬性標(biāo)識(shí)的服務(wù)器失敗,那么它會(huì)嘗試連接由Failover Partner屬性標(biāo)識(shí)的數(shù)據(jù)庫(kù),反之亦然,如果聯(lián)接故障轉(zhuǎn)移伙伴不可用,就會(huì)嘗試連接原服務(wù)器

        Server=AughtEight;Failover Partner=Dagobah;Database=AdventureWorks2008

        數(shù)據(jù)庫(kù)鏡像模式:數(shù)據(jù)庫(kù)可以被配置為使用高性能模式、不支持自動(dòng)故障轉(zhuǎn)移的高安全性模式以及支持故障轉(zhuǎn)移的高安全性模式。高性能模式使用異步處理,當(dāng)主體服務(wù)器把事務(wù)日志記錄發(fā)送到鏡像服務(wù)器之后,會(huì)立刻向客戶端應(yīng)用程序發(fā)送一個(gè)事務(wù)成功的確認(rèn),但是不會(huì)等待鏡像服務(wù)器確認(rèn)接收日志記錄。在高性能模式下,不存在自動(dòng)故障轉(zhuǎn)移也不需要見證服務(wù)器,因?yàn)橹黝}服務(wù)器出現(xiàn)故障時(shí)仍然會(huì)要求強(qiáng)制執(zhí)行鏡像服務(wù)器上的數(shù)據(jù)庫(kù)服務(wù)。一旦原來的主主體服務(wù)器恢復(fù)服務(wù),它會(huì)配置自身為鏡像服務(wù)器,但是鏡像會(huì)話仍然會(huì)處于SUSPENDED狀態(tài),除非管理員明確要求恢復(fù)。不支持自動(dòng)故障轉(zhuǎn)移的高安全性模式中,在鏡像服務(wù)器確認(rèn)收到了相應(yīng)的事務(wù)日志記錄之前,主體服務(wù)器不會(huì)給客戶端發(fā)送事務(wù)成功的確認(rèn)消息。該模式中沒有自動(dòng)故障轉(zhuǎn)移,也沒有見證服務(wù)器,主體數(shù)據(jù)庫(kù)出現(xiàn)故障后要求手動(dòng)強(qiáng)制見證服務(wù)器上的服務(wù)器提升其主體。在鏡像服務(wù)器出現(xiàn)故障的情況下,客戶端仍然可以使用主體服務(wù)器,但是鏡像會(huì)話會(huì)處于斷開連接的狀態(tài)。支持自動(dòng)故障轉(zhuǎn)移的高安全性模式中,見證服務(wù)器用于提供自動(dòng)故障轉(zhuǎn)移。見證服務(wù)器不直接參與鏡像過程,而是作為兩個(gè)服務(wù)器之間的監(jiān)督員,只要三個(gè)參與此模式的服務(wù)器中有兩個(gè)能夠保證連接性,那么數(shù)據(jù)庫(kù)就會(huì)對(duì)客戶端請(qǐng)求可用。當(dāng)兩個(gè)服務(wù)器就鏡像會(huì)話的狀態(tài)取得一致時(shí),這就被叫做仲裁,如果鏡像或主體服務(wù)器丟失了仲裁,鏡像配置也會(huì)相應(yīng)的改變。

        使用SQL Server Management Studio配置數(shù)據(jù)庫(kù)鏡像:打開數(shù)據(jù)庫(kù)屬性-鏡像頁(yè)面,或者從任務(wù)-鏡像菜單打開這個(gè)頁(yè)面,單擊配置安全性按鈕啟動(dòng)向?qū),要求為主體、鏡像和見證服務(wù)器端點(diǎn)提供聯(lián)接選項(xiàng)。單擊下一步進(jìn)入下一頁(yè)面,向?qū)?huì)詢問是否要配置一個(gè)見證服務(wù)器;向?qū)У南乱豁?yè)面要求標(biāo)識(shí)在這個(gè)向?qū)Ю镆渲玫姆⻊?wù)器,您需要檢查所有參與的服務(wù)器,包括見證服務(wù)器(如果使用了的話)。進(jìn)入下一頁(yè)面,配置主體服務(wù)器的選項(xiàng);接下來需要為鏡像服務(wù)器配置同樣的信息,注意,擋在每個(gè)服務(wù)器上創(chuàng)建端點(diǎn)時(shí),必須有在端點(diǎn)上創(chuàng)建和配置安全性的適當(dāng)權(quán)限;如果配置了見證服務(wù)器,下一頁(yè)面要求為見證服務(wù)器提供服務(wù)器名稱和端點(diǎn)配置,其中需要注意一點(diǎn),即如果同一物理服務(wù)器上有多個(gè)角色,那么端口號(hào)必須butong.youyu數(shù)據(jù)庫(kù)鏡像起作用的條件中并不要求所有的及其都采用相同的配置,甚至不要求他們是同一個(gè)域中的成員,所以向?qū)г试S為每個(gè)服務(wù)器指定賬戶信息。輸入這些信息后,就可以通過向?qū)У恼?yè)面查看配置。如果對(duì)設(shè)置感到滿意,可以單擊完成按鈕來創(chuàng)建端點(diǎn),如有必要,應(yīng)用合適的權(quán)限。在完成向?qū)Ш,SQL Server會(huì)提示立刻開始鏡像還是延遲鏡像。如果確定配置是正確的,并且鏡像服務(wù)器和主體服務(wù)器時(shí)一致的,那么就可以單擊按鈕開始鏡像。

        使用T-SQL配置鏡像數(shù)據(jù)庫(kù):為了進(jìn)行數(shù)據(jù)庫(kù)鏡像,執(zhí)行下列命令創(chuàng)建一個(gè)不使用加密的端點(diǎn)

        1. -- Create DB Mirroring Endpoint 
        2.  
        3. USE Master; 
        4.  
        5. GO 
        6.  
        7. CREATE ENDPOINT MirroringEndPoint 
        8.  
        9.     STATE = STARTED 
        10.  
        11.     AS TCP ( LISTENER_PORT = 5022 ) 
        12.  
        13.     FOR DATABASE_MIRRORING (ROLE=PARTNER) 
        14.  
        15. GO 

        在主體服務(wù)器和鏡像服務(wù)器上執(zhí)行此語句會(huì)創(chuàng)建可用于鏡像的同樣的端點(diǎn)。如果只是測(cè)試鏡像,并且沒有使用一個(gè)單獨(dú)的物理服務(wù)器,那么只要這些端點(diǎn)使用不同的端口號(hào),就可以安裝另一個(gè)實(shí)例來鏡像數(shù)據(jù)庫(kù)。在使用一個(gè)見證服務(wù)器時(shí),在見證實(shí)例上執(zhí)行下列命令來創(chuàng)建合適的端點(diǎn):

        1. -- Create Witness Endpoint 
        2. USE Master; 
        3. GO 
        4. CREATE ENDPOINT WitnessEndPoint 
        5. STATE = STARTED 
        6. AS TCP ( LISTENER_PORT = 5024 ) 
        7. FOR DATABASE_MIRRORING (ROLE=WITNESS) 
        8. GO 

        創(chuàng)建數(shù)據(jù)庫(kù)鏡像的額外選項(xiàng)允許指定身份驗(yàn)證和加密選項(xiàng),要?jiǎng)?chuàng)建一個(gè)使用Windows身份驗(yàn)證和AES加密的新端點(diǎn),可以使用下列代碼

        1. -- Create Witness Endpoint with encryption 
        2. USE Master; 
        3. GO 
        4. CREATE ENDPOINT WitnessEndPoint 
        5.     STATE = STARTED 
        6.     AS TCP ( LISTENER_PORT = 5024 ) 
        7.     FOR DATABASE_MIRRORING (AUTHENTICATION = WINDOWS NEGOTIATE, 
        8.     ENCRYPTION = REQUIRED ALGORITHM AES, ROLE = WITNESS); 
        9. GO 

        在創(chuàng)建了端點(diǎn)后,下一步就是建立鏡像。只需要把每個(gè)服務(wù)器上的數(shù)據(jù)庫(kù)指向目標(biāo)伙伴即可。這將通過使用一個(gè)ALTER DATABASE語句來完成:

        1. -- Begin by configuring the Mirror database 
        2. USE Master; 
        3. GO 
        4. ALTER DATABASE AdventureWorksLT2008 
        5. SET PARTNER = 'TCP://AUGHTEIGHT:5022'
        6. -- Execute this statement on the principal server 
        7. -- to specify the endpoint for the mirror 
        8. USE Master; 
        9. GO 
        10. ALTER DATABASE AdventureWorksLT2008 
        11. SET PARTNER = 'TCP://AUGHTEIGHT:5023'
        12. -- Execute this statement on the principal server 
        13. -- to specify the endpoint for the witness 
        14. USE Master; 
        15. GO 
        16. ALTER DATABASE AdventureWorksLT2008 
        17. SET WITNESS = 'TCP://AUGHTEIGHT:5024'

        當(dāng)主體和鏡像服務(wù)器都被配置為互相認(rèn)識(shí)時(shí),鏡像進(jìn)程就會(huì)開始,默認(rèn)情況下數(shù)據(jù)庫(kù)鏡像被配置為使用同步模式,但是可以在鏡像開始之后通過在主體服務(wù)器上執(zhí)行下列語句更改這一模式

        1. -- Turn of Synchronous mode 
        2. USE Master; 
        3. GO 
        4. ALTER DATABASE AdventureWorksLT2008 
        5. SET PARTNER SAFETY OFF

        監(jiān)視數(shù)據(jù)庫(kù)鏡像:從數(shù)據(jù)庫(kù)的任務(wù)菜單中選擇啟動(dòng)數(shù)據(jù)庫(kù)鏡像監(jiān)視器命令,打開一個(gè)新窗口。默認(rèn)情況下,您將會(huì)進(jìn)入從中啟動(dòng)工具的數(shù)據(jù)庫(kù)的狀態(tài)頁(yè)面;不過,也可以通過單擊導(dǎo)航樹中的數(shù)據(jù)庫(kù)鏡像監(jiān)視器鏈接額外注冊(cè)的鏡像集。在注冊(cè)頁(yè)面上,單擊利娜姐按鈕聯(lián)接主體或鏡像服務(wù)器,使用合適的身份驗(yàn)證和聯(lián)接選項(xiàng)。然后將會(huì)看到該實(shí)例上被鏡像的數(shù)據(jù)庫(kù)的列表,選擇合適的數(shù)據(jù)庫(kù)進(jìn)行注冊(cè),然后單擊確定按鈕;如果需要在主體和鏡像服務(wù)器之間使用不同的身份驗(yàn)證平局,可以選中“當(dāng)單擊確定后,顯示管理服務(wù)器連接對(duì)話框”復(fù)選框來指定每個(gè)服務(wù)器鏈接的選項(xiàng)。單擊警告選項(xiàng)卡可以查看或配置當(dāng)前基于鏡像條件生成警報(bào)的設(shè)置

        管理數(shù)據(jù)庫(kù)鏡像:暫停鏡像會(huì)話,如果數(shù)據(jù)庫(kù)相應(yīng)中的延遲比較嚴(yán)重,原因可能是由必須維持主體和鏡服務(wù)器之間不斷通信的額外工作造成的,這時(shí)候可能需要考慮暫停那些通信。使用SSMS,瀏覽數(shù)據(jù)庫(kù)屬性的鏡像頁(yè)面,單擊暫停按鈕即可;蛘呤褂肨SQL的SET PARTNER SUSPEND執(zhí)行ALTER DATABASE語句

        1. -- Suspend a mirror 
        2. USE Master; 
        3. ALTER DATABASE AdventureWorksLT2008 SET PARTNER SUSPEND; 
        4. GO 

        恢復(fù)鏡像會(huì)話,可在SSMS中單擊恢復(fù)按鈕,或者使用SET PARTNER RESUME選項(xiàng)執(zhí)行ALTER DATABASE語句來恢復(fù)

         

        1. -- Resume a Mirror 
        2. USE Master; 
        3. ALTER DATABASE AdventureWorksLT2008 SET PARTNER RESUME; 
        4. GO 

         

        手動(dòng)故障轉(zhuǎn)移:不管鏡像的操作如何,都可以隨時(shí)通過SQL Server Management Studio或TSQL手動(dòng)啟動(dòng)故障轉(zhuǎn)移。在啟動(dòng)故障轉(zhuǎn)移是,任何連接到原主體服務(wù)器的客戶端都會(huì)被立刻斷開,而鏡像服務(wù)器會(huì)變成在線。如果原來的主體服務(wù)器仍在線,那么它就會(huì)變成鏡像服務(wù)器,并一直處于NO RECOVERY狀態(tài),直到再次執(zhí)行故障轉(zhuǎn)移。要想通過SQL Server Management Studio啟動(dòng)故障轉(zhuǎn)移,在主體數(shù)據(jù)庫(kù)的鏡像屬性頁(yè)面上單擊故障轉(zhuǎn)移按鈕即可,SQL 會(huì)處理剩下的工作。如果需要將之前的主體數(shù)據(jù)庫(kù)還原至主體狀態(tài),則必須連接到新的主體數(shù)據(jù)庫(kù),然后單擊數(shù)據(jù)庫(kù)屬性上的故障轉(zhuǎn)移按鈕。由于數(shù)據(jù)庫(kù)鏡像進(jìn)復(fù)制特定數(shù)據(jù)庫(kù)的內(nèi)容,因此在故障轉(zhuǎn)移之前或剛剛發(fā)生故障轉(zhuǎn)移時(shí),特定的服務(wù)器范圍的資源必須在服務(wù)器上可用,因此,在使用數(shù)據(jù)庫(kù)鏡像時(shí),最好創(chuàng)建一個(gè)Integration Services包,它將定期復(fù)制額外的對(duì)象。要使用TSQL手動(dòng)故障轉(zhuǎn)移,必須連接到主體服務(wù)器,然后執(zhí)行下列代碼

        1. -- Manual Failover 
        2. USE Master; 
        3. ALTER DATABASE AdventureWorksLT2008 SET PARTNER FAILOVER; 
        4. GO 

        強(qiáng)制鏡像服務(wù)器上的服務(wù):當(dāng)處于高性能或不支持自動(dòng)故障轉(zhuǎn)移的高安全性模式下,一旦主體服務(wù)器發(fā)生故障,鏡像服務(wù)器不是自動(dòng)可用的,要強(qiáng)制鏡像服務(wù)器提升自己并響應(yīng)客戶端請(qǐng)求,可以在鏡像服務(wù)器上發(fā)出下列命令:

         

        1. -- Manual Failover 
        2. USE Master; 
        3. ALTER DATABASE AdventureWorksLT2008 SET PARTNER FAILOVER; 
        4. GO 

         

        取消數(shù)據(jù)庫(kù)鏡像:一旦不再需要某個(gè)數(shù)據(jù)庫(kù)鏡像的話,就可以中段鏡像。中斷鏡像允許兩個(gè)參與的服務(wù)器維護(hù)該數(shù)據(jù)庫(kù)的一份副本。主體服務(wù)器會(huì)保持在線,而鏡像服務(wù)器將處于恢復(fù)模式。中段鏡像不會(huì)刪除、移除或更改端點(diǎn),這一點(diǎn)非常好,因?yàn)樗麄內(nèi)匀豢梢员皇褂脭?shù)據(jù)庫(kù)鏡像的其他數(shù)據(jù)庫(kù)使用。。通過SSMS中斷鏡像可以單擊主體數(shù)據(jù)庫(kù)的鏡像屬性頁(yè)面上的取消鏡像按鈕,如果使用TSQL的話,可以使用ALTER DATABASE語句中的SET PARTNER OFF選項(xiàng):

         

        1. -- Remove mirror 
        2. USE Master; 
        3. ALTER DATABASE AdventureWorksLT2008 SET PARTNER OFF

        本文出自:億恩科技【mszdt.com】

        服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

      2. 您可能在找
      3. 億恩北京公司:
      4. 經(jīng)營(yíng)性ICP/ISP證:京B2-20150015
      5. 億恩鄭州公司:
      6. 經(jīng)營(yíng)性ICP/ISP/IDC證:豫B1.B2-20060070
      7. 億恩南昌公司:
      8. 經(jīng)營(yíng)性ICP/ISP證:贛B2-20080012
      9. 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
      10. 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
      11. 專注服務(wù)器托管17年
        掃掃關(guān)注-微信公眾號(hào)
        0371-60135900
        Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
          0
         
         
         
         

        0371-60135900
        7*24小時(shí)客服服務(wù)熱線