sqlserver镜像搭建

来源:互联网 发布:网络文化节上的讲话 编辑:程序博客网 时间:2024/06/05 03:05
  1. --主体创建数据库  
  2. USE [master]  
  3. GO  
  4. CREATE DATABASE [DemoDB]  
  5. GO  
  6. ALTER DATABASE [DemoDB] SET RECOVERY FULL WITH NO_WAIT  
  7. GO  
  8.   
  9.   
  10. --主体:创建证书 和 备份  
  11. USE master;    
  12. GO   
  13. CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'kk_2012@';    
  14. GO    
  15. CREATE CERTIFICATE Cert_kk_db1_mssqlserver     
  16. WITH SUBJECT = 'Cert_kk_db1_mssqlserver',    
  17. START_DATE = '2015-06-01',EXPIRY_DATE = '2018-06-01';    
  18. GO    
  19. BACKUP CERTIFICATE Cert_kk_db1_mssqlserver     
  20. TO FILE = 'C:\Databases\Cert_kk_db1_mssqlserver.cer';    
  21. GO    
  22.   
  23. --镜像:创建证书 和 备份  
  24. USE master;    
  25. GO   
  26. CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'kk_2012@';    
  27. GO   
  28. CREATE CERTIFICATE Cert_kk_db2_mssqlserver   
  29. WITH SUBJECT = 'Cert_kk_db2_mssqlserver',    
  30. START_DATE = '2015-06-01',EXPIRY_DATE = '2018-06-01';   
  31. GO   
  32. BACKUP CERTIFICATE Cert_kk_db2_mssqlserver    
  33. TO FILE = 'C:\Databases\Cert_kk_db2_mssqlserver.cer';    
  34. GO   
  35.   
  36. --见证:创建证书 和 备份  
  37. USE master;    
  38. GO   
  39. CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'kk_2012@';    
  40. GO   
  41. CREATE CERTIFICATE Cert_kk_db3_mssqlserver   
  42. WITH SUBJECT = 'Cert_kk_db3_mssqlserver',    
  43. START_DATE = '2015-06-01',EXPIRY_DATE = '2018-06-01';   
  44. GO   
  45. BACKUP CERTIFICATE Cert_kk_db3_mssqlserver    
  46. TO FILE = 'C:\Databases\Cert_kk_db3_mssqlserver.cer';    
  47. GO   
  48.   
  49.   
  50. --  交换证书(相互拷贝证书):    
  51. /*    
  52. 主体证书(拷贝到)————>镜像、见证    
  53. 镜像证书(拷贝到)————>主体、见证    
  54. 见证证书(拷贝到)————>主体、镜像    
  55. */    
  56.   
  57.   
  58.   
  59. --  主体(创建用户、还原证书、创建端点):    
  60. USE master        
  61. GO        
  62. CREATE LOGIN [KK\UserReplMirror] FROM WINDOWS;        
  63. GO        
  64. CREATE USER [UserReplMirror] FOR LOGIN [KK\UserReplMirror];        
  65. GO         
  66. CREATE CERTIFICATE [Cert_kk_db2_mssqlserver]      
  67. AUTHORIZATION [UserReplMirror]       
  68. FROM FILE = 'C:\Databases\Cert_kk_db2_mssqlserver.cer';      
  69. GO       
  70. CREATE CERTIFICATE [Cert_kk_db3_mssqlserver]      
  71. AUTHORIZATION [UserReplMirror]       
  72. FROM FILE = 'C:\Databases\Cert_kk_db3_mssqlserver.cer';      
  73. GO  
  74.   
  75. CREATE ENDPOINT [Endpoint_For_Mirror]       
  76.     AUTHORIZATION [KK\UserReplMirror]      
  77.     STATE=STARTED      
  78.     AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)      
  79.     FOR DATA_MIRRORING       
  80.     (ROLE = PARTNER, AUTHENTICATION = CERTIFICATE Cert_kk_db1_mssqlserver, ENCRYPTION = REQUIRED ALGORITHM AES)      
  81. GO      
  82. --GRANT CONNECT ON ENDPOINT::Endpoint_For_Mirror TO [KK\UserReplMirror];      
  83. --GO  
  84.   
  85.   
  86.   
  87. --  镜像(创建用户、还原证书、创建端点):    
  88. USE master        
  89. GO        
  90. CREATE LOGIN [KK\UserReplMirror] FROM WINDOWS;        
  91. GO        
  92. CREATE USER [UserReplMirror] FOR LOGIN [KK\UserReplMirror];        
  93. GO         
  94. CREATE CERTIFICATE [Cert_kk_db1_mssqlserver]      
  95. AUTHORIZATION [UserReplMirror]       
  96. FROM FILE = 'C:\Databases\Cert_kk_db1_mssqlserver.cer';      
  97. GO       
  98. CREATE CERTIFICATE [Cert_kk_db3_mssqlserver]      
  99. AUTHORIZATION [UserReplMirror]       
  100. FROM FILE = 'C:\Databases\Cert_kk_db3_mssqlserver.cer';      
  101. GO  
  102.   
  103. CREATE ENDPOINT [Endpoint_For_Mirror]       
  104.     AUTHORIZATION [KK\UserReplMirror]      
  105.     STATE=STARTED      
  106.     AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)      
  107.     FOR DATA_MIRRORING       
  108.     (ROLE = PARTNER, AUTHENTICATION = CERTIFICATE Cert_kk_db2_mssqlserver, ENCRYPTION = REQUIRED ALGORITHM AES)      
  109. GO      
  110. --GRANT CONNECT ON ENDPOINT::Endpoint_For_Mirror TO [KK\UserReplMirror];      
  111. --GO  
  112.   
  113.   
  114. --  见证(创建用户、还原证书、创建端点):    
  115. USE master        
  116. GO        
  117. CREATE LOGIN [KK\UserReplMirror] FROM WINDOWS;        
  118. GO        
  119. CREATE USER [UserReplMirror] FOR LOGIN [KK\UserReplMirror];        
  120. GO         
  121. CREATE CERTIFICATE [Cert_kk_db1_mssqlserver]      
  122. AUTHORIZATION [UserReplMirror]       
  123. FROM FILE = 'C:\Databases\Cert_kk_db1_mssqlserver.cer';      
  124. GO       
  125. CREATE CERTIFICATE [Cert_kk_db2_mssqlserver]      
  126. AUTHORIZATION [UserReplMirror]       
  127. FROM FILE = 'C:\Databases\Cert_kk_db2_mssqlserver.cer';      
  128. GO  
  129.   
  130. USE master;      
  131. CREATE ENDPOINT [Endpoint_For_Mirror]       
  132.     AUTHORIZATION [KK\UserReplMirror]      
  133.     STATE=STARTED      
  134.     AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)      
  135.     FOR DATA_MIRRORING       
  136.     (ROLE = WITNESS, AUTHENTICATION = CERTIFICATE Cert_kk_db3_mssqlserver, ENCRYPTION = REQUIRED ALGORITHM AES)      
  137. GO   
  138. --GRANT CONNECT ON ENDPOINT::Endpoint_For_Mirror TO [KK\UserReplMirror];      
  139. --GO  
  140.   
  141.   
  142. --主体:备份数据库  
  143. USE master;    
  144. BACKUP DATABASE [DemoDB]      
  145. TO DISK = 'C:\Databases\DemoDB.BAK' WITH INIT,FORMAT      
  146. GO   
  147.   
  148. BACKUP LOG [DemoDB]      
  149. TO DISK = 'C:\Databases\DemoDB_LOG.BAK' WITH INIT,FORMAT      
  150. GO   
  151.   
  152.   
  153. --镜像:还原数据库(NORECOVERY)  
  154. USE master;    
  155. RESTORE DATABASE [DemoDB]  
  156. FROM  DISK = N'C:\Databases\DemoDB.BAK'     
  157. WITH  FILE = 1,     
  158. MOVE N'DemoDB' TO N'C:\Databases\DemoDB.mdf',      
  159. MOVE N'DemoDB_log' TO N'C:\Databases\DemoDB_log.ldf',      
  160. NOUNLOAD, NORECOVERY, STATS = 10    
  161. GO    
  162.    
  163. RESTORE DATABASE [DemoDB]  
  164. FROM DISK = N'C:\Databases\DemoDB_LOG.BAK'     
  165. WITH NORECOVERY  
  166. GO   
  167.   
  168.   
  169.   
  170. --开始镜像   
  171.   
  172. --在【镜像】执行,PARTNER为主服务器    
  173. USE [master]    
  174. GO    
  175. ALTER DATABASE [DemoDB] SET PARTNER = 'TCP://192.168.2.10:5022';    
  176. GO    
  177.     
  178. --在【主体】执行,PARTNER为镜像服务器    
  179. USE [master]    
  180. GO    
  181. ALTER DATABASE [DemoDB] SET PARTNER = 'TCP://192.168.2.11:5022';    
  182. GO    
  183. ALTER DATABASE [DemoDB] SET WITNESS = 'TCP://192.168.2.12:5022';   
  184. GO  
  185.   
  186. --在主体执行:设置为高安全模式    
  187. ALTER DATABASE [DemoDB] SET SAFETY FULL    
原创粉丝点击