菜单

金沙国际棋牌下载官网Oracle报错:”ORA-18008: 无法找到 OUTLN 方案 “的解决方案

2019年11月26日 - 计算机数据
金沙国际棋牌下载官网Oracle报错:”ORA-18008: 无法找到 OUTLN 方案 “的解决方案

将A数据的USERNAME用户的数据导出后,再导入到B数据库中的USERNAME时,在USERNAME用户下在执行表数据查询时出现如下问题:
ORA-06550: 第 1 行, 第 7 列: PLS-00201: 必须声明标识符
‘SYSTEM.PROC_AUDIT’ ORA-06550: 第 1 行, 第 7 列: PL/SQL: Statement
ignored
出现这个问题是由于A数据库打开了审计,而导入到B数据库时,B数据库审计没有打开,数据库中没有SYSTEM.PROC_AUDIT对象,导致上述问题.
问题解决过程如下: 1)以sysdba登录数据库:
D:UsersAdministrator>sqlplus / as sysdba 2) 显示当前审计参数:
SQL> show parameter audit; NAME TYPE VALUE

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

Oracle报错:”ORA-18008: 无法找到 OUTLN 方案 “的解决方案

 

 

 

今天连接到Oracle报错:ORA-18008: 无法找到 OUTLN
方案,前天还用得好好的,现在无论查询任何sql语句或点击列表查看都会弹出该错误提示,忙活了一阵,终于解决了,现记录一下解决方案。

       

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

 

问题原因:outln用户被误删除。

 

数据库版本:Oracle 10g( 10.2.0.3.0 )

 

解决步骤:

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;


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

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,搞定!

                 

—————————— audit_file_dest string
J:APPADMINISTRATORADMINORC LADUMP audit_sys_operations
boolean FALSE audit_trail string DB 3) 启用审计. SQL> alter
system set audit_sys_operations=TRUE scope=spfile; 系统已更改。
4)查看新的状态,还是显示审计操作没打开,需重新启动数据库: SQL> show
parameter audit; NAME TYPE VALUE ————————————
———– ————————– audit_file_dest string
J:APPADMINISTRATORADMIN LADUMP audit_sys_operations boolean
FALSE audit_trail string DB 5)重启数据库 SQL> shutdown immediate
数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup
ORACLE 例程已经启动。 Total System Global Area 3056513024 bytes Fixed
Size 2179656 bytes Variable Size 1644170680 bytes Database Buffers
1392508928 bytes Redo Buffers 17653760 bytes 数据库装载完毕。
数据库已经打开。 6)重新查看审计状态,审计已打开. SQL> show
parameter audit; NAME TYPE VALUE ————————————
———– ————————– audit_file_dest string
J:APPADMINISTRATORADMIN LADUMP audit_sys_operations boolean
TRUE audit_trail string DB SQL> conn USERNAME/PWDXXXXXX; 已连接。
7)查询表数据,错误依然,但错误换成了SYSTEM.PROC_AUDIT无效: SQL>
select * from corporationhot; select * from corporationhot * 第 1
行出现错误: ORA-06550: 第 1 行, 第 14 列: PLS-00905: 对象
SYSTEM.PROC_AUDIT 无效 ORA-06550: 第 1 行, 第 7 列: PL/SQL: Statement
ignored 8)将对象SYSTEM.PROC_AUDIT授权给USERNAME. SQL> grant
execute on SYSTEM.PROC_AUDIT TO USERNAME; 授权成功。
9)再次以USERNAME登录,执行数据表查询,提示对象 SYSTEM.PROC_AUDIT
无效;因为对象已经授权,出现这种状况可能是对象有错误. SQL> conn
USERNAME/PWDXXXXXX; 已连接。 SQL> select * from TABLENAME; select *
from TABLENAME * 第 1 行出现错误: ORA-06550: 第 1 行, 第 14 列:
PLS-00905: 对象 SYSTEM.PROC_AUDIT 无效 ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored 10)
找到SYSTEM.PROC_AUDIT存储过程,发现有编译错误,提示sys.v_$sql,v$sql_bind_capture,sys.v_$session为无
效标识符,由于上述对象是存在的,而且可以查询,因此怀疑是权限设置问题,做如下授权:
SQL> conn / as sysdba; 已连接。 SQL> grant all on sys.v_$sql to
system 2 ; 授权成功。 SQL> grant all on v$sql_bind_capture to
system; 授权成功。 SQL> grant all on sys.v_$session to system;
授权成功。
11)SYSTEM.PROC_AUDIT编译通过后,以USERNAME登录数据库,查看表数据恢复正常,问题解决.
为了验证错误是不是导出时审计是开的,导入时审计未打开所致,重新将审计关闭:
SQL> alter system set audit_sys_operations=FALSE scope=spfile;
系统已更改。 SQL> restart; SP2-0042: 未知命令 “restart” –
其余行忽略。 SQL> shutdown immediate; 数据库已经关闭。
已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup; ORACLE
例程已经启动。 Total System Global Area 3056513024 bytes Fixed Size
2179656 bytes Variable Size 1644170680 bytes Database Buffers 1392508928
bytes Redo Buffers 17653760 bytes 数据库装载完毕。 数据库已经打开。
12)数据库重启后,以USERNAME用户登录查询数据正常.

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

监听(D:oracleproduct11.2.0dbhome_1NETWORKADMINlistener.ora)和服务(D:oracleproduct11.2.0dbhome_1NETWORKADMINtnsnames.ora)文件。

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

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

当前是使用域用户登录的

然后切换回 本机用户登录

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

没搞清楚是什么原因。

 

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

查看服务,正常启动。

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

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

金沙国际棋牌下载官网 1

 

# tnsnames.ora Network Configuration File: D:oracleproduct11.2.0dbhome_1networkadmintnsnames.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))

//这一块是缺少的 start
ORCL =
  (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

  3. create pfile from spfile; 生成的 pfile
    叫INITorcl.ora,位于D:oracleproduct11.2.0dbhome_1database下(找自己的安装目录)

  4. 修改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:oracleadminorcladump’
    .audit_trail=’db’
    .compatible=’11.2.0.0.0′
    .control_files=’D:oracleoradataorclcontrol01.ctl’,’D:oracleflash_recovery_areaorclcontrol02.ctl’
    .db_block_size=8192
    .db_domain=”
    .db_name=’orcl’
    .db_recovery_file_dest=’D:oracleflash_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′

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

  6. startup

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

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

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

 

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

 

解决步骤:

1、将oracle启动到mount状态(sql命令:startup mount;)

SQL> startup mount;

ORA-01031: 权限不足

 Note:哈哈,提示权限不足,没关系, 用系统账号登..

 

SQL> connect / as sysdba;

 已连接。

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图