将数据库配置为归档模式 20131225

来源:互联网 发布:番茄酱 知乎 编辑:程序博客网 时间:2024/05/28 20:18

查看归档状态为非归档

select log_mode from v$database;

------------ 

LOG_MODE

------------

NOARCHIVELOG

 

SQL>archiveloglist

------------------------------------------------- 

Database log mode      No Archive Mode

Automatic archival     Disabled

Archive destination    USE_DB_RECOVERY_FILE_DEST

------------------------------------------------- 


select * from v$archive_processes;

------------------------------------------------- 

PROCESS STATUS    LOG_SEQUENCE STAT

-------------------------------------------------

         0 STOPPED               0 IDLE

         1 STOPPED               0 IDLE

   ……

-------------------------------------------------


 

修改为归档模式.首先要关闭数据库,启动到mount状态.

SQL>shutdownimmediate

SQL>startupmount


修改为归档模式

SQL>alterdatabasearchivelog;


oracle 9i还要设置log_archive_start 这是个静态参数,oracle10g则不用设置了.

SQL>altersystemset log_archive_start=true scope=spfile;

 

验证修改结果

select log_modefrom v$database;

 

LOG_MODE

-------------------

ARCHIVELOG

-------------------

 

打开数据库

SQL>alterdatabaseopen;

 

设置归档格式

log_archive_format是设置归档命名规则的静态参数,设置后重启数据库才生效.对log_archive_dest和log_archive_dest_n指定的归档有效.

 

常用参数如下

%s:包含日志序列号作为文件名的一部分
%t:包含线程号作为文件名的一部分
%r:包含重置日志ID可确保归档日志文件名是唯一的,甚至在使用某些高级恢复技术重置了日志序列号之后也是如此
%d:包含数据库ID作为文件名的一部分

resetlogs防止恢复的时候会报错,归档默认文件扩展名是dbf,习惯设置成arc.


格式必须包含%s,%t和%r. 


%d是可选的,但多个数据库共享一个归档日志目录,则必须包含这个通配符.

 例如:<dbname>_%t_%s_%r.arc


-------------------------------
selectnamefrom v$database;

NAME

-------------------------------

BOB

------------------------------- 

SQL>alter system set log_archive_format='bob_%t_%s_%r.arc'scope=spfile;

 

重启数据库才生效.

SQL>archiveloglist

-------------------------------------------------------- 

Databaselogmode             ArchiveMode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

-------------------------------------------------------- 

SQL>altersystemswitch logfile;


archive变成Enabled,我们没有设置归档目的地,默认USE_DB_RECOVERY_FILE_DEST使用DB_RECOVERY_FILE_DEST目录,也就是我们常说的闪回目录.

 

切换日志

SQL>altersystemarchive log current; --先归档再切换

SQL>altersystemswitch logfile; --先切换至于能不能归档再说

 

查看归档进程,开启了2个归档进程

select *from v$archive_processes;

 

   PROCESS STATUS     LOG_SEQUENCE STAT

---------- ---------- ------------ ----

         0 ACTIVE                0 IDLE

         1 ACTIVE                0 IDLE

         2 STOPPED               0 IDLE

    ...

 

10版本的archivelogstop/startaltersystemarchivelogstop/start命令已经不用了,只要在归档模式下就是自动归档模式.

 

设置归档目录

默认的归档目录(Archive destination)是:USE_DB_RECOVERY_FILE_DEST,如果取消DB_RECOVERY_FILE_DEST参数的设置,就会找standby_archive_dest参数,默认是'?/dbs/arch'但是没有真实目录存在,所以虽然能开启归档但是不能实现归档.

 


先将此参数log_archive_dest设为空,然后再指定新的归档路径.

 alter system set log_archive_dest=''scope=spfile ;


比如要配置两个归档路径: 

 altersystemset log_archive_dest_1='location=D:\oracle\product\10.2.0\ARCHIVELOG1 reopen=500';

 alter system set log_archive_dest_2='location=D:\oracle\product\10.2.0\ARCHIVELOG2 reopen=500';

   

设置归档日志文件名称

 altersystemsetlog_archive_format='bob_%t_%s_%r.arc'scope=spfile;

 

重启数据库实例后,所有设置生效


再看下新生成的归档日志

 select *fromv$archived_log;

0 0
原创粉丝点击