Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

54

积分

0

好友

0

主题
1#
发表于 2012-4-30 11:04:37 | 查看: 5601| 回复: 3
当没有设置log_archive_dest  log_archive_dest_n 时,log_archive_format的格式没有应用在当前归档下,本地的归档的日志格式 是什么?
     当前archive在flash_recovery_area文件夹下,且archive 后,使用日期作为文件夹把archive_log进行分类,每一天一个文件夹,
设置 log_archive_dest_n后,没有用到日期作为文件夹把archive_log进行分类,假如我要同之前的格式一致,如何实现?(之前的是O1_MF_1_8_7PJH650G_.ARC,我把log_archive_format设置为%t_%s_%r.arch 感觉与之前不一样。)
2#
发表于 2012-4-30 23:21:01
SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE    11.2.0.3.0      Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production


SQL> show parameter recover

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /s01/orabase/fast_recovery_area


SQL> show parameter log_archive_format

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_format                   string      %t_%s_%r.dbf

SQL> archive log list   
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     139
Next log sequence to archive   141
Current log sequence           141

SQL> alter system archive log current;

System altered.



SQL> set linesize 140     
SQL> select name from v$archived_log;

NAME
--------------------------------------------------------------------------------------------------------------------------------------------
/s01/orabase/fast_recovery_area/G11R23/archivelog/2012_04_30/o1_mf_1_140_7sxtntt0_.arc




SQL> alter system set log_archive_dest_1='location=/s01/arch';

System altered.

SQL> alter system archive log current;

System altered.

SQL>  select name from v$archived_log;

NAME
------------------------------------------------------------------------------------------------------------------------------------------------------
/s01/orabase/fast_recovery_area/G11R23/archivelog/2012_04_30/o1_mf_1_140_7sxtntt0_.arc
/s01/arch/1_141_773077545.dbf

o1_mf_1_140_7sxtntt0_.arc = > o1_mf_%t_%s_%u_.arc         


7sxtntt0 是%u 生成的 随即唯一数字




这是USE_DB_RECOVERY_FILE_DEST 独有的archive format,这个格式中没有%r resetlogs ID that ensures unique names are constructed for the archived log files across multiple incarnations of the database

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

System altered.

SQL> create pfile from spfile;

File created.

SQL> startup force;
ORA-19905: log_archive_format must contain %s, %t and %r

从10g 开始 log_archive_format 必须带有 %s, %t and %r 参数

[oracle@nas dbs]$ oerr ora 19905
19905, 00000, "log_archive_format must contain %%s, %%t and %%r"
// *Cause: log_archive_format is missing a mandatory format element.
//         Starting with Oracle 10i, archived log file names must contain each
//         of the elements %s(sequence), %t(thread), and %r(RESETLOGS ID) to
//         ensure that all archived log file names are unique.
// *Action: Add the missing format elements to log_archive_format.


*.log_archive_format='o1_mf_%t_%s_%u_%r.arc'

SQL> show parameter log_archive_format

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_format                   string      o1_mf_%t_%s_%u_%r.arc




SQL> alter system set log_archive_dest_1='location=/s01/arch';

System altered.





SQL> select name  from v$archived_log;

/s01/arch/o1_mf_1_155_0_773077545.arc
/s01/arch/o1_mf_1_156_0_773077545.arc


==》在非USE_DB_RECOVERY_FILE_DEST时  %u 变量无效 总是为0

结论:

在11gR2 中非USE_DB_RECOVERY_FILE_DEST时  %u 变量无效 总是为0 , 且log_archive_format必须带有 %r 变量以保证 归档日志文件名唯一,USE_DB_RECOVERY_FILE_DEST时归档日志名比较特殊为 o1_mf_%t_%s_%u_.arc

回复 只看该作者 道具 举报

3#
发表于 2012-5-1 16:05:25
使用USE_DB_RECOVERY_FILE_DEST,在归档目录下,每天生成的archive log在同一文件夹下,文件夹名为当天日期,如:2012_05_01,  能否在非USE_DB_RECOVERY_FILE_DEST下,也达到这个目地。

回复 只看该作者 道具 举报

4#
发表于 2012-5-1 19:27:11
简单的 log_archive_dest_* + log_archive_format 参数不足以做到 self-organized 自组织的目录

除非 你使用了 DB_RECOVERY_FILE_DEST 或者 ASM 存储方案:

在ASM 下

SQL> show parameter log_archive_dest_1

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1                   string      LOCATION=+BACKUPDG


SQL> show parameter log_archive_format

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_format                   string      %t_%s_%r.dbf


SQL> select name from v$archived_log;

NAME
--------------------------------------------------------------------------------
+BACKUPDG/vprod/archivelog/2012_04_29/thread_2_seq_1.275.781835803
+BACKUPDG/vprod/archivelog/2012_04_29/thread_1_seq_6.276.781836215
+BACKUPDG/vprod/archivelog/2012_04_29/thread_1_seq_7.279.781837663
+BACKUPDG/vprod/archivelog/2012_04_29/thread_1_seq_8.281.781837663

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-15 14:26 , Processed in 0.051705 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569