Oracle 資料庫日常維護 1

2021-08-26 03:53:47 字數 1465 閱讀 7984

七、資料庫壞塊的處理

當 oracle資料庫出現壞塊時,oracle會在警告日誌檔案(alert_sid.log)

中記錄壞塊的資訊:

ora-01578: oracle data block corrupted (file # 7, block # )

ora-01110: data file : '/oracle1/oradata/v920/oradata/v816/users01.dbf'

其中,<afn>代表壞塊所在資料檔案的絕對檔案號,代表壞

塊是資料檔案上的第幾個資料塊

出現這種情況時,應該首先檢查是否是硬體及作業系統上的故障導致

oracle資料庫出現壞塊。在排除了資料庫以外的原因後,再對發生壞塊的資料

庫物件進行處理。

1.確定發生壞塊的資料庫物件

select tablespace_name,

segment_type,

owner,

segment_name

from dba_extents

where file_id =

and between block_id and block_id+blocks-1;

2.決定修復方法

如果發生壞塊的物件是乙個索引,那麼可以直接把索引drop 掉

後,再根據表裡的記錄進行重建;

如果發生壞塊的表的記錄可以根據其它表的記錄生成的話,那麼可

以直接把這個表drop 掉後重建;

如果有資料庫的備份,則恢復資料庫的方法來進行修復;

如果表裡的記錄沒有其它辦法恢復,那麼壞塊上的記錄就丟失了,

只能把表中其它資料塊上的記錄取出來,然後對這個表進行重建。

3.用oracle提供的dbms_repair 包標記出壞塊

exec dbms_repair.skip_corrupt_blocks('','');

4.使用create table as select 命令將表中其它塊上的記錄儲存到另一

張表上create table corrupt_table_bak

asselect * from corrupt_table;

5.用drop table命令刪除有壞塊的表

drop table corrupt_table;

6.用alter table rename命令恢復原來的表

alter table corrupt_table_bak

rename to corrupt_table;

7.如果表上存在索引,則要重建表上的索引

八、作業系統相關維護

dba要注意對作業系統的監控:

l 檔案系統的空間使用情況(df -k),必要時對oracle 的警告日誌及trc 文

件進行清理

l 如果 oracle 提供網路服務,檢查網路連線是否正常

l 檢查作業系統的資源使用情況是否正常

l 檢查資料庫伺服器有沒有硬體故障,如磁碟、記憶體報錯

日常檢查和維護資料庫

1.檢日誌查作業系統 more var log messages 記錄作業系統常見的系統和服務錯誤資訊 more var log lastlog 使用者最後一次登入的時間,登入ip more var log secure 記錄使用者和工作組變化情況,使用者登入認證情況 more var log cr...

資料庫日常應用維護文件

一 啟動和停止資料庫 1 正常生產環境下不建議隨意啟動和停止資料庫 2 可以使用集群啟動和停止資料庫。cmruncl 或是cmhaltcl f 3 也可以手工方式啟 停資料庫 用oracle使用者登入,執行 sqlplus nolog 在sql 提示符下輸入conn as sysdba 然後執行st...

Oracle資料庫中索引的維護 1

本文只討論oracle中最常見的索引,即是b tree索引。本文中涉及的 資料庫 版本是oracle8i。一.檢視系統表中的使用者索引 在oracle中,system表是安裝資料庫時自動建立的,它包含資料庫的全部資料字典,儲存過程 包 函式和觸發器的定義以及系統回滾段。一般來說,應該盡量避免在sys...