oracle从备份提取归档,Oracle10备份与恢复之归档模式配置

本文详细介绍了Oracle数据库的两种日志操作模式:NONARCHIVELOG和ARCHIVELOG。NONARCHIVELOG模式适用于常规恢复,不保留重做日志历史,而ARCHIVELOG模式适合介质恢复,保留重做日志历史。转换日志模式需以SYSDBA或SYSOPER身份执行,并涉及数据库的备份和恢复策略。此外,还讲解了如何配置归档参数,包括归档日志的位置、名称格式以及控制归档位置的方法。
摘要由CSDN通过智能技术生成

Oracle 据库包含两种日志操作模式:NONARCHIVELOG和ARCHIVELOG,当建立数据库时如果不指定日志操作模式,则默认日志操作模式为NONARCHIVELOG。

1、NONARCHIVELOG模式

非归档模式是指不保留重做记录的日志操作模式。这种模式只能适合于例程恢复(如断电),不适合于介质恢复。当日志处在NONARCHIVELOG模式时,如果进行日志切换,那么在不保留原有重做日志内容的情况下,日志组的新内容会直接覆盖其原有内容。特点:

1)、当检查点完成之后,后台进程LGWR进程可以覆盖原有重作日志内容。

2)、如果数据库备份之后重做日志的内容已经被覆盖,那么当数据文件出现介质失败时,数据库只能恢复到过去的某个完全备份点

3)、数据库处于OPEN状态时,不能够备份数据库

4)、执行数据库备份时,只能只能SHUTDOWN IMMEDIATE、SHUTDOWN NORMAL、SHUTDOWN TRANSACTIONAL关闭数据库。

5)、执行数据库备份时,必须备份所有的控制文件和数据文件。

2、ARCHIVELOG模式

归档模式是指保留重做日志历史记录的日志操作模式,这种模式适合于例程和介质恢复,当数据库处于归档模式时,后台进程LGWR会在日志切换的时候,后台进行ARCH会自动将重做日志的内容复制到归档日志文件中。特点:

1、可以在数据库处于OPEN状态备份数据库

2、出现介质失败是,除了SYSTEM表空间之外,其他表空间的数据文件可以在OPEN状态恢复。

3、数据库恢复可以执行完全恢复,也可以执行基于时间点的恢复。

二.改变日志操作模式

Oracle建议OLTP(online transaction Process)系统应采用ARCHIVELOG模式,数据仓库(data warehouse)系统采用NONARCHIVELOG。另外开发的时候可以采用NONARCHIVELOG,正式投入使用时使用ARCHIVELOG。

改变日志操作模式必须以SYSDBA或者SYSOPER身份执行,具体的操作如下:

1、检查日志操作模式

Sqlplus sys/manager@demo as sysdba

SQL>select log_mode from v$database;

2、关闭数据库

SQL>shutdown immediate;

SQL>startup mount;

3、改变日志操作模式

SQL>alter database archivelog;

SQL>alter databse open;

注意:从oracle 10g开始,数据库设置为archivelog模式后,ARCn进程自动启动,而之前的版本需要配置初始化参数log_archive_start=true;

SQL>ALTER SYSTEM SET log_archive_start=true SCOPE=spfile;.

三.配置其他归档参数

从oracle 10g开始,归档日志会存放在快速恢复区所对应的目录(对应初始化参数db_recovery_file_dest。如需要改变归档日志文件的位置或名称,需要进行修改配置参数。

1、配置归档日志文件的名称格式

初始化参数log_archive_format设置归档日志的名称格式,使用的通配符如下:

%s:日志序列号

%S:日志序列号(带前导0)

%t:重做线程编号

%T:重做线程编号(带前导0)

%d:数据库ID号

%r:RESETLOGS的ID值

注意:oracle 10g开始,%s、%t、%r是必须的,因为log_archive_format参数是静态的的,所以修改之后需要重启数据库。示例如下:

SQL>alter system set log_archive_format=’%s_%t_%r.log’ scope=spfile;

SQL>shutdown;

SQL>startup;

2、使用log_archive_dest_n配置归档的位置

初始化参数log_archive_dest_n用于指定多个归档日志的位置,n表示1到10的整数。使用这个参数不仅可以配置本地多个归档日志的位置,也可以配置远程归档位置。该参数与log_archive_dest(指定第一个位置)与log_archive_duplex_dest(指定第二个位置)的区别如下:

1)log_archive_dest_n可以配置本地的归档位置和远程的归档位置,而其他两个只能配置本地归档位置。

2)log_archive_dest_n可以配置10个归档位置,而其他两个只能配置最多两个归档位置。

3)log_archive_dest_n不能与其他两个同时使用。

当使用初始化参数log_archive_dest_n时,需要location选项指定本地目录。当配置远程归档位置时,需要使用service选项指定到备用数据库的网络服务名。

使用示例:

SQL>alter system set log_archive_dest_1=’location=C:\demo\log optional’;

SQL>alter system set log_archive_dest_2=’location=D:\demo\log mandatory’;

SQL>alter system set log_archive_dest_1=’service=standby’;(远程归档)

当使用初始化参数log_archive_dest_n配置归档位置时,可以在归档位置上指定optional或者mandatory选项。当指定mandatory选项时,还可以设置reopen属性。作用如下:

1)optional是默认的选项,表示无论归档是否成功,都可以覆盖重做日志

2)mandatory表示只有归档成功之后才能覆盖重做日志。

3)reopen 用于指定重新归档的时间间隔,默认值为300秒。注意reopen选项必须跟在mandatory选项后。

为了强制归档到特定位置,必须指定mandatory选项。下面以强制归档到目录D:\archivelog为例说明mandatory和optional的使用方法。

SQL>alter system set log_archive_dest_1='location=c:\archivelog optional';

SQL>alter system set log_archive_dest_2='location=c:\archivelog mandatory';

3.使用log_archive_dest_state_n控制归档的位置

如果归档的位置出现磁盘空间不够或者出现损坏,那么归档将失败,为了解决这个问题,可能需要临时禁用相应的规定位置,而这个参数正好可以用来控制该规定日志位置是否可用。Enable表示可用(默认值),而defer表示不可用。示例:

SQL>alter system set log_archive_dest_state_2=defer;

上述例子表示禁用了第二个归档位置后,当执行日志切换时,不会在对应的归档位置生成归档日志。

4.使用log_archive_max_processes控制归档进程的个数

默认情况下,oracle会启动两个归档进程,示例:

SQL>alter system set log_archive_max_processes=4;

5.使用log_archive_min_succeed_dest控制最小日志归档成功个数

SQL>alter system set log_archive_min_succeed_dest=2;

执行以上语句之后,如果本地生成的归档日志数小于两个,就不能覆盖重做日志。

6.使用log_archive_dest配置归档位置

如果只需要将归档日志存放到本地目录,则可以使用log_archive_dest)或log_archive_duplex_dest。注:这两个参数是为了与早期版本兼容而留的,并且他们不能与log_archive_dest_n或db_recovery_file_dest同时使用。

四。显示归档信息

1、使用archive log list

2、显示归档日志信息

SQL>select name,sequence#,first_changed# from v$archived_log;

3、显示归档日志的位置

SQL>select dest_name,destination,status from v$archive_dest;

4、显示日志历史信息

SQL>select * from v$loghist;

5、显示归档进程信息

SQL>select * from v$archive_processes;

6、显示日志操作模式

SQL>select name,log_mode from v$database;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值