Oracle闪回:Oracle10g Flashback功能与实验

AC即性感 2012-07-28

Flashback功能与实验,有点旧,还是前两年的实验日记,发出来分享一下。
 
1、设置flashback参数
 
SQL> conn /as sysdba;
已连接。
SQL> archive log list
数据库日志模式             非存档模式
自动存档             禁用
存档终点            d:\Oracle\product\10.2.0\db_1\RDBMS
最早的联机日志序列     21
当前日志序列           23
 
SQL> show parameter recove
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string
db_recovery_file_dest_size           big integer 0
recovery_parallelism                 integer     0
 
--启用Flash Recovery Area
SQL> alter system set db_recovery_file_dest_size=10g scope=both;
系统已更改。
 
SQL> alter system set db_recovery_file_dest='D:\oracle\flashdb' scope=both;
系统已更改。
 
SQL> show parameter db_recovery_file
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      D:\oracle\flashdb
db_recovery_file_dest_size           big integer 10G
recovery_parallelism                 integer     0
SQL>
 
--禁用Flash Recovery Area:
SQL>alter system set db_recovery_file_dest='';
 
--设置初始化参数RETENTION
db_flashback_retention_target 1440
(闪回区至少数据库实际容量的10%)#########################################
2、开启归档模式
 
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area  293601280 bytes
Fixed Size                  1248600 bytes
Variable Size             113246888 bytes
Database Buffers          171966464 bytes
Redo Buffers                7139328 bytes
数据库装载完毕。
SQL> alter database archivelog;
数据库已更改。
 
SQL> alter database open;
数据库已更改。
 
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     21
下一个存档日志序列   23
当前日志序列           23
SQL>
 
--直接设置归档路径:
alter system set LOG_ARCHIVE_DEST_1='LOCATION=D:\oracle\flashdb';
##############################################
3、检查flashback相关运行情况
 
--检查flashback是否启动
SQL> select name,current_scn,flashback_on from v$database;
NAME      CURRENT_SCN FLASHBACK_ON
--------- ----------- ------------------
MYmy        1005679 NO
 
SQL> ALTER DATABASE FLASHBACK ON;
数据库已更改。
 
SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
YES
--检查flash recovery area的使用情况
select * from v$flash_recovery_area_usage;
FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE                   0                         0               0
ONLINELOG                     0                         0               0
ARCHIVELOG                 6.36                         0               4
BACKUPPIECE                 .22                         0               1
IMAGECOPY                 63.68                         0               5
FLASHBACKLOG                .51                       .25               2
已选择6行。
 
--计算flash recovery area已经占用的空间:
select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;
SUM(PERCENT_SPACE_USED)*3/100
-----------------------------
                       2.1231
可以看到,这里已经有2.1231G使用了
 
--RMAN中删除flash recovery area中不必要的备份来释放flash recovery area空间:
(1). delete obsolete;
(2). crosscheck backupset;
     delete expired backupset;
#######################################################   
4、flashback恢复实验之--flashback database

相关推荐