欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

在Oracle中增进SCN及案例介绍

程序员文章站 2024-01-04 19:32:46
...

在Oracle中增进SCN及案例介绍,然后尝试连接别的用户,连接成功。最后exp整个数据库,重建数据库后导入数据,整个数据库恢复成功

在Oracle数据库中我们可以利用oracle的内部事件调整SCN。增进SCN通常有两种常用方法:

1.alter session set events 'IMMEDIATE trace name ADJUST_SCN level x';
--需要数据库OPEN

2.通过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:\oracle\product\10.2.0\admin\orasjh\udump\orasjh_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中增进SCN及案例介绍

上一篇:

下一篇: