1. 查看终端点 select* from sys.endpoints
2. 删除某终端点(终端点不带引号) drop endpoint
3. 删除证书 在master | Security |Certificates (drop master key...)
4. 删除用户 在master | User
5. 然后可以删除登录名 drop login
6. 修改masterkey : alter master key drop encryption by service master key
7. 删除masterkey : drop master key
8. 删除镜像的命令:alter databse
-------------------------------------------------------------------------
删除证书:
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 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
--执行后备机aa数据库可操作,主机aa数据库变成镜像
2、主服务器Down掉,备机紧急启动并且开始服务
--备机执行:
1 USE master;
2 ALTER DATABASE
--执行后备机也可直接对aa数据库进行操作
3、原来的主服务器恢复,可以继续工作,需要重新设定镜像
1 --备机执行:
2 USE master;
3 ALTER DATABASE
4 ALTER DATABASE
4、原来的主服务器恢复,可以继续工作
--默认情况下,事务安全级别的设置为 FULL,即同步运行模式,而且SQL Server 2005 标准版只支持同步模式。
--关闭事务安全可将会话切换到异步运行模式,该模式可使性能达到最佳。
1 USE master;
2 ALTER DATABASE
3 ALTER DATABASE