备用数据库可通过 HADR 接管操作成为主要数据库。接管可在首要或辅助备用数据库上执行。接管之后,新的主要数据库会自动重定向位于新主要数据库上的目标列表中的备用数据库目标。该备用数据库上的 hadr_remote_host、hadr_remote_svc 和 hadr_remote_inst 配置参数会">自动更新以指向新的主要数据库。如果一个备用数据库未包含在新主要数据库上的 hadr_target_list 参数中,那么该备用数据库会被视为孤立的,无法连接到新的主要数据库。
8.1 接管后自动重定向备用数据库目标
接管(强制或非强制的)成功完成后,新的主要数据库会重定向任何还未连接到它的备用数据库目标。此重定向操作通过主要数据库向未连接到它的每个备用数据库发送一条重定向消息来完成。当一个备用数据库收到一条重定向消息时,如果它还未连接到另一个主要数据库,它会确认该消息来自其 hadr_target_list 中列出的一个有效的主要数据库。它更新自己的 hadr_remote_host、hadr_remote_svc 和 hadr_remote_inst 配置参数以指向该主要服务器,然后连接该主要服务器。
例如,假设您有一个 HADR 系统,它包含一个主要数据库 beaverton-a 和备用数据库目标 beaverton-b、portland 和 toronto,如 图 6 中所示。
图 6. 接管之前的初始状态
图字:
比弗顿园区 DB2 主要数据库
波特兰园区 DB2 辅助备用数据库1
建筑 A
建筑 B
DB2 首要备用数据库
多伦多园区 DB2 辅助备用数据库2
接管操作在首要备用数据库主机 beaverton-b 上执行,导致 beaverton-b 成为主要数据库,beaverton-a、portland 和 toronto 成为备用数据库目标。
接管结束时,beaverton-a 连接到 beaverton-b,但必须向 portland 和 toronto 通知主要数据库中的更改。此通知是通过 beaverton-b 向 portland 和 toronto 发送重定向请求来完成,如 图 7 中所示。
图 7. 首要备用数据库接管之后
图字:
比弗顿园区 DB2 首要备用数据库
波特兰园区 DB2 辅助备用数据库1
建筑 A
建筑 B
DB2 主要数据库
多伦多园区 DB2 辅助备用数据库2