oracle日志归档模式改变_第1页
oracle日志归档模式改变_第2页
oracle日志归档模式改变_第3页
oracle日志归档模式改变_第4页
oracle日志归档模式改变_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、oracle日志归档模式改变2011-12-29 13:30:37|  分类: oracle |  标签: |字号大中小 订阅 在Oracle数据库中,主要有两种日志操作模式:归档模式(archivelog mode)及非归档模式(noarchivelog mode)。在默认情况下oracle数据库采用的是非归档模式。作为一个合格的DBA,应当深入了解这两种日志操作模式的特点,并且保证数据库运行在合适的日志操作模式下。在讲重做日志归档模式(archivelog mode)及非归档模式(noarchivelog mode)之前我们先简单的了解一下

2、oracle的日志切换步骤。oracle数据库的重做日志是重复写的,一般来说oracle数据库拥有多个重做日志组(redo log group),每个重做日志组又包含多个成员(详细介绍请查考oracle官方文档),我们大部分的数据更改操作都会写入在线日志中,也就是当前正在使用的重做日志。当一个重做日志写满或DBA发出switch log命令的时候就会发生日志切换,如果oracle运行在非归档模式下,oracle直接覆盖写下一个重做日志组。如果oracle运行在归档模式下则oracle会查询即将写入的重做日志是否归档,没有归档则等待其归档,等归档完成以后再覆盖写入重做日志记录。当然如果发生了归档

3、等待的话可以通过添加重做日志组或开启更多的归档进程来避免这个等待事件。总的来说重做日志归档模式(archivelog mode)及非归档模式(noarchive mode)的最重要的区别就是当前的重做日志切换以后会不会被归档进程(archive process)copy到归档目的地(log_archive_dest)。      一. 非归档模式(noarchivelog mode)的利与弊           当oracle数据库运行

4、在非归档模式下,控制文件确定了发生日志切换以后重做日志文件不需要归档,同时对于(日志写进程)LGWR来说此重做日志组是可以直接使用的。非归档模式(noarchivelog mode)只能提供实例级别的故障恢复,需要介质恢复的时候oracle就爱莫能助了。如果很不幸的发生了,那么我们只能把数据库恢复到过去的某个时间点上,前提是你完全冷备份了数据库。从备份时间点到故障发生期间的所有数据都只有丢失了。而且当oracle运行在非归档模式(noarchivelog mode)下的时候数据库不提供在线的表空间备份,换句话说热备是不可用的。      二.

5、归档模式(archivelog mode)的利与弊           当oracle数据库运行在归档模式下,控制文件确定了发生日志切换后的重做日志文件在归档前是不能被日志写进程)LGWR重用的。归档模式(archivelog mode)下oracle数据库能从实例,介质的失败中得到恢复,当然最近一次的数据库全备及备份以来的所有归档日志的备份时必须的。同时我们还能利用归档日志的重放来完成oracle standby的搭建(oracle standby以后会介绍,请大家留意)。归档模式(archi

6、velog mode)又可以分为手动归档和自动归档,顾名思义手动归档需要DBA的干预;而自动归档,oracle会自己完成归档任务。      通过上面的简单描述我们应该对两种模式的利与弊有所了解了,但是具体选择哪种模式则需要我们从实际情况出发综合考虑。不过作为生产环境一般都是选用归档模式(archivelog mode)。接下来将要介绍一下当前模式的查询以及模式的切换。      三. 当前模式查询        &

7、#160;  可以通过以下方式查询当前数据库是运行在哪种模式下的:           oraclelocalhost$ sqlplus "/ as sysdba"                         

8、60;                                                 

9、60;              SQL> archive log list           Database log mode              Archive Mode    &

10、#160;      Automatic archival             Enabled           Archive destination            /u01/oradata/archiv

11、e_sid           Oldest online log sequence     9975           Next log sequence to archive   9977           Current log

12、sequence           9977           SQL> select name,log_mode from v$database;           NAME      LOG_MODE   

13、;        - -           SID      ARCHIVELOG          四. 模式切换           oracle数据库日志操作模式

14、的切换主要有两种: 1. 非归档模式(noarchivelog mode)-> 归档模式(archivelog mode) 2. 归档模式(archivelog mode)-> 非归档模式(noarchivelog mode)。两种模式的切换步骤大致都是相同的,只是在细微处有所差别。当日志操作模式由归档模式切换到非归档模式的时候需要保证数据不需要介质恢复,也就是说数据库能正常打开。下面主要介绍一下数据库由非归档模式(noarchivelog mode)-> 归档模式(archivelog mode)。    

15、;       1. 关闭数据               shutdown,最好是正常关闭(不使用abort选项)           2. 备份数据库          

16、60;    为了防止在模式切换的时候发生不可预知的错误,请先备份一下数据库           3. 启动数据库到mount状态               SQL>startup mount        &#

17、160;      SQL>alter database archivelog;               SQL>alter system set log_archive_dest_1/log_archive_format . -如果有必要则修改归档目的,归档文件名等参数         &#

18、160;     SQL>alter database force logging;         -可选,强制记录日志。           4. 重启数据库      五. 相关参数简介         &#

