微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQL Server2008 R2 数据库镜像实施手册(双机)SQL Server2014同样适用

一、配置主备机

1、 服务器基本信息

主机名称为:HOST_A,IP地址为:192.168.1.155

备机名称为:HOST_B,IP地址为:192.168.1.156

二、主备实例互通

实现互通可以使用域或证书来实现,考虑实现的简单,以下选取证书的方式实现。注意:实现“主备数据库实例互通”的操作只需要做一次,例如为了将两个sql Server 2008的实例中的5个数据库建成镜像关系,则只需要做一次以下操作就可以了;或者这样理解:每一对主备实例(不是数据库)做一次互通。

1、创建证书(主备可并行执行)

rush:sql;"> --主机执行: 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',EXPIRY_DATE = '2099-08-02';

2、创建连接的端点(主备可并行执行)

rush:sql;"> --主机执行:

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,ROLE = ALL );

3、备份证书以备建立互联(主备可并行执行)

rush:sql;"> --主机执行:

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';

4、互换证书

将备份到C:\sqlBackup\的证书进行互换,即HOST_A_cert.cer复制到备机的C:\sqlBackup\。HOST_B_cert.cer复制到主机的C:\sqlBackup\。

5、添加登陆名、用户(主备可并行执行)

以下操作只能通过命令行运行,通过图形界面无法完成。(截至sql Server2005的补丁号为SP2)

rush:sql;"> --主机执行: 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];

三、建立镜像关系

以下步骤是针对每个数据库进行的,例如:现有主机中有5个数据库以下过程就要执行5次。

1、 手工同步登录名和密码

在上文中提到数据库镜像的缺点之一是无法维护登录名,所以需要我们手工维护登录

通常来说数据库都将会有若干个用户作为访问数据库用户,并且数据库会有相应的登录名,但是在备机中缺少与之相对应的登录名,例如某业务系统使用'myuser'作为登录名访问数据库,但是在备机中没有'myuser'这个登录名,因此一旦主备切换,业务系统就无法登录数据库了,这种情况称为"孤立用户"。在主机和备机数据库上建立相同用户名及密码即可。

2、 准备备机数据库(主机备份及镜像还原)

在主机上备份数据库,先做完整备份,再做日志事务备份。

1、主数据必须设置成完整模式进行备份,如下图:

数据库,如下图:

数据库的目录一致。

文件在备机上使用主机的全备文件进行还原,在还原数据的时候需要使用选上“with non recover”。如图所示:

数据库将会变成这个样子:

3、 建立镜像

rush:sql;"> --在备机中执行如下语句:

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镜像热备配置完成。

四、常见命令

rush:sql;"> --切换主备 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 镜像一般适用于数据量小,时实性要求不高的数据同步,而且数据库在公网上同步也不安全。

原文地址:https://www.jb51.cc/mssql/66038.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