使用自動儲存管理 (ASM)建立資料庫

tonykorn97發表於2007-06-08

學習......

ASM 是 Oracle 資料庫 10g 中一個非常出色的新特性,它以平臺無關的方式提供了檔案系統、邏輯卷管理器以及軟體 RAID 等服務。ASM 可以條帶化和映象磁碟,從而實現了在資料庫被載入的情況下新增或移除磁碟以及自動平衡 I/O 以刪除“熱點”。它還支援直接和非同步的 I/O 並使用 Oracle9i 中引入的 Oracle 資料管理器 API(簡化的 I/O 系統呼叫介面)。


ASM 不是一個通用的檔案系統,並只能用於 Oracle 資料檔案、重做日誌以及控制檔案。ASM 中的檔案既可以由資料庫自動建立和命名(透過使用 Oracle 管理檔案特性),也可以由 DBA 手動建立和命名。由於作業系統無法訪問 ASM 中儲存的檔案,因此對使用 ASM 檔案的資料庫執行備份和恢復操作的唯一途徑就是透過恢復管理器 (RMAN)。

ASM 作為單獨的 Oracle 例項實施,只有它在執行時其他資料庫才能訪問它。在 Linux 上,只有執行 OCSSD 服務(由 Oracle 通用安裝程式預設安裝)才能使用 ASM。ASM 需要的記憶體不多:對大多數系統,只需 64 MB。

安裝 ASM

確定所需的 ASMLib 版本

ASMLib 以三個 Linux 程式包組成的程式包集提供:

oracleasmlib - ASM 庫
oracleasm-support - 用於管理 ASMLib 的實用程式
oracleasm - ASM 庫的核心模組
每個 Linux 發行套件都有其自己的 ASMLib 程式包集。在每個發行套件中,每個核心版本都有一個相應的 oracleasm 程式包。以下部分介紹如何確定所需的程式包集。
首先,以 root 使用者身份登入並執行以下命令來確定所使用的核心:

uname -rm


例如:
oracle:/home/oracle # uname -rm
2.6.16.21-0.8-default i686

使用此資訊在 OTN 上查詢相應的 ASMLib 程式包:

將 Web 瀏覽器指向
1, 選擇適用於您的 Linux 版本的連結。
2, 下載適用於您的 Linux 版本的 oracleasmlib 和 oracleasm-support 程式包
3, 下載與您的核心相對應的 oracleasm 程式包。

oracle:/home/oracle # ls
.Xauthority .fonts .profile .xinitrc.template oracleasm-2.6.16.21-0.8-default-2.0.3-1.i586.rpm
.bash_history .gnu-emacs .urlview .xtalkrc oracleasm-support-2.0.3-1.i386.rpm
.bashrc .inputrc .viminfo 10201_database_linux32.zip oracleasmlib-2.0.2-1.i386.rpm
.dvipsrc .kermrc .xcoralrc Documents public_html
.emacs .mozilla .xemacs bin
.exrc .muttrc .xim.template database
oracle:/home/oracle # rpm -aq oracleasm*
oracle:/home/oracle # rpm -ivh oracleasm*.rpm
Preparing... ########################################### [100%]
1:oracleasm-support ########################################### [ 33%]
2:oracleasm-2.6.16.21-0.8########################################### [ 67%]
3:oracleasmlib ########################################### [100%]
oracle:/home/oracle #


配置 ASMLib

使用 ASMLib 之前,必須執行配置指令碼以準備驅動程式。以 root 使用者身份執行以下命令,並響應如下示例中所顯示的提示。


oracle:/home/oracle # /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting without typing an
answer will keep that current value. Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Fix permissions of Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
Creating /dev/oracleasm mount point: done
Loading module "oracleasm": done
Mounting ASMlib driver filesystem: done
Scanning system for ASM disks: done
oracle:/home/oracle #

現在,如下所示啟用 ASMLib 驅動程式。

oracle:/home/oracle # /etc/init.d/oracleasm enable
Writing Oracle ASM library driver configuration: done
Scanning system for ASM disks: done
oracle:/home/oracle #

為 ASM 配置磁碟

接下來,告訴 ASM 驅動程式您要使用的磁碟。請注意,這些磁碟是不包含任何內容(甚至不包含分割槽)的空磁碟。可以將磁碟分割槽用於 ASM,但建議您不要這樣做。

透過以 root 使用者身份執行以下命令來標記由 ASMLib 使用的磁碟:

/etc/init.d/oracleasm createdisk DISK_NAME device_name

(提示:DISK_NAME 應由大寫字母組成。當前版本有一個錯誤,即如果使用小寫字母,ASM 例項將無法識別磁碟。)

例如:
# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb
Marking disk "/dev/sdb" as an ASM disk [ OK ]


不過我按照上面說的執行
oracle:/home/oracle # /etc/init.d/oracleasm createdisk VOL1 /dev/sdb
Marking disk "/dev/sdb" as an ASM disk: asmtool: Device "/dev/sdb" is not a partition
failed

