问题描述
嗨,汤姆,
我20年来从未与您取得联系,因此希望您能有空,因为我可以使用一些合理的建议 (您的需求如此之高,我大约10年前就放弃了 :-)
以下是详细信息:
* 我们正在计划从数据中心a迁移到B。
* 使用数据保护物理11204 RAC到RAC迁移。
* 所有与数据库相关的名称都是从一个到另一个重复的,包括扫描侦听器名称。
* 主机和IP是不同的,当然db_unique_names对于备用数据库将是唯一的。
* 我们不想更改客户端或应用程序上的任何tnsnames定义
* rac集群支持多个linux/oracle id,每个id都拥有一个或多个数据库。
* 我们想使用data guard物理备用数据迁移数据库,但是所有数据库
在A中的每个源主机上不会同时迁移。因此,为了避免修改侦听器配置,我们计划将备用主机和数据库定义添加到支持两个不同群集A和B的相同单个扫描侦听器和dns。然后,当我们将每个数据库从A转移到B时,这个想法是,传入的tns连接将进行循环,并且不会找到在 “a” 主机上运行的 “C” 数据库,然后转到下一个条目,直到它发现在 “B” 主机上运行的 “C” 数据库并进行连接。
到目前为止,这就是计划,我们还没有测试过,但假设它会起作用。我们现在正在建立测试环境。问题是:
1.您能想到一种更流畅的方法来做到这一点吗?我们意识到通过扫描侦听器列表会有一些连接延迟解析。
2.我们是否需要为重做传输创建单独的侦听器?一位同事建议,对于我们所有的数据库,不仅在B中,而且在A中,可能会有很多侦听器,因为我们希望在整个迁移完成之前将A切换到待机状态。他指出,尽管我们可能能够使用单个侦听器来支持与支持应用程序的扫描侦听器分开的所有备用功能,但必须打开许多额外的端口。
3.在这种情况下,由于它们在技术上是打开的并且是只读的,因此仍会尝试对备用数据库进行tns连接; 如何避免这种情况。
非常感谢您的建议。
我20年来从未与您取得联系,因此希望您能有空,因为我可以使用一些合理的建议 (您的需求如此之高,我大约10年前就放弃了 :-)
以下是详细信息:
* 我们正在计划从数据中心a迁移到B。
* 使用数据保护物理11204 RAC到RAC迁移。
* 所有与数据库相关的名称都是从一个到另一个重复的,包括扫描侦听器名称。
* 主机和IP是不同的,当然db_unique_names对于备用数据库将是唯一的。
* 我们不想更改客户端或应用程序上的任何tnsnames定义
* rac集群支持多个linux/oracle id,每个id都拥有一个或多个数据库。
* 我们想使用data guard物理备用数据迁移数据库,但是所有数据库
在A中的每个源主机上不会同时迁移。因此,为了避免修改侦听器配置,我们计划将备用主机和数据库定义添加到支持两个不同群集A和B的相同单个扫描侦听器和dns。然后,当我们将每个数据库从A转移到B时,这个想法是,传入的tns连接将进行循环,并且不会找到在 “a” 主机上运行的 “C” 数据库,然后转到下一个条目,直到它发现在 “B” 主机上运行的 “C” 数据库并进行连接。
到目前为止,这就是计划,我们还没有测试过,但假设它会起作用。我们现在正在建立测试环境。问题是:
1.您能想到一种更流畅的方法来做到这一点吗?我们意识到通过扫描侦听器列表会有一些连接延迟解析。
2.我们是否需要为重做传输创建单独的侦听器?一位同事建议,对于我们所有的数据库,不仅在B中,而且在A中,可能会有很多侦听器,因为我们希望在整个迁移完成之前将A切换到待机状态。他指出,尽管我们可能能够使用单个侦听器来支持与支持应用程序的扫描侦听器分开的所有备用功能,但必须打开许多额外的端口。
3.在这种情况下,由于它们在技术上是打开的并且是只读的,因此仍会尝试对备用数据库进行tns连接; 如何避免这种情况。
非常感谢您的建议。
专家解答
感谢您的详细解释。我与DataGuard PM和RAC PM进行了交谈,以获取一些其他信息。简而言之。
回复:
we are planning on adding the standby host and database definitions to the same single scan listeners and dns supporting two different clusters A and B
这将是很好的,因为它是我们当前如何在MAA配置中进行故障转移配置的 (即,当您有一个永久备用RAC群集,而不是您建议的瞬态群集时)。
however all databases on each source host in A will not be migrated at the same time
这可以通过服务来实现 (我希望您已经在使用)。对于每个数据库,可以修改其服务,以便对于您的主站点,将服务定义为主要服务,然后为备用服务器定义相同的服务名称。因为服务将被定义为 “角色感知”,所以当您将数据库从主站点切换到新站点时,备用节点将变为主要节点,并且那里的服务将变为活动状态。与其在这里给出过于简短的描述,不如查看下面的白皮书,该白皮书描述了完整的设置
https://www.oracle.com/technetwork/database/availability/s316927-1-175930.pdf
然而,这让我
We don't want to change any tnsnames definitions on clients or applications
为了使应用程序了解两个站点上的服务,他们将 * 需要 * 在其tnsnames中具有该服务。我认为您无法逃脱,因为tns条目将需要看起来像:
回复:
we are planning on adding the standby host and database definitions to the same single scan listeners and dns supporting two different clusters A and B
这将是很好的,因为它是我们当前如何在MAA配置中进行故障转移配置的 (即,当您有一个永久备用RAC群集,而不是您建议的瞬态群集时)。
however all databases on each source host in A will not be migrated at the same time
这可以通过服务来实现 (我希望您已经在使用)。对于每个数据库,可以修改其服务,以便对于您的主站点,将服务定义为主要服务,然后为备用服务器定义相同的服务名称。因为服务将被定义为 “角色感知”,所以当您将数据库从主站点切换到新站点时,备用节点将变为主要节点,并且那里的服务将变为活动状态。与其在这里给出过于简短的描述,不如查看下面的白皮书,该白皮书描述了完整的设置
https://www.oracle.com/technetwork/database/availability/s316927-1-175930.pdf
然而,这让我
We don't want to change any tnsnames definitions on clients or applications
为了使应用程序了解两个站点上的服务,他们将 * 需要 * 在其tnsnames中具有该服务。我认为您无法逃脱,因为tns条目将需要看起来像:
(ADDRESS=(PROTOCOL=TCP)(HOST=old_data_centre)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=my_service_name)) (ADDRESS=(PROTOCOL=TCP)(HOST=new_data_centre)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=my_service_name))
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




