• 处理数据库镜像问题的一个案例


    背景:

    今天检查一个服务器上实例中镜像数据库的状态,发现主库这边所有被镜像的数据库的状态均为:Principal/Disconnected,而从库那边除了镜像数据库DB_A 之外,其他镜像数据库的状态为Mirror/Recovering/Pending.


    处理方法:
    第一步:首先检查两边数据库服务器是否可以相互Ping---确认OK
    第二步:相互telnet 数据库监听端口(我们这里使用1433)----确认OK
    第三步:相互telnet数据库镜像端点的端口(我们这里使用5022)-----确认OK
    第四步:在主实例和镜像实例上重启数据库镜像所使用的端点:
    use master
    GO
    alter endpoint Endpoint_Name state = stopped;
    GO
    alter endpoint Endpoint_Name state = started;
    GO
    之后除开DB_A数据库之外,其他数据库镜像恢复正常.

    之后开始解决 DB_A 数据库镜像的问题.DB_A 镜像数据库之前的状态不是Mirror/Recovering/Pending,而是类似于正常数据库那种(后面不包含任何状态),但是当我们访问这个数据库的时候,提示该数据库不能被访问.
    执行select * from sys.databases中该数据库的state_desc为Recovery_Pending.也就是说该数据库的Recovering被阻挡.
    查看镜像数据库中的数据库日志:

    Unable to open the physical file "D:DATADB_ALOGTB_A_Log.LDF". Operating system error 32: "32(The process cannot access the file because it is being used by another process.)".

    A file activation error occurred. The physical file name 'D:DATADB_ALOGTB_A_Log.LDF' may be incorrect. Diagnose and correct additional errors, and retry the operation.

    之后尝试了以下的方法:

    另外,已经尝试了的方法有如下:

    1:alter database DB_A set partner resume------无效

    2:alter endpoint endponitname state=stopped

    alter endpoint endponitname state=started -----无效

    3:ALTER DATABASE DB_A SET PARTNER='TCP://Principal:5022'---无效

    并且报错

    Msg 945, Level 14, State 2, Line 1

    Database 'DB_A' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details.

    我们发现DB_A数据库的数据文件和日志文件居然可以被复制,在正常情况下,移动一个online数据库的数据文件和日志文件是会报错的(提示该文件被占用,不能被复制或者移动).后来采用ProcessExplorer来检查是什么程式在占用DB_A数据库的数据或者日志文件,也没有任何返回结果.
    最后只得重启镜像实例的服务器,启动之后,检查数据库DB_A的镜像恢复正常.

    奇异的事件.怀疑是OS由于某种不得而知的原因不能访问到DB_A数据库的数据和日志文件,然后导致镜像失败.

  • 相关阅读:
    7zip 自解压安装程序
    修改当前启动菜单项的HyperVisorLaunchType
    VMware 虚拟镜像转 Hyper-V(Win10/2016)
    旋转基础知识
    变换及移动基础知识
    文字及排版章末小结
    文字排版相关
    文字变形及封套扭曲
    LinQ学习笔记.
    PHP笔记-PHP中Web Service.
  • 原文地址:https://www.cnblogs.com/Wison-Ho/p/3675205.html
Copyright © 2020-2023  润新知