非域环境下SqlServer2005镜像安装配置步骤
??????? sql server 2005/2008提供3种高可用性方案: 分发/订阅方式;传送事务日志方式;镜像方式. 前者的主机(A服务器),和备机(B服务器)上的数据库可同时访问(当然B上的数据库会有一部分数据延迟),后两者的B服务器上数据库处于“正在还原”状态,不可读写(即不能分任务负载)。 ?????? 分发/订阅方式: 粒度为表/存储过程/函数/视图...的级别。异步将A服务器上的对象变化/或事务/或快照,传到分发服务器,再传到N个订阅服务器。 ?????? 事务传送日志方式:粒度为数据库级别。A服务器上备份数据库,放到B上去还原,然后A再定期备份事务日志(放共享目录下),B定期去(A服务器上的共享目录)拷贝备份的事务日志,再定期还原上去。 (可以有多个备份服务器,B1,B2,B3....)。缺点:主/备需手动切换,且切换过一次之后,所有配置要重新配一次。 ?????? 镜像方式:粒度为数据库级别。A服务器上备份数据库和事务日志,放到B上去还原;然后A上每个事务,都同步/异步提交到B上去执行。(一个主机对应一个备机)。可自动切换或手动切换,配置一次即可。 ? 下文转自: http://hi.baidu.com/zhenbo228/blog/item/98b911ab43bfe4f6faed5019.html?,文中紫色文字为博主自已添加的备注. ? 一、本文档主要说明在设置sql server的镜像功能时,在主机,备机需要进行的操作步骤 二、需要环境: 1、 操作系统:windows2003标准版 2、 数据库:sql server2005企业版+ sp4 三、安装设置步骤:(假设数据库名称为Testbackup) 1、安装windows2003 2、主备机均修改计算机DNS后缀 (该步骤也可跳过了) 在”我的电脑”---“属性”---“计算机名”tab---“更改”按钮---“其他”按钮---输入后缀,例如tomisoft.net等等,需要注意2点:一是主备机的dns后缀完全一样,二是不要和实际的域名无论外网或内网冲突;修改后重启计算机;重启后,注意修改windowssystem32driversetchosts文件,加入对方完全计算机名和IP对应关系。 3、?? 安装sql server2005+sp4,采用混合验证模式 ? 4、创建数据库,配置主机 ?建立一个需要做数据库镜像的主数据库 若要对此数据库进行数据库镜像,必须将它更改为使用完整恢复模式 在主机数据库执行脚本如下: ??? USE master; ??? ALTER DATABASE? Testbackup ??? SET RECOVERY FULL; ? 5、 主机备份数据库 将主机数据库进行完全备份,可以通过图形界面完成, 6、 备机还原数据库: 首先在数据库中建立与目标数据库同名的空库,然后将主机通过全库备份完成的数据库备份文件拷贝到本机,可以通过脚本或者图形操作的方式进行还原,如果通过脚本,执行如下语句: RESTORE DATABASE TestBackup FROM DISK='D:TB.BAK' WITH NORECOVERY 如果通过图形界面进行,注意还原数据的时候需要使用选上“with non recover”。 如果执行成功数据库将会变成这个样子: 7、 主机进行事务日志备份 通过图形界面在主机对数据库进行事务日志备份 8、 备机还原事务日志备份: 将主机备份的事务日志文件拷贝到本机,然后在镜像服务器上通过图形界面还原数据库日志,还原事务日志时需在选项中选择“restore with norecovery ? 9 - 12步骤也可跳过了,在SQL Server management studio里配置的时候,可以使用sql server账号密码做为验证方式。(图形界面配置方法:右键单击“主机上需镜像的数据库”,选择“属性”菜单,再选择“镜像”页签) 9、创建证书:(主备份别执行) ?实现互通可以使用域或证书来实现,考虑实现的简单,以下选取证书的方式实现。注意:实现“主备数据库实例互通”的操作只需要做一次,例如为了将两个SQL Server 2005的实例中的个数据库建成镜像关系,则只需要做一次以下操作就可以了;或者这样理解:每一对主备实例(不是数据库)做一次互通。 ?? 打开”SQL Server management studio”,? 新建查询,执行脚本: ?主机: ???? USE master; ??? CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'tomisoft'; ??? CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate', ??? START_DATE = '01/01/2009'; ? 备机:? ??? USE master; ??? CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'tomisoft'; ??? CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = 'HOST_B certificate', ??? START_DATE = '01/01/2009'; ? 10、创建连接的端点:(主备机分别执行)? 主机:? ??? CREATE ENDPOINT dbmirrep ??? 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 dbmirrep ??? STATE = STARTED ??? AS ??? TCP ( LISTENER_PORT=5022,LISTENER_IP = ALL ) ??? FOR ??? DATABASE_MIRRORING???? ??? ( AUTHENTICATION = CERTIFICATE HOST_B_cert,ROLE = ALL ); ? 11、备份证书以备建立互联:(主备机分别执行)? 主机: ??? BACKUP CERTIFICATE HOST_A_cert TO FILE = 'D:database HOST_A_cert.cer' ?备机: ??? BACKUP CERTIFICATE HOST_B_cert TO FILE = 'D:databaseHOST_B_cert.cer'; 此处注意相关目录要存在 ? 12、互换证书,将对方证书拷贝到本地,即主机的拷贝到备机,备机的拷贝到主机? 主机执行: ??? CREATE LOGIN HOST_B_login WITH PASSWORD = 'tomisoft'; ??? CREATE USER HOST_B_user FOR LOGIN HOST_B_login;?? ??? CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'D:SQLBackupHOST_B_cert.cer'; ??? GRANT CONNECT ON ENDPOINT:: dbmirrep TO [HOST_B_login]; ? 备机执行: ??? CREATE LOGIN HOST_A_login WITH PASSWORD = 'tomisoft'; ??? CREATE USER HOST_A_user FOR LOGIN HOST_A_login; ??? CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'D:databaseHOST_A_cert.cer'; ??? GRANT CONNECT ON ENDPOINT::dbmirrep TO [HOST_A_login]; ? 13、 主机建立镜像: 在A主机的目标数据库属性中,选择镜像,单击‘配置安全性…’进行配置的时候,主机和镜像机机器名需要设置为,形如:tomisoft201.tomisoft.tomi 否则镜像关系将执行不成功 (不一定非要这种方式,也可以直接用: ip地址+端口,或者 主机名+端口,后者需要配hosts文件。 这样的话,设置服务账户的时候,会报错,但不影响.) 备机等待主机执行数据库镜像完成后,镜像数据库会变成如下模式,如果没有,可以通过刷新即可:
(四)镜像故障的切换 1、 主机当机后的处理: 如果主机当机后(数据库显示:【主体,已断开】,备机数据库会变成如下模式: ,此时在备机执行如下脚本,将镜像库变为主体可用库,即可进行读写: alter database Testbackup set partner force_service_allow_data_loss 注:测试中发现主体数据库的sql服务必须启动,否则备份数据库执行完上述语句后仍然处于‘正在恢复‘状态,依然不可用。切换后的正确状态如图 2、 主机恢复后的处理: 如果主机恢复,执行如下脚本即可将主机重新设置为主机,当前镜像仍然恢复镜像模式: 首先主机要执行脚本: USE master; ALTER DATABASE TestBackup SET PARTNER SAFETY FULL; --事务安全,同步模式 备机执行脚本: USE master; ALTER DATABASE Testbackup SET PARTNER RESUME 注:成功执行后结果如图 成功后再执行: ALTER DATABASE Testbackup SET PARTNER FAILOVER 注:执行后备机数据库如图 3、 其他说明: 如果主机无法恢复,希望以当前镜像机为主机,需要重新建立镜像 正常情况下,如果希望进行主备切换,即将主机人为停掉,将镜像作为主机,则可以在主机执行脚本进行主备互换: USE master; 主机当机后恢复的情况,默认情况下,事务安全级别的设置为 FULL,即同步运行模式,而且SQL Server 2005 标准版只支持同步模式。 在主机中执行: USE master; 下面的异步模式一般不推荐使用: ALTER DATABASE <DatabaseName> SET PARTNER SAFETY OFF; --事务不安全,异步模式 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |