Oracle數(shù)據(jù)庫日常維護手冊_第1頁
Oracle數(shù)據(jù)庫日常維護手冊_第2頁
Oracle數(shù)據(jù)庫日常維護手冊_第3頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、Oracle數(shù)據(jù)庫日常維護手冊在Oracle數(shù)據(jù)庫運行期間,DBA應該對數(shù)據(jù)庫的運行日志及表空間的使用情況進行監(jiān)控,及早發(fā)現(xiàn)數(shù)據(jù)庫中存在的問題。一、Oracle警告日志文件監(jiān)控Oracle在運行過程中,會在警告日志文件(alert_SID.log)中記錄數(shù)據(jù)庫的一些運行情況:數(shù)據(jù)庫的啟動、關閉,啟動時的非缺省參數(shù);數(shù)據(jù)庫的重做日志切換情況,記錄每次切換的時間,及如果因為檢查點(checkpoi nt)操作沒有執(zhí)行完成造成不能切換,會記錄不能切換的原因;個人收集整理勿做商業(yè)用途對數(shù)據(jù)庫進行的某些操作,如創(chuàng)建或刪除表空間、增加數(shù)據(jù)文件;數(shù)據(jù)庫發(fā)生的錯誤,如表空間不夠、出現(xiàn)壞塊、數(shù)據(jù)庫內(nèi)部錯誤(OR

2、A-600)DBA應該定期檢查日志文件,根據(jù)日志中發(fā)現(xiàn)的問題及時進行處理問題處理啟動參數(shù)不對檢查初始化參數(shù)文件因為檢查點操作或歸檔操作沒有完成造成重做日志不能切換如果經(jīng)常發(fā)生這樣的情況,可以考慮增加重做日志文件組;想辦法提高檢查點或歸檔操作的效率;個人收集整理勿做商業(yè)用途有人未經(jīng)授權刪除了表空間檢查數(shù)據(jù)庫的安全問題,是否密碼太簡單;如有必要,撤消某些用戶的系統(tǒng)權限出現(xiàn)壞塊檢查是否是硬件問題(如磁盤本生有壞塊),如果不是,檢查是那個數(shù)據(jù)庫對象出現(xiàn)了壞塊,對這個對象進行重建個人收集整理 勿做商業(yè)用途表空間不夠增加數(shù)據(jù)文件到相應的表空間出現(xiàn)ORA-6OO根據(jù)日志文件的內(nèi)容查看相應的TRC文件,如果是

3、 Oracle的bug,要及時打上相應的補丁 個人收集整理勿做商業(yè)用途二、數(shù)據(jù)庫表空間使用情況監(jiān)控(字典管理表空間)數(shù)據(jù)庫運行了一段時間后,由于不斷的在表空間上創(chuàng)建和刪除對象,會在表空間上產(chǎn) 生大量的碎片,DBA應該及時了解表空間的碎片和可用空間情況,以決定是否要對碎片進行 整理或為表空間增加數(shù)據(jù)文件。個人收集整理勿做商業(yè)用途select tablespace_name,count(*) chunks ,max(bytes/1024/1024) max_chunkfrom dba_free_spacegroup by tablespace_name;個人收集整理 勿做商業(yè)用途上面的SQL列出了

4、數(shù)據(jù)庫中每個表空間的空閑塊情況,如下所示:TABLESPACE_NAME CHUNKS MAX_CHUNKINDX 1 57.9921875RBS 3 490.992188 RMAN_TS 1 16.515625SYSTEM 1 207.296875TEMP 20 70.8046875TOOLS 1 11.8359375USERS 67 71.3671875 個人收集整理 勿做商業(yè)用途其中,CHUNK列表示表空間中有多少可用的空閑塊 (每個空閑塊是由一些連續(xù)的 Oracle 數(shù)據(jù)塊組成),如果這樣的空閑塊過多,比如平均到每個數(shù)據(jù)文件上超過了100個,那么該表空間的碎片狀況就比較嚴重了,可以嘗試

5、用以下的SQL命令進行表空間相鄰碎片的接合 :個人收集整理勿做商業(yè)用途alter tablespace 表空間名 coalesce;然后再執(zhí)行查看表空間碎片的SQL語句,看表空間的碎片有沒有減少。如果沒有效果,并且表空間的碎片已經(jīng)嚴重影響到了數(shù)據(jù)庫的運行,則考慮對該表空間進行重建。個人收集整理勿做商業(yè)用途MAX_CHUN列的結果是表空間上最大的可用塊大小,如果該表空間上的對象所需分配的空間(NEXT值)大于可用塊的大小的話,就會提示ORA-1652 ORA-1653 ORA-1654的錯誤信息,DBA應該及時對表空間的空間進行擴充,以避免這些錯誤發(fā)生。個人收集整理勿做商業(yè)用途對表空間的擴充對表

6、空間的數(shù)據(jù)文件大小進行擴展,或向表空間增加數(shù)據(jù)文件,具體 操作見“存儲管理”部份。三、查看數(shù)據(jù)庫的連接情況DBA要定時對數(shù)據(jù)庫的連接情況進行檢查,看與數(shù)據(jù)庫建立的會話數(shù)目是不是正常,如果建立了過多的連接,會消耗數(shù)據(jù)庫的資源。同時,對一些“掛死”的連接,可能會需要DBA手工進行清理。個人收集整理勿做商業(yè)用途以下的SQL語句列出當前數(shù)據(jù)庫建立的會話情況:select sid,serial#,username,program,machine,statusfrom v$session; |個人收集整理勿做商業(yè)用途輸出結果為:SID SERIAL# USERNAME PROGRAM MACHINE ST

