Orcale 11g shutdown immediate后无法startup报ORA-12514:TNS

本文介绍如何通过修改listener.ora文件来配置Oracle数据库的SID_LIST参数。具体步骤包括:找到并打开listener.ora文件,在(SID_LIST=)中添加指定内容,如设置GLOBAL_DBNAME、ORACLE_HOME和SID_NAME等,保存文件后重启命令提示符窗口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误显示如下:

这里写图片描述

解决办法:
找到orcale安装目录\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN下的listener.ora文件,打开后,内容如下:
这里写图片描述
在(SID_LIST= )中添加如下内容:

(SID_DESC =
      (GLOBAL_DBNAME = booksales)
      (ORCALE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
      (SID_NAME = booksales)
    )

添加后,listener.ora的内容如下:
这里写图片描述
保存文件,然后关闭之前的命令提示符窗口,重新打开一个命令提示符窗口。
接下来的操作如下:

这里写图片描述

注意:如果使用的是另外一个数据库,上述操作还需来一遍!

### Oracle 19c TNS Listener 配置解决方案 ORA-12514 错误通常表示客户端请求的服务名在监听器中未被识别。此问题可能由多种原因引起,例如 `listener.ora` 文件配置错误、服务名未正确注册到监听器或监听器服务未启动等。以下是解决该问题的详细方法: #### 1. 检查监听器配置文件 `listener.ora` 确保 `listener.ora` 文件中包含正确的 SID 和服务名配置。以引用中的示例为例[^2],可以将文件修改为以下内容: ```plaintext SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = D:\WINDOWS.X64_193000_db_home) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:D:\WINDOWS.X64_193000_db_home\bin\oraclr19.dll") ) (SID_DESC = (GLOBAL_DBNAME = ORCLCDB.localdomain) # 替换为实际数据库全局名称 (ORACLE_HOME = D:\WINDOWS.X64_193000_db_home) (SID_NAME = ORCLCDB) # 替换为实际实例名 ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) ) ``` 上述配置中新增了一个 `SID_DESC` 条目,用于定义数据库实例和服务名[^2]。 #### 2. 启动或重启监听器 在完成 `listener.ora` 文件修改后,需要重新启动监听器以使更改生效。可以通过以下命令操作: ```bash lsnrctl stop lsnrctl start ``` 执行 `lsnrctl status` 命令检查监听器状态,确保它能够识别数据库服务。如果服务未列出,则可能需要进一步处理。 #### 3. 确保数据库实例已注册到监听器 Oracle 数据库实例可以通过静态注册或动态注册方式添加到监听器。如果使用动态注册,确保数据库实例已启动并正常运行。可以通过以下命令检查实例状态: ```sql SELECT instance_name, status FROM v$instance; ``` 如果实例未启动,可以使用以下命令启动数据库: ```bash sqlplus / as sysdba startup ``` #### 4. 检查 `tnsnames.ora` 文件 客户端连接时依赖于 `tnsnames.ora` 文件中的服务定义。确保该文件中包含正确的连接描述符。例如: ```plaintext ORCLCDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCLCDB.localdomain) # 替换为实际服务名 ) ) ``` #### 5. 测试连接 完成上述步骤后,可以通过以下命令测试连接是否成功: ```bash sqlplus username/password@ORCLCDB ``` 如果连接仍然失败,请检查日志文件以获取更多信息。日志文件路径通常位于 `$ORACLE_HOME/network/log/listener.log`[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值