oracle归档日志

来源:互联网 发布:淘宝排名权重 编辑:程序博客网 时间:2024/04/30 10:39

一、什么是oracle归档模式?

oracle数据库可以运行在归档模式(ARCHIVELOG)和非归档模式(NOARCHIVELOG)下。

在非归档模式下,每次联机重做日志文件已满并发生日志切换是,都要覆盖原来联机重做日志文件。

在归档模式下,必须将已满的联机重做日志文件进行归档才能被覆盖。这样DBA可以使用数据库物理备份和归档的联机重做日志文件恢复数据库,而不会丢失任何已经提交的数据。

二、oracle归档模式的好处

数据库使用归档方式运行时才可以进行灾难性恢复。 归档日志模式和非归档日志模式的区别非归档模式只能做冷备份,并且恢复时只能做完全备份.最近一次完全备份到系统出错期间的数据不能恢复. 归档模式可以做热备份,并且可以做增量备份,可以做部分恢复。

三、配置数据库的归档模式

1、查看数据库的归档模式

SQL> archive log list;
Database log mode       No Archive Mode
Automatic archival       Disabled
Archive destination       /home/oracle/flash_recovery_area/ORCL/archivelog/
Oldest online log sequence     293
Current log sequence       295



以上信息得知:

Adatabase log mode表示数据库处于非归档模式下

Automatic archival 表示自动归档功能被禁用

Archive destination表示启用归档模式时归档日志保存的路径

Oldest online log sequence表示最早的重做日志序列号

Current log sequence 表示当前日志序列号

295号日志的归档文件第一个备份的名称默认为1_295_831914581.dbf

2、关闭数据库,然后转载数据库

注意只有在数据库处于mount状态下才能修改日志操作模式,关闭数据库是不能使用shutdown abort命令。

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount 
ORACLE instance started.


Total System Global Area 1590267904 bytes
Fixed Size    1336792 bytes
Variable Size 1224739368 bytes
Database Buffers  352321536 bytes
Redo Buffers   11870208 bytes
Database mounted.


3、修改归档模式

SQL> alter database archivelog;


Database altered.


4、修改相应初始化参数使数据库处于自动归档模式(10g以前需要)

要在实例启动前启用自动归档功能,需要将初始化参数LOG_ARCHIVE_START 的值改为TRUE。步骤如下:

(1)以管理员身份登录数据库

sqlplus / as sysdba

(2)修改服务器端初始化参数

alter system set log_archive_start=true scope=spfile;

(3)重新启动数据库,是参数生效

shutdown

startup

注意:重oracle10g开始log_archive_start参数已经被废除

5、打开数据库并查看归档模式

SQL> alter database open;


Database altered.


SQL> archive log list;
Database log mode       Archive Mode
Automatic archival       Enabled
Archive destination       /home/oracle/flash_recovery_area/ORCL/archivelog/
Oldest online log sequence     293
Next log sequence to archive   295
Current log sequence       295


四、配置数据库从归档模式变成非归档模式

1、同样要关闭数据库,然后转载数据库

2、alter database noarchivelog

如果出现如下错误(ORA-38774)

SQL> alter database noarchivelog ;
alter database noarchivelog
*
ERROR at line 1:
ORA-38774: cannot disable media recovery - flashback database is enabled

需要先关闭flashback再运行alter database noarchivelog命令

SQL> alter database flashback off;


Database altered.


SQL> alter database noarchivelog;


Database altered.


3、打开数据库。

0 0
原创粉丝点击