首页 » windows » 正文

sql server 2008镜像服务器配置方法,无见证服务器!

本文介绍sql server数据库配置镜像方法,本方法无见证服务器。

在没加域、或者不在一个可信的域中镜像的创建,这种情况下,必须用证书创建才能成功。

mysql主从配置参考:mysql主从同步复制配置部署脚本,支持lnmp wdcp 宝塔环境!

实验环境:

需要同步的数据库:wwwtiewwcom

数据库主体192.168.1.1

数据库镜像192.168.1.2

1、删除以前配置过的镜像、证书等
解释:如果之前配过镜像没成功,或者成功了却因为各种原因镜像不能启动,你在重新创建的时候最好把之前的镜像、证书等信息都删掉,如果是全新安装的数据库,忽略此步骤。

1.1查看之前创建过的镜像名:

SQL语句:select * from master.sys.endpoints

20170618154337

之前创建的镜像名:Endpoint_Mirroring

1.2查看之前创建过的证书:

20170618154619

之前创建的证书: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';
 
至此镜像建立完毕,已同步刷新一下就看到了。如果成功如下图:
主体:(主体,已同步)

20170618161309 
镜像:(镜像,已同步/正在还原....)

20170618161351
 
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 个回复

发表评论