加载中…
个人资料
单调
单调
  • 博客等级:
  • 博客积分:0
  • 博客访问:7,102
  • 关注人气:3
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

Oracle REDO LOG

(2008-10-23 15:04:00)
标签:

杂谈

image

image

日志文件redo log

  1. Redo Log 文件记录对于数据库的所有修改,用于数据库的恢复
  2. 如果对于日志文件进行镜像,则相同的 Redo Log 信息被写入多个联机的 Redo Log文件中
  3. Oracle运行NOARCHIVELOG时只有历史日志,没有归档日志
  4. 每个Oracle数据库至少有两个Redo Log日志文件组,每组有一个或多个日志文件
  5. 建议对Redo Log 文件进行镜像,以保证数据库安全运行
  6. 建议使用四个Redo Log文件组,每组2或3个日志文件
  7. 组内Redo Log 文件位于不同磁盘
  8. Redo Log文件是循环使用的

在DataGuard环境中,为了减少故障时数据损失,我们可以设置ARCHIVE_LAG_TARGET参数,强制进行日志切换。

ARCHIVE_LAG_TARGET参数可以设置一个时间,通过时间限制,指定数据库强制进行Log Switch,进行归档。

这个参数的缺省值是0,即为不启用该参数。该参数合理的取值范围在60 ~ 7200之间。
通常大于7200和小于1800不被推荐,低于30分钟的切换时间可能导致性能问题。

设置archive_lag_target参数:

SQL> show parameter archive_lag

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
SQL> alter system set archive_lag_target=1800;

System altered.

SQL> show parameter archive_lag

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 1800

【转自http://blog.chinaunix.net/u/2005/showart_204462.html

在数据库强制切换日志文件的时候,数据库会进行自动归档,保证数据的完整性和安全性,用于以后恢复使用。

数据库处于归档模式+良好的备份策略可以保证数据库任何故障下的恢复。
如果你的库是处于归档模式的,日志切换你不归档,那么一个循环写完时lgwr进程就会等待把日志归档出去,是不能覆盖的,此时dml操作无法进行,数据库就hang了。
不归档坏处很多,但事情都是有两面性的,如下说说好处:
1、节约空间。
2、节约管理成本,因为如果你开归档了,你一定得时时的监控归档目录是不是满了,不论是上监控系统还是用人看着都是成本。
3、开归档大约为牺牲15%左右的性能(cpu_io),所以不归档这部分也省了。

正常运行情况下,oracle的日志文件会自动循环,那么一个循环完毕后,oracle会自动归档一次。 那么, 假如我手动切换日志,oracle也会自动存档,还是需要我来手动存档呢?

【转自http://www.itpub.net/514294.html

归档模式和命令

一。查看oracle数据库是否为归档模式:
1.select name,log_mode from v$database;
NAME               LOG_MODE
------------------ ------------------------
QUERY           NOARCHIVELOG
2.使用ARCHIVE LOG LIST 命令
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /data/oracle/product/10.2.0/db_1//dbs/arch
Oldest online log sequence     739
Current log sequence           741
二。什么是Oracle归档模式?
  Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。
  如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志 2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷贝的文件叫归档重做日志。
  数据库使用归档方式运行时才可以进行灾难性恢复。
1.归档日志模式和非归档日志模式的区别
非归档模式只能做冷备份,并且恢复时只能做完全备份.最近一次完全备份到系统出错期间的数据不能恢复.
归档模式可以做热备份,并且可以做增量备份,可以做部分恢复.
用ARCHIVE LOG LIST 可以查看期模式状态时归档模式还是非归档模式.
三。配置数据库的归档模式
改变非归档模式到归档模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE ARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
5)SQL>做一次完全备份,因为非归档日志模式下产生的备份日志对于归档模式已经不可用了.这一步非非常重要!
改变归档模式到非归档模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE NOARCHIVELOG;
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步的逆过程.
6.配置多个归档进程
Q:什么时候需要使用多个归档进程?
A:如果归档过程会消耗大量的时间,那么可以启动多个归档进程,这是个动态参数,可以用ALTER SYSTEM动态修改.
SQL>ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=10;
Oracle9i中最多可以指定10个归档进程
与归档进程有关的动态性能视图
v$bgprocess,v$archive_processes
7.配置归档目标,多归档目标,远程归档目标,归档日志格式
归档目标 LOG_ARCHIVE_DEST_n
本地归档目标:
SQL>LOG_ARCHIVE_DEST_1 = "LOCATION=D:\ORACLE\ARCHIVEDLOG";
远程归档目标:
SQL>LOG_ARCHIVE_DEST_2 = "SERVICE=STANDBY_DB1";
强制的归档目标,如果出错,600秒后重试:
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_4 = "LOCATION=E:\ORACLE\ARCHIVEDLOG MANDATORY REOPEN=600";
可选的归档目标,如果出错,放弃归档:
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_3 = "LOCATION=E:\ORACLE\ARCHIVEDLOG OPTIONAL";
归档目标状态:关闭归档目标和打开归档目标
关闭归档目标1
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = DEFER
打开归档目标2
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = ENABLE
归档日志格式
LOG_ARCHIVE_FORMAT
8.获取归档日志信息
V$ARCHVIED_LOG
V$ARCHVIE_DEST
V$LOG_HISTORY
V$DATABASE
V$ARCHIVE_PROCESSES
ARCHIVE LOG LIST;

【转自http://blog.csdn.net/79bo/archive/2008/03/11/2170418.aspx

我在设置我的归档模式的时候出现一些问题,比如里面的ARCHIVE LOG LIST命令就是不好用的。在网上看见的归档方面的东西都是一个版本的。。真有点那个啥了。

如果看归档的话-------http://publish.it168.com/2005/1210/20051210026901.shtml这个网页也可以参考。

这个问题先看到这里,下面想把Oracle job方面的东西整理一下。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
后一篇:近期总结
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

    后一篇 >近期总结
      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有