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_dest是2G,所以一般建议将存档终点修改为操作系统的适当目录。
由于归档日志太大,撑满了闪回恢复区,导致了oracle数据挂起,手动启动数据报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_TYPEPERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE000
ONLINELOG000
ARCHIVELOG72.46051
BACKUPPIECE26.8406
IMAGECOPY000
FLASHBACKLOG000
当时查看flash_recovery_area的使用,发现ARCHIVELOG的使用率为90多;
2、修改归档目录位置:
orahost:root:[/oracle]#mkdir arch_log
orahost:root:[/oracle]#chown �CR oracle:oinstall ./arch_log
orahost:root:[/oracle]#chmod 775 ./arch_log
orahost:root:[/oracle/arch_log]#su �C 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 modeArchive Mode
Automatic archivalEnabled
Archive destination/oracle/arch_log
Oldest online log sequence4033
Next log sequence to archive4038
Current log sequence4038