博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle错误(ORA:12154 ORA:01034 和 ORA:27101 ORA-18008 ORA-01081)
阅读量:5264 次
发布时间:2019-06-14

本文共 4045 字,大约阅读时间需要 13 分钟。

按照正常操作流程,启动项目,发现项目报错,原因是连接不上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.0\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 = 1521))//这一块是缺少的 startORCL =  (DESCRIPTION =    (ADDRESS_LIST =      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))    )    (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=352321536orcl.__java_pool_size=8388608orcl.__large_pool_size=8388608orcl.__oracle_base='D:\oracle'#ORACLE_BASE set from environmentorcl.__pga_aggregate_target=444596224orcl.__sga_target=847249408orcl.__shared_io_pool_size=0orcl.__shared_pool_size=469762048orcl.__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/
 
 

 

转载于:https://www.cnblogs.com/redirectZmh/p/8184860.html

你可能感兴趣的文章
软件工程——理论、方法与实践 第二章
查看>>
VS2010有自带的数据对比功能
查看>>
第四章 第一个程序
查看>>
atitit.企业管理----商业间谍策略的使用与防务
查看>>
数据加密——MD5
查看>>
[LeetCode]6. ZigZag Conversion
查看>>
洛谷mNOIP模拟赛Day2-星空
查看>>
慎用 assert
查看>>
UBoot添加命令的方法
查看>>
jsp中简易版本的图片上传程序
查看>>
C++STL源代码学习(之slist篇)
查看>>
Android发展Singleton模式
查看>>
cocos2d-x使用CCClippingNode实现跑马灯
查看>>
C++预编译头文件 – stdafx.h
查看>>
2015羊年,您好,在新的一年里祝大家:工作顺利,万事如意!
查看>>
git push之后回滚(撤销)代码
查看>>
Python学习【第2篇】:Python数据类型
查看>>
[转帖]译文:如何使用SocketAsyncEventArgs类(How to use the SocketAsyncEventArgs class)
查看>>
AWT事件处理机制
查看>>
学习Javascript和Jquery必备资料
查看>>