Oralce数据导入出现(SYSTEM.PROC_AUDIT)问题处理方法
发布时间:2020-12-12 16:53:31 所属栏目:百科 来源:网络整理
导读:将A数据的USERNAME用户的数据导出后,再导入到B数据库中的USERNAME时,在USERNAME用户下在执行表数据查询时出现如下问题: ORA-06550: 第 1 行,第 7 列: PLS-00201: 必须声明标识符 'SYSTEM.PROC_AUDIT' ORA-06550: 第 1 行,第 7 列: PL/SQL: Statement ignored
将A数据的USERNAME用户的数据导出后,再导入到B数据库中的USERNAME时,在USERNAME用户下在执行表数据查询时出现如下问题: 问题解决过程如下: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 行,第 7 列: PL/SQL: Statement ignored 10)找到SYSTEM.PROCAUDIT存储过程,发现有编译错误,提示sys.v$sql,v$sql_bindcapture,sys.v$session为无效标识符,由于上述对象是存在的,而且可以查询,因此怀疑是权限设置问题,做如下授权: SQL> conn / as sysdba; 已连接。 SQL> grant all on sys.v_$sql to system 2 ; 授权成功。 SQL> grant all on v$sql_bindcapture 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用户登录查询数据正常.(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |