USE_DB_RECOVERY_FILE_DEST惹的祸!

实施工作

  1. 数据库归档模式修改:

eashost:root:[/] smitty hacmp

orahost:root:[/oracle/arch_log]# smitty hacmp >>>  停止集群的应用服务。

orahost:root:[/oracle/arch_log]# ps –ef |grep ora 

eashost:root:[/]#ps –ef |grep eas    确认数据库和EAS应用已经停止

 

orahost:root:[/oracle/arch_log]# ln -s /usr/lib/libobk64.a $ORACLE_HOME/lib/libobk.a

                             修改系统连接文件,为tsm for oracle备份准备。

orahost:root:[/oracle/arch_log]#su – oracle

$sqlplus /nolog

SQL>conn /as sysdba

SQL> startup mount (将数据库启动到mount状态)

SQL> alter database archivelog; (修改数据为归档模式)

SQL> alter database open; (打开数据库)

SQL> archive log list;  (确认已经为归档模式)

数据库日志模式 存档模式

自动存档 启用

存档终点 USE_DB_RECOVERY_FILE_DEST

最早的联机日志序列 4033

下一个存档日志序列 4038

当前日志序列 4038

 

注意:oracle10默认是把存档终点设置为USE_DB_RECOVERY_FILE_DEST,所以归档日志默认是保存在oracle系统的闪回恢复区(Flash recovery area)的。默认的db_recovery_file_dest2G,所以一般建议将存档终点修改为操作系统的适当目录。

     由于归档日志太大,撑满了闪回恢复区,导致了923oracle数据挂起,集团的ERP不能使用;手动启动数据报ORA-00257错误

SQL> alter system set DB_RECOVERY_FILE_DEST_SIZE= 4G; 

      修改DB_RECOVERY_FILE_DEST_SIZE可以启动了。

      中午查了资料,了解了flash_recovery_area的东西;决定要archive log的备份目录改为系统目录。

SQL> select * from v$flash_recovery_area_usage;

FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES

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

CONTROLFILE                   0                         0               0

ONLINELOG                     0                         0               0

ARCHIVELOG                72.46                         0              51

BACKUPPIECE               26.84                         0               6

IMAGECOPY                     0                         0               0

FLASHBACKLOG                  0                         0               0

当时查看flash_recovery_area的使用,发现ARCHIVELOG的使用率为90多;

 

    

2009-9-23 中午

2、修改归档目录位置:

orahost:root:[/oracle]#mkdir arch_log

orahost:root:[/oracle]#chown –R oracle:oinstall ./arch_log

orahost:root:[/oracle]#chmod 775 ./arch_log

orahost:root:[/oracle/arch_log]#su – oracle

$sqlplus /nolog

SQL>conn /as sysdba

SQL> alter system set db_recovery_file_dest='';

      更改oracl系统,禁止往闪回恢复区放归档日志。

System altered.

SQL> alter system set log_archive_dest='/oracle/arch_log'

      更改数据库,归档日志的存档终点。

System altered.

SQL> archive log list

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /oracle/arch_log

Oldest online log sequence     4033

Next log sequence to archive   4038

Current log sequence           4038

你可能感兴趣的:(oracle)