zoukankan      html  css  js  c++  java
  • sql server 2012 镜像和出现的问题

    镜像安装的环境:

    主机:win server 2012 , sql server 2012 ,ip:192.168.1.189  PC账户:administrator
    备机:win server 2012 , sql server 2012 ,ip:192.168.1.190  PC账户:administrator
    无见证服务器(witness)

    镜像准备工作:

    1.设置主数据库为完整模式 
    2.完整备份主数据库并备份数据库的完整日志文件 
    3.将备份文件拷贝到镜像数据库并选择还原数据库 (还原选项 norecovery(即不对数据库执行任何操作),镜像数据库现在(正在还原...) 
    如图:

    说明:

    a.镜像服务器备份的是用户的数据库,不是系统的数据库,比如不能镜像master,msdb,model和tempdb

    b.镜像的数据库对象恢复模式必须是完整的,不能是简单和大容量日志类型的

    c.备机镜像不能被访问,正常情况下一直处于正在还原的状态

    d.主机可以被访问,正常情况下一直处于主体正在同步的状态

    e.主机和备机的5022端口必须没有被占用

    镜像实施:

    1.准备工作完成对主数据库开始做镜像
    2.这里的数据库实例服务账户,最好单独一个账户来管理主数据库与镜像数据库,方便以后数据库的管理.这里要注意确保这里填写的账户可以正常数据库,否则会出问题

    3.配置完成,如图开始镜像

    4.主数据库显示(主体,已同步), 镜像数据库显示(镜像,已同步/正在还原...)

     

    镜像出现的问题:

    1.服务器网络地址 “TCP://xxx:5022″ 无法访问或不存在。请检查网络地址名称,并检查本地和远程端点的端口是否正常运行。 (Microsoft SQL Server,错误: 1418)

      后来在SQLServer日志中看到了如下错误:  Database mirroring connection error 4 ‘An error occurred while receiving data: ’10054(远程主机强迫关闭了一个现有的连接。)’.’ for ‘TCP://xxx:5022′.

     通过这个错误找到了问题,c:ProgramDataMicrosoftCryptoRSAMachineKeys 没有读写权限,一看真的是这样,加入管理员(即sqlserver的运行用户)的读写权限后一切正常!(如果还不行,配置权限后,再重新配置镜像)

     具体见:http://dba.stackexchange.com/questions/6222/mirroring-problems-after-removing-domain

    2.TCP://xxx:5022 的数据库镜像连接错误 5 'Connection handshake failed. The login 'ZBIANAdministrator' does not have CONNECT permission on the endpoint. State 84.'。

     在日志中看到如上这个错误,发现是因为镜像数据库实例没有权限

     对主数据库与镜像数据库进行了调整,主数据库与镜像数据库使用相同的实例账户,并重新启动数据库服务SQL Server (MSSQLSERVER)

    镜像可用性解决办法:

    1.主体与镜像转换

    --主机
    use master;
    alter database dataName set partner failover;
    执行成功后原主体数据库会显示正在还原,备机数据库显示主体正在同步字样
     
    2.测试主备切换
    主机崩溃,强制备机当主机,原主机恢复后再切换回去
    主机A
    备机B
    此时,在B机上执行
    use master;
    alter database dataName set partner FORCE_SERVICE_ALLOW_DATA_LOSS; --强制接收
    停止主机A的SQL SERVER 服务(比如断电),此时备机上的数据库会显示正在恢复状态,大概持续几十秒,最后变成
    dataName(主体,已断开链接),即现在的镜像B可以用来充当主机了
    假如现在有业务往数据库里插也是能成功的
    现在把原主机A恢复(通电),然后在B机里操作
    use master;
    alter database dataName set partner resume;
    此时A机是作为镜像的,B机是作为主机的,要再切换一下,则再在B上执行
    alter database dataName set partner failover; 
  • 相关阅读:
    Java 第十一届 蓝桥杯 省模拟赛 洁净数
    Java 第十一届 蓝桥杯 省模拟赛 第十层的二叉树
    Java 第十一届 蓝桥杯 省模拟赛 第十层的二叉树
    Java 第十一届 蓝桥杯 省模拟赛 第十层的二叉树
    Java 第十一届 蓝桥杯 省模拟赛 70044与113148的最大公约数
    Java 第十一届 蓝桥杯 省模拟赛 70044与113148的最大公约数
    20. Valid Parentheses
    290. Word Pattern
    205. Isomorphic Strings
    71. Simplify Path
  • 原文地址:https://www.cnblogs.com/aaronguo/p/3181217.html
Copyright © 2011-2022 走看看