成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle數(shù)據(jù)庫日常維護(hù)知識總結(jié)

數(shù)據(jù)庫 Oracle 數(shù)據(jù)庫運維
DBA要定時對數(shù)據(jù)庫的連接情況進(jìn)行檢查,看與數(shù)據(jù)庫建立的會話數(shù)目是不是正常,如果建立了過多的連接,會消耗數(shù)據(jù)庫的資源。同時,對一些“掛死”的連接,可能會需要DBA手工進(jìn)行清理。

首先要說的是,不同版本數(shù)據(jù)庫提供的系統(tǒng)表會有不同,你可以根據(jù)數(shù)據(jù)字典查看該版本數(shù)據(jù)庫所提供的表

  1. like   this:   
  2. select   *   from   dict   where   table_name   like   '%SESSION% ';  

就可以查出一些表,然后根據(jù)這些表就可以獲得會話信息。

像這樣就是 查詢當(dāng)前正在操作的會話:

  1. SELECT   SID, SERIAL#, STATUS,   USERNAME,  SCHEMANAME, OSUSER,TERMINAL, MACHINE,     
  2.               PROGRAM,   A.NAME  FROM       V$SESSION   S,   AUDIT_ACTIONS   A                                    WHERE     S.COMMAND   =   A.ACTION

一、查看數(shù)據(jù)庫的連接情況

DBA要定時對數(shù)據(jù)庫的連接情況進(jìn)行檢查,看與數(shù)據(jù)庫建立的會話數(shù)目是不是正常,如果建立了過多的連接,會消耗數(shù)據(jù)庫的資源。同時,對一些“掛死”的連接,可能會需要DBA手工進(jìn)行清理。

以下的SQL語句列出當(dāng)前數(shù)據(jù)庫建立的會話情況:

  1. select sid,serial#,username,program,machine,status  
  2. from v$session; 

其中,

SID                           會話(session)的ID號;

SERIAL#                  會話的序列號,和SID一起用來唯一標(biāo)識一個會話;

USERNAME            建立該會話的用戶名;

PROGRAM              這個會話是用什么工具連接到數(shù)據(jù)庫的;

STATUS                   當(dāng)前這個會話的狀態(tài),ACTIVE表示會話正在執(zhí)行某些任務(wù),INACTIVE表示當(dāng)前會話沒有執(zhí)行任何操作;

如果DBA要手工斷開某個會話,則執(zhí)行:

  1. alter system kill session 'SID,SERIAL#'

注意,上例中SID為1到7(USERNAME列為空)的會話,是Oracle的后臺進(jìn)程,不要對這些會話進(jìn)行任何操作。

二、常用命令

  1. select count(*) from v$session   #連接數(shù)  
  2. Select count(*) from v$session where status='ACTIVE' #并發(fā)連接數(shù)  
  3. show parameter processes   #最大連接  
  4. alter system set processes = value scope = spfile;重啟數(shù)據(jù)庫   #修改連接 

1:oracle中怎樣查看總共有哪些用戶

  1. select * from all_users; 

2:查看oracle當(dāng)前連接數(shù)

怎樣查看oracle當(dāng)前的連接數(shù)呢?只需要用下面的SQL語句查詢一下就可以了。

  1. select * from v$session where username is not null 
  2. select username,count(username) from v$session where username is not null group by username #查看不同用戶的連接數(shù)   
  3. select count(*) from v$session   #連接數(shù)  
  4. Select count(*) from v$session where status='ACTIVE' #并發(fā)連接數(shù)  
  5. show parameter processes   #最大連接  
  6. alter system set process  

3:列出當(dāng)前數(shù)據(jù)庫建立的會話情況:

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

三、 Oracle警告日志文件監(jiān)控

Oracle在運行過程中,會在警告日志文件(alert_SID.log)中記錄數(shù)據(jù)庫的一些運行情況:

 數(shù)據(jù)庫的啟動、關(guān)閉,啟動時的非缺省參數(shù);

 數(shù)據(jù)庫的重做日志切換情況,記錄每次切換的時間,及如果因為檢查點(checkpoint)操作沒有執(zhí)行完成造成不能切換,會記錄不能
換的原因;

 對數(shù)據(jù)庫進(jìn)行的某些操作,如創(chuàng)建或刪除表空間、增加數(shù)據(jù)文件;

 數(shù)據(jù)庫發(fā)生的錯誤,如表空間不夠、出現(xiàn)壞塊、數(shù)據(jù)庫內(nèi)部錯誤(ORA-600)

DBA應(yīng)該定期檢查日志文件,根據(jù)日志中發(fā)現(xiàn)的問題及時進(jìn)行處理

問題 處理

啟動參數(shù)不對 檢查初始化參數(shù)文件

因為檢查點操作或歸檔操作沒有完成造成重做日志不能切換 如果經(jīng)常發(fā)生這樣的情況,可以考慮增加重做日志文件組;想辦法提高檢查點或歸檔操作的效率;

有人未經(jīng)授權(quán)刪除了表空間 檢查數(shù)據(jù)庫的安全問題,是否密碼太簡單;如有必要,撤消某些用戶的系統(tǒng)權(quán)限

