oracle错误(ORA:12154 ORA:01034 和 ORA:27101 ORA-18008 ORA-01081)

2023-05-31,,

按照正常操作流程,启动项目,发现项目报错,原因是连接不上oracle数据库,

PLSQL连接时报错,错误 ORA:12154 无法解析指定的连接标识符

第一次,遇到这个错误,在网上找了资料都是需要修改

监听(D:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora)和服务(D:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora)文件。

基于前一天正常使用,第二天莫名奇妙无法使用,排除文件少配置的问题。

第一次遇到这个错误的时候解决了一会,发现

当前是使用域用户登录的

然后切换回 本机用户登录

之后再次登录域用户   正常使用。正常连接。

没搞清楚是什么原因。

第二次,遇到这个错误,按照第一次的解决办法无效,又在网上找了半天,

查看服务,正常启动。

索性重新配置了服务,和 监听。

发现使用 Net Configuration Assistant 向导配置的时候,文件缺少 配置的本地服务描述,在这里是下面代码的最后一块。

# tnsnames.ora Network Configuration File: D:\oracle\product\11.2.\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools. ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
) LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = )) //这一块是缺少的 start
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = ))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
//这一块是缺少的 end

配置完成之后,本以为解决的,发现登录的时候。遇到了另外两个错误,

ORA:01034 和 ORA:27101

这....... 是什么情况~~~

然后的解决方案是:

命令行执行

1. sqlplus  /nolog

2. conn / as sysdba

2. create pfile from spfile; 生成的 pfile 叫INITorcl.ora,位于D:\oracle\product\11.2.0\dbhome_1\database下(找自己的安装目录)

3. 修改pfile里面的local_listener, 最后变成下面

orcl.__db_cache_size=352321536
orcl.__java_pool_size=8388608
orcl.__large_pool_size=8388608
orcl.__oracle_base='D:\oracle'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=444596224
orcl.__sga_target=847249408
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=469762048
orcl.__streams_pool_size=0
*.audit_file_dest='D:\oracle\admin\orcl\adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='D:\oracle\oradata\orcl\control01.ctl','D:\oracle\flash_recovery_area\orcl\control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='orcl'
*.db_recovery_file_dest='D:\oracle\flash_recovery_area'
*.db_recovery_file_dest_size=4039114752
*.diagnostic_dest='D:\oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.local_listener='(ADDRESS_LIST=(Address=(Protocol=tcp) (Host=127.0.0.1)(Port=1521)))' //这里是修改的的一行
*.memory_target=1288699904
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'

4. create spfile from pfile='INITorcl.ora';  //这里注意是单引号

5. startup

通常这里就已经把问题解决了。。

然而,然而, 我又遇到了另一个错误。。

ORA-18008: 无法找到 OUTLN 方案。

 
问题原因:outln用户被误删除。(昨天手贱把用户全选删除了)
 

解决步骤:
1、将oracle启动到mount状态(sql命令:startup mount;)
SQL> startup mount;
ORA-01031: 权限不足
 Note:哈哈,提示权限不足,没关系, 用系统账号登..
 
SQL> connect / as sysdba;
 已连接。
 
SQL> startup mount;
ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
Note:心急吃不了热豆腐啊。。。
 
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
 
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area  591396864 bytes
Fixed Size                  1291916 bytes
Variable Size             314575220 bytes
Database Buffers          268435456 bytes
Redo Buffers                7094272 bytes
数据库装载完毕。
Note:运气不错,进入mount状态...
 
2、修改replication_dependency_tracking参数
SQL> alter system set replication_dependency_tracking =false scope=spfile;
系统已更改。
 
3、启动数据库至open状态
SQL> shutdown immediate;
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
 
SQL> startup;
ORACLE 例程已经启动。
Total System Global Area  591396864 bytes
Fixed Size                  1291916 bytes
Variable Size             318769524 bytes
Database Buffers          264241152 bytes
Redo Buffers                7094272 bytes
数据库装载完毕。
数据库已经打开。
 
4、创建outln用户
SQL> create user outln identified by outln;
用户已创建。
 
SQL> select username from dba_users;
USERNAME
------------------------------
OUTLN
SYS
SYSTEM
SCOTT
Note:outln用户果然创建成功了。。。
 
5、修改回replication_dependency_tracking参数为true
SQL> alter system set replication_dependency_tracking =true scope=spfile;
系统已更改。
 
6、重新启动数据库,系统恢复正常
SQL> shutdown abort;
ORACLE 例程已经关闭。
 
SQL> startup;
ORACLE 例程已经启动。
Total System Global Area  591396864 bytes
Fixed Size                  1291916 bytes
Variable Size             322963828 bytes
Database Buffers          260046848 bytes
Redo Buffers                7094272 bytes
数据库装载完毕。
数据库已经打开。
 
Ok,搞定!
 
参考:https://www.thinksaas.cn/group/topic/566058/

 
 

oracle错误(ORA:12154 ORA:01034 和 ORA:27101 ORA-18008 ORA-01081)的相关教程结束。

《oracle错误(ORA:12154 ORA:01034 和 ORA:27101 ORA-18008 ORA-01081).doc》

下载本文的Word格式文档,以方便收藏与打印。