1. 硬件要求和概述
客戶操作系統環境概況:
主機名操作系統處理器內存
rac1 Oracle Enterprise Linux 4(32 位) 1700 MB
rac2 Oracle Enterprise Linux 4(32 位) 1700 MB
虛擬磁盤佈局概況:
大小(MB)描述
d:\vm\rac\localdisk.vmdk /dev/sda1 /dev/sda2 /dev/sda3
d:\vm\rac\sharedstorage\ocfs2disk.vmdk
/dev/sdb SCSI 1:0 512 OCFS2 磁盤
d:\vm\rac\sharedstorage\asmdisk1.vmdk
/dev/sdc SCSI 1:1 3072 ASM 磁盤組1
d:\vm\rac\sharedstorage\asmdisk2.vmdk
/dev/sdd SCSI 1:2 3072 ASM 磁盤組1
d:\vm\rac\sharedstorage\asmdisk3.vmdk
重複創建四個虛擬SCSI 硬盤—ocfs2disk.vmdk (512MB)、asmdisk1.vmdk (3GB)、asmdisk2.vmdk (3GB)和asmdisk3.vmdk(2GB)。
16. VMware Server 控制檯:單擊 Edit virtual machine settings。
17. 虛擬機設置:單擊 Add。
18. 新增硬件嚮導:單擊 Next。
19. 硬件類型:
a. 硬件類型:選擇 Hard Disk。
20. 選擇磁盤:
a. 磁盤:選擇 Create a new virtual disk。
21. 選擇磁盤類型:
a. 虛擬磁盤類型:選擇 SCSI (Recommended)。
22. 指定磁盤容量:
a. 磁盤容量:輸入“0.5GB”。
b. 選擇 Allocate all disk space now。如果您希望節省空間,則不必分配所有磁盤空間。出於性能方面的考慮,您需要爲每個虛擬共享磁盤預先分配所有磁盤空間。特別是在Oracle 數據庫創建期間或者當數據庫的DML 活動較頻繁時,如果共享磁盤的大小增長快速,虛擬機可能會間歇掛起一段較短的時間甚至崩潰(這種情況很少見)。
23. 指定磁盤文件:
a. 磁盤文件:輸入“d:\vm\rac\sharedstorage\ocfs2disk.vmdk”。
b. 單擊 Advanced。
24. 新增硬件嚮導:
a. 虛擬設備節點:選擇 SCSI 1:0。
b. 模式:選擇 Independent,針對所有共享磁盤選擇 Persistent。
修改虛擬機配置文件。還需要設置其他參數以啓用兩個虛擬RAC 節點之間的磁盤共享。打開配置文件d:\vm\rac\rac1\RedHatEnterprise Linux 4.vmx,並添加下面列出的粗體參數。
disk.locking= "FALSE"
diskLib.dataCacheMaxSize = "0"
scsi1.sharedBus = "virtual"
scsi1.present = "TRUE"
scsi1:0.present = "TRUE"
scsi1:0.fileName ="D:\vm\rac\sharedstorage\ocfs2disk.vmdk"
scsi1:0.mode ="independent-persistent"
scsi1:0.deviceType= "disk"
scsi1:1.present = "TRUE"
scsi1:1.fileName ="D:\vm\rac\sharedstorage\asmdisk1.vmdk"
scsi1:1.mode ="independent-persistent"
3. 在第一個虛擬機上安裝並配置Enterprise Linux
從Oracle網站下載EnterpriseLinux 並解壓縮文件:
● Enterprise-R4-U4-i386-disc1.iso
● Enterprise-R4-U4-i386-disc2.iso
● Enterprise-R4-U4-i386-disc3.iso
● Enterprise-R4-U4-i386-disc4.iso
VMware 工具。VMware 工具要求同步主機和客戶機的時間。
在VMware控制檯上,以root 用戶身份登錄。
1. 單擊 VM,然後選擇 Install VMware Tools。
2. rac1 —虛擬機:單擊 Install。
3. 雙擊桌面上的VMware Tools 圖標。
4. cdrom:雙擊VMwareTools-1.0.1-29996.i386.rpm。
5. 完成系統準備:單擊 Continue。
6. 打開一個終端並執行 vmware-config-tools.pl。輸入所需的顯示大小。
同步客戶OS 與主機OS 的時間。在安裝Oracle 集羣件和Oracle數據庫軟件時,Oracle 安裝程序將首先在本地節點上安裝軟件,然後再將軟件遠程複製到遠程節點。如果兩個RAC 節點的日期和時間未同步,您可能會收到類似於以下內容的錯誤。"/bin/tar:./inventory/Components21/oracle.ordim.server/10.2.0.1.0:time stamp 2006-11-04 06:24:04 is 25 s in thefuture"要確保成功安裝Oracle RAC,虛擬機上的時間必須與主機上的時間同步。執行下面的步驟,以root用戶身份同步時間。
1. 執行“vmware-toolbox”以顯示VMwareTools Properties 窗口。在Options 選項卡下,選擇 Time synchronization
between the virtual machine and the hostoperating system。您應該發現tools.syncTime="TRUE" 參數已經追加到虛擬機配置文件d:\vm\rac\rac1\Red Hat Enterprise Linux 4.vmx 中。
2. 編輯/boot/grub/grub.conf,並將選項“clock=pit nosmp noapic nolapic”添加到讀取內核/boot/ 的那一行。您已經將選項添加到兩個內核,現在只需對特定內核進行更改。
#boot=/dev/sda
root=LABEL=/ rhgb quiet clock=pit nosmp noapicnolapic
initrd /boot/initrd-2.6.9-42.0.0.0.1.ELsmp.img
title Enterprise-up (2.6.9-42.0.0.0.1.EL)
root (hd0,0)
kernel /boot/vmlinuz-2.6.9-42.0.0.0.1.EL roroot=LABEL=/
rhgb quiet clock=pit nosmp noapic nolapic
initrd /boot/initrd-2.6.9-42.0.0.0.1.EL.img
3. 重新引導rac1。
# reboot
創建oracle用戶。以root用戶身份執行
# groupadd oinstall
# groupadd dba
# mkdir -p /export/home/oracle /ocfs
# useradd -d /export/home/oracle -g oinstall -Gdba -s /bin/ksh oracle
# chown oracle:dba /export/home/oracle /u01
# passwd oracle
創建oracle用戶環境文件。/export/home/oracle/.profile
export PS1="`/bin/hostname -s`-> "
export EDITOR=vi
export ORACLE_SID=devdb1
export ORACLE_BASE=/u01/app/oracle
exportORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
exportORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
exportPATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:/bin:
/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
umask 022
創建文件系統目錄結構。以oracle 用戶身份執行
rac1-> mkdir p $ORACLE_BASE/admin
rac1-> mkdir p $ORACLE_HOME
rac1-> mkdir p $ORA_CRS_HOME
rac1-> mkdir -p /u01/oradata/devdb
提高Oracle用戶的shell限制。使用文本編輯器將下面列出的行添加到/etc/security/limits.conf、/etc/pam.d/login 和/etc/profile。其他信息可以從文檔中獲得。
/etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
/etc/pam.d/login
session required /lib/security/pam_limits.so
/etc/profile
if [ $USER = "oracle" ]; then
if[ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
安裝EnterpriseLinux 軟件程序包。安裝Oracle 軟件需要以下附加程序包。如果您已經安裝了64 位版本的Enterprise
Linux,則安裝程序應該已安裝了這些程序包。
● libaio-0.3.105-2.i386.rpm
● openmotif21-2.1.30-11.RHEL4.6.i386.rpm
從ISOCD 解壓縮這些程序包,並以root 用戶身份執行下面的命令。
# ls
libaio-0.3.105-2.i386.rpmopenmotif21-2.1.30-11.RHEL4.6.i386.rpm
#
# rpm -Uvh *.rpm
配置內核參數。使用文本編輯器將下面列出的行添加到/etc/sysctl.conf。要使更改立即生效,請執行 /sbin/sysctl –p。
# more /etc/sysctl.conf
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
修改/etc/hosts文件。
# more /etc/hosts
127.0.0.1 localhost
192.168.2.131 rac1.mycorpdomain.com rac1
192.168.2.31 rac1-vip.mycorpdomain.com rac1-vip
10.10.10.31 rac1-priv.mycorpdomain.com rac1-priv
192.168.2.132 rac2.mycorpdomain.com rac2
192.168.2.32 rac2-vip.mycorpdomain.com rac2-vip
10.10.10.32 rac2-priv.mycorpdomain.com rac2-priv
配置hangchecktimer 內核模塊。hangcheck timer 內核模塊可監控系統的運行情況,並重新啓動出現故障的RAC 節點。它使用兩個參數,即hangcheck_tick(定義系統檢查頻率) 和hangcheck_margin(定義在重置RAC 節點前的最大掛起延時)來確定節點是否出現故障。在/etc/modprobe.conf 中添加以下行,以設置hangcheck 內核模塊參數。/etc/modprobe.conf
options hangcheck-timer hangcheck_tick=30hangcheck_margin=180
要立即加載模塊,執行“modprobe -v hangcheck-timer”。
爲OCFS2和OracleASM 創建磁盤分區。爲OCFS2 (/dev/sdb) 和Oracle ASM(/dev/sdc、/dev/sdd、/dev/sde)準備一組原始磁盤。
在rac1上,以root用戶身份執行
# fdisk /dev/sdb
# fdisk /dev/sdc
# fdisk /dev/sdd
# fdisk /dev/sde
# fdisk -l
安裝oracleasmlib程序包。從OTN 下載ASM 庫,並以root用戶身份安裝ASM RPM。
# rpm -Uvh oracleasmlib-2.0.2-1.i386.rpm
在這個階段,您應該已經安裝了以下ASM 程序包。
[root@rac1 swdl]# rpm -qa | grep oracleasm
oracleasm-support-2.0.3-2
oracleasm-2.6.9-42.0.0.0.1.ELsmp-2.0.3-2
oracleasmlib-2.0.2-1
爲ASM 磁盤映射原始設備。僅當您打算使用標準Linux I/O 創建ASM 磁盤時,才需要原始設備映射。創建ASM 磁盤的另一個方法是使用Oracle 提供的ASM 庫驅動程序。稍後,您將使用ASM 庫驅動程序配置ASM 磁盤。執行以下任務,將原始設備映射到先前創建的共享分區。每次引導集羣節點時,原始設備都必須與塊設備綁定。將以下行添加到/etc/sysconfig/rawdevices 中。
/etc/sysconfig/rawdevices
/dev/raw/raw1 /dev/sdc1
/dev/raw/raw2 /dev/sdd1
/dev/raw/raw3 /dev/sde1
要使映射立即生效,以root 用戶身份執行以下命令:
# /sbin/service rawdevices restart
Assigning devices:
/dev/raw/raw1 --> /dev/sdc1
/dev/raw/raw1: bound to major 8, minor 33
/dev/raw/raw2 --> /dev/sdd1
/dev/raw/raw2: bound to major 8, minor 49
/dev/raw/raw3 --> /dev/sde1
/dev/raw/raw3: bound to major 8, minor 65
done
# chown oracle:dba /dev/raw/raw[1-3]
# chmod 660 /dev/raw/raw[1-3]
# ls -lat /dev/raw/raw*
crw-rw---- 1 oracle dba 162, 3 Nov 4 07:04/dev/raw/raw3
crw-rw---- 1 oracle dba 162, 2 Nov 4 07:04/dev/raw/raw2
crw-rw---- 1 oracle dba 162, 1 Nov 4 07:04/dev/raw/raw1
以oracle用戶身份執行
rac1-> ln -sf /dev/raw/raw1/u01/oradata/devdb/asmdisk1
rac1-> ln -sf /dev/raw/raw2/u01/oradata/devdb/asmdisk2
rac1-> ln -sf /dev/raw/raw3/u01/oradata/devdb/asmdisk3
修改/etc/udev/permissions.d/50-udev.permissions。原始設備在引導時會重新映射。默認情況下,在引導時原始設備的擁有者將更改爲root 用戶。如果擁有者不是oracle 用戶,則ASM 在訪問共享分區時會出現問題。
在/etc/udev/permissions.d/50-udev.permissions中爲原始行“raw/*:root:disk:0660”添加註釋,然後添加一個新行“raw/*:oracle:dba:0660”。
/etc/udev/permissions.d/50-udev.permissions
# raw devices
ram*:root:disk:0660
#raw/*:root:disk:0660
raw/*:oracle:dba:0660
4. 創建並配置第二個虛擬機
要創建第二個虛擬機,只需關閉第一個虛擬機,將d:\vm\rac\rac1 中的所有文件複製到d:\vm\rac\rac2,然後更改幾個配置即可。修改網絡配置。
1. 在rac1 上,以root 用戶身份執行
# shutdown –h now
2. 在主機系統上,將rac1 文件夾中的所有文件複製到rac2。
D:\>copy d:\vm\rac\rac1 d:\vm\rac\rac2
3. 在VMware Server 控制檯上,按CTRL-O 打開第二個虛擬機d:\rac\rac2\Red Hat Enterprise Linux 4.vmx。
4. VMware Server 控制檯:
將虛擬機名稱從rac1 重命名爲rac2。右鍵單擊您剛纔打開的新 rac1 選項卡,然後選擇 Settings。
■選擇Options 選項卡。
1. 虛擬機名稱:輸入“rac2”。
單擊Start this virtual machine 啓動rac2,保留rac1 爲電源關閉狀態。
rac2 —虛擬機:選擇 Create a new identifier。
5. 以root 用戶身份登錄並執行system-config-network,以修改網絡配置。IP 地址:雙擊每個以太網設備,並使用下面的表進行必要的更改。設備 IP 地址子網掩碼默認網關地址
eth0 192.168.2.132 255.255.255.0 192.168.2.1
eth1 10.10.10.32 255.255.255.0 <保留空白>
MAC 地址:導航到 Hardware Device 選項卡,並探測每個以太網設備的新MAC 地址。
最後,激活每個以太網設備。
修改/etc/hosts。將以下項添加到/etc/hosts 中。
127.0.0.1 localhost
稍後,在Oracle集羣件軟件安裝期間,VIPCA 將嘗試使用回送地址。修改/export/home/oracle/.profile。用devdb2 替換ORACLE_SID 的值。使用SSH 建立用戶等效性。在集羣就緒服務(CRS) 和RAC 安裝過程中,Oracle Universal Installer (OUI) 必須能夠以oracle 的身份將軟件複製到所有RAC 節點,而不提示輸入口令。在Oracle 10g 中,可以使用ssh 代替rsh 完成此操作。要建立用戶等效性,請在兩個節點上以oracle用戶身份生成用戶的公鑰和私鑰。打開rac1 的電源,在這兩個節點上執行以下任務。
在rac1上執行
rac1-> mkdir ~/.ssh
rac1-> chmod 700 ~/.ssh
rac1-> ssh-keygen -t rsa
rac1-> ssh-keygen -t dsa
在rac2上執行
rac2-> mkdir ~/.ssh
rac2-> chmod 700 ~/.ssh
rac2-> ssh-keygen -t rsa
rac2-> ssh-keygen -t dsa
在rac1上執行
rac1-> cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
rac1-> cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys
rac1-> ssh rac2 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
rac1-> ssh rac2 cat ~/.ssh/id_dsa.pub>> ~/.ssh/authorized_keys
在每個節點上測試連接。驗證當您再次運行以下命令時,系統是否不提示您輸入口令。
ssh rac1 date
ssh rac2 date
ssh rac1-priv date
ssh rac2-priv date
5. 配置Oracle自動存儲管理(ASM)
Oracle ASM 與Oracle 數據庫緊密集成在一起,並與Oracle 的數據管理工具套件配合工作。它可以簡化數據庫存儲管理,並提供原始磁盤I/O 的性能。
配置ASMLib。以root用戶身份在兩個節點上配置ASMLib。
# /etc/init.d/oracleasm configure
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
創建ASM 磁盤。以root用戶身份在任何一個節點上創建ASM 磁盤。
# /etc/init.d/oracleasm createdisk VOL1/dev/sdc1
# /etc/init.d/oracleasm createdisk VOL2 /dev/sdd1
# /etc/init.d/oracleasm createdisk VOL3/dev/sde1
# /etc/init.d/oracleasm scandisks
# /etc/init.d/oracleasm listdisks
VOL1 VOL2 VOL3 VOL4
6. 配置Oracle集羣文件系統(OCFS2)
OCFS2 是Oracle 開發的一個通用集羣文件系統,與Enterprise Linux 內核集成在一起。它允許所有節點在集羣文件系統上同時共享文件,因而消除了管理原始設備的需求。這裏,您將在OCFS2 文件系統中寄宿OCR 和表決磁盤。您可以從OCFS2 用戶指南獲取有關OCFS2 的其他信息。
在EnterpriseLinux 安裝期間,您應該已經安裝了OCFS2 RPM。驗證RPM 是否已經安裝在兩個節點上。
rac1-> rpm -qa | grep ocfs
ocfs2-tools-1.2.2-2
ocfs2console-1.2.2-2
ocfs2-2.6.9-42.0.0.0.1.ELsmp-1.2.3-2
創建OCFS2配置文件。在rac1上,以root用戶身份執行
# ocfs2console
1. OCFS2 控制檯:選擇 Cluster,然後選擇 Configure Nodes。
2. “集羣堆棧已經啓動”:單擊 Close。
3. 節點配置:單擊 Add。
4. 新增節點:添加以下節點,然後單擊 Apply。
名稱:rac1
IP 地址:192.168.2.131
IP 端口:7777
名稱:rac2
IP 地址:192.168.2.132
IP 端口:7777
5. 驗證生成的配置文件。
# more /etc/ocfs2/cluster.conf
node:
ip_port = 7777
ip_address = 192.168.2.131
number = 0
name = rac1
cluster = ocfs2
node:
ip_port = 7777
ip_address = 192.168.2.132
number = 1
name = rac2
cluster = ocfs2
cluster:
node_count = 2
name = ocfs2
6. 將配置文件傳播到rac2。您可以在rac2 上重新運行上述步驟以生成配置文件,或者在rac1 的OCFS2控制檯上選擇 Cluster 和Propagate Configuration 以將配置文件傳播到rac2。配置O2CB 驅動程序。O2CB 是一組集羣服務,負責管理節點與集羣文件系統之間的通信。
在我們的環境中,120 秒的隔離時間很合適。兩個節點上的心跳死亡閾值應該完全相同。
以root用戶身份執行
# /etc/init.d/o2cb unload
# /etc/init.d/o2cb configure
Load O2CB driver on boot (y/n) [y]: y
Cluster to start on boot (Enter "none"to clear) [ocfs2]:
Specify heartbeat dead threshold (>=7) [7]:61
格式化文件系統。在格式化和掛載文件系統之前,應驗證O2CB 在兩個節點上均聯機;O2CB 心跳當前沒有活動,因爲文件系統未掛載。
# /etc/init.d/o2cb status
您只需在一個節點上格式化文件系統。在rac1 上,以root用戶身份執行
# ocfs2console
1. OCFS2 控制檯:選擇 Tasks、Format。
3. OCFS2 控制檯:按CTRL-Q 退出。
掛載文件系統。要掛載文件系統,在兩個節點上執行以下命令。
# mount -t ocfs2 -o datavolume,nointr /dev/sdb1/ocfs
要在引導時掛載文件系統,在兩個節點的/etc/fstab 中添加以下行。/etc/fstab
/dev/sdb1 /ocfs ocfs2 _netdev,datavolume,nointr0 0
創建Oracle集羣件目錄。在OCR 和表決磁盤將駐留的OCFS2 文件系統中創建目錄。
在rac1上執行
# mkdir /ocfs/clusterware
# chown -R oracle:dba /ocfs
現在,您已經完成了OCFS2 的設置。驗證您可以在兩個節點的共享集羣文件系統上讀寫文件。
7. 安裝Oracle集羣件
下載後,在rac1 上以oracle用戶身份執行
rac1-> /u01/staging/clusterware/runInstaller
輸入inventory目錄的完整路徑:/u01/app/oracle/oraInventory。
指定操作系統組名:oinstall。
3. 指定Home 詳細內容:名稱:OraCrs10g_home /u01/app/oracle/product/10.2.0/crs_1
4. 特定於產品的必要條件檢查:忽略有關物理內存要求的警告。
5. 指定集羣配置:單擊 Add。
公共節點名稱:rac2.mycorpdomain.com
專用節點名稱:rac2-priv.mycorpdomain.com
虛擬主機名稱:rac2-vip.mycorpdomain.com
6. 指定網絡接口用法:接口名稱:eth0 子網:192.168.2.0 接口類型:Public
接口名稱:eth1 子網:10.10.10.0 接口類型:Private
7. 指定Oracle 集羣註冊表(OCR) 位置:選擇 External Redundancy。
爲了簡單起見,這裏將不鏡像OCR。在生產環境中,您可能會考慮複用OCR 以實現更高的冗餘。
指定OCR 位置:/ocfs/clusterware/ocr
8. 指定表決磁盤位置:選擇 External Redundancy。同樣,爲了簡單起見,我們選擇不鏡像表決磁盤。表決磁盤位置:/ocfs/clusterware/votingdisk
9. 摘要:單擊 Install。
10. 執行配置腳本:以root 用戶身份按順序執行以下腳本(一次執行一個)。在當前腳本完成後,再繼續執行下一個腳本。
在rac1上執行/u01/app/oracle/oraInventory/orainstRoot.sh。
在rac2上執行/u01/app/oracle/oraInventory/orainstRoot.sh。
在rac1上執行/u01/app/oracle/product/10.2.0/crs_1/root.sh。
在rac2上執行/u01/app/oracle/product/10.2.0/crs_1/root.sh。
rac2 上的root.sh 腳本會自動調用VIPCA,但會因爲“The given interface(s), "eth0" is not public.Public interfacesshould be used to configure virtualIPs.”錯誤而失敗。如果您的公共接口使用不可路由的IP 地址(192.168.x.x),則Oracle集羣驗證實用程序(CVU) 將無法找到合適的公共接口。一種解決方法是手動運行VIPCA。
11. 以root 用戶身份在第二個節點上手動調用VIPCA。
# /u01/app/oracle/product/10.2.0/crs_1/bin/vipca
12. 歡迎頁面:單擊 Next。
13. 網絡接口:選擇 eth0。
14. 集羣節點的虛擬IP:
節點名稱:rac1
IP 別名:rac1-vip
IP 地址:192.168.2.31
子網掩碼:255.255.255.0
節點名稱:rac2
IP 別名:rac2-vip
IP 地址:192.168.2.32
子網掩碼:255.255.255.0
15. 摘要:單擊 Finish。
16. 配置助手進度對話框:配置完成後,單擊 OK。
17. 配置結果:單擊 Exit。
18. 返回到rac1 的執行配置腳本屏幕,然後單擊 OK。
19. 配置助手:驗證所有檢查均成功。OUI 在最後會執行集羣件安裝後檢查。如果CVU 失敗,請更正問題,並以oracle 用戶身份重新運行以下命令:
rac1->/u01/app/oracle/product/10.2.0/crs_1/bin/cluvfy stage -post crsinst -n rac1,rac2
20. 安裝結束:單擊 Exit。
8. 安裝Oracle數據庫10g 第2 版
下載後,在rac1 上以oracle用戶身份執行
rac1-> /u01/staging/database/runInstaller
2. 選擇安裝類型:選擇Enterprise Edition。
3. 指定Home 詳細內容:名稱:OraDb10g_home1 路徑:/u01/app/oracle/product/10.2.0/db_1
4. 指定硬件集羣安裝模式:選擇Cluster Installation。單擊Select All。
5. 特定於產品的必要條件檢查:忽略有關物理內存要求的警告。
6. 選擇配置選項:創建數據庫。
7. 選擇數據庫配置:選擇Advanced。
8. 摘要:單擊 Install。
9. 數據庫模板:選擇General Purpose。
10. 數據庫標識:全局數據庫名稱:devdb SID 前綴:devdb
11. 管理選項:選擇Configure the Database with Enterprise Manager。
12. 數據庫證書:針對所有帳戶使用相同的口令。
13. 存儲選項:選擇Automatic Storage Management (ASM)。
14. 創建ASM 實例:SYS 口令:<輸入SYS 口令>。
選擇Create initialization parameter file (IFILE)。
15. ASM 磁盤組:單擊Create New。
16. 創建磁盤組:創建兩個磁盤組— DG1 和RECOVERYDEST。磁盤組名稱:DG1
選擇Normal 冗餘。
選擇磁盤路徑ORCL:VOL1 和ORCL:VOL2。如果您已經使用標準Linux I/O 配置了ASM 磁盤,則請選擇
/u01/oradata/devdb/asmdisk1 和/u01/oradata/devdb/asmdisk2。
磁盤組名稱:RECOVERYDEST。
選擇External 冗餘。選擇磁盤路徑ORCL:VOL3。如果您已經使用標準Linux I/O 配置了ASM 磁盤,則請選擇/u01/oradata/devdb/asmdisk3。單擊 OK。
17. ASM 磁盤組:單擊 Next。
18. 數據庫文件位置:選擇 UseOracle-Managed Files。
■數據庫區域:+DG1
19. 恢復配置:
選擇Specify Flash Recovery Area。
■閃回恢復區:+RECOVERYDEST
■閃回恢復區大小:1500M
選擇Enable Archiving。
20. 數據庫內容:選擇或取消選擇示例模式。
21. 數據庫服務:單擊Next。稍後,您可以使用DBCA 或srvctl創建或修改其他服務。
22. 初始化參數:選擇Custom。
■共享內存管理:Automatic
■ SGA 大小:200MB
■ PGA 大小:25MB
b. 根據需要修改其餘參數。
23. 數據庫存儲:單擊 Next。
24. 創建選項:選擇Create Database。單擊Finish。
25. 摘要:單擊 OK。
26. 數據庫配置助手:單擊 Exit。
27. 執行配置腳本:以root 用戶身份執行下面的腳本。
在rac1上執行/u01/app/oracle/product/10.2.0/db_1/root.sh。
在rac2上執行/u01/app/oracle/product/10.2.0/db_1/root.sh。
28. 返回到rac1 的執行配置腳本屏幕,然後單擊 OK。
29. 安裝結束:單擊 Exit。
恭喜,您已經在Enterprise Linux 上成功安裝了Oracle RAC 數據庫10g!
9. 探索RAC 數據庫環境
現在,您已經成功安裝了虛擬雙節點RAC 數據庫,下面我們來探究一下您剛剛配置的環境。
檢查應用程序資源的狀態。
rac1-> crs_stat -t
rac1-> srvctl status nodeapps -n rac2
rac1-> srvctl status asm -n rac1
rac1-> srvctl status asm -n rac2
rac1-> srvctl status database -d devdb
rac1-> srvctl status service -d devdb
rac1->
檢查Oracle集羣件的狀態。
rac1-> crsctl check crs
rac2-> crsctl check crs
在命令行執行 crsctl 以查看所有可用選項。
列出RAC 實例。
SQL> select,nstance_name,host_name,archiver,thread#,statusfrom gv$instance;
檢查連接。驗證您能夠連接到每個節點上的實例和服務。
sqlplussystem@devdb1 sqlplussystem@devdb2 sqlplussystem@devdb
檢查數據庫配置。
rac1-> export ORACLE_SID=devdb1
rac1-> sqlplus / as sysdba
SQL> show sga
SQL> select file_name,bytes/1024/1024 fromdba_data_files;
SQL> select group#,type,member,is_recovery_dest_filefromv$logfileorder by group#;
rac1-> export ORACLE_SID=+ASM1
rac1-> sqlplus / as sysdba
SQL> show sga
SQL> show parameter asm_disk
SQL> selectname,path,header_status,total_mb,free_mb,trunc(bytes_read/1024/1024)read_mb,trunc(bytes_written/1024/1024) write_mb
from v$asm_disk;
創建表空間。
SQL> connectsystem/oracle@devdb
SQL> create tablespace test_d datafile '+DG1'size 10M;
SQL> selectfile_name,tablespace_name,bytes from dba_data_files
where tablespace_name='TEST_D';
創建在線重做日誌文件組。
SQL> connectsystem/oracle@devdb
SQL> alter database add logfile thread 1group 5 size 50M;
SQL> alter database add logfile thread 2group 6 size 50M;
SQL> selectgroup#,thread#,bytes,members,statusfromv$log;
SQL> selectgroup#,type,member,is_recovery_dest_filefrom v$logfile
檢查閃回恢復區空間使用率。
SQL> select * from v$recovery_file_dest;
SQL> select * fromv$flash_recovery_area_usage;
啓動和停止應用程序資源。遵循以下步驟啓動和停止單獨的應用程序資源。
srvctl start nodeapps -n <node1 hostname>
srvctl start nodeapps -n <node2 hostname>
srvctl start asm -n <node1 hostname>
srvctl start asm -n <node2 hostname>
srvctl start database -d <database name>
srvctl start service -d <database name> -s<service name>
crs_stat -t
srvctl stop service -d <database name> -s<service name>
srvctl stop database -d <database name>
srvctl stop asm -n <node1 hostname>
srvctl stop asm -n <node2 hostname>
srvctl stop nodeapps -n <node1 hostname>
srvctl stop nodeapps -n <node2 hostname>
crs_stat -t
10. 測試透明故障切換(TAF)
Oracle TAF 中的故障切換機制使任何失敗的數據庫連接能夠重新連接到集羣中的其他節點。故障切換對用戶是透明的。Oracle 在故障切換實例上重新執行查詢並繼續向用戶顯示餘下的結果。創建一個新的數據庫服務。首先,創建一個名爲CRM 的新服務。可以使用DBCA 或srvctl實用程序來創建數據庫服務。這裏,您將使用DBCA 在devdb1上創建CRM 服務。服務名數據庫名首選實例可用實例 TAF策略
CRM devdb devdb1 devdb2 BASIC
在rac1上,以oracle用戶身份執行
rac1-> dbca
1. 歡迎頁面:選擇 Oracle Real ApplicationClusters database。
2. 操作:選擇 Services Management。
3. 集羣數據庫列表:單擊 Next。
4. 數據庫服務:單擊 Add。
添加服務:輸入“CRM”。
■選擇devdb1作爲首選實例。
■選擇devdb2作爲可用實例。
■ TAF 策略:選擇 Basic。
單擊Finish。
5. 數據庫配置助手:單擊 No 退出。
數據庫配置助手將在tnsnames.ora 中創建以下CRM 服務名項:
CRM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =rac1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST =rac2-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = CRM)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
)
)
)
SQL> connectsystem/oracle@devdb1
SQL> show parameter service
SQL> connectsystem/oracle@devdb2
SQL> show parameter service
使用CRM 服務連接第一個會話。如果failover_type 和failover_mode 返回的輸出爲“NONE”,則驗證是否在tnsnames.ora中正確配置了CRM 服務。
SQL> connectsystem/oracle@crm
SQL> selectinstance_number instance#,instance_name,host_name,status from v$instance;
SQL> selectfailover_type,failover_method,failed_over from v$session
where username='SYSTEM';
從其他會話中關閉該實例。在CRM 實例上以sys 用戶身份連接,並關閉該實例。
rac1-> export ORACLE_SID=devdb1
rac1-> sqlplus / as sysdba
SQL> selectinstance_number instance#,instance_name,host_name,status from v$instance;
SQL> shutdown abort;
驗證會話已經完成故障切換。從您先前打開的同一CRM 會話執行以下查詢,以驗證該會話已經故障切換到其他實例。
SQL> selectinstance_number instance#,instance_name,host_name,status from v$instance;
SQL> selectfailover_type,failover_method,failed_overfrom v$session
where username='SYSTEM';
將CRM 服務重新定位到首選實例。恢復devdb1 之後,CRM 服務不會自動重新定位到首選實例。您必須手動將服務重新定位到devdb1。
rac1-> export ORACLE_SID=devdb1
rac1-> sqlplus / as sysdba
SQL> startup
SQL> show parameter service
rac2-> export ORACLE_SID=devdb2
rac2-> sqlplus / as sysdba
SQL> show parameter service
rac1-> srvctl relocate service -d devdb -scrm -i devdb2 -t devdb1
SQL> connectsystem/oracle@devdb1
SQL> show parameter service
SQL> connectsystem/oracle@devdb2
SQL> show parameter service
11. 數據庫備份與恢復
使用Oracle恢復管理器(RMAN) 備份和恢復Oracle RAC 數據庫的過程與單實例數據庫的備份和恢復過程相同。
在本部分中,您將看到一個非常簡單的備份和恢復案例:
1. 執行完整的數據庫備份。
2. 在test_d 表空間中創建mytable 表。
3. 在t1 時間,向mytable 中插入第一個記錄。
4 在t2 時間,向mytable 中插入第二個記錄。
5. 在t3 時間,刪除mytable 表。
6. 將test_d 表空間恢復到某個時間點。
7. 驗證恢復結果。
執行完整的數據庫備份。
rac1-> rman nocatalog target /
RMAN> configure controlfile autobackup on;
RMAN> backup database plus archivelog deleteinput;
在test_d表空間中創建mytable 表。
19:01:56 SQL> connectsystem/oracle@devdb2
19:02:01 SQL> create table mytable (col1number) tablespace test_d;
在t1 時間,向mytable中插入第一個記錄。
19:02:50 SQL> insert into mytable values (1);
19:02:59 SQL> commit;
在t2 時間,向mytable中插入第二個記錄。
19:04:41 SQL> insert into mytable values (2);
19:04:46 SQL> commit;
在t3 時間,刪除mytable 表。
19:05:09 SQL> drop table mytable;
將test_d表空間恢復到某個時間點。
爲輔助數據庫創建輔助目錄。
rac1-> mkdir /u01/app/oracle/aux
RMAN> recover tablespace test_d
2> until time "to_date('13-NOV-200619:03:10','DD-MON-YYYY HH24:MI:SS')"
3> auxiliary destination'/u01/app/oracle/aux';
RMAN> backup tablespace test_d;
RMAN> sql 'alter tablespace test_d online';
19:15:09 SQL> connectsystem/oracle@devdb2
19:15:16 SQL> select * from mytable;