You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何连接Oracle Linux服务器上的多套Oracle数据库并列出所有数据库

嘿,我来帮你搞定这个Oracle数据库的连接和列表问题!

列出服务器上所有Oracle数据库

要找出服务器上的所有数据库,你可以用这几个实用方法:

  • 查看oratab配置文件:这是最直接的方式,Oracle会把所有数据库实例(包括容器数据库CDB和独立数据库)的信息存在/etc/oratab里。执行以下命令查看:

    cat /etc/oratab
    

    输出的每行格式是ORACLE_SID:ORACLE_HOME:N/Y,其中ORACLE_SID就是数据库实例名,N/Y表示是否开机自动启动。注意这个文件里只会显示CDB和独立数据库,可插拔数据库(PDB)属于CDB的一部分,需要进入CDB后查询。

  • 检查监听注册的服务:通过监听状态可以看到所有对外提供服务的数据库(包括CDB、PDB和独立数据库)。执行:

    lsnrctl status
    

    在输出的Services Summary部分,你会看到所有注册的服务名,通常服务名和数据库实例名对应,或者是自定义的名称。

  • 查询CDB中的PDB:如果你已经以sysdba身份连接到容器数据库,可以用SQL语句列出所有PDB:

    SELECT name, open_mode FROM v$pdbs;
    

    这个结果会显示该CDB下的3个可插拔数据库。

连接独立数据库执行查询

要连接那两套独立数据库,你可以用以下两种方式:

  • 通过环境变量指定SID连接:

    1. 先从/etc/oratab里找到目标独立数据库的ORACLE_SID和ORACLE_HOME。
    2. 设置对应的环境变量(以bash为例):
      export ORACLE_SID=你的独立数据库SID
      export ORACLE_HOME=/对应数据库的ORACLE_HOME路径
      export PATH=$ORACLE_HOME/bin:$PATH
      
    3. 然后直接用sysdba身份连接:
      sqlplus / as sysdba
      
      连接成功后就可以执行查询操作了。
  • 直接在sqlplus命令中指定连接字符串:
    如果你知道独立数据库的服务名(可以从lsnrctl status的输出里找到),也可以直接用完整的连接字符串连接:

    sqlplus sys/你的密码@//localhost:1521/服务名 as sysdba
    

    (如果监听端口不是默认的1521,替换成实际端口即可)

内容的提问来源于stack exchange,提问作者Adroop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 12:02:34