程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle日常維護

Oracle日常維護

編輯:Oracle數據庫基礎

輸入選擇配置後看到下圖的基本界面:

 

從上面的界面得知,該實例。

 

1.2     察看表空間

維護工作需要周期性的察看表空間,以避免表空間滿後,表現出一些莫名的故障出現,如下圖,表空間ccatsdialindex接近滿的狀態,必須為此表空間增加數據文件來擴充其空間。

 

1.3     察看會話

1.3.1    察看所有會話

通過下面的操作可以看到基本的會話。

 

1.3.2    有可疑的會話

想了解占用CPU、內存、I/O占用資源較大的會話,可以有針對性的通過界面的選項可以察看前10大占用資源的信息,如下圖。

2         表空間的擴充方法

2.1.1    使用 Oracle 企業管理器

第一步:

如下圖,假設需要擴充某個表空間,以表空間ccatsdialindex為例,我們對此處進行鼠標雙擊操作,


第二步:

如下圖,現在我們需要增加表空間,首先我們需要和之前的目錄一致,否則如果搞錯了表空間所在的位置,很可能出現新增加的表空間將增加在本地磁盤的情況,那麼在主機切換的時候,在磁盤陣列當中找不到這個數據文件報錯,業務將會出現異常情況。所以保險的方法在文件目錄直接copy即可。

第三步驟:

填寫數據文件名,如下圖,文件目錄缺省和上面相同,數據文件名不要重復(否則創建將會失敗)填寫上數據文件的大小,此時可以點擊應用(需要SYSDBA權限才有效),那麼此時在正常情況下可以創建數據文件,擴展了此表空間,如果不想在此環境下執行,而希望在plsql下面執行,請繼續看下面步驟。

 

第四步:

我們點擊上面圖形的最後一行的按鈕“現實SQL”,將會出現下圖,執行的DDL命令將會出現在最後的小窗口的最下面,那麼可以復制此DDL再在SQL PLUS/PL SQL的命令窗口下以SYSDBA的角色執行也可以擴展表空間,此方法和後面介紹的方法相同。

2.1.2    使用語句的方法

CREATE TABLESPACE ccatsdialindex DATAFILE  ''d:\ccatsdb\ccatsindex\ccatsdialindex01.dbf'' SIZE 1000 M;

 

ALTER TABLESPACE ccatsdialindex  ADD DATAFILE ''d:\ccatsdb\ccatsindex\ccatsdialindex02.dbf'' SIZE 500 M,''d:\ccatsdb\ccatsindex\ccatsdialindex03.dbf'' SIZE 500 M;

 

3         如何解決死鎖

3.1     察看鎖的視圖

在Oracle系統視圖 v$locked_object,所有加鎖的信息都在這個視圖可以找到。

在SQL命令下執行 SELECT * FROM v$locked_object;如果記錄一直長期存在並且locked_mode字段值是3,表示對此對象一直存在更新鎖,有可能對業務有所影響。

3.2     找出被鎖對象

第一步:

如下圖,下面被鎖對象的字段Object_id,值對象55266

 

找出object_id後執行SQL,定位被鎖對象

SELECT * FROM  Dba_Objects  WHERE object_id = 55266,如下圖,ACTSMSENDOBJECT就是被鎖對象。

 

3.3     釋放死鎖的資源

3.3.1    得到會話的ID

上面的對象被確定需要釋放的情況下,我們將要進一步做釋放的工作,看下面圖的session_id字段值是98

3.3.2    找出會話信息

通過剛才得出的會話session_id=98;我們再從Oracle的會話視圖進一步得到會話信息。

Select * from  v$session WHERE sid=''98''

3.3.3    殺掉死鎖的會話

根據上圖被圈住的兩個字段,可以在有權限的用戶殺掉死鎖的會話。

一般的語法為:

Alter system kill session ‘<sid,serial#>’

我們執行以下DDL即可:

Alter system kill session ''98,8761'';

3.3.4    通過界面釋放

3.3.4.1     察看界面鎖