19、160; 在oracle 10g R2中与归档相关的参数有:           SQL> show parameter archive;           NAME                  

20、               TYPE        VALUE           - - -           archive_lag_target   

21、                integer     3600           log_archive_config               

22、0;   string           log_archive_dest                     string           log_archi

23、ve_dest_1                   string      location=/u01/oradata/archive_sid           log_archive_dest_10     &#

24、160;            string           log_archive_dest_2                   string     

25、; SERVICE=tnsname           log_archive_dest_3                   string           log_archive_dest_4 

26、;                  string           log_archive_dest_5                   st

27、ring           log_archive_dest_6                   string           log_archive_dest_7    

28、;               string           log_archive_dest_8                   string 

29、60;         log_archive_dest_9                   string           log_archive_dest_state_1     

30、        string      enable           log_archive_dest_state_10            string      enable   

31、        log_archive_dest_state_2             string      enable           log_archive_dest_state_3     &#

32、160;       string      enable           log_archive_dest_state_4             string      enable  

33、60;        log_archive_dest_state_5             string      enable           log_archive_dest_state_6     

34、;        string      enable           log_archive_dest_state_7             string      enable &

35、#160;         log_archive_dest_state_8             string      enable           log_archive_dest_state_9   

36、60;         string      enable           log_archive_duplex_dest              string      

37、     log_archive_format                   string      arch_%t_%s_%r           log_archive_local_first  &#

38、160;           boolean     TRUE           log_archive_max_processes            integer     2  &

39、#160;        log_archive_min_succeed_dest         integer     1           log_archive_start          

40、;          boolean     FALSE           log_archive_trace                    integer &

41、#160;   0           remote_archive_enable                string      true           standb

42、y_archive_dest                 string      ?/dbs/arch           其中log_archive_dest_n为归档日志存放的地址,可以使远程的也可以是本地。在10g r2中最多支持10个归档目的地(这个数目也就限制了standby

43、的数量最多有9个);与之相对应的是log_archive_dest_state_n,此参数决定了log_archive_dest_n的设置是否启用。参数log_archive_format确定了归档日志文件的名称%t表示归档线程号,%s表示日志序列号,t%是重置日志ID(包含时间戳)。参数log_archive_max_processes确定了启动多少个归档进程。这几个参数对于我们来说是比较重要的,当然其他的参数也需要了解,具体的介绍请参考oracle administrator guid        

44、 =原文地址:一. 确认日志工作模式:1.查询v$databaseSQL> select log_mode from v$database;LOG_MODE-ARCHIVELOG表明目前数据库运行在归档日志下,即数据库在归档日志模式下工作。2.执行命令archive log list;SQL> archive log list 归档模式,但是目前自动存档进程未启用!数据库日志模式            存档模式 自动存档   

45、;          禁用存档终点            D:oracleora92RDBMS最早的概要日志序列     214下一个存档日志序列   214当前日志序列           216二.修改日志工作模式1、由NOARCHIV

46、ELOG模式到ARCHIVELOG模式第一步骤:关闭数据库SQL> shutdown immediate;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。第二步骤:启动数据库至MOUNT状态SQL> startup mount;ORACLE 例程已经启动。Total System Global Area 135338868 bytesFixed Size                 

47、60; 453492 bytesVariable Size             109051904 bytesDatabase Buffers           25165824 bytesRedo Buffers             &#

48、160;   667648 bytes数据库装载完毕。第三步骤:执行命令alter database archivelog;进行修改SQL> alter database archivelog;数据库已更改。第四步骤:确认结果SQL> archive log list;数据库日志模式            存档模式自动存档           &

49、#160; 启用存档终点            D:oracleora92RDBMS最早的概要日志序列     183下一个存档日志序列   185当前日志序列           185数据库已经运行在归档日志模式下了。第五步:打开数据库,将数据库改变至OPEN状态SQL> alter database open;

50、60;数据库已更改。2、由ARCHIVELOG模式到NOARCHIVELOG模式第一步骤:关闭数据库SQL> shutdown immediate;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。第二步骤:启动数据库至MOUNT状态SQL> startup mount;ORACLE 例程已经启动。Total System Global Area 135338868 bytesFixed Size              

51、     453492 bytesVariable Size             109051904 bytesDatabase Buffers           25165824 bytesRedo Buffers          

52、;       667648 bytes数据库装载完毕。第三步:执行命令alter database noarchivelog;进行修改SQL> alter database noarchivelog;数据库已更改。第四步骤:确认执行结果SQL> select log_mode from v$database;LOG_MODE-NOARCHIVELOG我们看到数据库又改变为在非归档模式下工作了。第五步:打开数据库,将数据库改变至OPEN状态SQL> alter database open;数据库已更改。三.修改自动归档模式我们看到数据库尽管运行在归档模式下,但是自动归档进程并未启用,在这种状态下我们还需要手工执行归档命令,归档日志才可以产生,如何使得数据库自动归档?有种方法可以实现:1.第一种方式:将数据库加载至MOUNT状态,然后执行命令:alter system archive log start;SQL> alter system archive log start;系统已更改。查看结果:SQL> archive log

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论