2021-09學(xué)習(xí)oracle日常維護(hù)手冊_第1頁
2021-09學(xué)習(xí)oracle日常維護(hù)手冊_第2頁
2021-09學(xué)習(xí)oracle日常維護(hù)手冊_第3頁
2021-09學(xué)習(xí)oracle日常維護(hù)手冊_第4頁
2021-09學(xué)習(xí)oracle日常維護(hù)手冊_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Oracle 數(shù)據(jù)庫日常在 Oracle 數(shù)據(jù)庫運行期間,DBA 應(yīng)該對數(shù)據(jù)庫的運行日志及表空間的使用情況進(jìn)行,及早發(fā)現(xiàn)數(shù)據(jù)庫中存在。一、Oracle 警告日志文件Oracle 在運行過程中,會在警告日志文件(alert_SID.log)中些運行情況:數(shù)據(jù)庫的一數(shù)據(jù)庫的啟動、關(guān)閉,啟動時的非缺省參數(shù);數(shù)據(jù)庫的重做日志切換情況,每次切換的時間,及如果因為檢查點(checkpo)操作沒有執(zhí)行完成造成不能切換,會不能切換的原因;對數(shù)據(jù)庫進(jìn)行的某些操作,如創(chuàng)建或刪除表空間、增加數(shù)據(jù)文件;數(shù)據(jù)庫發(fā)生的錯誤,如表空間不夠、出現(xiàn)壞塊、數(shù)據(jù)庫錯誤(ORA600)DBA 應(yīng)該定期檢查日志文件,根據(jù)日志中發(fā)現(xiàn)及時

2、進(jìn)行處理問題處理啟動參數(shù)不對檢查初始化參數(shù)文件因為檢查點操作或歸檔操作沒有完成造成重做日志不能切換如果經(jīng)常發(fā)生這樣的情況,可以考慮增加重做日志文件組;想辦法提高檢查點或歸檔操作的效率;有人刪除了表空間檢查數(shù)據(jù)庫的安全問題,是否太簡單;必要,撤消某些用戶的系統(tǒng)權(quán)限出現(xiàn)壞塊檢查是否是硬件問題(如磁盤本生有壞塊),如果不是,檢查是那個數(shù)據(jù)庫對象出現(xiàn)了壞塊,對這個對象進(jìn)行重建表空間不夠增加數(shù)據(jù)文件到相應(yīng)的表空間二、數(shù)據(jù)庫表空間使用情況(字典管理表空間)數(shù)據(jù)庫運行了一段時間后,由于不斷的在表空間上創(chuàng)建和刪除對象,會在表空間上產(chǎn)生大量的碎片,DBA 應(yīng)該及時了解表空間的碎片和可用空間情況,以決定是否要對碎

3、片進(jìn)行整理或為表空間增加數(shù)據(jù)文件。select tablespace_name,count(*) cks ,max(bytes/1024/1024) max_c from dba_free_spacegroup by tablespace_name;k上面的SQL 列出了數(shù)據(jù)庫中每個表空間的空閑塊情況,如下所示:TABLESPACE_NAMECKSMAX_CKINDX RBS RMAN_TS SYSTEM TEMP TOOLSUSER9921875490.99218816.515625207.29687570.804687511.835937571.3671875其中

4、,CKS 列表示表空間中有多少可用的空閑塊(每個空閑塊是由一些連續(xù)的 Oracle 數(shù)據(jù)塊組成),如果這樣的空閑塊過多,比如平均到每個數(shù)據(jù)文件上超過了 100 個,那么該表空間的碎片狀況就比較嚴(yán)重了,可以嘗試用以出現(xiàn) ORA-600根據(jù)日志文件的內(nèi)容查看相應(yīng)的 TRC文件,如果是 Oracle 的bug,要及時打上相應(yīng)的補丁下的SQL 命令進(jìn)行表空間相鄰碎片的接合:alter tablespace 表空間名 coalesce;然后再執(zhí)行查看表空間碎片的SQL 語句,看表空間的碎片有沒有減少。如果沒有效果,并且表空間的碎片已經(jīng)嚴(yán)重影響到了數(shù)據(jù)庫的運行,則考慮對該表空間進(jìn)行重建。MAX_CK 列的

5、結(jié)果是表空間上最大的可用塊大小,如果該表空間上的對象所需分配的空間(NEXT 值) 大于可用塊的大小的話, 就會提示ORA-1652、ORA-1653、ORA-1654 的錯誤信息,DBA 應(yīng)該及時對表空間的空間進(jìn)行擴(kuò)充,以避免這些錯誤發(fā)生。對表空間的擴(kuò)充對表空間的數(shù)據(jù)文件大小進(jìn)行擴(kuò)展,或向表空間增加數(shù)據(jù)文件,具體操作見“管理”部份。三、查看數(shù)據(jù)庫的連接情況DBA 要定時對數(shù)據(jù)庫的連接情況進(jìn)行檢查,看與數(shù)據(jù)庫建立的會話數(shù)目是不是正常,如果建立了過多的連接,會消耗數(shù)據(jù)庫的資源。同時,對一些“掛死”的連接,可能會需要 DBA 手工進(jìn)行。以下的SQL 語句列出當(dāng)前數(shù)據(jù)庫建立的會話情況:select

