【发布时间】:2015-09-08 21:32:21
【问题描述】:
我的目标是让我的容器数据库进入挂载模式以执行系统更改语句以启用闪回功能。
Configuring Your Database for Flashback Transaction
环境:操作系统 Win 8.1 64 位,Oracle 12c (12.1.0.2.0) 64 位
我验证了我的监听器和数据库服务都在运行。
Listener.log
Tue Sep 08 13:31:42 2015 系统参数文件为 C:\OracleServer\product\12.1.0\dbhome_1\network\admin\listener.ora 日志 写给的消息 C:\OracleServer\diag\tnslsnr\NA-D02979\listener\alert\log.xml 跟踪 信息写入 C:\OracleServer\diag\tnslsnr\NA-D02979\listener\trace\ora_9672_20416.trc 跟踪级别当前为 0
从 pid=9672 开始监听: (描述=(地址=(协议=tcp)(主机=10.1.105.118)(端口=1521))) 收听: (描述=(地址=(协议=tcp)(主机=127.0.0.1)(端口=1521))) 收听: (描述=(地址=(协议=ipc)(管道名称=\.\pipe\EXTPROC1521ipc))) 侦听器在开始时完成向 CRS 的通知
时间戳 * 连接数据 [* 协议信息] * 事件 [* SID] * 返回 代码监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=NA-D02979.vgnet.volgrp.com)(PORT=5500))(Security=(my_wallet_directory=C:\ORACLESERVER\admin\CDB1\xdb_wallet))(演示=HTTP)(会话=RAW)) 动态地址已被监听 (描述=(地址=(协议=tcp)(主机=127.0.0.1)(端口=1521))) 2015 年 9 月 8 日 13:32:25 * service_register * cdb1 * 0 08-SEP-2015 13:33:22 * service_update * cdb1 * 0
SqlPlus 的结果
C:\Users\jeff>sqlplus sys/**********@CDB1 as sysdba
SQL*Plus:2015 年 9 月 8 日星期二 13:44:18 发布 12.1.0.2.0 生产版
版权所有 (c) 1982、2014、甲骨文。保留所有权利。
连接到:Oracle Database 12c 企业版版本 12.1.0.2.0 - 具有分区、OLAP、高级分析和实际应用程序测试选项的 64 位生产
SQL> 立即关闭
数据库关闭。
数据库已卸载。
ORACLE 实例关闭。
错误:ORA-12514:TNS:监听器当前不知道连接描述符中请求的服务
警告:您不再连接到 ORACLE。
SQL> 启动挂载
SP2-0640:未连接
SQL> ^C
C:\Users\jeff>sqlplus> sys/**********@CDB1 as sysdba
SQL*Plus:2015 年 9 月 8 日星期二 13:46:24 发布 12.1.0.2.0 生产版
版权所有 (c) 1982、2014、甲骨文。保留所有权利。
错误:ORA-12514:TNS:监听器当前不知道连接描述符中请求的服务
输入用户名:
当我以 sysdba 身份连接到我的容器数据库时,我可以发出关闭立即命令,但是一旦数据库卸载,侦听器就不再知道数据库并且我无法发出“启动挂载”命令。
Listener.ora
SID_LIST_LISTENER = (SID_LIST =
(SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:\OracleServer\product\12.1.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:C:\OracleServer\product\12.1.0\dbhome_1\bin\oraclr12.dll") )(SID_DESC =
(GLOBAL_DBNAME = CDB1) (ORACLE_HOME = C:\app\oracle\product\11.2.0\dbhome_1) (SID_NAME = CDB1) ) )LISTENER = (DESCRIPTION_LIST = (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.105.118)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )
TNSNames.ora
LISTENER_CDB1 =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))CDB1 =
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.105.118)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = CDB1.vgnet.volgrp.com) ) )ORACLR_CONNECTION_DATA =
(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) )
我已经为我的容器数据库定义了一个静态 SID。
第二轮结果
根据以下结果,我遵循了 Alex Pool 在答案中记录的内容。我和数据库在同一台机器上。我已将 ORACLE_SID 设置为 cdb1,然后每次尝试连接时,我都会收到 ORA-12560:TNS:协议适配器错误。当我尝试基于 SID 连接时,为什么我的监听器仍然抛出 TNS 错误?
C:\Users\jeff>%ORACLE_SID%
'cdb1' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\jeff>sqlplus sys/********** as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Wed Sep 9 08:05:25 2015
Copyright (c) 1982, 2014, Oracle. All rights reserved.
ERROR:
ORA-12560: TNS:protocol adapter error
Enter user-name: ^C
C:\Users\jeff>sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Wed Sep 9 08:05:36 2015
Copyright (c) 1982, 2014, Oracle. All rights reserved.
ERROR:
ORA-12560: TNS:protocol adapter error
Enter user-name: ^C
C:\Users\jeff>sqlplus /nolog
SQL*Plus: Release 12.1.0.2.0 Production on Wed Sep 9 08:05:50 2015
Copyright (c) 1982, 2014, Oracle. All rights reserved.
SQL> connect / as sysdba
ERROR:
ORA-12560: TNS:protocol adapter error
SQL>
【问题讨论】:
标签: oracle12c