数据库是10.2.0.3,SID=compard
I logminor
1.判断utl_file_dir这个参数是否设置
show parameter utl_file_dir
2.生成数据字典信息
exec dbms_logmnr_d.build(dictionary_filename=>'compard.ora',dictionary_location=>'/usr/tmp');
在结束的时候出现下面这个错误:
ORA-01301: error writing to file during flat file build
ORA-06512: at "SYS.DBMS_LOGMNR_INTERNAL", line 1675
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "SYS.DBMS_LOGMNR_INTERNAL", line 3474
ORA-06512: at "SYS.DBMS_LOGMNR_INTERNAL", line 3552
ORA-06512: at "SYS.DBMS_LOGMNR_D", line 12
ORA-06512: at line 1
metalink上面的解决方案如下: bug5518651
Solution
Do the following to recreate logminer objects:
SQL> connect / as sysdba
> spool logrun.txt
drop table SYSTEM.LOGMNR_SESSION$;
@?/rdbms/admin/dbmslm.sql
@?/rdbms/admin/prvtlm.plb
@?/rdbms/admin/dbmslmd.sql
@?/rdbms/admin/prvtlmd.plb
@?/rdbms/admin/prvtlmc.plb
.*Note: the spool step is not required but will record errors if needed for further analysis.
不过我没有管他,因为此时数据字典文件已经产生。最后我重新试了一下,其实按照metalink上的solution做了之后,还有这个错误。
3.添加分析对象,在线离线日志都可以。
exec dbms_logmnr.add_logfile(logfilename=>'/uattest/uat/db/apps_st/data/log03b.dbf',options=>dbms_logmnr.new);
这里的options选项有三个参数可以用:
NEW - 表示创建一个新的日志文件列表
ADDFILE - 表示向这个列表中添加日志文件,一次分析多个日志
REMOVEFILE - 和addfile相反。
4.开始分析:exec dbms_logmnr.start_logmnr(DictFileName =>'/usr/tmp/compard.ora');
察看结果:
select scn,cscn,TIMESTAMP,sql_undo from v$logmnr_contents;
可以使用create table apps.<tablename> as select * from v$logmnr_contents这样就容易查看了。
5.结束分析:execute dbms_logmnr.end_logmnr;
II:把system表空间变成local
shutdown immediate
startup restrict
select 'alter tablespace '||tablespace_name||' read only;' from dba_tablespaces
除了sysaux,temporary,unod不可以外。
alter tablespace SYSAUX offline;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;
如果有2个以上的temporary tablespace需要drop一个
drop tablespace temp1;
execute DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL ('SYSTEM');
alter tablespace SYSAUX online;
select 'alter tablespace '||tablespace_name||' read write;' from dba_tablespaces
where status='READ ONLY';
select status from dba_tablespaces;
alter system disable restricted session或者重新启动数据库
然后shutdown immediate
startup