1. 查询全局 DBLINK 连接数限制
SELECT name, value, isdefault,isses_modifiable,issys_modifiable
FROM v$parameter
WHERE name IN ('open_links', 'open_links_per_instance');
- open_links:控制单个会话中可以同时打开的数据库链接总数(默认值通常为 4)
- open_links_per_instance:控制整个实例中允许的最大并发数据库链接数(RAC 环境中每个实例独立生效)
2. 查询当前会话的 DBLINK 连接数使用情况
SELECT SID, SERIAL
FROM V$SESSION_LONGOPS
WHERE OPNAME LIKE '%@%'
GROUP BY SID, SERIAL
- 该查询统计每个会话当前打开的 DBLINK 数量(通过V$SESSION_LONGOPS中的操作名称识别)
3. 查看 DBLINK 相关的其他参数
SELECT name, value
FROM v$parameter
WHERE name LIKE '%distributed%';
- 例如:distributed_lock_timeout(分布式锁超时时间)、distributed_transactions(分布式事务支持)等。
4. 修改 dblink 连接数(DBA 权限)
ALTER SYSTEM SET open_links = 20 SCOPE=SPFILE;
ALTER SYSTEM SET open_links_per_instance = 100 SCOPE=SPFILE;
注意事项
- 修改这些参数通常需要ALTER SYSTEM权限,且可能需要重启数据库生效(取决于参数的issys_modifiable属性)
- 实际 DBLINK 连接数还可能受应用程序连接池、防火墙或网络配置的限制