7、ATUS1 1 ORACLE.EXE W0RK3 ACTIVE2 1 ORACLE.EXE WORK3 ACTIVE3 1 ORACLE.EXE WORK3 ACTIVE4 1 ORACLE.EXE WORK3 ACTIVE5 3 ORACLE.EXE WORK3 ACTIVE6 1 ORACLE.EXE WORK3 ACTIVE7 1 ORACLE.EXE WORK3 ACTIVE8 27 SYS SQLPLUS.EXE WORKGROUPWORK3 ACTIVE|11 5 DBSNMP dbsnmp.exe WORKGROUPWORK3 INACTIVE其中,個人收集整理勿做商業(yè)用途SID

8、 會話(session)的 ID 號;SERIAL#會話的序列號,和 SID 一起用來唯一標識一個會話;USERNAM建立該會話的用戶名;PROGRAMS個會話是用什么工具連接到數(shù)據(jù)庫的;STATUS當前這個會話的狀態(tài),ACTIVE表示會話正在執(zhí)行某些任務,INACTIVE表示當前會話沒有執(zhí)行任何操作;個人收集整理勿做商業(yè)用途如果DBA要手工斷開某個會話,則執(zhí)行:alter system kill session 'SID,SERIAL#'注意,上例中SID為1到7(USERNAM列為空)的會話,是Oracle的后臺進程,不要對 這些會話進行任何操作。個人收集整理勿做商業(yè)用途四

9、、控制文件的備份在數(shù)據(jù)庫結構發(fā)生變化時,如增加了表空間,增加了數(shù)據(jù)文件或重做日志文件這些操作,都會造成Oracle數(shù)據(jù)庫控制文件的變化,DBA應及進行控制文件的備份,備份方法是:個人收集整理勿做商業(yè)用途執(zhí)行SQL語句:alter databasebackup controlfile to '/home/backup/control.bak:或:個人收集整理勿做商業(yè)用途alter databasebackup controlfile to trace;這樣,會在USER_DUMP_DES初始化參數(shù)文件中指定)目錄下生成創(chuàng)建控制文件的SQL命令。個人收集整理勿做商業(yè)用途五、檢查數(shù)據(jù)庫文件的

10、狀態(tài)DBA要及時查看數(shù)據(jù)庫中數(shù)據(jù)文件的狀態(tài)(如被誤刪除),根據(jù)實際情況決定如何進行處理,檢查數(shù)據(jù)文件的狀態(tài)的SQL如下:個人收集整理勿做商業(yè)用途select file_name,statusfrom dba_data_files;如果數(shù)據(jù)文件的 STATUS列不是AVAILABLE那么就要采取相應的措施,如對該數(shù)據(jù)文件進行恢復操作,或重建該數(shù)據(jù)文件所在的表空間。個人收集整理勿做商業(yè)用途六、檢查數(shù)據(jù)庫定時作業(yè)的完成情況如果數(shù)據(jù)庫使用了 Oracle的JOB來完成一些定時作業(yè),要對這些JOB的運行情況進行檢查:select job,log_user,last_date,failuresfrom d

11、ba_jobs;個人收集整理勿做商業(yè)用途如果FAILURES列是一個大于0的數(shù)的話,說明JOB運行失敗,要進一步的檢查。七、數(shù)據(jù)庫壞塊的處理當Oracle數(shù)據(jù)庫出現(xiàn)壞塊時,Oracle會在警告日志文件(alert_SID.log)中記錄壞塊的信息:個人收集整理勿做商業(yè)用途ORA-01578: ORACLE data block corrupted (file # 7, block # )個人收集整理 勿做商業(yè)用途ORA-01110: data file : 7oracle1/oradata/V920/oradata/V816/users01.dbf個人收集整理勿做商業(yè)用途其中,代表壞塊所在數(shù)據(jù)

12、文件的絕對文件號,代表壞塊是數(shù)據(jù)文件上的第幾個數(shù)據(jù)塊出現(xiàn)這種情況時,應該首先檢查是否是硬件及操作系統(tǒng)上的故障導致Oracle數(shù)據(jù)庫出現(xiàn)壞塊。在排除了數(shù)據(jù)庫以外的原因后,再對發(fā)生壞塊的數(shù)據(jù)庫對象進行處理。個人收集整理勿做商業(yè)用途1. 確定發(fā)生壞塊的數(shù)據(jù)庫對象SELECT tablespace_name,segment_type,owner,segment_nameFROM dba_extentsWHERE file_id =ANDbetween block_id AND block_id+blocks-1; 個人收集整理 勿做商業(yè)用途2. 決定修復方法如果發(fā)生壞塊的對象是一個索引,那么可以直接把

13、索引DRO脾后,再根據(jù)表里的記錄進行重建;如果發(fā)生壞塊的表的記錄可以根據(jù)其它表的記錄生成的話,那么可以直接把這個表 droP后重建;如果有數(shù)據(jù)庫的備份,則恢復數(shù)據(jù)庫的方法來進行修復;如果表里的記錄沒有其它辦法恢復,那么壞塊上的記錄就丟失了,只能把表中其它數(shù) 據(jù)塊上的記錄取出來,然后對這個表進行重建。個人收集整理 勿做商業(yè)用途3. 用Oracle提供的DBMS_REPAI包標記出壞塊exec DBMS_REPAIR.SKIP_CORRUPT_BLOCKS(' ',”);4. 使用Create table as select命令將表中其它塊上的記錄保存到另一張表上create table corrupt_table_bakas-1select * from corrupt_table;個人收集整理 勿做商業(yè)用途5. 用DROP TABLE命令刪除有壞塊的表drop table corrup_tatble;6. 用alter table rename命令恢復原來的表alter tab

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論