同一台机器oralce11g和12c公用一个监听器监听多个端口
启动数据库服务
(这里还没有启动监听器)
如上图OracleServiceORCL为11g的服务,服务名为orcl,OracleServiceWX为12c的服务名,服务名为wx,两个服务均已正常启动,
测试登陆
设置ORACLE_SID=ORCL,使用账号密码连接,使用账号密码连接成功
设置ORACLE_SID=WX,使用账号密码连接,使用账号密码连接成功
配置数据库连接表示符
设置TNS_ADMIN
使用netca 添加配置,
配置完毕设置的TNS_AMDIN变量目录下会生成三个文件:如下图:
使用Net Manager创建网络服务名
这里创建了orcl(11g中的服务名),wx (12c中的服务名 )
创建完毕,保存网络配置:
sqlnet.ora文件添加
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
重启监听服务
连接测试
监听多个端口配置
LISTENER .ora文件中修改如下配置
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=DESKTOP-L9P3QTT)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=DESKTOP-L9P3QTT)(PORT=1522))
(ADDRESS=(PROTOCOL=tcp)(HOST=DESKTOP-L9P3QTT)(PORT=1523)))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
这里注意格如下:
查看oracle监听的端口:
重启监听服务,测试连接:
使用本地服务名连接
使用ip端口和服务名连接
连接成功
问题出现及解决,如出现下图问题:
请键入 sqlplus sys/oracle as sysdba 或 sqlplus / as sysdba 登陆,然后执行startup 启动该实例,如下示例:
sqlplus / as sysdba 提示ORA-01017: invalid username/password; logon denied 解决:
确认本机操作系统用户已加入ora_dba组
配置TNS_ADMIN 变量如下:
sqlnet.ora文件加入
SQLNET.AUTHENTICATION_SERVICES = (NTS)
重新打开新的cmd运行窗口,执行sqlplus / as sysdba