一、开启归档:
进入数据库
export ORACLE_SID=zwb
sqlplus '/as sysdba'
1、查看数据库是否处于归档模式:
SQL> archive log list
Database log mode No Archive Mode ----非归档
Automatic archival Disabled
Archive destination /oracle/app/product/10.2.0/db_1/dbs/arch ---归档路径
Oldest online log sequence 1
Current log sequence 2
2、设置归档路径
$mkdir -p /data/archlog
alter system set log_archive_dest_1='location=/data/archlog' scope=both;
如果Oracle 9i,需要设置log_archive_start为true,表示自动切换归档,10g以上已废弃该参数
alter system set log_archive_start=true scope=spfile;
3、关闭数据库
SQL> shutdown immediate
SQL>STARTUP MOUNT ---启动到MOUNT状态
SQL>alter database archivelog; ---开归档
SQL> archive log list ---检查
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /data/archlog
Oldest online log sequence 2
Next log sequence to archive 4
Current log sequence 4
查看多大切一次归档
SQL> select * from v$log; ---可以看到50M切一次
SQL> show parameter lag ---查看多少时间自动生成一条归档
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
plsql_ccflags string
plsql_compiler_flags string INTERPRETED, NON_DEBUG
如果需要10分钟切换一次归档,需要设置
alter system set archive_lag_target=600;
测试 手动切换归档
SQL> alter system switch logfile;
可看到在 /data/archlog 下出现一条归档
二、关闭归档模式
SQL> shutdown immediate
SQL> startup mount
SQL>alter database noarchivelog;
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /data/archlog
Oldest online log sequence 2
Current log sequence 4
配置闪回:
配置闪回前提数据库必须处于归档模式,如果处于非归档模式配置闪回,则会出现以下错误:
SQL> alter database flashback on;
alter database flashback on
*
ERROR at line 1:
ORA-38706: Cannot turn on FLASHBACK DATABASE logging.
ORA-38707: Media recovery is not enabled.
SQL> show parameter recover ---查看闪回状态
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string
db_recovery_file_dest_size big integer 0
recovery_parallelism integer 0
1、$ mkdir -p /data/flashback --新建闪回路径
alter system set db_recovery_file_dest_size=1024m; ---配置闪回空间
alter system set db_recovery_file_dest='/data/flashback'; ---设置闪回路径
2.SQL> show parameter flash ---查看闪回日志保留时间,默认1天,单位(分钟)
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_target integer 1440
SQL> alter system set db_flashback_retention_target=2880; --修改闪回日志保留时间
3.将数据库启动至mount状态,打开闪回
SQL> alter database flashback on;
查看闪回是否开启
SQL> select flashback_on from v$database;
4.关闭闪回
SQL> shutdown immediate
SQL> startup mount
SQL> alter database flashback off;