归档模式:
简单来说就是将重写日志中将要被覆盖的日志做备份操作
非归档模式:
简单来说就是在一定时间内对数据库做的操作会被重写日志记录
两者区别就是前者备份了重写日志内的信息,后者没有备份重写日志的信息
接下来将详细探讨归档模式的操作:
步骤一: 查看归档模式是否开启(默认建立实例的时候是非归档模式)以及查看重做日志存放路径
SQL>archive log list
SQL>SELECT * FROM v$logfile ORDER BY group#;
步骤二:开启归档模式
SQL>SHUTDOWN NORMAL/IMMEDIATE;
SQL>STARTUP MOUNT;
SQL>ALTER DATABASE ARCHIVELOG;
SQL>ALTER DATABASE OPEN;
SQL>archive log list
提示:开启归档模式后,如果数据库有数据,需要做一次完全备份,以防未来需要做灾难恢复
归档日志启动后,存放路径默认指向DB_RECOVERY_FILE_DEST,这个表示闪回恢复区路径
建议修改存放路径(最佳方案),因为回闪恢复区被oracle限制只有4G(可以增大),所以会被归档日志撑爆,导致oracle服务停止。
其路径地址可以用查看命令查看:
SQL>show parameter db_recovery_file_dest;
步骤三:修改归档日志路径(当然总共有三种方法,我就推荐一个方法了,不修改则可以跳过)
SQL>alter system set log_archive_dest_1='location=/opt/oracle/data_ora/achive_log';
提示:后面的1表示的是同一个备份文档被备份的文件的序列,就是说,同一个重写日志在被自动触发备份的时候可以备份多个,需要放在不同目录下。
单引号里面是需要放置归档日志(备份的)的目录路径。值得注意的是路径上的每个目录都必须存在(不存在需要手动创建),若遇到某个目录不存在,
则放置在其前一个目录下。(它可以归档到网络设备中,其他两个方法只能归档至本地磁盘!)
注意:一旦log_archive_dest被赋予有效值以后,那么默认的那个闪回恢复区路径会无效化,文件将不会在备份到该区。
步骤四:实验一下是否成功将路径做了修改
SQL>alter system switch logfile;
提示:这个命令就是将重写日志的活跃状态做出切换,切换的时候就会使日志做备份,也就会生成归档日志,归档日志就会被保存到你设置的目录下,
至于归档日志的名称是被ora文件默认设定了,这个ora所在的目录是dbstart目录调用的ora文件处于同一个目录下,是在$ORACLE_HOME/dbs/
步骤五:删除归档日志
使用命令行界面,先删除归档日志文件,如果不清楚归档日志文件在哪,请看第六步;
SQL>crosscheck archivelog all; #执行archivelog检验命令
SQL>delete expired archivelog all; #删除校验失败的记录
选择yes
步骤六:查看归档日志文件
SQL>select substr(t.NAME,1) NAME,ROUND(sum(t.BLOCKS*t.BLOCK_SIZE)/1024/1024) TOTAL_MB from v$archived_log t where t.DELETED='NO' group by substr(t.NAME,1);
以上是简化的六个步骤,关于归档的开启直到删除归档文件。这是一个简化版的