在Oracle数据库中我们可以利用oracle的内部事件调整SCN。增进SCN通常有两种常用方法:1.alter session set events "IMMEDIATE trace name ADJUST_SCN level x";
--需要数据库OPEN2.通过10015事件
alter session set events "10015 trace name adjust_scn level x";
--在数据库无法打开,mount状态下。
注:level 1为增进SCN 10亿 (1 billion) (1024*1024*1024=1073741824)测试:
SQL> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
571904
SQL> alter session set events "IMMEDIATE trace name ADJUST_SCN level 1";
Session altered
--10g的告警日志会报这样的错:
Tue Mar 31 17:01:00 2009
Errors in file c:oracleproduct10.2.0adminorasjhudumporasjh_ora_2208.trc:
ORA-01031: 权限不足
查看trace文件,有这样的报错:
...
Clearing ORA-1031 thrown by trace "ADJUST_SCN"
----- Dump for trace "ADJUST_SCN": -----
*** 2009-03-31 17:01:00.828
ksedmp: internal or fatal error
ORA-01031: 权限不足
Current SQL statement for this session:
...
我在9i测试是没问题的。
SQL> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
1073766630
在测试一下在数据库关闭的情况下SCN的增进。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 147921840 bytes
Fixed Size 453552 bytes
Variable Size 121634816 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
SQL> alter session set events "10015 trace name adjust_scn level 10";
会话已更改。
SQL> alter database open;
数据库已更改。
SQL> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
1.0737E+10
SQL>
Oracle 11g 11.2.0.3升级失败后的两种回退方法rman备份出现ORA-19625相关资讯 Oracle数据库基础教程
- 在Oracle数据库中插入含有&符号的 (03/06/2013 09:20:14)
- Oracle 执行计划更改导致数据加工 (02/13/2013 14:45:04)
- 判断Oracle Sequence是否存在 (02/13/2013 14:32:26)
| - Oracle数据库中无法对数据表进行 (02/26/2013 14:24:58)
- Oracle 在同一台主机上建立用户管 (02/13/2013 14:40:58)
- Oracle em 无法启动,报not found错 (02/13/2013 14:29:48)
|
本文评论 查看全部评论 (0)