開發伺服器的硬碟空間不夠用了。本來某個分割槽昨天才清出10g剩餘空間,但今天早上oracle已經無法訪問,上去看,硬碟空間為0。真的很恐怖,啥東西在狂吃硬碟?後來發現是oracle自己。它的rdbms(\product\12.1.0\dbhome_1\rdbms)目錄下,已經有檔案485g之多!絕大部分都是一些歸檔檔案。
原來,oracle有所謂歸檔模式(archivelog mode)和非歸檔模式(noarchivelog mode)之分。
歸檔模式和非歸檔模式,都跟日誌有關。
眾所周知,日誌在資料庫中的地位極其重要,如果我沒有理解錯,我們在運算元據庫,比如增刪改,資料庫會先將動作記入日誌,然後再執行資料庫操作。假如中途斷點或崩潰什麼的,資料庫重啟以後,它會先跟日誌對照,發現日誌有記錄,但沒有真正落實的動作,會及時補上。dba有時也可以根據日誌來做一些資料恢復。
oracle自然也少不了日誌。它有兩份日誌檔案,交替使用。當乙份日誌寫滿,就會切換到另乙份繼續寫。非歸檔模式下,當發生日誌切換時,即將要寫的這份不管之前有沒有內容,都直接覆蓋,從頭開始寫起。而歸檔模式下,則在寫之前,先檢查它有沒有歸檔,就是有沒有備份,沒有的話,先備份出乙份,再寫。
這樣的話,歸檔模式下,日誌本身也是有備份的。當oracle例項或介質損壞,比如日誌都壞了,那麼依靠這些備份,還可以恢復。就是說,歸檔模式安全性更高。所以生產環境裡的oracle,都設為歸檔模式。
但是,歸檔模式要跟備份結合起來才比較有意義。因為這些歸檔的日誌,會越積越多,只有執行了資料庫備份以後,才會刪除。我們伺服器因為是開發伺服器,沒有執行備份,歸檔檔案就越來越多,到現在居然有485g之多!
值得一提的是,oracle12c,預設是非歸檔模式。當初安裝的同事,不知是咋想的,就開啟了歸檔模式。oracle的備份是咋樣的,我目前還不知道。我想執行export操作應該不是備份。這個我還要了解一下。
oracle12c的資料庫分為容器資料庫和外掛程式資料庫,外掛程式資料庫插在容器資料庫裡。這個歸檔模式的轉換,要在容器資料庫裡進行。以前我只知道外掛程式資料庫寄生在容器資料庫裡,共享容器資料庫的連線等資源,沒想到歸檔模式之類它也說不上什麼話。
歸檔模式/非歸檔模式的切換流程如下:
1、進入容器資料庫
命令列方式下
c:\users\cq>sqlplus sys/口令@容器資料庫 as sysdba;
2、檢視歸檔/非歸檔模式
sql> select name, log_mode from v$database;
log_mode的值為 noarchivelog 表示資料庫處於非歸檔模式
log_mode的值為 archivelog 表示資料庫處於歸檔模式
3、檢視更詳細一點的資訊
sql> archive log list;
資料庫日誌模式 非存檔模式
自動存檔 禁用
.0\dbhome_1\rdbms
最早的聯機日誌序列 27248
當前日誌序列 27250
注意以上資訊是我現在查詢的,切換之前的資訊我沒有保留
4、開始切換,首先關閉資料庫
shutdown immediate;
5、啟動資料庫到mount狀態
startup mount;
所有外掛程式資料庫都處於非掛載狀態
6、將資料庫切換為非歸檔模式
alter database noarchivelog;
7、檢視的資料庫的歸檔資訊
archive log list;
或者select name, log_mode from v$database;
8、開啟資料庫
alter database open;
搞定!
從非歸檔模式切換到歸檔模式類似。唯一不同的命令是
alter database archivelog;
可以刪掉。我一口氣刪了,空出了485g Oracle12C開啟歸檔模式
安裝oracle12c後,預設是沒有開啟歸檔模式的,可按以下方式開啟。1 檢視歸檔相關資訊 可以看到資料庫未開啟歸檔。2 關閉資料庫 3 啟動資料庫至mount狀態 4 開啟資料庫歸檔模式 alter database archivelog 再檢視歸檔相關資訊 可以看到,歸檔模式已開啟,歸檔日誌目錄...
Oracle歸檔模式與非歸檔模式
oracle歸檔模式與非歸檔模式 一。檢視oracle資料庫是否為歸檔模式 1 1.select name,log mode from v database name log mode query noarchivelog 2.使用archive log list 命令 database log m...
Oracle歸檔模式與非歸檔模式設定
oracle歸檔模式與非歸檔模式設定 oracle的日誌歸檔模式可以有效的防止instance和disk的故障,在資料庫故障恢復中不可或缺,由於oracle初始安裝模式為非歸檔模式,因此需要將其設定為歸檔模式,下面就其方法和步驟做一些總結,雖然簡單,但這是管理oracle資料庫必備之工,故有如下陳述...