SQL Server数据库镜像笔记

1.主服务器与镜像服务器创建1个同样用户名,密码的账号

2.主服务器与镜像服务器更改数据库服务的账号为刚创建的账号

3.按照http://liulike.blog.51cto.com/1355103/339183的步骤完成配置

 解决方法为:配置两台机器上,启动sql server为同一名字账户,且密码要相同;重启SQL Server服务; 然后在两机器上,都删除端点(drop endpoint ...),再重启配置。 

不知道好不好用  等下看看~~~:)

 

 

1. 首先要将主数据库恢复模式设置为完整:alter database WLDB set recovery full with no_wait

2.备份主数据库和日志:

BACKUP DATABASE [WLDB] TO  DISK = N'D:\Backup\WLDB.bak' WITH NOFORMAT, NOINIT,  NAME = N'WLDB-完整 数据库 备份', SKIP, NOREWIND, NOUNLOAD,  STATS = 10 
GO 
BACKUP LOG [WLDB] TO  DISK = N'D:\Backup\WLDB.bak' WITH NOFORMAT, NOINIT,  NAME = N'WLDB-事务日志  备份', SKIP, NOREWIND, NOUNLOAD,  STATS = 10 
GO

3.在镜像服务器上以不回滚提交事务方式恢复数据库:

RESTORE DATABASE [WLDB] FROM  DISK = N'D:\Backup\WLDB.bak' WITH  FILE = 1,  NORECOVERY,  NOUNLOAD,  REPLACE,  STATS = 10 
GO 
RESTORE LOG [WLDB] FROM  DISK = N'D:\Backup\WLDB.bak' WITH  FILE = 2,  NORECOVERY,  NOUNLOAD,  STATS = 10 
GO

 

配置出站连接的进程分为以下基本步骤:

  1. 在 master 数据库中,创建数据库主密钥。
  2. 在 master 数据库中,为服务器实例创建加密证书。
  3. 使用服务器实例的证书为该服务器实例创建端点。
  4. 将证书备份到文件,并将其安全地复制到其他系统。

1. 在主服务器上执行下列命令:

在 master 数据库中,创建数据库主密钥。 
create master key encryption by password='pass@word1'

在 master 数据库中,为服务器实例创建加密证书。 
create certificate Host_A_cert with subject='HOST_A_certificate',start_date = '01/01/2010', expiry_date='01/01/2099' 
SELECT * FROM sys.certificates; 
使用服务器实例的证书为该服务器实例创建端点。 
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) 
go 
SELECT name, role_desc, state_desc, connection_auth_desc, encryption_algorithm_desc FROM sys.database_mirroring_endpoints; 
将证书备份到文件,并将其安全地复制到其他系统。 
backup certificate HOST_A_cert to FILE='C:\HOST_A_cert.cer'

2.在镜象服务器上执行同样的操作:

create master key encryption by password='pass@word1' 
create certificate Host_B_cert with subject='HOST_B_certificate',start_date = '01/01/2010', expiry_date='01/01/2099' 
go 
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) 
go 
backup certificate HOST_B_cert to FILE='C:\HOST_B_cert.cer'

3. 交换证书,将主服务器C盘上的HOST_A_cert.cer复制到镜象服务器上的C盘上。将镜像服务器C盘的HOST_B_cert.cer也复制到主服务器的C盘上。

配置入站连接的过程通常有以下几个步骤:

  1. 为其他系统创建登录名。
  2. 创建一个使用该登录名的用户。
  3. 获取其他服务器实例的镜像端点的证书。
  4. 将该证书与在步骤 2 中创建的用户相关联。
  5. 授予对该镜像端点的登录名的 CONNECT 权限。

1.在主服务器上执行:

为其他系统创建登录名。 
create login HOST_B_login with password='pass@word1'; 
创建一个使用该登录名的用户。 
create user HOST_B_user FOR LOGIN HOST_B_login; 
将该证书与在步骤 2 中创建的用户相关联。 
create certificate HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE='C:\HOST_B_cert.cer'; 
授予对该镜像端点的登录名的 CONNECT 权限。 
grant connect on endpoint::Endpoint_Mirroring TO [HOST_B_login];

2.在镜像服务器上执行同样的操作

create login HOST_A_login with password='pass@word1'; 
create user HOST_A_user FOR LOGIN HOST_A_login; 
create certificate HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE='C:\HOST_A_cert.cer'; 
grant connect on endpoint::Endpoint_Mirroring TO [HOST_A_login];

3.先在镜像服务器上设置数据库的镜像

alter database Northwind SET Partner = 'TCP://主服务器IP地址:5022'

4.设置主服务器上的数据库镜象:

alter database Northwind SET Partner = 'TCP://镜象服务器IP地址:5022'

好了,到这里我们就大功搞成了,现在这两台服务器已经开始镜像了。因为现在我们做的是手动镜像故障转移,所以当主服务器宕机后我们需要手动切换到镜像服务器上。

主机宕掉时执行:ALTER DATABASE Northwind SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS

当主机恢复时执行: 
ALTER DATABASE Northwind SET PARTNER RESUME; --恢复镜像 
ALTER DATABASE Northwind SET PARTNER SAFETY FULL --事务安全,同步模式 
ALTER DATABASE Northwind SET PARTNER FAILOVER; --切换主备

 

 

 

posted @ 2012-09-06 14:03  风干的记忆  阅读(245)  评论(0编辑  收藏  举报