sql server 2012数据库镜像
sql server 2012数据库镜像
以下通过域帐户来配置数据库镜像:
一、环境准备
1、准备计算机
AD02为域控制器/DNS服务器(sz1card1.com),IP:192.168.2.218/24,AD02安装成为域控制器、DNS服务(这里不做演示)
W67为主体服务器,IP:192.168.2.67/24,安装SQL SERVER 2012 企业核心版(这里不做演示)
W65为镜像服务器,IP:192.168.2.65/24,安装SQL SERVER 2012 企业核心版(这里不做演示)
注:测试环境关闭所有防火墙 ,准备镜像用的数据库为test库
2、测试直接使用administrator域控管理员用户和密码(*********),建议自行在域控制器创建新的域用户帐户(确保该账户密码永不过期)
二、部署实验
1、在W65、W67服务器的SQL数据库上,在“管理工具”中打开“服务”(或者用“SQL Server 配置管理器”),修改SQL Server实例的属性,将登录身份改为设置sz1card1\administrator。修改之后,重启SQL Server实例。
2、W65、W67服务器的SQL数据库,右键实例选择“方面”,选择“外围应用配置器”―将属性“RemoteDACEnabled”的值改为“True”
3、确认W67服务器test数据库必须是“完整恢复模式”,备份类型选择”完整“,点击”确定“ ;选择备份类型为”事务日志“,点击”确定“完成对事务日志的备份,完整备份和日志备份完后,拷贝至W65服务器准备做还原
4、W65服务器创建test库(此数据库名称必须与W67中创建的数据库名称保持一致) ,并且修改为“完整恢复模式”,右键新创建的数据库“test”--选择“任务”―“还原”―“数据库”,选择设备-->添加,选择刚才从W67复制的备份文件(含备份数据库和日志),点击”确定” , 在“选项”页面勾选“覆盖现有数据库”,恢复状态选择“RESTORE WITH NORECOVERY”,取消勾选“还原前进行结尾日志备份”,点击“确定”,这时W65上的test数据库处于还原的状态
5、数据库镜像配置,在主体服务器W67右键“test”选择“任务”―“镜像” ,点击“配置安全性”,跟进向导配置主体服务器配置,默认镜像为同步(镜像模式类型优缺点可参照微软官网文档)
6、W67镜像配置成功后,启动开始镜像,这时W67服务器上test数据库处于“主体,已同步”,W65服务器上镜像数据库test数据库处于“镜像,已同步\正在还原”
注:镜像数据库test处于正在还原状态,是不可读写的,作为故障转移切换用,不能分担读或写!
7、可在W67服务器选择test数据库右键--任务--启动镜像监视器,查看同步状态
8、测试:主体数据库在test库,users表,增加一条记录,
INSERT users VALUES(11,'TEST')
注:由于镜像同步方式,并且当前同步状态正常,测试数据不多,数据很快同步至镜像库,但由于镜像库当前不可读写,看不到刚刚添加的数据,只能以下模拟故障切换镜像库为主库,验证数据。
9、手动切换故障,W67服务器test数据库,右键--任务--镜像--“故障转移”,转移成功后,当前W67服务器test数据库状态为“镜像,已同步\正在还原”,W65服务器test数据库,则为主体数据库,状态为“主体,已同步”
注:切换成功,并且数据验证正常
若:出现主体服务器,宕机情况呢!如这时的主体W65出现宕机了,W67镜像库状态为“正在恢复”,同样不可访问。这时只能手工执行命令切换,在镜像库master系统执行以下命令:
--Thisscriptdoesafailoverofallthedatabasesinadatabasemirroringsession--totheMirrorserver.ThiswillbeusedincaseswherethePRINCIPALserverisnolongeravailable--andthemirroreddatabaseshavetobebroughtonline.--NOTE:RunthisscriptintheMIRROREDserverinstanceSETNOCOUNTOFFDECLARE@strSQLNVARCHAR(200)--variablefordynamicSQLstatement-variablesizeshouldchangedependingontheDECLARE@strDatabasenameNVARCHAR(50)--variablefordestinationdirectoryDECLAREMyCursorCURSORFOR--usedforcursorallocationSELECTnameFROMmaster.sys.databasesaINNERJOINmaster.sys.database_mirroringbONa.database_id=b.database_idWHERENOTmirroring_guidISNULLANDmirroring_role_desc='MIRROR'OPENMyCursorFETCHNextFROMMyCursorINTO@strDatabasenameWHILE@@Fetch_Status=0BEGIN---RuntheALTERDATABASEdatabaseNameSETPARTNERFORCE_SERVICE_ALLOW_DATA_LOSSSET@strSQL='ALTERDATABASE'+@strDatabaseName+'SETPARTNERFORCE_SERVICE_ALLOW_DATA_LOSS'EXECsp_executesql@strSQLPRINT'Bringing'+@strDatabaseName+'ONLINE'PRINT'========================================'FETCHNextFROMMyCursorINTO@strDatabasenameENDCLOSEMyCursorDEALLOCATEMyCursor
执行成功后,W67又变为主体,当前的状态为“主体,已断开连接”(由于W65还未恢复)
恢复启动W65这时,test库状态为“镜像,挂起”,W67为“主体,挂起”,,需要手动在“任务”--镜像--点击“继续”,这时同步恢复到最初镜像同步状态!!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。