出現(xiàn)壞塊 檢查是否是硬件問題(如磁盤本生有壞塊),如果不是,檢查是那個數(shù)據(jù)庫對象出現(xiàn)了壞塊,對這個對象進(jìn)行重建

表空間不夠 增加數(shù)據(jù)文件到相應(yīng)的表空間

出現(xiàn)ORA-600 根據(jù)日志文件的內(nèi)容查看相應(yīng)的TRC文件,如果是Oracle的bug,要及時打上相應(yīng)的補(bǔ)丁

四、 數(shù)據(jù)庫表空間使用情況監(jiān)控(字典管理表空間)

數(shù)據(jù)庫運行了一段時間后,由于不斷的在表空間上創(chuàng)建和刪除對象,會在表空間上產(chǎn)生大量的碎片,DBA應(yīng)該及時了解表空間的碎片和可用空間情況,以決定是否要對碎片進(jìn)行整理或為表空間增加數(shù)據(jù)文件。

  1. select tablespace_name,  
  2. count(*) chunks ,  
  3. max(bytes/1024/1024) max_chunk  
  4. from dba_free_space  
  5. group by tablespace_name; 

上面的SQL列出了數(shù)據(jù)庫中每個表空間的空閑塊情況,如下所示:

  1. TABLESPACE_NAME CHUNKS MAX_CHUNK  
  2. -------------------- ---------- ----------  
  3. INDX 1 57.9921875  
  4. RBS 3 490.992188  
  5. RMAN_TS 1 16.515625  
  6. SYSTEM 1 207.296875  
  7. TEMP 20 70.8046875  
  8. TOOLS 1 11.8359375  
  9. USERS 67 71.3671875 

其中,CHUNKS列表示表空間中有多少可用的空閑塊(每個空閑塊是由一些連續(xù)的Oracle數(shù)據(jù)塊組成),如果這樣的空閑塊過多,比如平均到每個數(shù)據(jù)文件上超過了100個,那么該表空間的碎片狀況就比較嚴(yán)重了,可以嘗試用以下的SQL命令進(jìn)行表空間相鄰碎片的接合:

  1. alter tablespace 表空間名 coalesce

然后再執(zhí)行查看表空間碎片的SQL語句,看表空間的碎片有沒有減少。如果沒有效果,并且表空間的碎片已經(jīng)嚴(yán)重影響到了數(shù)據(jù)庫的運行,則考慮對該表空間進(jìn)行重建。

MAX_CHUNK列的結(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ù)庫結(jié)構(gòu)發(fā)生變化時,如增加了表空間,增加了數(shù)據(jù)文件或重做日志文件這些操作,都會造成Oracle數(shù)據(jù)庫控制文件的變化,DBA應(yīng)及進(jìn)行控制文件的備份,備份方法是:

執(zhí)行SQL語句:

  1. alter database 
  2. backup controlfile to '/home/backup/control.bak';  
  3.  
  4. 或:  
  5. alter database 
  6. backup controlfile to trace; 

這樣,會在USER_DUMP_DEST(初始化參數(shù)文件中指定)目錄下生成創(chuàng)建控制文件的SQL命令。

六、 檢查數(shù)據(jù)庫文件的狀態(tài)

DBA要及時查看數(shù)據(jù)庫中數(shù)據(jù)文件的狀態(tài)(如被誤刪除),根據(jù)實際情況決定如何進(jìn)行處理,檢查數(shù)據(jù)文件的狀態(tài)的SQL如下:

  1. select file_name,status   
  2. from dba_data_files; 

如果數(shù)據(jù)文件的STATUS列不是AVAILABLE,那么就要采取相應(yīng)的措施,如對該數(shù)據(jù)文件進(jìn)行恢復(fù)操作,或重建該數(shù)據(jù)文件所在的表空間。

七、 檢查數(shù)據(jù)庫定時作業(yè)的完成情況

如果數(shù)據(jù)庫使用了Oracle的JOB來完成一些定時作業(yè),要對這些JOB的運行情況進(jìn)行檢查:

  1. select job,log_user,last_date,failures  
  2. from dba_jobs; 

如果FAILURES列是一個大于0的數(shù)的話,說明JOB運行失敗,要進(jìn)一步的檢查。

八、 數(shù)據(jù)庫壞塊的處理

