您的位置:首页 > 数据库

一个数据库多Instance的连接解决方案

2015-12-03 14:56 465 查看
当一个数据库上面有多个Instance时,连接Oracle就需要注意了。在单instance的情况下,由于设定了ORACLE_SID,所以用sqlplus进行连接的时候默认会连接到环境变量中指定的instance, 但是如果需要连接另外一个instance的时候,就需要显示的指定了。连接的方式一般来讲有两种方法:


1、手动export环境变量

导出之前的环境变量

oracle@b2b_plat_13619:/home/oracle>env | grep ORA
ORACLE_SID=moree

ORACLE_BASE=/opt/oracle

ORA_ENCRYPT_LOGIN=true

ORA_NLS33=/opt/oracle/products/9.2.0/ocommon/nls/admin/data

ORACLE_HOME=/opt/oracle/products/9.2.0

显示的导出环境变量

oracle@b2b_plat_13619:/home/oracle>export ORACLE_SID=otter

oracle@b2b_plat_13619:/home/oracle>env | grep ORA
ORACLE_SID=otter

ORACLE_BASE=/opt/oracle

ORA_ENCRYPT_LOGIN=true

ORA_NLS33=/opt/oracle/products/9.2.0/ocommon/nls/admin/data

ORACLE_HOME=/opt/oracle/products/9.2.0

此时直接用sqlplus连接oracle时,就是连接到otter实例了。


2、修改tnsnames.ora文件

OTTER.DB.ALIBABA.COM =

    (DESCRIPTION =

        (ADDRESS_LIST =

            (ADDRESS = (PROTOCOL = TCP)(HOST = b2b_plat_13619)(PORT = 1521))

        )

        (CONNECT_DATA =

            (SERVER = DEDICATED)

            (SERVICE_NAME = otter)

        )

    )

【注意】域名的设置是在sqlnet.ora文件中,NAMES.DEFAULT_DOMAIN = db.alibaba.com

oracle@b2b_plat_13619:/home/oracle>more /home/oracle/products/9.2.0/network/admin/sqlnet.ora

# SQLNET.ORA Network Configuration File: /opt/oracle/products/9.2.0/network/admin/sqlnet.ora

# Generated by Oracle configuration tools.

MES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
NAMES.DEFAULT_DOMAIN = db.alibaba.com

使用sqlplus连接数据库:

  连接数据库时可以指定域名,也可以不指定域名都是可以的

@>conn retl/retl@OTTER.DB.ALIBABA.COM

Connected.

或者

@>conn retl/retl@OTTER

Connected.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 instance oracle