Oracle数据库的归档模式与非归档模式

来源:互联网 发布:暂七师军乐队 知乎 编辑:程序博客网 时间:2024/04/18 14:17

Oracle数据库的归档模式与非归档模式解析

一、如何查看oracle数据库是否为归档模式:

  1. 1.select name,log_mode from v$database;      ##通过查询 v$database 进行查看
  2.   NAME               LOG_MODE   
  3. ------------------ ------------------------   
  4.   QUERY             NOARCHIVELOG   
  5. 2、使用ARCHIVE LOG LIST 命令 
  6.                      ##需要以 sysdba用户登陆后查看

二、什么是Oracle归档模式?
  Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。
  如果数据库处于非归档模式,联机日志在切换时就会丢弃。 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷贝的文件叫归档重做日志
  数据库使用归档方式运行时才可以进行灾难性恢复。
1. 归档日志模式和非归档日志模式的区别
  非归档模式只能做冷备份,并且恢复时只能做完全备份.最近一次完全备份到系统出错期间的数据不能恢复.
  归档模式可以做热备份,并且可以做增量备份,可以做部分恢复.

三、配置数据库的归档模式
 
改变非归档模式到归档模式
Sql代码
  1. 1)SQL>SHUTDOWN NORMAL/IMMEDIATE;         ##先down下数据   
  2. 2)SQL>START MOUNT;                  ##启动数据库实例到mount状态,但不要打开   
  3. 3)SQL>ALTER DATABASE ARCHIVELOG;        ##设置数据库为归档日志模式   
  4. 4)SQL>ALTER DATABASE OPEN;            ##打开数据库   
  5. 5)SQL>archive log list;              ##确认数据库现在处于归档日志模式   
  6. 6)SQL>archive log all;               ##将这个时间点的redo logs归档  



====================
如果停止归档模式就用
alter database noarchivelog 
========================
 

改变归档模式到非归档模式:
Sql代码
  1. 1)SQL>SHUTDOWN NORMAL/IMMEDIATE;         
  2. 2)SQL>START MOUNT;       
  3. 3)SQL>ALTER DATABASE NOARCHIVELOG;    
  4. 4)SQL>ALTER DATABASE OPEN;    

3.启用自动归档: LOG_ARCHIVE_START=TRUE
归档模式下,日志文件组不允许被覆盖(重写),当日志文件写满之后,如果没有进行手动归档,那么系统将挂起,知道归档完成为止.
这时只能读而不能写.
运行过程中关闭和重启归档日志进程
SQL>ARCHIVE LOG STOP
SQL>ARCHIVE LOG START
 
4.手动归档: LOG_ARCHIVE_START=FALSE
归档当前日志文件
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
归档序号为052的日志文件
SQL>ALTER SYSTEM ARCHIVE LOG SEQUENCE 052;
归档所有日志文件
SQL>ALTER SYSTEM ARCHIVE LOG ALL;
改变归档日志目标
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT TO '&PATH';
 
5.归档模式和非归档模式的转换
 
第4步的逆过程.

四、关于何时使用归档/非归档模式的问题
一般生产环境都用归档模式的.会对归档日志进行转存储,转存到磁带等介质上,以防止归档日志把硬盘撑爆.
自己玩的话可以使用非归档模式;
生产库只要空间够,勿必勿必设为归档模式。不然一出问题,即使你做了EXP导出,也会丢失掉EXP时间点后的那部分数据。结合RMAN,做个一周定时自动备份的策略是王道。
参考文章:http://blog.itpub.net/223653/viewspace-1279049/

0 0
原创粉丝点击