亚洲综合社区欧美综合色-欧美逼逼一区二区三区-国产老熟女高潮精品网站-国产日韩最新视频在线看

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

SQL Server 2008高可用性

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

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

故障轉(zhuǎn)移集群

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

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

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

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

日志傳送

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

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

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

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

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

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

使用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ù)制到每個輔助服務(wù)器上的復(fù)制目標(biāo);把所有剩下的事務(wù)日志按順序應(yīng)用到每個輔助數(shù)據(jù)庫上;如有可能,在主數(shù)據(jù)庫上執(zhí)行活動事務(wù)日志的備份,復(fù)制該備份,然后將其應(yīng)用到每個備用數(shù)據(jù)庫中;如果主服務(wù)器仍然可以操作,那么故障轉(zhuǎn)移完成時可以將主數(shù)據(jù)庫配置為新的輔助數(shù)據(jù)庫,使用NO RECOVERY選項(xiàng)在主數(shù)據(jù)庫上備份事務(wù)日志有助于完成這項(xiàng)工作;把數(shù)據(jù)庫設(shè)置為恢復(fù)模式,選擇一個輔助服務(wù)器來主流新的主數(shù)據(jù)庫。

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

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

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

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

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

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

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

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

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

使用T-SQL配置鏡像數(shù)據(jù)庫:為了進(jìn)行數(shù)據(jù)庫鏡像,執(zhí)行下列命令創(chuàng)建一個不使用加密的端點(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í)行此語句會創(chuàng)建可用于鏡像的同樣的端點(diǎn)。如果只是測試鏡像,并且沒有使用一個單獨(dú)的物理服務(wù)器,那么只要這些端點(diǎn)使用不同的端口號,就可以安裝另一個實(shí)例來鏡像數(shù)據(jù)庫。在使用一個見證服務(wù)器時,在見證實(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ù)庫鏡像的額外選項(xiàng)允許指定身份驗(yàn)證和加密選項(xiàng),要創(chuàng)建一個使用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)后,下一步就是建立鏡像。只需要把每個服務(wù)器上的數(shù)據(jù)庫指向目標(biāo)伙伴即可。這將通過使用一個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)識時,鏡像進(jìn)程就會開始,默認(rèn)情況下數(shù)據(jù)庫鏡像被配置為使用同步模式,但是可以在鏡像開始之后通過在主體服務(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ù)庫鏡像:從數(shù)據(jù)庫的任務(wù)菜單中選擇啟動數(shù)據(jù)庫鏡像監(jiān)視器命令,打開一個新窗口。默認(rèn)情況下,您將會進(jìn)入從中啟動工具的數(shù)據(jù)庫的狀態(tài)頁面;不過,也可以通過單擊導(dǎo)航樹中的數(shù)據(jù)庫鏡像監(jiān)視器鏈接額外注冊的鏡像集。在注冊頁面上,單擊利娜姐按鈕聯(lián)接主體或鏡像服務(wù)器,使用合適的身份驗(yàn)證和聯(lián)接選項(xiàng)。然后將會看到該實(shí)例上被鏡像的數(shù)據(jù)庫的列表,選擇合適的數(shù)據(jù)庫進(jìn)行注冊,然后單擊確定按鈕;如果需要在主體和鏡像服務(wù)器之間使用不同的身份驗(yàn)證平局,可以選中“當(dāng)單擊確定后,顯示管理服務(wù)器連接對話框”復(fù)選框來指定每個服務(wù)器鏈接的選項(xiàng)。單擊警告選項(xiàng)卡可以查看或配置當(dāng)前基于鏡像條件生成警報的設(shè)置

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

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

恢復(fù)鏡像會話,可在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 

 

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

 

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

 

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

 

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

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

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

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

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