--對日誌組進行管理使用的是alter命令
alter database add logfile group --新增日誌組,group 後面不加編號的話,新生成的日誌組會按照現有的日誌組編號順序排列,手動新增編號就會按照編號生成對應日誌組順序。
alter database add logfile group 4 ('/u01/redo04-1.log','/u01/redo04-2.log','/u01/redo04-3.log') size 100m; --新建日誌組並增加是三個重做日誌檔案,結合上一章說講,乙個日誌組內建議建立三個以上的日誌檔案,所以我在/u01路徑下建立了三個重做日誌,建立完後可以通過v$log和v$logfile檢視是否建立成功。
alter database drop logfile group 4; --刪除日誌組,但不會刪除已經在硬碟上建立的物理日誌檔案,需要手動進入到該目錄下自行刪除。(可以加入include的引數,執行alter同時可以把物理檔案也一併刪除)
alter database add logfile member '/u01/redo04-4.log' to
group 4; --為日誌組4增加乙個重做日誌,建議在新的資料庫上線時,可以直接刪除整個日誌組,再新增新的日誌檔案。
alter database drop logfile member '/u01/redo04-4.log'; --刪除現有日誌組內的重做日誌。
以上基本就是對日誌組和重做日誌的基本管理,::有一點需要說明的是,在刪除現有的重做日誌時,我們可以先用alter system switch logfile;
先切換到新的日誌組讓資料庫進行寫入再刪除,避免正在寫入的同時刪除日誌組內的日誌檔案造成資料丟失;::
在資料庫前期設計規劃的時候,我們可以將資料庫自帶的三個重做日誌組刪除,建立乙個新的日誌組作為當前使用狀態(current),再建立其他的日誌組和日誌檔案,::為什麼要這麼做?因為我們可以指定日誌檔案存放在不同的磁碟路徑下,避免多個日誌組或多個日誌檔案都存放在同乙個磁碟路徑下,遇到突發情況或故障導致所有日誌不可用的情況發生?::
⚠️有一點需要注意,刪除日誌檔案前,檢查是否有備份。
首先要說的一點,建議大家資料庫都採用「歸檔模式」,沒有什麼理由選擇非歸檔模式。——————————————和歸檔相關的一些引數––––––––––––––––––––
show parameter log_archive_%;
首先我們上面這條語句的結果看到,有個name名為log_archive_dest的記錄,這裡的dest是代表destination(目的地)的意思,意思就是歸檔日誌的存放位址;而我們會發現它有31個log_archive_dest_數字的name,因為資料庫可以將歸檔日誌備份成31處路徑,由此可見歸檔日誌對於資料庫的重要性,但是歸檔日誌路徑是需要手動設定的。
--接下來介紹下怎麼設定歸檔日誌路徑
1. 首先在伺服器路徑下建立兩個資料夾,mkdir /u01/11 22(我建立了11和22兩個名字的資料夾)
2. 接著回到sqlplus,用管理員身份登陸
3. alter system set log_archive_dest_1 ='location=/u01/11 mandatory'; --這裡說明一下,我為log_archive_dest_1這一處路徑設定歸檔日誌儲存路徑,位址為我在第一步建立的/u01/11資料夾內,而 mandatory的意思:上一章就講到當日誌組內的日誌檔案都已經滿的時候,會回頭到第乙個日誌組重新寫入,這時如果開啟了歸檔模式,就會先將第乙個日誌組內的重做日誌備份後再進行寫入;這裡有乙個問題:如果資料庫正準備對正在進行歸檔重做日誌的時候寫入呢?意思是歸檔需要時間,但是這時資料庫又滿了,就會選擇覆蓋寫入,那這時能不能允許它寫入呢。
這裡針對上面這種情況就會涉及到三個引數選項:
optional:(預設值,再不新增任何引數的情況下會資料庫選擇的值)如果在設定loacation後面加上此塊引數,就會告訴資料庫,無論是否歸檔完成,還是正在歸檔,都會覆蓋寫入新的資料到日誌組內的日誌檔案中。
mandatory:在location後面加上此塊引數,就會告訴資料庫,必須要等歸檔完成後,才能進行對日誌檔案的覆蓋寫入。
reopen:這個是跟mandatory引數一起使用,意思是歸檔的頻率,預設為300秒。
4. 這裡我將(log_archive_dest_2也設定了乙個路徑,目前是已經設定了兩個歸檔日誌存放路徑)alter system set log_archive_dest_2 ='location=/u01/22 mandatory';
5. 目前已將兩個歸檔日誌路徑設定完成,現在去剛剛建立的資料夾下發現還是沒有任何檔案,因為只有才觸發歸檔的時候,才會產出檔案。
6. 這裡我們做個實驗,手動歸檔;什麼情況下會歸檔:
(1)日誌組內的日誌檔案寫滿的時候。
(2)手動切換日誌組,在active(活動)的狀態下。
我們採用第二種方法:
alter system switch logfile;--切換日誌組並且切換前的日誌組還處於活動狀態,這個時候再回到剛剛建立的11和22兩個資料夾下面就會發現已經生成了兩個dbf的歸檔日誌檔案了。
7. ⚠️建議歸檔日誌存放路徑放在不同硬碟下面,避免意外發生導致全部歸檔檔案不可用。
oracle資料庫恢復與備份
一 oracle資料庫恢復 1.恢復剛才刪除的一條資料 delete from emp e where e.empname smith select from flashback transaction query f where f.table name emp undo sql下面的語句為剛才刪...
oracle資料庫備份與恢復
一 使用資料幫浦備份資料 1.建立目錄物件並授權 connect sys password as sysdba create directory dir1 as e dump1 create directory dir2 as e dump2 grant read,write on director...
Oracle資料庫備份與恢復 增量備份
rman乙個強大的功能是支援增量備份,增量備份中心思想就是減少備份的資料量,我們不需要在從頭開始備份了,只需要備份自上次已備份之後的資料塊即可。關於incremental增量備份級別 oracle 9i 共有五種級別 0 1 2 3 4,0級最高 4級最低,0級是1級的基礎以此類推。oracle 1...