ORA-12560:TNS:协议适配器错误,EXP-00056:ORACLE error 6550 encountered

本文介绍了如何解决Oracle9i2中出现的“ORA-12560:TNS:协议适配器错误”问题,并提供了解决步骤。同时,还讨论了使用高版本EXP命令导出低版本数据库数据时遇到的问题及其解决方案。

以下说明主要针对Oracle9i2版本,如使用Oracle10g可供参考。

 

造成“ORA-12560: TNS: 协议适配器错误”问题的原因有三个:
1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务。

2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的database SID.

3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0将该环境变量 ORACLE_SID设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建,变量名=oracle_sid,变量值=XXXX,XXXX就是你的 database SID.或者进入sqlplus前,在command line下输set oracle_sid=XXXX,XXXX就是你的database SID.
经过以上步骤,就可以解决问题。

 

用EXP命令导出数据时,出现:

EXP-00056: ORACLE error 6550 encountered
ORA-06550: line 1, column 41:
PLS-00302: component 'SET_NO_OUTLINES' must be declared
ORA-06550: line 1, column 15:
PL/SQL: Statement ignored
EXP-00000: Export terminated unsuccessfully
在metalink找到原因,需要用旧版本exp来导出数据(服务器Oracle为9i2,客户端我用的是Oracle10g。换到Oracle9i2就没问题了。)

Cause

Use of Higher Version Export utility (10.2.0.1) on Lower version database(9.2.0.6).

This problem occurs when using 10.2 Exp utility for 10.1,9.2,8.1.7 databases.

Solution

As per compatibility Matrix,You need to use the export utility of the lower version of source and target database.

### 三级标题:ORA-12560: TNS 协议适配器错误的原因及解决方案 ORA-12560Oracle 数据库中常见的连接错误之一,通常与 TNS(Transparent Network Substrate)配置或数据库实例状态有关。以下是该错误的常见原因及对应的解决方案。 #### 原因分析 1. **监听服务未启动** 在 Windows 系统中,Oracle 数据库依赖于监听服务来接受客户端连接请求。如果 `OracleOraDb11g_home1TNSlistener` 服务未启动,将导致 ORA-12560 错误[^1]。 2. **tnsnames.ora 配置错误** `tnsnames.ora` 文件用于定义网络连接信息,若其中的 `HOST`、`PORT` 或 `SERVICE_NAME` 配置错误,可能导致连接失败。例如,`HOST` 应设置为数据库服务器的 IP 地址或主机名,`PORT` 默认为 1521,`SERVICE_NAME` 应与数据库实例的服务名一致[^3]。 3. **环境变量配置错误** 在安装多个 Oracle 实例的情况下,系统环境变量可能指向了客户端(Client)的 `sqlplus`,而不是服务器端(Server)的 `sqlplus`,从而导致连接失败[^2]。 4. **Oracle 数据库实例未启动** 如果数据库实例未启动,即使监听器正常运行,也无法建立连接,从而引发 ORA-12560 错误。 5. **归档日志空间不足导致数据库无法启动** 如果归档日志空间已满,数据库实例可能无法正常启动,进而导致连接失败。这种情况通常伴随着 ORA-19815 错误[^5]。 #### 解决方案 1. **启动监听服务** 在 Windows 系统中,打开“服务”管理器,确认 `OracleOraDb11g_home1TNSlistener` 服务是否已启动。如果没有,请手动启动该服务。 2. **检查并修改 tnsnames.ora 配置** 确保 `tnsnames.ora` 文件中的配置正确。示例配置如下: ```plaintext ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) ``` 确认 `HOST`、`PORT` 和 `SERVICE_NAME` 是否与数据库实际配置一致[^3]。 3. **配置正确的 sqlplus 路径** 确保系统环境变量 `PATH` 指向服务器端的 `sqlplus` 路径,而不是客户端的路径。例如,应优先使用 `ORACLE_HOME\bin` 目录下的 `sqlplus`[^2]。 4. **启动数据库实例** 使用 `sqlplus / as sysdba` 登录数据库,执行以下命令启动数据库实例: ```sql SQL> startup; ``` 5. **清理归档日志** 如果数据库因归档日志空间不足而无法启动,可以使用 RMAN 工具清理旧的归档日志。例如,删除三天前的归档日志: ```bash rman target / RMAN> crosscheck archivelog all; RMAN> delete noprompt archivelog until time "sysdate -3"; ``` 6. **检查 ORACLE_HOME 和 ORACLE_SID 环境变量** 确保 `ORACLE_HOME` 指向正确的 Oracle 安装目录,并且 `ORACLE_SID` 设置为当前数据库实例的 SID。可以通过以下命令查看和设置环境变量: ```bash echo $ORACLE_HOME echo $ORACLE_SID export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export ORACLE_SID=orcl ``` 7. **重启数据库实例** 如果以上方法均无效,可以尝试重启数据库实例。首先关闭数据库,然后重新启动: ```sql SQL> shutdown immediate; SQL> startup; ``` #### 常见问题排查命令 - 查看监听器状态: ```bash lsnrctl status ``` - 启动监听器: ```bash lsnrctl start ``` - 测试 TNS 连接: ```bash tnsping orcl ``` - 登录数据库: ```bash sqlplus / as sysdba ```
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值