當(dāng)Oracle數(shù)據(jù)庫出現(xiàn)壞塊時,Oracle會在警告日志文件(alert_SID.log)中記錄壞塊的信息:

  1. ORA-01578: ORACLE data block corrupted (file # 7, block # <BLOCK>)  
  2. ORA-01110: data file <AFN>: '/oracle1/oradata/V920/oradata/V816/users01.dbf' 

其中,<AFN>代表壞塊所在數(shù)據(jù)文件的絕對文件號,<BLOCK>代表壞塊是數(shù)據(jù)文件上的第幾個數(shù)據(jù)塊

出現(xiàn)這種情況時,應(yīng)該首先檢查是否是硬件及操作系統(tǒng)上的故障導(dǎo)致Oracle數(shù)據(jù)庫出現(xiàn)壞塊。在排除了數(shù)據(jù)庫以外的原因后,再對發(fā)生壞塊的數(shù)據(jù)庫對象進(jìn)行處理。

1. 確定發(fā)生壞塊的數(shù)據(jù)庫對象

  1. SELECT tablespace_name,  
  2. segment_type,  
  3. owner,  
  4. segment_name  
  5. FROM dba_extents  
  6. WHERE file_id = <AFN>  
  7. AND <BLOCK> between block_id AND block_id+blocks-1; 

2. 決定修復(fù)方法

如果發(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)記出壞塊

  1. exec DBMS_REPAIR.SKIP_CORRUPT_BLOCKS('<schema>','<tablename>'); 

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

  1. create table corrupt_table_bak   
  2. as 
  3. select * from corrupt_table; 

5. 用DROP TABLE命令刪除有壞塊的表

  1. drop table corrupt_table; 

6. 用alter table rename命令恢復(fù)原來的表

  1. alter table corrupt_table_bak  
  2. rename to corrupt_table; 

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

九、 操作系統(tǒng)相關(guān)維護(hù)

DBA要注意對操作系統(tǒng)的監(jiān)控:

&#61548; 文件系統(tǒng)的空間使用情況(df -k),必要時對Oracle的警告日志及TRC文件進(jìn)行清理

&#61548; 如果Oracle提供網(wǎng)絡(luò)服務(wù),檢查網(wǎng)絡(luò)連接是否正常

&#61548; 檢查操作系統(tǒng)的資源使用情況是否正常

&#61548; 檢查數(shù)據(jù)庫服務(wù)器有沒有硬件故障,如磁盤、內(nèi)存報錯

原文鏈接:http://www.cnblogs.com/gengyulong/archive/2011/06/13/2079496.html

【編輯推薦】

  1. 應(yīng)對海量數(shù)據(jù) Oracle數(shù)據(jù)庫機(jī)青睞至強(qiáng)
  2. 簡單說說Oracle分區(qū)
  3. Oracle獻(xiàn)媚開源數(shù)據(jù)庫 MySQL分支情緒穩(wěn)定
  4. 請注意Oracle對象的大小寫

 

責(zé)任編輯:艾婧 來源: 耿玉龍的博客
相關(guān)推薦

2011-05-25 09:20:24

Oracle數(shù)據(jù)庫

2009-02-03 13:06:17

日常維護(hù)規(guī)范MySQL

2009-01-07 09:46:18

InformixOnline數(shù)據(jù)庫

2010-11-29 11:51:59

Sybase數(shù)據(jù)庫維護(hù)

2011-08-01 13:59:22

Oracle數(shù)據(jù)庫命名空間

2011-04-12 10:09:33

Oracle數(shù)據(jù)庫關(guān)閉

2011-05-12 13:15:36

數(shù)據(jù)庫日常維護(hù)

2009-04-24 09:15:50

Oracle維護(hù)前瞻性

2010-04-13 10:32:40

Oracle數(shù)據(jù)庫編程

2010-04-20 10:41:49

Oracle數(shù)據(jù)庫

2011-09-02 10:06:51

OracleSqlLoad常用技巧

2011-08-18 16:42:04

Oracle數(shù)據(jù)庫維護(hù)SQL代碼示例

2018-01-25 12:50:33

數(shù)據(jù)庫OracleROWNUM

2011-08-18 17:05:16

Oracle數(shù)據(jù)庫的服

2011-03-15 13:25:41

Oracle數(shù)據(jù)庫管理員維護(hù)

2010-11-15 10:30:04

Oracle數(shù)據(jù)庫啟動

2019-08-28 07:11:00

Oracle數(shù)據(jù)庫LOB

2019-07-03 09:35:20

Oracle數(shù)據(jù)庫監(jiān)聽

2011-03-24 16:38:00

Exchange數(shù)據(jù)庫維護(hù)

2009-06-30 13:53:08

前瞻性Oracle數(shù)據(jù)庫
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: cao在线| 国产一级在线 | 九九热精品视频 | 日韩综合在线播放 | 日韩精彩视频 | 一区日韩 | 成人视屏在线观看 | 欧美激情一区二区 | 久久99精品久久久久久 | 国产99热精品 | 国产精品精品久久久久久 | 怡红院怡春院一级毛片 | 亚洲精品福利视频 | 亚洲电影免费 | 一本在线 | 国产在视频一区二区三区吞精 | 亚洲一区在线日韩在线深爱 | 免费观看av | 四虎在线观看 | 欧美一级大片免费看 | 精品日韩在线 | 久久i| 精品一区二区三区在线观看 | 国产精品91久久久久久 | 婷婷不卡 | 日韩精品一区二区三区 | 欧美在线亚洲 | 中文字幕成人 | 国产视频中文字幕 | 精产嫩模国品一二三区 | 毛片在线视频 | 天天躁日日躁狠狠躁白人 | 精品一二| 蜜桃免费一区二区三区 | 精品一区二区三区免费视频 | 91人人澡人人爽 | 婷婷综合色 | 国产一区精品在线 | 女人牲交视频一级毛片 | 欧美一区二区视频 | 久久九九影视 |