今天數據庫在重啓後,打開數據庫時發生以下錯誤:
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-16038: log 1 sequence# 62 cannot be archived
ORA-19504: failed to create file ""
ORA-00312: online log 1 thread 1: '/oracle/oradata/zcglapp/redo01a.log'
原來是有一個日誌不能歸檔,查看是那個日誌組的文件不能歸檔。
SQL> select group#,sequence# from v$log;
GROUP# SEQUENCE#
---------- ----------
1 62
3 64
2 63
原來是日誌組一的一個日誌不能歸檔。剛上線的系統,沒有業務在跑,先想辦法把數據庫打開再說:
SQL> alter database clear unarchived logfile group 1;
Database altered.
SQL> alter database open;
Database altered.
查看歸檔位置:
SQL> show parameter archive
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
log_archive_config string
log_archive_dest string
log_archive_dest_1 string location=/archive
log_archive_dest_10 string
log_archive_dest_2 string
log_archive_dest_3 string
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_6 string
log_archive_dest_7 string
...
# ls -l |grep archive
drwxr-xr-x 2 root system 256 Oct 28 13:12 archive
原來歸檔位置權限問題,oracle用戶沒有往該目錄寫文件的權限。
更改該目錄的權限:
# chown oracle:oinstall /archive
# chmod 775 /archive
# ls -l |grep archive
drwxrwxr-x 2 oracle oinstall 256 Oct 28 13:12 archive
更改好後,再試一下:
# su - oracle
$ sqlplus / as sysdba
SQL> alter system switch logfile;
System altered.
SQL> exit
$ ls -l /archive
total 193816
-rw-r----- 1 oracle oinstall 60623872 Nov 12 11:19 1_63_668354505.dbf
-rw-r----- 1 oracle oinstall 13322240 Nov 12 11:19 1_64_668354505.dbf
-rw-r----- 1 oracle oinstall 25272320 Nov 12 11:19 1_65_668354505.dbf
可見問題以解決。原來是目錄權限導致的以上錯誤!