兩臺服務器,沒有域環境,如何配置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