SQL Server2008 R2 數據庫鏡像實施手冊(雙機)

1、配置主備機sql

一、 服務器基本信息數據庫

主機名稱爲:HOST_A,IP地址爲:192.168.1.155安全

備機名稱爲:HOST_B,IP地址爲:192.168.1.156服務器

2、主備實例互通tcp

實現互通可使用域或證書來實現,考慮實現的簡單,如下選取證書的方式實現。注意:實現「主備數據庫實例互通」的操做只須要作一次,例如爲了將兩個SQL Server 2008的實例中的5個數據庫建成鏡像關係,則只須要作一次如下操做就能夠了;或者這樣理解:每一對主備實例(不是數據庫)作一次互通。大數據

一、建立證書(主備可並行執行)spa

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
--主機執行:
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '123456' ;
CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate' ,
START_DATE = '2012-08-02' ,
EXPIRY_DATE = '2099-08-02' ;
 
--備機執行:
 
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '123456' ;
CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = 'HOST_B certificate' ,
START_DATE = '2012-08-02' ,
EXPIRY_DATE = '2099-08-02' ;

二、建立鏈接的端點(主備可並行執行).net

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
--主機執行:
 
CREATE ENDPOINT Endpoint_Mirroring
 
STATE = STARTED
 
AS
 
TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL )
 
FOR
 
DATABASE_MIRRORING
 
( AUTHENTICATION = CERTIFICATE HOST_A_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );
 
  
 
--備機執行:
 
CREATE ENDPOINT Endpoint_Mirroring
 
STATE = STARTED
 
AS
 
TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL )
 
FOR
 
DATABASE_MIRRORING
 
( AUTHENTICATION = CERTIFICATE HOST_B_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );

三、備份證書以備創建互聯(主備可並行執行)命令行

?
1
2
3
4
5
6
7
8
--主機執行:
 
BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\SQLBackup\HOST_A_cert.cer' ;
 
 
--備機執行:
 
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\SQLBackup\HOST_B_cert.cer' ;

四、互換證書日誌

將備份到C:\SQLBackup\的證書進行互換,即HOST_A_cert.cer複製到備機的C:\SQLBackup\。HOST_B_cert.cer複製到主機的C:\SQLBackup\。

五、添加登錄名、用戶(主備可並行執行)

如下操做只能經過命令行運行,經過圖形界面沒法完成。(截至SQL Server2005的補丁號爲SP2)

?
1
2
3
4
5
6
7
8
9
10
11
--主機執行:
CREATE LOGIN HOST_B_login WITH PASSWORD = '123456' ;
CREATE USER HOST_B_user FOR LOGIN HOST_B_login;
CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'C:\SQLBackup\HOST_B_cert.cer' ;
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];
  
--備機執行:
CREATE LOGIN HOST_A_login WITH PASSWORD = '123456' ;
CREATE USER HOST_A_user FOR LOGIN HOST_A_login;
CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'C:\SQLBackup\HOST_A_cert.cer' ;
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];

3、創建鏡像關係

如下步驟是針對每一個數據庫進行的,例如:現有主機中有5個數據庫如下過程就要執行5次。

一、 手工同步登陸名和密碼

在上文中提到數據庫鏡像的缺點之一是沒法維護登陸名,因此須要咱們手工維護登陸。

一般來講數據庫都將會有若干個用戶做爲訪問數據庫的用戶,而且數據庫會有相應的登陸名,可是在備機中缺乏與之相對應的登陸名,例如某業務系統使用'myuser'做爲登陸名訪問數據庫,可是在備機中沒有'myuser'這個登陸名,所以一旦主備切換,業務系統就沒法登陸數據庫了,這種狀況稱爲"孤立用戶"。在主機和備機數據庫上創建相同用戶名及密碼便可。

二、 準備備機數據庫(主機備份及鏡像還原)

在主機上備份數據庫,先作完整備份,再作日誌事務備份。

一、主數據必須設置成完整模式進行備份,以下圖:

 

  上圖中將「恢復模式」選成「完整模式」。

二、備份數據庫,以下圖:

 

備份時將「備份類型」選成「完整」。

三、備份事務日誌,以下圖:

 

將「備份類型」選成「事務日誌」且備份目錄與備份數據庫的目錄一致。

將備份文件在備機上使用主機的全備文件進行還原,在還原數據的時候須要使用選上「with non recover」。如圖所示:

 

若是執行成功數據庫將會變成這個樣子:

三、 創建鏡像

?
1
2
3
4
5
6
7
8
9
--在備機中執行以下語句:
 
ALTER DATABASE shishan SET PARTNER = 'TCP://192.168.1.155:5022' ;
 
說明:shishan爲數據庫名,須要根據實際進行修改。192.168.1.155爲主機IP地址,需根據實際進行修改。
 
--主機執行:
 
ALTER DATABASE shishan SET PARTNER = 'TCP://192.168.1.156:5022' ;

說明:shishan爲數據庫名,須要根據實際進行修改。192.168.1.156爲備機IP地址,需根據實際進行修改。

執行成功後:

到此,SQL鏡像熱備配置完成。

4、常見命令

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
--切換主備
use master;
alter database testdb set partner failover;
  
-- 備機強制切換
use master;
alter database testdb set partner force_service_allow_data_loss;
  
--恢復鏡像
use master;
alter database testdb set partner resume;
  
  
--取消見證服務器
ALTER DATABASE testdb SET WITNESS OFF ;
  
--取消鏡像
ALTER DATABASE testdb SET PARTNER OFF ;
  
--設置鏡像數據庫還原爲正常
RESTORE DATABASE testdb WITH RECOVERY;

備份主數據庫出現:Backup a database on a HDD with a different sector size,能夠執行如下語句備份:
BACKUP DATABASE MyDB TO DISK = N'D:\MyDB.bak' WITH INIT , NOUNLOAD , NAME = N'MyDB backup', STATS = 10, FORMAT

總結

要進行以上sql server的鏡像設置必定要使用sql server 的配置管理器開啓TCP/IP協議,以下圖

若是沒有啓用TCP/IP協議則只能在同一個網段內的機器配置鏡像,前面的配置步驟裏面所用到的IP地址要換成對應的實例名。同一個網段配置並使用鏡像的時實性、傳輸速率更高,適用於大數據量的同步,跨網段或者跨公網的sql server 鏡像通常適用於數據量小,時實性要求不高的數據同步,並且數據庫在公網上同步也不安全。

相關文章
相關標籤/搜索