我们有 3 个 Oracle 19c 站点。为了简单起见,将它们称为 SiteA、SiteB 和 SiteC。 SiteB 的实例具有指向 SiteA 的数据库链接; SiteC 上的实例具有到 SiteB 的 DBLink。但是,没有从 SiteC 到 SiteA 的 dblink。有没有办法直接从 SiteC 的实例访问 SiteA 的实例,而不需要创建另一个 DB Link ?
我尝试使用2个@来引用2个数据库链接,但这显然不是正确的语法: 例如。表@site_a@site_b
一般来说,不,你不能按照你所描述的方式做到这一点。唯一的方法是在 site_b 中创建中间视图,通过第二个 dblink 指向 site_a。
在 site_b 中:
create view table_a as select * from table@site_a;
然后在site_c:
select * from table_a@site_b;
不建议使用此方法,因为您将在每个查询的所有三个实例中创建工作负载,使网络延迟加倍,并且您需要在 site_b 中维护新的数据库对象以镜像 site_a 中的数据库对象。也可能存在安全隐患。在大多数方面,创建直接 dblink 会更好。