修改sys.database_mirroring中的mirroring_partner_instance名称
Modify mirroring_partner_instance name in sys.database_mirroring
我遇到了正确故障转移到镜像数据库的问题。当我连接到主体数据库(dbx)(镜像已启用并设置),并且对主体数据库进行故障转移(关闭SQL Server以模拟崩溃)时,我将无法再发送查询而不发生故障。这是意料之中的事,因为以前的连接现在已经丢失。
我想简单地关闭我的连接和句柄,使用相同的连接字符串重新建立一个新的连接,然后重新连接到镜像数据库(dby,现在是主体数据库)。
我的连接字符串如下:
驱动程序={SQL Native Client};服务器=dbx;Failover_Partner=dby;数据库=db;Uid=Uid;Pwd=Pwd;网络=DBMSSOCN;
通过研究,我了解到连接中的Failover_Partner参数几乎毫无价值。它仅在主体服务器关闭并且第一次建立新连接时使用。由于某种原因,当与主体建立连接时,Failover_Partner会在内部被覆盖,而使用sys.database_mirroring表中的mirroring_Partner_instance。因此,当我将Failover_Partner指定为dby时,在我建立连接后,我会查询它认为故障转移伙伴是什么,它会返回故障转移伙伴的INSTANCE名称,而不是DNS名称(dby)。
问题是,我不能使用INSTANCE名称作为故障转移伙伴。我需要使用DNS名称作为故障转移伙伴。
所以我的问题是:
- 有没有办法修改sys.database_mirroring条目并更改mirroring_partner_instance
- 这个字段的值是从哪里来的
- 是否有其他方法可以强制SQL Server使用DNS名称而不是INSTANCE名称
我找到了这个问题的答案,以防有人遇到相同或类似的问题。
我不得不修改SQL中的@@SERVERNAME属性。它被内部设置为计算机WIN-。。。实例名称,我可以删除它,并使用以下命令添加我想要的服务器名称:
获取当前服务器名称(WIN_name)
SELECT @@SERVERNAME
放下WIN-NAME
SP_DropServer 'WIN_NAME'
GO
SP_AddServer 'SERVER_NAME',local
GO
重新启动SQL Server以查看更改是否生效。
- C++ Singleton - Prevent ::instance() to variable
- DrawIndexedInstanced 具有不同的 Index Count per Instance (Directx
- 我可以将QCoreApplication::instance()用于孤儿QObjects吗?
- "terminate called after throwing an instance of std::invalid_argument' what(): stoi ?"
- cin.get() 导致"no instance of overloaded function"错误
- 方括号在"map <string, int> instance[numberFeatures];"中是什么意思
- 尝试在虚幻引擎中通过C++添加视口时出错"No instance of overloaded function CreateWidget"
- 3D 矢量 - "No instance of overload function?"
- 不能使用矢量::插入"no instance of overloaded function..."
- 矩阵类:"No instance of overloaded function push_back matches the argument list"
- 如何修复矢量push_back中的"no instance of overloaded function"?
- 内存泄漏与mongocxx::instance inst{};.
- "No instance of overload function"
- 调用AAssetManager_fromJava时崩溃:"JNI WARNING: instance fieldID 0x571819bc not valid"
- 显示"terminate called after throwing an instance of 'std::bad_alloc'"时出错
- C++向量和错误"no instance of overloaded function"
- 使用字符串向量初始值设定项时,我收到运行时错误"terminate called after throwing instance of `std::length_error`"
- C++ "Could not convert 'class instance' from 'Class (*)()' to 'Class'"
- 设计模式?如何做"Abstract generator creating abstract instance"
- 启动 VirtualBoxSDK 测试应用程序返回错误"Error creating virtual box instance"