Oracle 安裝目錄空間不夠處理

xz43發表於2011-03-01
    測試環境的Oracle資料庫是以前同事安裝的,整個oracle目錄的空間不到10G,做個稍微大點資料量的測試,就會報空間不足,而且還是非歸檔模式下,打算啟用歸檔模式做試驗,所以得徹底解決一下空間不足的問題。
    處理辦法也很簡單,就是在其他目錄下劃一塊空間,作為Oracle檔案新的存放位置。看了看,就/var目錄空間剩得多,不管了,就放這個下面了。
 
(1)root賬戶登入,建立目錄。
# cd /var
# mkdir -p oracledata/orcl
# chown -R oracle:oinstall oracledata/
# chmod -R 775 oracledata/
(2)oracle賬戶登入,給需要空間的表空間增加檔案。
SQL> alter tablespace TDD_DB add datafile '/var/oracledata/orcl/TED_DB' size 4096M autoextend on;
表空間已更改。
SQL>
(3)將歸檔日誌移到新目錄下。
SQL> select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER                         IS_
---------- ------- ------- ------------------------------ ---
         3         ONLINE  /oracle/database/orcl/redo03.log NO
         2         ONLINE  /oracle/database/orcl/redo02.log NO
         1         ONLINE  /oracle/database/orcl/redo01.log NO
SQL> alter database drop logfile group 3;
資料庫已更改。
SQL> alter database add logfile group 3 ('/var/oracledata/orcl/redo03.log') size 128M reuse;
資料庫已更改。
SQL> alter database drop logfile group 2;
alter database drop logfile group 2
*
第 1 行出現錯誤:
ORA-01623: 日誌 2 是例項 orcl (執行緒 1) 的當前日誌 - 無法刪除
ORA-00312: 聯機日誌 2 執行緒 1: '/oracle/database/orcl/redo02.log'
 
表明當前正在寫該日誌檔案,不允許刪除,必須切換當前的日誌檔案。

SQL> alter database drop logfile group 1;
資料庫已更改。
SQL> alter database add logfile group 1('/var/oracledata/orcl/redo01.log') size 128M reuse;
資料庫已更改。
SQL> select * from v$Log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
         1          1          0  134217728          1 YES UNUSED                       0
         2          1       4176   52428800          1 NO  CURRENT              111594871 01-3月 -11
         3          1          0  134217728          1 YES UNUSED                       0
由此可知,日誌2確實是 CURRENT  ,下面我們切換日誌。
SQL> alter system switch logfile;
系統已更改。
SQL> select * from v$Log;
    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
         1          1       4177  134217728          1 NO  CURRENT              111623103 01-3月 -11
         2          1       4176   52428800          1 NO  ACTIVE               111594871 01-3月 -11
         3          1          0  134217728          1 YES UNUSED                       0
SQL> alter database drop logfile group 2;
alter database drop logfile group 2
*
第 1 行出現錯誤:
ORA-01624: 日誌 2 是緊急恢復例項 kms (執行緒 1) 所必需的
ORA-00312: 聯機日誌 2 執行緒 1: '/oracle/database/orcl/redo02.log'
 
及時把日誌switch切換到1上面,可日誌2還是ACTIVE,需要手動checkpoint。

SQL> alter system checkpoint;

系統已更改。
SQL> select * from v$Log;
    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
         1          1       4177  134217728          1 NO  CURRENT              111623103 01-3月 -11
         2          1       4176   52428800          1 NO  INACTIVE             111594871 01-3月 -11
         3          1          0  134217728          1 YES UNUSED                       0
SQL> alter database drop logfile group 2;
資料庫已更改。
SQL> alter database add logfile group 2('/var/oracledata/orcl/redo02.log') size 128M reuse;
資料庫已更改。
 
至此,日誌已遷出預設目錄,表空間也得到擴充套件。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-688183/,如需轉載,請註明出處,否則將追究法律責任。

相關文章