数据导入问题处理方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

A数据库打开了审计,而导入到B数据库时,B数据库审计没有打开,数据库中没有SYSTEM.PROC_AUDIT对象,北京海淀甲骨文授权学习中心提出问题的解决方法,需要的同学可以参考下
-
将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:\Users\Administrator>sqlplus / as sysdba
2) 显示当前审计参数:
SQL> show parameter audit;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string J:\APP\ADMINISTRATOR\ADMIN\ORC
L\ADUMP
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:\APP\ADMINISTRATOR\ADMIN
L\ADUMP
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:\APP\ADMINISTRATOR\ADMIN
L\ADUMP
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用户登录查询数据正常.
盈佳科技有限公司是甲骨文Oracle公司在北京指定授权IT学习中心,坐落于海淀区北四环中路。

主要从事Oracle Java软件开发实训和学员的就业安排。

Oracle Java软件开发实训课程摆脱了传统单一编程训练的知识结构,整个实训体系分为技术层面、理论层面、软件项目管理层面及团队合作层面。

学员不仅能够学习到实用的技术,更可以在多方面得到综合训练,从而培养出适合企业需要的高素质人才。

详情请访问:甲骨文官网网址:。

相关文档
最新文档