无码视频在线观看,99人妻,国产午夜视频,久久久久国产一级毛片高清版新婚

  • 始創(chuàng)于2000年 股票代碼:831685
    咨詢(xún)熱線: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ù)器(稱(chēng)為節(jié)點(diǎn))作為一個(gè)單獨(dú)的虛擬服務(wù)器為終端用戶(hù)服務(wù)。

    如果要開(kāi)始集群的話,需要兩臺(tái)服務(wù)器,還需要一個(gè)共享的存儲(chǔ)設(shè)備。串行聯(lián)接SCSI,光纖通道和iSCSI是許多集群存儲(chǔ)設(shè)備的常用接口。如果選擇在集群解決方案中使用iSCSI,那么需要確保對(duì)于Windows網(wǎng)絡(luò)適配器相分離的iSCSI聯(lián)接采用一個(gè)專(zhuān)用的網(wǎng)絡(luò)接口卡。如果使用Windows Server 2008,確保使用一個(gè)兼容的存儲(chǔ)設(shè)備。在這個(gè)設(shè)備上將至少創(chuàng)建兩個(gè)卷。一個(gè)卷將作見(jiàn)證磁盤(pán),保存集群配置信息。而對(duì)于應(yīng)用程序,將需要一個(gè)或多個(gè)數(shù)據(jù)卷。此外,要使集群起作用,需要為它定義一個(gè)虛擬服務(wù)器。該虛擬服務(wù)器在客戶(hù)端和終端應(yīng)用程序看來(lái)是一個(gè)服務(wù)器。它有一個(gè)唯一名稱(chēng)和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)不可用且其中沒(méi)有檢測(cè)信號(hào)時(shí),他們被變成主動(dòng)的。當(dāng)這種情況發(fā)生時(shí),一個(gè)輔助節(jié)點(diǎn)會(huì)開(kāi)始接收集群的工作,使得應(yīng)用程序繼續(xù)運(yùn)行而幾乎沒(méi)有明顯的中段。

    主動(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ù)器可以寫(xiě)主動(dòng)事務(wù)日志。由于其他節(jié)點(diǎn)無(wú)法寫(xiě)入同一事物日志,他們還能做什么呢?可以配置另一個(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è)加起來(lái)的工作量。因此,如果服務(wù)器A死機(jī)了,服務(wù)器B就必須能夠響應(yīng)針對(duì)兩個(gè)虛擬服務(wù)器的客戶(hù)端請(qǐng)求。

    日志傳送

    日志傳送時(shí)用于維護(hù)業(yè)務(wù)連續(xù)性的另一種方法。和故障轉(zhuǎn)移集群不一樣,日志傳送時(shí)基于每臺(tái)數(shù)據(jù)庫(kù)進(jìn)行管理的。它允許指定一個(gè)或多個(gè)服務(wù)器來(lái)存儲(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ù)器都可以訪問(wèn)的共享位置上,但要確保當(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ù)器的名稱(chēng)應(yīng)當(dāng)和主服務(wù)器一致,這樣可以避免重新配置客戶(hù)端應(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)如果沒(méi)有執(zhí)行還原就發(fā)出警報(bào),還可以為還原任務(wù)配置適當(dāng)?shù)挠?jì)劃。

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

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

    使用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ù)器來(lái)主流新的主數(shù)據(jù)庫(kù)。

    如果有額外的輔助服務(wù)器,則可以將新恢復(fù)的數(shù)據(jù)庫(kù)配置為額外輔助數(shù)據(jù)庫(kù)的主數(shù)據(jù)庫(kù),并使原來(lái)的主數(shù)據(jù)庫(kù)成為一個(gè)新的輔助數(shù)據(jù)庫(kù),執(zhí)行下列步驟來(lái)進(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)初始化,這樣就沒(méi)有必要進(jìn)行完整還原。

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

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

    數(shù)據(jù)庫(kù)鏡像與日志傳送非常相似,即事務(wù)日志記錄是從源數(shù)據(jù)庫(kù)發(fā)送到目標(biāo)數(shù)據(jù)庫(kù)。不過(guò),和基于文件復(fù)制的事務(wù)日志不同的是,單獨(dú)的日志記錄是基于事務(wù)發(fā)送的。盡管數(shù)據(jù)庫(kù)鏡像也是一個(gè)數(shù)據(jù)庫(kù)級(jí)別的冗余解決方案,但它依賴(lài)于服務(wù)間不斷通信來(lái)維護(hù)事務(wù)完整性。數(shù)據(jù)庫(kù)鏡像還提供了一個(gè)在配置了另外一個(gè)見(jiàn)證服務(wù)器時(shí)自動(dòng)并且?guī)缀跛矔r(shí)故障轉(zhuǎn)移的額外好處。數(shù)據(jù)庫(kù)鏡像的配置是通過(guò)在駐留主體數(shù)據(jù)庫(kù)的服務(wù)器和主流鏡像數(shù)據(jù)庫(kù)的服務(wù)器之間建立合作關(guān)系完成的。兩者之間的通信通過(guò)使用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ù)器、見(jiàn)證服務(wù)器(可選)。在使用數(shù)據(jù)庫(kù)鏡像時(shí),客戶(hù)端請(qǐng)求無(wú)法直接訪問(wèn)鏡像數(shù)據(jù)庫(kù),因?yàn)樗恢碧幱诨謴?fù)事務(wù)日志記錄的狀態(tài)下。但是,可以通過(guò)創(chuàng)建鏡像數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)快照配置間接訪問(wèn)。還要注意,數(shù)據(jù)庫(kù)鏡像不能與啟用了FILESTREAM存儲(chǔ)的數(shù)據(jù)庫(kù)一起使用。

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

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

    使用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í)行此語(yǔ)句會(huì)創(chuàng)建可用于鏡像的同樣的端點(diǎn)。如果只是測(cè)試鏡像,并且沒(méi)有使用一個(gè)單獨(dú)的物理服務(wù)器,那么只要這些端點(diǎn)使用不同的端口號(hào),就可以安裝另一個(gè)實(shí)例來(lái)鏡像數(shù)據(jù)庫(kù)。在使用一個(gè)見(jiàn)證服務(wù)器時(shí),在見(jiàn)證實(shí)例上執(zhí)行下列命令來(lái)創(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)伙伴即可。這將通過(guò)使用一個(gè)ALTER DATABASE語(yǔ)句來(lái)完成:

    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ì)開(kāi)始,默認(rèn)情況下數(shù)據(jù)庫(kù)鏡像被配置為使用同步模式,但是可以在鏡像開(kāi)始之后通過(guò)在主體服務(wù)器上執(zhí)行下列語(yǔ)句更改這一模式

    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)視器命令,打開(kāi)一個(gè)新窗口。默認(rèn)情況下,您將會(huì)進(jìn)入從中啟動(dòng)工具的數(shù)據(jù)庫(kù)的狀態(tài)頁(yè)面;不過(guò),也可以通過(guò)單擊導(dǎo)航樹(shù)中的數(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ù)選框來(lái)指定每個(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語(yǔ)句

    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語(yǔ)句來(lái)恢復(fù)

     

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

     

    手動(dòng)故障轉(zhuǎn)移:不管鏡像的操作如何,都可以隨時(shí)通過(guò)SQL Server Management Studio或TSQL手動(dòng)啟動(dòng)故障轉(zhuǎn)移。在啟動(dòng)故障轉(zhuǎn)移是,任何連接到原主體服務(wù)器的客戶(hù)端都會(huì)被立刻斷開(kāi),而鏡像服務(wù)器會(huì)變成在線。如果原來(lái)的主體服務(wù)器仍在線,那么它就會(huì)變成鏡像服務(wù)器,并一直處于NO RECOVERY狀態(tài),直到再次執(zhí)行故障轉(zhuǎn)移。要想通過(guò)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)客戶(hù)端請(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ù)使用。。通過(guò)SSMS中斷鏡像可以單擊主體數(shù)據(jù)庫(kù)的鏡像屬性頁(yè)面上的取消鏡像按鈕,如果使用TSQL的話,可以使用ALTER DATABASE語(yǔ)句中的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]

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

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