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; 
  • 相关阅读:
    xpath
    shell25 脚本带文件参数
    shell24basename和dirname
    shell21系统变量和自定义变量
    shell20三种变量复制方式
    shell19位置变量
    shell18变量
    Installing libgtk-x11-2.0.so.0 in Amazon Linux AMI 2017.03.1
    原文版:Intel OpenVINO™ Toolkit and AWS* Greengrass!!!
    OpenVINO™ Toolkit and AWS* Greengrass
  • 原文地址:https://www.cnblogs.com/aaronguo/p/3181217.html
Copyright © 2011-2022 走看看