数据备份和恢复是DBA价值的提现
特点:
记录所有对数据的改变
提供恢复的机制
必须被构造为组, 至少需要2个组, 且为了避免数据丢失, 每一组都需要有2个及以上成员, 且在不同的磁盘上, 组和成员是逻辑关系
* 每一个组成员具备相同的LSN ( log sequence numbers )
LGWR会循环的写online redo log files:
该图例为: 先写Group1( A_LOG1 和 B_LOG1 ) 然后写 Group2 ( A_LOG2 和 B_LOG2 ), 然后再返回写Group1
* log switch: 组之间的切换
LGWR的写入 redo log 的时机:
* 事务提交
* Redo log buffer 1/3 满或者超过1MB
* 在DBWn 将 Database Buffer Cache 写入到 data files 之前
常用的维护工作:
* 增加 LOGFILE 组, 文件名以.rdo结尾
select * from v$logfile; --查看redo log files
alter database add logfile group 4 ( '$ORACLE_BASE/oradata/scott/redo04.rdo' ) size 50m; 在目录下创建大小为50m的log file
* 增加成员变量
alter database add logfile member '$ORACLE_BASE/oradata/scott/redoa04.rdo' to group 4;
* 删除成员变量
Prerequisites: 状态必须是非active并且非current group, 之前先做log switch, 并且archive
然后在control file里面配置把他remove掉, 当Oracle运行成功之后, 再做物理删除
select * from v$logfile;
alter database drop logfile member '$ORACLE_BASE/oradata/scott/redoa04.rdo';
* 删除组
Prerequisites: active的和current不能被删除
select group#, members, archived, status from v$log;
alter system switch logfile; --如果当前需要删除的组状态为current或者是active, 采用该命令转换
alter database drop logfile group 4;
* Rename & Relocate 修改前备份数据库, 2种方法
1. Add new and drop old.
2. Rename
2.1 shutdown immediate;
2.2 startup mount;
2.3 alter database rename file '$ORACLE_BASE/oradata/$ORACLE_SID/redo04.rdo' to '$ORACLE_BASE/oradata/redo04.rdo';
2.4 select * from v$logfile; --Just for checkup.
* Clear redo log files and unarchived ;
alter database clear unarchived logfile group #;
维护的Tips:
* 把group中的member放在不同的disk上
* 一个group至少要2个member
* Archive和redo log file 应该放在不同的disk上
* Datafiles 也不应该和redo log file在disk上
使用OMF
-----------------------------Command-----------------------------
强制切换log file
alter system switch logfile;
强制checkpoint
1.设置DBWn的强制写入时间为600秒, 该参数对性能影响很大
alter system FAST_START_MTTR_TARGET = 600 scope=both;
2. 手工触发checkpoint
alter system checkpoint;
v$log; v$logfile; v$log_history