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 镜像通常适用于数据量小,时实性要求不高的数据同步,并且数据库在公网上同步也不安全。

相关文章
相关标签/搜索