两台服务器,没有域环境,如何配置
SQL SERVER2008
镜像呢?
详细过程如下:
SQL 2008
配置有证书镜像的步聚共有四步:
1.
配置出站连接:创建主秘钥、证书和端点,备份证书并拷贝到另一台服务器
2.
配置入站连接:分配登陆用户、赋予登陆用户
connect
本机端点的权限
3.
创建镜像数据:备主数据库,还原镜像数据库
4.
配置镜像伙伴关系:顺序:镜像
----
主体
5.
测试镜像:切换镜像
运行环境:
主数据库服务器:
192.168.1.2
镜像数据库服务器:
192.168.1.3
以下是测试的详细脚本:
=============================================================
一.配置出站:配置完证书后,分别互存到各数据库服务器的对应路径,注意端口
=============================================================
配置
HOST_2
出站
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'PassWord123';
GO
CREATE CERTIFICATE HOST_2_cert
WITH SUBJECT = 'HOST_2 certificate for database mirroring';
GO
CREATE ENDPOINT Endpoint_Mirroring
STATE = STARTED
AS TCP (
LISTENER_PORT=5023
, 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:\CERT\HOST_2_cert.cer';
GO
配置
HOST_3
出站
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'PassWord123';
GO
CREATE CERTIFICATE HOST_3_cert
WITH SUBJECT = 'HOST_3 certificate for database mirroring';
GO
CREATE ENDPOINT Endpoint_Mirroring
STATE = STARTED
AS TCP (
LISTENER_PORT=5023
, LISTENER_IP = ALL
)
FOR DATABASE_MIRRORING (
AUTHENTICATION = CERTIFICATE HOST_3_cert
, ENCRYPTION = REQUIRED ALGORITHM AES
, ROLE = ALL
);
GO
BACKUP CERTIFICATE HOST_3_cert TO FILE = 'D:\CERT\HOST_3_cert.cer';
GO
=============================================================
二.入站镜像连接配置服务器:注意证书的路径,登录账户的命名
=============================================================
HOST_2
的入站配置:
USE master;
CREATE LOGIN HOST_3_LOGIN
WITH PASSWORD = 'mainone%123';
GO
USE master;
CREATE USER HOST_3_USER FOR LOGIN HOST_3_LOGIN;
GO
CREATE CERTIFICATE HOST_3_cert
AUTHORIZATION HOST_3_USER
FROM FILE = 'D:\CERT\HOST_3_cert.cer';
GO
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO HOST_3_LOGIN
GO
=============================================================
HOST_3
的入站配置:
USE master;
CREATE LOGIN HOST_2_LOGIN
WITH PASSWORD = 'mainone%123';
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:\CERT\HOST_2_cert.cer';
GO
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO HOST_2_LOGIN
GO
=============================================================
三.配置数据库:备份包括数据库和日志
=============================================================
备份主数据库
HOST_2
:
USE master;
GO
ALTER DATABASE DBNAME
SET RECOVERY FULL;
GO
BACKUP DATABASE DBNAME
TO DISK = 'e:\DBNAME.bak'
WITH FORMAT
GO
BACKUP LOG DBNAME
TO DISK = 'e:\DBNAME_log.bak'
GO
还原镜像数据库
HOST_3
:
RESTORE DATABASE DBNAME
FROM DISK = 'E:\DBNAME.bak'
WITH NORECOVERY
GO
RESTORE LOG DBNAME
FROM DISK = 'E:\DBNAME_log.bak'
WITH FILE=1, NORECOVERY
GO
=============================================================
四.配置镜像:顺序:镜像
----
主体
=============================================================
先执行
HOST_3
服务器:
ALTER DATABASE DBNAME
SET PARTNER = 'TCP://192.168.1.2:5023'
GO
再执行
HOST_2
服务器:
ALTER DATABASE DBNAME
SET PARTNER = 'TCP://192.168.1.3:5023' ,SAFETY OFF(此处添加“SAFETY OFF”会引起冲突,我在此处去除了)
GO
=============================================================
五.测试镜像
:
在主数据库上执行以下代码可以强制将镜像数据库启用为主数据库,可以查看数据同步的完整性。
=============================================================
主数据库
HOST_2
执行
:
USE master;
ALTER DATABASE DBNAME
SET PARTNER FAILOVER
GO
2
死机之后,在
3
上执行
:强行将镜像服务器提升为主服务器:
ALTER DATABASE DBNAME
SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS
转载于:https://blog.51cto.com/loveyou913/351419