打開企業管理器,選擇例程->鎖,看到如下信息。

3.3.4.2     中斷會話

選擇需要中斷的會話後,點擊按鈕&ldquo

中斷會話”將會出現以下界面,確定後將會把占用資源的會話中斷。

 

4         SPFILE/PFILE的應用

4.1     簡介

Oracle 9i中,引入一個新的文件spfile,該文件用於服務器端,管理初始化參數。在9i以前Oracle使用pfile存儲初始化參數設置,在啟動時候讀取,pfile的所有修改都需要在啟動後才能生效;而使用spfile可以使用 ALTER SYSTEM或者ALTER SESSION命令來動態修改參數,修改後立即生效。

1) Pfile(Parameter File)文件是基於文本格式的參數文件,含有數據庫的配置參數。

    Oracle 9i在安裝時為每個數據庫建立了一個Pfile,默認的名稱為“init+例程名.ora”,這是一個文本文件,可以用任何文本編輯工具打開。

 

2) SPfile文件

    SPfile(Server Parameter File,服務器參數文件)是基於二進制格式的參數文件,含有數據庫及例程的參數和數值,但不能用文本編輯工具打開。
    下面對兩種初始化參數文件進行比較如表6.2所示。
下表Spfile和Pfile文件的比較

 


 

比較內容

SPfile

Pfile

格式

二進制格式

文本格式

編輯方式

(1)利用企業管理器對Pfile進行修改,然後轉換為Spfile (2)在SQL Plus裡使用ALTER SYSTEM語句進行修改

(1)利用文本工具直接進行修改 (2)在企業管理器裡修改配置後導出形成

默認名稱

SPfile+例程名.ora

Init+例程名.ora 實際參數文件Init.ora

默認路徑

{Oracle_HOME}\ora92\database\

{Oracle_HOME}\ora92\database\ Init.ora位於Oracle\admin\數據庫例程名\pfile\

啟動次序

SPfile優先於Pfile

Pfile低於Spfile

 

4.2     產生spfile

在pfile啟動的方式下,使用SYSDBA或者SYSOPER權限的登錄,執行以下命令:

Create spfile from pfile

語法如下:CREATE SPFILE[=''SPFILE-NAME''] FROM PFILE[=''PFILE-NAME'']

例:

SQL> create spfile from pfile;

缺省的,spfile創建到系統缺省目錄

(Unix: $ORACLE_HOME/dbs; NT: $Oracle_HOME\database)

如果SPFILE已經存在,那麼創建會返回以下錯誤:

4.3     重要參數的基本含義

db_cache_size

說明: 為高速緩存指定標准塊大小的緩沖區。

值范圍: 至少 16M

默認值: 48M

 

Large_pool_size:

說明 : 指定大型池的分配堆的大小, 它可被共享服務器用作會話內存, 用作並行執行的消息緩沖區以及用作 RMAN

備份和恢復的磁盤 I/O 緩沖區。

值范圍: 600K (最小值); >= 20000M (最大值是根據操作系統而定的)。

默認值 : 0, 除非配置了並行執行或 DBWR_IO_SLAVES

 

pga_aggregate_target

說明: 指定連接到例程的所有服務器進程的目標 PGA 總內存。請在啟用自動設置工作區之前將此參數設置為一個正數。這部分內存不駐留在

SGA 中。數據庫將此參數值用作它所使用的目標 PGA 內存量。設置此參數時, 要將 SGA 從可用於 Oracle

例程的系統內存總量中減去。然後可將剩余內存量分配給 pga_aggregate_target。

值范圍: 整數加字母 K, M 或 G, 以將此限值指定為千字節, 兆字節或千兆字節。最小值為 10M, 最大值為 4000G

默認值: "未指定", 表示完全禁用對工作區的自動優化。

 

shared_pool_size

說明: 以字節為單位, 指定共享池的大小。共享池包含如: 共享游標, 存儲的過程,

控制結構和並行執行消息緩沖區等對象。較大的值能改善多用戶系統的性能。

值范圍:300 KB - 根據操作系統而定。

