本文介绍sql server数据库配置镜像方法,本方法无见证服务器。
在没加域、或者不在一个可信的域中镜像的创建,这种情况下,必须用证书创建才能成功。
mysql主从配置参考:mysql主从同步复制配置部署脚本,支持lnmp wdcp 宝塔环境!
实验环境:
需要同步的数据库:wwwtiewwcom
数据库主体192.168.1.1
数据库镜像192.168.1.2
1、删除以前配置过的镜像、证书等
解释:如果之前配过镜像没成功,或者成功了却因为各种原因镜像不能启动,你在重新创建的时候最好把之前的镜像、证书等信息都删掉,如果是全新安装的数据库,忽略此步骤。
1.1查看之前创建过的镜像名:
SQL语句:select * from master.sys.endpoints
之前创建的镜像名:Endpoint_Mirroring
1.2查看之前创建过的证书:
之前创建的证书:HOST_1_cert HOST_2_cert
SQL语句:select * from master.sys.certificates
根据上面查询的数据做以下删除操作
1-3 删除镜像:
SQL语句:DROP ENDPOINT Endpoint_Mirroring
1-4 删除证书
SQL语句:DROP CERTIFICATE HOST_1_cert
SQL语句:DROP CERTIFICATE HOST_2_cert
1-6删除登录
SQL语句:DROP LOGIN HOST_1_login
1-7删除用户:
SQL语句:DROP USER HOST_2_user
1-8删除主key:
SQL语句: DROP MASTER KEY
以上步骤必须按顺序来,否则报错,主体与镜像都要做此操作,请改成相应值。
2、配置主体192.168.1.1出站
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'tiewwcom@Asbns.1232'; GO CREATE CERTIFICATE HOST_1_cert WITH SUBJECT = 'HOST_1 certificate for database mirroring'; GO CREATE ENDPOINT wwwtiewwcom STATE = STARTED AS TCP ( LISTENER_PORT=17024 ,LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE HOST_1_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ); GO BACKUP CERTIFICATE HOST_1_cert TO FILE = 'd:\HOST_1_cert.cer'; GO
3、配置镜像192.168.1.2出站
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'tiewwcom@Asbns.1232'; GO CREATE CERTIFICATE HOST_2_cert WITH SUBJECT = 'HOST_2 certificate for database mirroring'; GO CREATE ENDPOINT wwwtiewwcom STATE = STARTED AS TCP ( LISTENER_PORT=17024 ,LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE HOST_2_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ); GO BACKUP CERTIFICATE HOST_2_cert TO FILE = 'd:\HOST_2_cert.cer'; GO
4、上面主体和镜像出站配置都会在各自D盘上生成HOST_1_cert.cer HOST_2_cert.cer将两个证书互相拷贝到对方的D盘下。
5、配置主体192.168.1.1入站
USE master; CREATE LOGIN HOST_2_LOGIN WITH PASSWORD = 'tiewwcom@Asbns.1232'; GO USE master; CREATE USER HOST_2_USER FOR LOGIN HOST_2_LOGIN; GO CREATE CERTIFICATE HOST_2_cert AUTHORIZATION HOST_2_USER FROM FILE = 'd:\HOST_2_cert.cer'; GO GRANT CONNECT ON ENDPOINT::wwwtiewwcom TO HOST_2_LOGIN GO
6、配置镜像192.168.1.2入站
USE master; CREATE LOGIN HOST_2_LOGIN WITH PASSWORD = 'tiewwcom@Asbns.1232'; GO USE master; CREATE USER HOST_2_USER FOR LOGIN HOST_2_LOGIN; GO CREATE CERTIFICATE HOST_1_cert AUTHORIZATION HOST_2_USER FROM FILE = 'd:\HOST_1_cert.cer'; GO GRANT CONNECT ON ENDPOINT::wwwtiewwcom TO HOST_2_LOGIN GO
7、备份主体192.168.1.1数据库
USE master; GO ALTER DATABASE 数据库名(例:wwwtiewwcom) SET RECOVERY FULL; GO BACKUP DATABASE 数据库名(例:wwwtiewwcom) TO DISK = 'd:\wwwtiewwcom.bak' WITH FORMAT GO BACKUP LOG 数据库名(例:wwwtiewwcom) TO DISK = 'd:\wwwtiewwcom_log.bak' GO
务必用以上命令备份,否则可能因无法还原事务日志而镜像失败
8、还原数据库镜像到192.168.1.2
RESTORE DATABASE 数据库名(例:wwwtiewwcom) FROM DISK = 'd:\wwwtiewwcom.bak' WITH NORECOVERY GO RESTORE LOG 数据库名(例:wwwtiewwcom) FROM DISK = 'd:\wwwtiewwcom_log.bak' WITH FILE=1, NORECOVERY GO
恢复前不需要预先建立数据库,直接在空数据库使用以上命令即可。
务必使用以上命令行操作,如果在管理器里用还原选项操作,还原出来的数据库不能用于镜像。
9、配置镜像 9-1 先在镜像数据库192.168.1.2操作 ALTER DATABASE 数据库名(例:wwwtiewwcom) SET PARTNER = 'TCP://192.168.1.1:17024'; 9-2 再在主体数据库192.168.1.1操作 ALTER DATABASE 数据库名(例:wwwtiewwcom) SET PARTNER = 'TCP://192.168.1.2:17024'; 至此镜像建立完毕,已同步刷新一下就看到了。如果成功如下图: 主体:(主体,已同步) 镜像:(镜像,已同步/正在还原....) 10、附数据库镜像取消命令 ALTER DATABASE wwwtiewwcom SET PARTNER OFF 如果遇到无法镜像,请查看两台服务器系统日志
11.手动切换镜像服务器
如主服务器挂 了可以使用如下sql语句切换 USE master; ALTER DATABASE 数据库名(例:wwwtiewwcom) SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS;
如有对sql server 2008镜像配置步骤不懂的朋友请回复本帖子
本教程由铁网维原创出品 服务器运维官方网址http://www.tieww.com 欢迎大家多多关注本站 感谢大家的支持。
本文共 1 个回复