6、sid,serial#,username,program,machine,susfrom v$ses輸出結(jié)果為:;SID SERIAL#USERNAMEPROGRAMMACHINESUS-11ORACLE.EXEWORK3ACTIVE21ORACLE.EXEWORK3ACTIVE31ORACLE.EXEWORK3ACTIVE41ORACLE.EXEWORK3ACTIVE53ORACLE.EXEWORK3ACTIVE61ORACLE.EXEWORK3ACTIVE71ORACLE.EXEWORK3ACTIVE827SYSSQLPLUS.EXEWORKGROUPWORK3ACTIVE115DBSNM

7、Pdbsnmp.exeWORKGROUPWORK3INACTIVE其中,SID SERIAL# USERNAMEPROGRAM會話(ses)的ID 號;會話的序列號,和SID 一起用來唯一標(biāo)識一個會話;建立該會話的用戶名;這個會話是用什么工具連接到數(shù)據(jù)庫的;SUS當(dāng)前這個會話的狀態(tài),ACTIVE 表示會話正在執(zhí)行某些任務(wù),INACTIVE 表示當(dāng)前會話沒有執(zhí)行任何操作;如果 DBA 要手工斷開某個會話,則執(zhí)行:alter system kill sesSID,SERIAL#;注意,上例中 SID 為 1 到 7(USERNAME 列為空)的會話,是 Oracle 的進(jìn)程,不要對這些會話進(jìn)行任何

8、操作。四、控制文件的備份在數(shù)據(jù)庫結(jié)構(gòu)發(fā)生變化時,如增加了表空間,增加了數(shù)據(jù)文件或重做日志文件這些操作,都會造成 Oracle 數(shù)據(jù)庫控制文件的變化,DBA 應(yīng)及進(jìn)行控制文件的備份,備份方法是:執(zhí)行SQL 語句:alter databasebackup controlfile to /home/backup/control.bak;或:alter databasebackup controlfile to trace;這樣,會在 USER_DUMP_DEST(初始化參數(shù)文件中指定)目錄下生成創(chuàng)建控制文件的SQL 命令。五、檢查數(shù)據(jù)庫文件的狀態(tài)DBA 要及時查看數(shù)據(jù)庫中數(shù)據(jù)文件的狀態(tài)(如被誤刪除)

9、,根據(jù)實際情況決定如何進(jìn)行處理,檢查數(shù)據(jù)文件的狀態(tài)的SQL 如下:select file_name,sfrom dba_data_files;us如果數(shù)據(jù)文件的SUS 列不是AVAILABLE,那么就要采取相應(yīng)的措施,如對該數(shù)據(jù)文件進(jìn)行恢復(fù)操作,或重建該數(shù)據(jù)文件所在的表空間。六、檢查數(shù)據(jù)庫定時作業(yè)的完成情況如果數(shù)據(jù)庫使用了 Oracle 的JOB 來完成一些定時作業(yè),要對這些 JOB 的運行情況進(jìn)行檢查:select job,log_user,last_date,failures from dba_jobs;如果 FAILURES 列是一個大于 0 的數(shù)的話,說明 JOB 運行失敗,要進(jìn)一步的

10、檢查。七、數(shù)據(jù)庫壞塊的處理當(dāng) Oracle 數(shù)據(jù)庫出現(xiàn)壞塊時,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代表壞塊所在數(shù)據(jù)文件的絕對文件號,代表壞塊是數(shù)據(jù)文件上的第幾個數(shù)據(jù)塊出現(xiàn)這種情況時,應(yīng)該首先檢查是否是硬件及操作系統(tǒng)上的故障導(dǎo)致Oracle 數(shù)據(jù)庫出現(xiàn)壞塊。在排除了數(shù)據(jù)庫以外的原因后,再對發(fā)生壞

11、塊的數(shù)據(jù)庫對象進(jìn)行處理。1確定發(fā)生壞塊的數(shù)據(jù)庫對象SELECT tablespace_name,segment_type, owner, segment_nameFROM WHEREdba_extents file_id = AND bet2決定修復(fù)方法n block_id AND block_id+blocks-1;如果發(fā)生壞塊的對象是一個索引,那么可以直接把索引 DROP 掉后,再根據(jù)表里的進(jìn)行重建;如果發(fā)生壞塊的表的可以根據(jù)其它表的生成的話,那么可以直接把這個表 DROP 掉后重建;如果有數(shù)據(jù)庫的備份,則恢復(fù)數(shù)據(jù)庫的方法來進(jìn)行修復(fù);如果表里的沒有其它辦法恢復(fù),那么壞塊上的就丟失了,只能把表中其它數(shù)據(jù)塊上的取出來,然后對這個表進(jìn)行重建。3用 Oracle 提供的 DBMS_REPAIR 包標(biāo)記出壞塊exec DBMS_REPAIR.SKIP_CORRUPT_BLOCKS(,);4使用Create table as select 命令將表中其它塊上的保存到另一create table corrupt_table_bak asselect * from corrupt_table;用 DROP TABLE 命令刪除有壞塊的表drop table corrupt_table;用alter table rename 命令恢復(fù)原來的表 alter table corrupt

溫馨提示

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

評論

0/150

提交評論