SQL2005镜像制作
数据库备份脚本
BACKUP database zh_test to disk = 'd:\zhtest.bak'
BACKUP log zh_test to disk = 'd:\zhtestlog.bak'
1、主题上备份主库,注意是要完全包备份
2、镜像上还原主库,注意要NORECOVERY 参数(先选一个.bak,再选log.bak)
3. 关于主机名称,服务器名称格式:wer.test (注意加后缀), 然后在 c:\windows\system32\driver\etc\
hosts 文件中,添加对方的 IP 和 服务器名称。
4. sql 的启动方式,必须已相同的用户名和权限启动。 //服务里的登录选项卡。
5、主体 端点建立
检查是否存在端点:
SELECT * FROM sys.database_mirroring_endpoints
删除存在的端点: drop endpoint “端点镜像名称”
Create endpoint DBaccountMIREP
AS TCP (listener_port = 5022)
for database_mirroring (role = partner,encryption = supported);
go
alter endpoint DBaccountMIREP state = started
go
6、镜像 端点建立
Create endpoint DBaccountMIREP
AS TCP (listener_port = 5022)
for database_mirroring (role = partner,encryption = supported);
go
alter endpoint DBaccountMIREP state = started
go
7、镜像启动数据库
ALTER DATABASE zz_master_account
set partner = N'TCP://bj-center-dbm2.local:5022'
go
出错:默认情况下,数据库镜像是被禁用的
解决方法: 将数据库打到SP2 补丁
如果主库挂掉可在镜像库上执行下面语句进行切换:
ALTER DATABASE zh_local_billing SET PARTNER OFF
8、主体启动数据库
ALTER DATABASE zz_master_account
set partner = N'TCP://bj-center-dbs2.local:5022'
go
9、事物安全性设置 (主体库中设置)
ALTER DATABASE zz_master_account set safety off
10. 镜像数据库中删除 镜像数据库:
ALTER DATABASE zh_local_billing SET PARTNER OFF
然后执行,
restore database zh_local_account with recovery
或者:
ALTER DATABASE RecoveryDb SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS
使数据库变为可用。
---(二) 手动故障转移
-- 主体服务器上执行故障转移过程
USE MASTER
go
ALTER DATABASE RecoveryDb SET PARTNER FAILOVER
go
执行完后主体服务器状态变为: 镜像,已同步/正在还原..
镜像服务器状态变为 主体,已同步
---(三) 强制服务,有可能造成数据丢失
--1) 在镜像服务器上,取消对鉴证服务器的配置
ALTER DATABASE RecoveryDb SET WINTESS OFF
--2) 在镜像服务器上,配置事务安全性为OFF
ALTER DATABASE RecoveryDb SET SAFETY OFF
--3) 断开主体服务器,在镜像服务器上,强制服务 进行角色切换
ALTER DATABASE RecoveryDb SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS
完成后数据库状态为 主体,已断开连接
阅读(1000) | 评论(0) | 转发(0) |