天天看點

Oracle資料庫一樣平常維護手冊-1

在Oracle資料庫運轉時期,DBA應該對資料庫的運轉日志及表空間的行鬥氣候中斷監控,趁早發明資料庫中存在的題目。

一、Oracle正告日志檔案監控

Oracle在運轉程序中,會在正告日志檔案(alert_SID.log)中紀錄資料庫的一些運轉氣候:

●資料庫的啟動、關閉,啟動時的非預設參數;

●資料庫的重做日志切換氣候,紀錄每次切換的功夫,及如果由于檢討點(checkpoint)操縱沒有實行完成形成不能切換,會紀錄不能切換的緣由;

●對資料庫中斷的某些操縱,如樹立或删除表空間、增加資料檔案;

●資料庫爆發的錯誤,如表空間不夠、出現壞塊、資料庫内部錯誤(ORA-600)

DBA應該活期檢討日志檔案,憑證日志中發明的題目實時中斷措置懲罰

題目措置懲罰

啟動參數過失檢討初始化參數檔案

由于檢討點操縱或歸檔操縱沒有完成形成重做日志不能切換如果常常爆發何等的氣候,可以思量增加重做日志檔案組;想法主見子提高檢討點或歸檔操縱的依從;

有人未擔當權删除了表空間檢討資料庫的甯靜題目,能否密碼太大略;若有需要,除去某些使用者的系統權限

出現壞塊檢討能否是硬體題目(如磁盤本生有壞塊),如果不是,檢討是阿誰資料庫東西出現了壞塊,對這個東西中斷重建

表空間不夠增加資料檔案到呼應的表空間

出現ORA-600憑證日志檔案的内容檢查呼應的TRC檔案,如果是Oracle的bug,要實時打上呼應的更新檔

二、資料庫表空間行鬥氣候監控(字典經管表空間)

資料庫運轉了一段功夫後,由于不時的在表空間上樹立和删除東西,會在表空間上孕育發生少量的碎片,DBA應該實時了解表空間的碎片和可用空間氣候,以決意能否要對碎片中斷摒擋整頓或為表空間增加資料檔案。

​select tablespace_name, count(*) chunks , max(bytes/1024/1024) max_chunk from dba_free_space group by tablespace_name; ​

下面的SQL列出了資料庫中每個表空間的空閑塊氣候,如下所示:

​TABLESPACE_NAME CHUNKS MAX_CHUNK -------------------- ---------- ---------- INDX 1 57.9921875 RBS 3 490.992188 RMAN_TS 1 16.515625 SYSTEM 1 207.296875 TEMP 20 70.8046875 TOOLS 1 11.8359375 USERS 67 71.3671875​

其中,CHUNKS列浮現表空間中有幾答應用的空閑塊(每個空閑塊是由一些連氣兒的Oracle資料塊構成),如果何等的空閑塊過多,比如均勻到每個資料檔案上淩駕了100個,那麼該表空間的碎片環境就比拟重要了,可以考試考試用以下的SQL敕令中斷表空間相鄰碎片的接合:

alter tablespace 表空間名 coalesce;

然後再實行檢查表空間碎片的SQL語句,看表空間的碎片有沒有削減。如果沒無成效,而且表空間的碎片曾經重要影響到了資料庫的運轉,則思量對該表空間中斷重建。

MAX_CHUNK列的成效是表空間上最大的可用塊大小,如果該表空間上的東西所需分撥的空間(NEXT值)大于可用塊的大小的話,就會提醒ORA-1652、ORA-1653、ORA-1654的錯誤資訊,DBA應該實時對表空間的空間中斷擴充,以壓抑這些錯誤爆發。

對表空間的擴充對表空間的資料檔案大小中斷擴充,或向表空間增加資料檔案,細緻操縱見“存儲經管”部份。

三、檢查資料庫的連接配接氣候

DBA要準時對資料庫的連接配接氣候中斷檢討,看與資料庫樹立的會話數量是不是正常,如果樹立了過多的連接配接,會斲喪資料庫的資源。同時,對一些“挂逝世”的連接配接,可以會需要DBA手工中斷清算。

以下的SQL語句列出以後資料庫樹立的會話氣候:

​select sid,serial#,username,program,machine,status from v $session;​

輸入成效為:

​SID SERIAL# USERNAME PROGRAM MACHINE STATUS ---- ------- ---------- ----------- --------------- -------- 1 1 ORACLE.EXE WORK3 ACTIVE 2 1 ORACLE.EXE WORK3 ACTIVE 3 1 ORACLE.EXE WORK3 ACTIVE 4 1 ORACLE.EXE WORK3 ACTIVE 5 3 ORACLE.EXE WORK3 ACTIVE 6 1 ORACLE.EXE WORK3 ACTIVE 7 1 ORACLE.EXE WORK3 ACTIVE 8 27 SYS SQLPLUS.EXE WORKGROUPWORK3 ACTIVE 11 5 DBSNMP dbsnmp.exe WORKGROUPWORK3 INACTIVE ​

​其中,

SID 會話(session)的ID号;

SERIAL# 會話的序列号,和SID一同用來獨一辨別一個會話;

USERNAME 樹立該會話的使用者名;

PROGRAM 這個會話是用什麼東西連接配接到資料庫的;

STATUS 以後這個會話的狀況,ACTIVE浮現會話正在實行某些任務,INACTIVE浮現以後會話沒有實行任何操縱;

如果DBA要手工斷開某個會話,則實行:

alter system kill session 'SID,SERIAL#';

細緻,上例中SID為1到7(USERNAME列為空)的會話,是Oracle的背景程序,不要對這些會話中斷任何操縱。

四、控制檔案的備份

在資料庫機關爆發厘革時,如增加了表空間,增加了資料檔案或重做日志檔案這些操縱,都會形成Oracle資料庫控制檔案的厘革,DBA應及中斷控制檔案的備份,備份體式名目是:

實行SQL語句:

​alter database backup controlfile to '/home/backup/control.bak'; ​

​或:

​alter database backup controlfile to trace; ​

​何等,會在USER_DUMP_DEST(初始化參數檔案中指定)目次下生成樹立控制檔案的SQL敕令。

五、檢討資料庫檔案的狀況

DBA要實時檢查資料庫中資料檔案的狀況(如被誤删除),憑證理論氣候決意若何中斷措置懲罰,檢討資料檔案的狀況的SQL如下:

​select file_name,status from dba_data_files;​

如果資料檔案的STATUS列不是AVAILABLE,那麼就要接納呼應的辦法,如對該資料檔案中斷恢複操縱,或重建該資料檔案地點的表空間。

版權聲明:

原創作品,答應轉載,轉載時請務必以超連結體例标明文章 原始理由 、作者資訊和本聲明。不然将究查軌則責任。