SQL2008数据库镜像操作

1.      查看终端点 select* from sys.endpoints

2.      删除某终端点(终端点不带引号)   drop endpoint <endpoint_name>

3.      删除证书  在master | Security |Certificates (drop master key...)

4.      删除用户  在master | User

5.      然后可以删除登录名  drop login <login_name>

6.      修改masterkey  :  alter master key drop encryption by service master key

7.      删除masterkey  : drop master key

8.      删除镜像的命令:alter databse <dbname> set partner off

 

-------------------------------------------------------------------------

删除证书:

drop master  key  //先执行,如果提示某个证书无法删除,在用下面的语句执行

DROP CERTIFICATE HOST_A1_cert  // HOST_A1_cert为具体证书名

 

ALTER MASTER KEY DROP ENCRYPTIONBYSERVICEMASTERKEY //未测试过

 

删除终端点

select *from  sys.endpoints  //查询后,将删除的名称用下面语句drop

drop endpoint 镜像

 

删除镜像文件语句:

ALTER DATABASE aa  SET  PARTNER OFF //执行后在手动删除aa数据库

 

 修复清除  HOST_A_user   用户、组或角色 'HOST_A_user' 在当前数据库中已存在。

DROP USER HOST_A_user

在手动删除SQL登录名里的HOST_A_user


提示错误:此备份集中的日志开始于   LSN   641000000005900001,该   LSN   太晚,无法应用到数据   库

  原因是主机上的主数据库还在运行中,此时主机数据库备份出来后,软件还在对数据库进行操作,而此时备份出来的数据库还原到备机时,日志已经晚于主机上的。

办法:

    停掉可以操作该数据库DB对应的软件,让其不会在对该数据进行操作,然后在备份数据库和日志分别导入

---------------------------------------------------------------------------------------------------------------------

 检查主机上该数据库属性-选项-自动关闭,选为false

 

1.创建证书,实现互通的根本

--主机

USE master;

CREATE MASTER KEY ENCRYPTION BY PASSWORD ='clq';

CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate' , 

START_DATE = '01/01/2017';

 

--备机

USE master;

CREATE MASTER KEY ENCRYPTION BY PASSWORD ='clq';

CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = 'HOST_B certificate', 

START_DATE = '01/01/2017';

 

 

2.创建主备连接的端点

--主机

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

 

--备机

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

 

 

3.备份证书用来互换

--主机

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

--备机

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

 

 

4.主备之间互换证书

将主机上产生的证书HOST_A_cert复制到备机上,将备机上产生的证书HOST_B_cert复制到主机上,放在第5步指定的目录

 

5.新增主备登陆用户

--主机

CREATE LOGIN HOST_B_login WITH PASSWORD ='clq';  --主机上登录到备机的用户
CREATE USER HOST_B_user FOR LOGIN HOST_B_login;
CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'D:\HOST_B_cert.cer';
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];

 

--备机

CREATE LOGIN HOST_A_login WITH PASSWORD ='clq';  --备机上登录到主机的用户

CREATE USER HOST_A_user FOR LOGIN HOST_A_login;

CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'D:\HOST_A_cert.cer';

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];

 


 检查主机上该数据库属性-选项-自动关闭,选为false

6、主机执行数据库aa备份,注意备份类型选【完整】,保存为aa;然后在进行一次aa备份,备份类型选【事务日志】,保存为aa1。

  

7、备机上将上述两个文件aa,aa1复制到本地磁盘进行备机数据库还原,还原时【选项】卡里要将【恢复状态】选择为【不对数据库进行任何操作…..RESTORE WITH NORECOVERY】,aa1还原时一样执行本操作。

 

 

8.增加镜像伙伴,需要先在备机上执行,再执行主机

--备机

ALTER DATABASE aa SET PARTNER = 'TCP://10.10.5.20:5022';

--主机

ALTER DATABASE aa SET PARTNER = 'TCP://10.10.5.110:5022';

 

提示错误:此备份集中的日志开始于   LSN   641000000005900001,该   LSN   太晚,无法应用到数据   库

  原因是主机上的主数据库还在运行中,此时主机数据库备份出来后,软件还在对数据库进行操作,而此时备份出来的数据库还原到备机时,日志已经晚于主机上的。

办法:

    停掉可以操作该数据库DB对应的软件,让其不会在对该数据进行操作,然后在备份数据库和日志分别导入




执行成功以后,主机上数据库backuptest会显示主体正在同步字样,备机数据库会显示正在还原字样。若上述步骤

有报日志错误,则还需从主机上备份日志文件,然后在备机上还原,还原日志时同样需要指定norecovery

 

 

 

 

 

9、测试

 

1、主备互换

--主机执行:

1 USE master;

2 ALTER DATABASE <DatabaseName> SET  PARTNER FAILOVER;

 --执行后备机aa数据库可操作,主机aa数据库变成镜像


 

2、主服务器Down掉,备机紧急启动并且开始服务

--备机执行:

1 USE master;

2 ALTER DATABASE <DatabaseName> SET  PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS;

 --执行后备机也可直接对aa数据库进行操作

 

3、原来的主服务器恢复,可以继续工作,需要重新设定镜像

1 --备机执行:

2 USE master;

3 ALTER DATABASE <DatabaseName> SET  PARTNER RESUME; --恢复镜像

4 ALTER DATABASE <DatabaseName> SET  PARTNER FAILOVER; --切换主备

 

4、原来的主服务器恢复,可以继续工作

--默认情况下,事务安全级别的设置为 FULL,即同步运行模式,而且SQL Server 2005 标准版只支持同步模式。

--关闭事务安全可将会话切换到异步运行模式,该模式可使性能达到最佳。

1 USE master;

2 ALTER DATABASE <DatabaseName> SET  PARTNER SAFETY FULL; --事务安全,同步模式

3 ALTER DATABASE <DatabaseName> SET  PARTNER SAFETY OFF; --事务不安全,异步模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值