然後我把/dev/sdb重新分割槽了就可以
oracle:/home/oracle # /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1
Marking disk "/dev/sdb1" as an ASM disk: done
oracle:/home/oracle # /etc/init.d/oracleasm createdisk VOL2 /dev/sdb2
Marking disk "/dev/sdb2" as an ASM disk: done
oracle:/home/oracle # /etc/init.d/oracleasm createdisk VOL3 /dev/sdb3
Marking disk "/dev/sdb3" as an ASM disk: done
oracle:/home/oracle # /etc/init.d/oracleasm createdisk VOL4 /dev/sdb5
Marking disk "/dev/sdb5" as an ASM disk: done

以下示例演示瞭如何列出標記為由 ASMLib 使用的所有磁碟。

oracle:/home/oracle # /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
VOL4
oracle:/home/oracle #

既然已經安裝了 ASMLib,且已將磁碟標記為可用,下面,您便可以建立一個 ASM 例項,並構建一個使用 ASM 進行磁碟儲存的資料庫。最容易的方法就是使用資料庫配置助手 (DBCA) 來完成此操作。

以 oracle 身份登入並啟動 DBCA:

dbca


1,歡迎
單擊 Next。
2,操作
選擇 Create a Database。
3,資料庫模板
選擇 General Purpose。
4,資料庫標識
輸入全域性資料庫名稱。
5,管理選項
選擇 Configure the Database with Enterprise Manager。
選擇 Use Database Control for Database Management。
6,資料庫證照
選擇 Use Same Password for All Accounts。
輸入口令並確認。
7,儲存選項
選擇 Automatic Storage Management (ASM)。
8,彈出一個對話方塊需要以root使用者執行一個指令碼 。
執行如下:
oracle:/u01/app/oracle/product/10.2.0/bin # /u01/app/oracle/product/10.2.0/bin/localconfig add
/etc/oracle does not exist. Creating it now.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Configuration for local CSS has been initialized

Adding to inittab
Startup will be queued to init within 90 seconds.
Checking the status of new Oracle init process...
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
oracle
CSS is active on all nodes.
Oracle CSS service is installed and running under init(1M)
oracle:/u01/app/oracle/product/10.2.0/bin #

9,建立 ASM 例項
輸入 ASM 例項的口令並確認。
10,彈出一個視窗,提示 DBCA 將立即建立並啟動 ASM 例項。
單擊 OK。
11,建立 ASM 例項時彈出一個帶齒輪箱視窗。
12,ASM 磁碟組
由於這是新 ASM 例項且您尚未建立任何 ASM 例項,因此該視窗未顯示可用磁碟組。
單擊 Create New。
13,建立磁碟組
磁碟組名稱
- 輸入磁碟組名稱,如 DATA1。
冗餘
- High 映象資料兩次。
- Normal 映象資料一次。
- External 不映象 ASM 中的資料。如果外部 RAID 陣列提供冗餘,則通常使用此選項。
選擇成員磁碟
- 您必須手動指示 ASM 到什麼地方查詢 ASMLib 磁碟,因此,單擊 Change Disk Discovery Path
- 彈出一個視窗,提示輸入磁碟發現路徑。如下所示將磁碟發現路徑更改為“ORCL:*”。
- 單擊 OK 繼續。

您將返回到 Select Member Disks 視窗。您的所有 ASMLib 磁碟現在應顯示在此視窗中。
單擊該行開頭的框,選擇加入磁碟組的磁碟。完成後單擊 OK。

14,ASM 磁碟組
您將返回到 ASM Disk Groups 視窗。此時,出現在上一步中建立的磁碟組。
單擊該行開頭的框選擇此磁碟組。(在此例項中使用單個磁碟組。)
單擊 Next。
15,資料庫檔案位置
選擇 Use Oracle-Managed Files。
確保已將 Database Area 設定為您建立的磁碟組。它包含一個前導加號 — 例如,+DATA1。
16,恢復配置
選擇 Specify Flash Recovery Area。
- 快速恢復區 — 輸入要用於快速恢復的 ASM 磁碟組。
- 快速恢復區大小 — 接受預設值 2048。
如果要使用歸檔日誌模式,則選中 Enable Archiving。對於評估資料庫,可以不選該項。
17,資料庫內容
選擇 Sample Schemas。
我們不使用定製指令碼,因此單擊 Next。
18,初始化引數
接受預設值,然後單擊 Next。
19,資料庫儲存
接受預設值,然後單擊 Next。
20,建立選項
選擇 Create Database(預設值)並單擊 Finish。
21,確認
檢查完資料庫詳細資訊後單擊 OK。
22,DBCA 顯示一個操作列表和一個進度條。根據硬體的不同,資料庫建立可能需要幾分鐘到幾小時的時間。
23,當資料庫建立完成時,將顯示一個顯示摘要視窗。記下 Enterprise Manager URL,然後單擊 Exit。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245682/,如需轉載,請註明出處,否則將追究法律責任。

相關文章