4、 配置镜像数据库
通常来说数据库都将会有若干个用户作为访问数据库的用户,并且数据库会有相应的登录名,但是在备机中缺少与之相对应的登录名,例如某业务系统使用’oateam’作为登录名访问数据库,但是在备机中没有’oateam’这个登录名,因此一旦主备切换,业务系统就无法登录数据库了,这种情况称为"孤立用户"
在主数据库中执行如下语句:
USE master;
select sid,name from syslogins;
查找出相应的用户名和sid,例如:上述的’oateam’
在备数据库中执行如下语句:
USE master;
exec sp_addlogin
@loginame = '<LoginName>',
@passwd = '<Password>',
@sid = <sid> ;
这里的’LoginName’即主数据库中的登录名,sid即是上述通过SQL语句查找出的sid。
例如,查询得到的sid和name如下所示。
sid name
---------------------------------- -----------------
50x074477739DCA0E499C29394FFFC4ADE4 oateam
则建立登录名的SQL语句:
USE master;
exec sp_addlogin
@loginame = 'oateam’,
@passwd = ‘OA@asp.net’,
@sid = 0x074477739DCA0E499C29394FFFC4ADE4;
到此为止可以认为备机数据库的环境已经与主机同步了
在主体服务器上备份数据库,镜像只支持完全恢复模式,在备份数据库之前检查恢复的模式,需要同时完整备份数据库和事务日志。
USE MASTER;
GO
BACKUP DATABASE Credit
TO DISK = 'D:\dbmirror\Credit.bak'
WITH INIT
GO
BACKUP LOG Credit
TO DISK = 'D:\dbmirror\Credit_log.bak'
WITH INIT
GO
select sid,name from syslogins;
查找出相应的用户名和sid,例如:上述的’oateam’
在备数据库中执行如下语句:
USE master;
exec sp_addlogin
@loginame = '<LoginName>',
@passwd = '<Password>',
@sid = <sid> ;
这里的’LoginName’即主数据库中的登录名,sid即是上述通过SQL语句查找出的sid。
例如,查询得到的sid和name如下所示。
sid name
---------------------------------- -----------------
50x074477739DCA0E499C29394FFFC4ADE4 oateam
则建立登录名的SQL语句:
USE master;
exec sp_addlogin
@loginame = 'oateam’,
@passwd = ‘OA@asp.net’,
@sid = 0x074477739DCA0E499C29394FFFC4ADE4;
到此为止可以认为备机数据库的环境已经与主机同步了
在主体服务器上备份数据库,镜像只支持完全恢复模式,在备份数据库之前检查恢复的模式,需要同时完整备份数据库和事务日志。
USE MASTER;
GO
BACKUP DATABASE Credit
TO DISK = 'D:\dbmirror\Credit.bak'
WITH INIT
GO
BACKUP LOG Credit
TO DISK = 'D:\dbmirror\Credit_log.bak'
WITH INIT
GO
将Credit.bak、Credit_log.bak复制到oa-canoe上,复制到oa-canoe的镜像服务器实例上以NORECOVERNY选项进行恢复.
注意:这里数据库必须备份两次,一次全备份和一次事务日志备份,在Mirror机上还原数据库必须使用NORECOVERNY选项进行恢复.