手机
当前位置:查字典教程网 >编程开发 >Oracle教程 >Oralce数据导入出现(SYSTEM.PROC_AUDIT)问题处理方法
Oralce数据导入出现(SYSTEM.PROC_AUDIT)问题处理方法
摘要:将A数据的USERNAME用户的数据导出后,再导入到B数据库中的USERNAME时,在USERNAME用户下在执行表数据查询时出现如下问题:...

将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

------------------------------------ ----------- ------------------------------

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用户登录查询数据正常.

【Oralce数据导入出现(SYSTEM.PROC_AUDIT)问题处理方法】相关文章:

Oracle数据库快照的使用

Oracle 数据库 临时数据的处理方法

Oracle数据库中去除重复数据

Oracle数据库修改实例名SID的方法步骤

oracle数据库中如何处理clob字段方法介绍

oracle数据库下统计专营店的男女数量的语句

Oracle数据库Decode()函数的使用方法

oracle数据库删除和导入方法

oracle11g创建数据库的方法

Oracle数据库的自动导入与导出

精品推荐
分类导航