在oracle 中当重做日志满了后 会出现以前的日志被删除覆盖的情况,部分日志被删除的话 无法进行完整的数据恢复
所以此时要讲以前的日志 拷贝到一个具体的位置 这就是自动归档
在Oracle数据库中,主要有两种日志操作模式,分别为非归档模式与归档模式。默认情况下,数据库采用的是非归档模式。作为一个合格的数据库管理员,应当深入了解这两种日志操作模式的特点,并且在数据库建立时,选择合适的操作模式。我们在sqlplus 下通过以下命令查看日志模式:archive log list;
(非归档模式)
(归档模式)
说明一下:
database log mode 指定是数据库的日志模式,可为Archive Mode(归档)和No Archive Mode(非归档)
Automatic archival 指定数据是否自动归档enable(自动),disabel(手动),要注意一下如果数据库的日志模式在归档下,但归档方为手动时要注意,如果归模日志满了,但没有进行清除数据,数据库停止写数据操作。
下面介绍一些常用操作:
1.查看数据库的日志模式
a.archive log list;
这个不在详细说明,因为上边图片己经很清楚了
b.通过动态性能视图进行查看v$database
那个log_mode字段就可以说明这个数据为归档模式
2.进行日志切换操作
这里我是从非归档模式向归归档模式操作.
a.关闭运行数据库实例
shutdown immediate;
b.备份数据库
该备份跟以后产生的日志一起用于将来的灾难恢复(很重要,如要改为归档日志模式,没有这个数据库备份,仅有日志文件是无法从该时间点恢复的)
c.启动数据库实例到mount状态,但不要打开。
startup mount;
d.切换数据库日志模式。
alter database archivelog;(设置数据库为归档日志模式)
alter database noarchivelog;(设置数据库为归档日志模式)
d.进行自动归档的切换
alter system archive log start
alter system archive log stop
(在standy模式不能切换为手动归档)
e.打开数据库
alter database open;
3.手动归档相关操作
alter system archive log current;
alter system archive log all;
常用的归档 动态视图
select * from v$log_history
SELECT * FROM V$ARCHIVED_LOG
SELECT * FROM V$ARCHIVE_dest
SELECT * FROM V$ARCHIVE_processes
select log_mode from v$database
恢复的过程有三种 参考:http://wenku.baidu.com/view/89ee91d284254b35eefd34e1.html