ITPub博客

首页 > 数据库 > SQL Server > 非域环境下SQL Server mirror建立

非域环境下SQL Server mirror建立

原创 SQL Server 作者:guocun09 时间:2019-02-22 09:49:35 0 删除 编辑

环境:

SQLServer2012SP1

主:10.202.11.47

备:10.202.11.49

不配置见证服务器

 

步骤:

第1 步:创建master key(主密钥)

主库中执行:

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Aa000000'

查看主密钥是否建立:

select is_master_key_encrypted_by_server ,*   from sys . databases

 

备库中执行同样操作:

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Aa000000'

 

第2 步:创建证书使用密钥加密

主库中执行: 

USE master

GO  

CREATE CERTIFICATE Host_A_Cert  

WITH Subject = 'Host_47 Certificate' ,

Expiry_Date = '2055-1-1' ; -- 过期日期

 

备库中执行:

USE master

GO  

CREATE CERTIFICATE Host_B_Cert  

WITH Subject = 'Host_49 Certificate' ,

Expiry_Date = '2055-1-1' ; -- 过期日期

 

第3 步:创建endpoint

主库中执行:

IF NOT EXISTS

( SELECT 1 FROM sys . database_mirroring_endpoints )  

    BEGIN  

    CREATE 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 )

    END

 

如果存在endpoint则可以修改使用

SELECT   *    FROM   sys . database_mirroring_endpoints

 

ALTER 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 )

 

备库中执行:

IF NOT EXISTS

( SELECT 1 FROM sys . database_mirroring_endpoints )  

    BEGIN  

    CREATE ENDPOINT [Mirroring] STATE = STARTED AS TCP (

    LISTENER_PORT = 5022 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION =

    CERTIFICATE Host_B_Cert , ENCRYPTION = REQUIRED Algorithm AES , ROLE =ALL )

    END

 

第4 步:备份证书

主备库OS中创建文件夹 C:\MIRROR

 

主库中执行:

BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\MIRROR\HOST_A_cert.cer' ;

 

备库中执行:

BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\MIRROR\HOST_B_cert.cer' ;

主备库OS中相互copy证书

 

第5 步:创建登录login

主库中执行:

CREATE LOGIN Host_B_Login WITH PASSWORD = 'Password666'

 

备库中执行:

CREATE LOGIN Host_A_Login WITH PASSWORD = 'Password666'

 

第6 步:创建User并映射到login

主库中执行:

CREATE USER Host_B_User For Login Host_B_Login ;

 

备库中执行:

CREATE USER Host_A_User For Login Host_A_Login ;

 

 

第7 步:创建证书,并使用从伙伴服务器中copy过来的证书导入,再授权证书给账号

*****************************************

如果存在则先删除

IF EXISTS( select * from sys . certificates WHERE name = 'HOST_B_cert' )

DROP CERTIFICATE HOST_B_cert

GO

*****************************************

 

主库中执行:

CREATE CERTIFICATE Host_B_Cert AUTHORIZATION Host_B_User FROM FILE = 'C:\MIRROR\Host_B_Cert.cer' ;

 

备库中执行:

CREATE CERTIFICATE Host_A_Cert AUTHORIZATION Host_A_User FROM FILE = 'C:\MIRROR\Host_A_Cert.cer' ;

 

第8 步:授权connect on endpoint权限至login

主库中执行:

GRANT CONNECT ON ENDPOINT :: [Mirroring] TO [Host_B_Login]

 

备库中执行:

GRANT CONNECT ON ENDPOINT :: [Mirroring] TO [Host_A_Login]

 

第9 步:备份还原db

主库中执行:

右键需要做mirror的DB->Tasks->back up...


Backup type选择Full,并设置back up to:备份文件目录,之后点OK完成Full backup


再Backup type选择Transaction log,并设置back up to:备份文件目录, Options->Overwrite media->Back up to the existing media set,之后点OK完成Transaction backup


备库中执行:

右键database->restore database


Device选择主库已备份的文件


Options->recovery state:选择restore with norecovery模式还原,否则会报错Msg 1416

点击OK

 


第10 步:开启mirror

在备库上执行( 必须备库上先执行 ):

IP TCP://10.202.11.47:5022 为主库IP

ALTER DATABASE mesdb SET PARTNER = 'TCP://10.202.11.47:5022' ;

 


在主库上执行:

IP TCP://10.202.11.49:5022 为备主库IP

ALTER DATABASE mesdb SET PARTNER = 'TCP://10.202.11.49:5022' ;

 

此时,mirror已经开启。主库状态已变为principal, synchronized

 

另,根据需求可以修改mirror为high performance模式(默认试high safety)

ALTER DATABASE mesdb SET SAFETY OFF

 

第11 步:可以对备库mirror DB建立只读快照DB(选用)

备库中执行:

create database snap_mesdb

on ( name = mesdb ,   -- 文件逻辑名,需要和 mes 中一致

filename = 'c:\db_snapshot\snap_mes_1.ss' –- 快照物理文件名,可随便取

)

as snapshot of mesdb --- 需要做快照的 DB

 


至此,非域环境中SQL Server mirror的搭建完成



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25583515/viewspace-2636654/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
DBA,掌握Oracle,SQLServer,MySQL,hadoop,casscandra等数据库。喜爱深入研究数据库技术原理,擅长管理和优化工作。

注册时间:2011-10-02

  • 博文量
    143
  • 访问量
    536464