Oracle闪回:Oracle10g Flashback功能与实验
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