默認值: 如果是 64 位操作系統, 值為 64MB; 其他情況下, 值為 16MB。

Java_pool_size

說明: 以字節為單位, 指定 Java 存儲池的大小, 它用於存儲 Java 的方法和類定義在共享內存中的表示法,

以及在調用結束時移植到 Java 會話空間的 Java 對象。

5         數據庫備份

按照備份方式可以分為邏輯備份、冷備份(脫機備份)、熱備份(聯機備份),其中冷備份與熱備份可以合稱為物理備份。

按照本份工具,可以分EXP/IMP備份,OS拷貝、RMAN、第三方工具如VERITAS

5.1     邏輯備份

使用exp/imp 命令,這裡由於使用頻率較高,暫不做介紹。

5.2     OS備份數據

5.2.1    冷備數據庫

冷備也稱為脫機備份,需要在完全關閉數據庫的情況下執行。

數據庫使用的每個文都被備份,文件包括

1)  所有數據文件(DATA FILE)

2)  所有控制文件(CONTROL FILE)

3)  所有聯機日志文件(REDO LOG)

5.2.2    熱備份

此方式又稱為聯機備份,只能用於ArchiveLog (歸檔模式)的數據庫。

熱備份的優點:

1)  可在表空間或數據文件級上備份,高效率

2)  備份時候數據庫仍然可用。

3)  可恢復到某個時間點,達到秒級的恢復

4)  幾乎可以對所有數據庫實體作為恢復

 

熱備份增加部分I/O並且耗費大量的I/O,所以一般建議把熱備份放到數據庫最空閒的時間,如凌晨100

 

使用方法

一般步驟如下:

1)  將備份的表空間設置為備份方式

ALTER TABLESPACE ccatspub BEGIN backup;

2)  復制ccatspub表空的數據文件到新的目標目錄

3)  復制完成後,恢復原來的非備份狀態

ALTER TABLESPACE ccatspub END backup;

4)  如果需要備份其它的方式,重復1-3步驟。

5)  使用如下命令備份控制文件

備份為二進制:

ALTER DATABASE backup CONTROLFILE TO ‘New ContrilFile’;

備份為文本文件:

ALTER DATABASE backup CONTROLFILE TO  TxtFile;

 

5.3     Rman備份

Recovery Manager (RMAN) 提供的DBA工具,用於管理備份和恢復操作。Rman只能用於Oracle 8或更高的版本中。可以備份整個數據庫或者數據庫部件,包括表空間、數據文件、控制文件和歸檔文件。Rman可按要求存取和執行備份和恢復。

 

 

本次僅僅介紹基本的概念,不做詳細介紹。

Rman備份的優點:

1)  支持在線熱備份

2)  支持多級增量備份

3)  支持並行備份與恢復

4)  減少所需備份量

5)  數據文件的塊檢查

6)  備份、恢復比較簡單

 

使用rman備份/恢復需要創建恢復目錄,否則在沒有恢復目錄(NOCATALOG)下運行,備份信息保存在控制文件下,如果控制文件有所損壞就比較危險。而且沒有備份目錄,很多rman命令不被支持。

 

Rman可以在

創建RMAN目錄的過程

1.         為目錄創建單獨表空間

Create tablespace  back datafile ‘filename’ sIEz 100M;

2.         創建rman用戶

Create user RMAN identifIEd by RMAN default tablespace back temporary tablespace temp;

3.         授權RMAN用戶

 Grant connect,resource, recover_catalog_owner to rman;

4.         打開rman

運行 RMAN

$> RMAN

5.         連接數據庫

RMAN> connect catalog rman/rman

 

 

6.         創建恢復目錄

 RMAN> create catalog tablespace back;

成功創建會副目錄後,就可以注冊目標數據庫,目標數據庫就是需要備份的數據。一個恢復目錄可以注冊多個目標數據庫。注冊命令如下:

RMAN target intername/passWord catalog rman/rman@rcdb;

RAMN> register database;

 

其它備份與恢復命令請參考有關文檔說明,這裡不再作詳細介紹。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved