熬了整整一周,終於把oracle10g的RAC搞好了,草稿
Oacle10g-RAC,db, Configuration all for linux
整理: 海參
時間:2006-1-11~2006-1-14 臨晨2:00
---------------------------------------------------
1. 引子:
熬了整整一周,總算是安裝,配置好了oracle10g的RAC。,煩躁,無奈。 最近又沒有錢吃飯,孤苦,無助,最,寂寞,無聊。。在裝完rac后真真的欣喜了一晚,就上了chinaunix 發了水貼。 不想這麼多兄弟需要這篇文檔,還是好好的認真的整理一下吧,還算權威,因為是真真實踐出來的文檔 也因為在這個過程中我請教過好多oracle的專家,這裡我真的很感謝他們。還有我們同事給予我的大力幫助,謝謝! 因為俺的文采很爛,在加上懶,有些是我直接從參考文檔copy的,念起來很順的就是copy的啦,呵呵,是不是很噁心。因為這樣,文檔雖然是實踐出來的手記,但是我回憶和整理出來的文檔。是有很大的參考和諮詢價值。但還需要參考著多學習,我不敢保證沒有問題;也不負什麼責任。如果你看了文檔,還是搞不定的話,可以聯繫我,我可以幫你想想你是什麼問題,不過這樣的話,你的請我吃午餐了,至少吃200元的中餐,還是滿漢全席;你要是請我吃日本料理,你就別好意思開口了。嘿嘿。聯繫方式,
例如: msn [ 海參 ]
QQ [ 34991198 *飄揚* ]
2. 概述:
oracle官方文檔給出支持oracle10gRAC的操作系統:
這是在 Linux 上安裝 Oracle 資料庫 10g 軟體主要組件,詳細介紹了 Linux 的認證的英語發行版本(RHEL4-AS-update2)。指南逐步演示了主要 Oracle 10g 產品而在硬體上進行安裝和配置的過程。 本文檔的最終目的是幫助我以後安裝和配置 Oracle 10g 網格的所有組件,也可以給大家做個扔磚的例子。
本指南將提供最權威的方法來完成任務。該方法通常意味著所選擇的配置將只適用於我自己,呵呵。因此,本指南既適用於構建生產品質的環境,反映最佳實踐。不過環境各異,問題多多,有問題只能好好想,慢慢去解決。不能扔雞蛋給我。
參考文檔有五個已通過 Oracle 資料庫 10g 認證的 Linux 發行版本是:
The five Linux distributions certified for Oracle Database 10g covered are:
· Red Hat Enterprise Linux 4 (RHEL4)
· Red Hat Enterprise Linux 3 (RHEL3)
· Red Hat Enterprise Linux 2.1 (RHEL2.1)
· Novell SUSE Linux Enterprise Server 9
· Novell SUSE Linux Enterprise Server 8
·
而我用的是Red Hat Enterprise Linux 4 (RHEL4-AS-update2),而且建議用RHEL4U2搭配oracle10g10.2。
Oracle RAC 10g 配置的主要組件。 集群中的節點通常是單獨的伺服器(主機)。
3. 我的環境:
ü 硬體:2台Hp-DL360伺服器,做為資料庫伺服器,hp-MSA1000,共享存儲。
現命名:db1,db3 伺服器
mySAN 盤陣
ü Network:2*10-100-1000M以太卡,物理隔離的100M交換機2台。
現命名:
db1: eth0,eth1
db3: eth0,eth1
db1: eth0 [ 192.168.10.71] eth1
db3: eth0 [ 192.168.10.73] eth1
有兩個虛擬ip,必須在公網網段,但不能綁在實際網卡上,這倆個ip是在安裝rac時資料庫自己配置的,用來解決實際公網ip有障礙問題:
db1:eth0-vip
db3:eth0-vip
具體方法:用ifconfig 命令改網路介面ip
例如:
#su - root
#ifconfig eth0 192.168.10.71
ü 軟體:oracle10g10.2.0.1 RAC,db, companion
ü 操作系統: Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
#uname –a
Linux db1 2.6.9-22.ELsmp #1 SMP Mon Sep 19 18:32:14 EDT 2005 i686 i686 i386 GNU/Linux
------------------------------------------------------------------------繼續
[ 本帖最後由 haishen 於 2008-1-8 13:09 編輯 ]
《解決方案》
4. 安裝配置 linux:
4. 1 工具包的安裝
盡量用新刻錄的安裝盤去安裝,我用的安裝盤划的比較厲害,結果ssh包裝的有問題,找錯誤把我差點找死。 :)
make-3.80-5
gcc-3.4.4-2
compat-db-4.1.25-9
你的有,可以通過命令來查看有沒有,如果沒有就重來吧!在所有節點執行以下命令
#rpm -q make gcc compat-db
make-3.80-5
gcc-3.4.4-2
compat-db-4.1.25-9
4.2 為oracle配置 linux
創建 Oracle 組和用戶帳戶
接下來我們將創建用於安裝和維護 Oracle 10g 軟體的 Linux 組和用戶帳戶。 用戶帳戶名是『oracle』,組是『oinstall』和『dba』。確認nobody用戶是否存在。 僅在一個集群主機上以 root 用戶身份執行以下命令:
例如:
# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
#/usr/sbin/groupadd oinstall
#/usr/sbin/groupadd dba
#/usr/sbin/groupadd oper
#/usr/sbin/useradd -m -g oinstall -G dba,oper oracle
#id oracle
uid=500(oracle) gid=501(oinstall) groups=501(oinstall),502(dba),503(oper)
用戶 ID 和組 ID 在所有集群主機上必須相同。 使用從 id oracle 命令得到的信息,在其餘集群主機上創建 Oracle 組和用戶帳戶:
#/usr/sbin/groupadd -g 501 oinstall
#/usr/sbin/groupadd -g 502 dba
#/usr/sbin/groupadd -g 503 oper
#/usr/sbin/useradd -m -u 501 -g oinstall -G dba,oper oracle
每個節點設置oracle用戶密碼,設置為強密碼:
例如:
#passwd oracle
Changing password for user wangry.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
4.3 創建掛載點
現在創建存儲 Oracle 10g 軟體的掛載點。本指南在創建目錄結構時所用的命名是參照oracle參考文檔。有關 OFA 標準的更多信息,請參見 Oracle 資料庫 10g 安裝指南 。
以 root 用戶身份在所有節點執行以下命令:
app掛載點
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
例如:
# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01/app/oracle
# chmod -R 775 /u01/app/oracle
rac掛載點
mkdir -p /u01/crs/oracle
chown -R oracle:oinstall /u01/crs/oracle
chmod -R 775 /u01/crs/oracle
例如:
#mkdir -p /u01/crs/oracle
#chown -R oracle:oinstall /u01/crs/oracle
#chmod -R 775 /u01/crs/oracle
4.4 配置內核參數
以 root 用戶身份登錄並在每個主機上配置 Linux 內核參數。
查內存配置:
例如:
# free
total used free shared buffers cached
Mem: 2074964 1058512 1016452 0 55520 773880
-/+ buffers/cache: 229112 1845852
Swap: 4194232 0 4194232
配置內核參數:
cat >> /etc/sysctl.conf <<EOF
kernel.shmall = 2097152
kernel.shmmax = 1052397568
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 = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
EOF
配置.bash_profile,給每個節點的oracle,root的bash_profile添加如下代碼
if [ -t 0 ]; then
stty intr ^C
fi
umask 022
例如:
#vi /home/oracle/.bash_profile
#vi /root/.bash_profile
-------------------------------繼續
《解決方案》
4.5 配置 Hangcheck 計時器
所有節點 RHEL 版本:
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
cat >> /etc/rc.d/rc.local << EOF
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
EOF
4.6 配置 /etc/hosts
有些 Linux 發行版本將主機名與回送地址 (127.0.0.1) 相關聯。 如果出現這種情況,則從回送地址中刪除主機名, 每個節點上配置相同的hosts。
例如:我剛裝好機器 hosts 文件內容:
127.0.0.1 localhost.localdomain db1 localhost
把db1刪掉象下面我配置好的一樣!
用於此指南的 /etc/hosts 文件:
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
192.168.10.71 db1 # 公網
192.168.10.73 db3 # 公網
192.168.100.71 db1-priv # 內網
192.168.100.73 db3-priv # 內網
192.168.10.171 db1-vip # 虛擬
192.168.10.173 db3-vip # 虛擬
4.7 為用戶等效性配置 SSH
在安裝 Oracle RAC 10g 期間,OUI(Oracle Universal Installer) 需要把文件複製到集群中的其他主機上並在其上執行程序。 為了允許 OUI 完成此任務,必須配置 SSH 以啟用用戶等效性。 用 SSH 建立用戶等效性就提供了一種在集群中其他主機上複製文件和執行程序時不需要口令提示的安全方式。
第一步是生成 SSH 的公共密鑰和專用密鑰。 SSH 協議有兩個版本;版本 1 使用 RSA,版本 2 使用 DSA,因此我們將創建這兩種類型的密鑰,以確保 SSH 能夠使用任一版本。 ssh-keygen 程序將根據傳遞給它的參數生成任一類型的公共密鑰和專用密鑰。
當您運行 ssh-keygen 時,將提示輸入一個用於保存密鑰的位置。 當提示時只需按 Enter 接受默認值。 隨後將提示輸入一個口令短語。 輸入能記住的口令,而我直接回車,然後再次輸入該口令進行確認。 當完成以下步驟后,在 ~/.ssh 目錄中將會有四個文件: id_rsa、id_rsa.pub、id_dsa 和 id_dsa.pub。 id_rsa 和 id_dsa 文件是的專用密鑰,千萬不要告訴任何人。 id_rsa.pub 和 id_dsa.pub 文件是公共密鑰,必須將其複製到集群中其他每個主機上。
---------------------------------繼續
《解決方案》
在每個主機上,以 oracle 用戶身份登錄:
mkdir ~/.ssh
chmod 755 ~/.ssh
/usr/bin/ssh-keygen -t rsa
分別剪切和粘貼以下各行:
/usr/bin/ssh-keygen -t dsa
例如:
$ mkdir ~/.ssh
$ chmod 755 ~/.ssh
$ /usr/bin/ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_rsa.
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
4b:df:76:77:72:ba:31:cd:c4:e2:0c:e6:ef:30:fc:37 oracle@db1
$ /usr/bin/ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_dsa.
Your public key has been saved in /home/oracle/.ssh/id_dsa.pub.
The key fingerprint is:
af:37:ca:69:3c:a0:08:97:cb:9c:0b:b0:20:70:e3:4a oracle@db3
現在,必須將每個主機上的公共密鑰文件 id_rsa.pub 和 id_dsa.pub 的內容複製到其他每個主機的 ~/.ssh/authorized_keys 文件中。 使用 ssh 將每個文件的內容複製到 ~/.ssh/authorized_keys 文件。 請注意,當您使用 ssh 第一次訪問遠程主機時,其 RSA 密鑰將是未知的,從而將提示您確認是否希望連接該主機。 SSH 將記錄該遠程主機的 RSA 密鑰,並在以後連接該主機時不再做出相關提示。
只需在第一個主機上,以 oracle 用戶身份登錄(複製本地帳戶的密鑰,以便連接本地主機的 ssh 能夠起作用):
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh oracle@db3 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
(如果您要剪切和粘貼這些命令,則分別運行它們。 SSH 每次會提示輸入 oracle 的口令,如果同時粘貼這些命令,則第一個命令在提示輸入口令之前刷新輸入緩衝區,從而導致其他命令將會丟失。)
ssh oracle@db3 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
chmod 644 ~/.ssh/authorized_keys
例如:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ ssh oracle@db3 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
The authenticity of host 'db3 (192.168.10.73)' can't be established.
RSA key fingerprint is d1:23:a7:df:c5:fc:4e:10:d2:83:60:49:25:e8:eb:11.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'db3,192.168.10.73' (RSA) to the list of known hosts.
oracle@db3's password:
$ ssh oracle@db3 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
oracle@db3's password:
$ chmod 644 ~/.ssh/authorized_keys
現在對第二個主機做同樣的處理。 請注意,這次 SSH 會提示您輸入在創建密鑰時所使用的口令短語而非 oracle 的口令。 這是因為第一個主機 (db1) 現在知道了第二個主機的公共密鑰,而 SSH 現在使用的是一種不同的認證協議。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh oracle@db1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh oracle@db1 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
chmod 644 ~/.ssh/authorized_keys
例如:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ ssh oracle@db1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
The authenticity of host 'ds1 (192.168.10.71)' can't be established.
RSA key fingerprint is bd:0e:39:2a:23:2d:ca:f9:ea:71:f5:3d:d3:dd:3b:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ds1,192.168.10.71' (RSA) to the list of known hosts.
Enter passphrase for key '/home/oracle/.ssh/id_rsa':
$ ssh oracle@db1 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
Enter passphrase for key '/home/oracle/.ssh/id_rsa':
$ chmod 644 ~/.ssh/authorized_keys
《解決方案》
注意:oracle的文檔沒有提到建立root的等效性用戶,我在第一次安裝的時候,執行root.sh腳本的時候 有些文件是不能通過shh等效在節點之間拷貝的,所有在這最好把root帳戶的等效性在所有節點也配置好。
4.8 建立用戶等效性
最後,在生成密鑰、複製文件並重複地輸入口令和口令短語(安全性有意思吧?)所有這些工作完成之後,您就可以建立用戶等效性了。 在建立用戶等效性時,不會再提示您輸入口令。
以 oracle 用戶身份在將要安裝 Oracle 10g 軟體的節點 (db1) 上:
exec /usr/bin/ssh-agent $SHELL
/usr/bin/ssh-add
例如:
$ exec /usr/bin/ssh-agent $SHELL
$ /usr/bin/ssh-add
Enter passphrase for /home/oracle/.ssh/id_rsa:
Identity added: /home/oracle/.ssh/id_rsa (/home/oracle/.ssh/id_rsa)
Identity added: /home/oracle/.ssh/id_dsa (/home/oracle/.ssh/id_dsa)
(請注意,用戶等效性僅為當前會話建立。 如果您切換到其他會話或註銷並重新登錄,則必須再次運行 ssh-agent 和 ssh-add 才能重新建立用戶等效性。)
這樣oracle用戶的等效性用戶就創建好了,最好用同樣的方法 創建root等效性用 戶。
4.9 測試連通性
如果一切均設置正確,則您現在就可以使用 ssh 在其他集群主機上不必輸入口令而登錄、執行程序和複製文件了。 通過在遠程集群主機上運行諸如 date 等簡單命令來驗證用戶等效性,在db1上執行:
#ssh db3 date
在db3上執行:
#ssh db1 date
Sun Jun 27 19:07:19 CDT 2004
等等
測試每個方向上所有伺服器的連通性是非常重要的。 這樣會確保當 OUI 在 CRS 和資料庫軟體安裝期間試圖複製文件時不會出現類似以下的消息。 該消息只有在遠程節點上第一次執行操作時才會出現,因此通過測試連通性,您不僅確保了遠程操作的正常運行,還完成了初始的安全密鑰交換。(重要)
The authenticity of host 'db1 (192.168.10.71)' can't be established.
RSA key fingerprint is 8f:a3:19:76:ca:4f:71:85:42:c2:7a:da:eb:53:76:85.
Are you sure you want to continue connecting (yes/no)? yes
其實現在就可以測試一下各節點的聯通性了,可以用oracleRAC提供的測試工具來測試,掛載clusterware的CD,把clusterware 文件拷貝到本地:
例如:
#mount /dev/cdrom /mnt/cdrom
#mkdir ~/crs_install
#cp -rf /mnt/cdrom/* ~/crs_install
先安裝一個包,rpm -iv /clusterware/rpm/cvuqdisk-1.0.0-1.i386.rpm
用crs工具測試:
例如:
#cd
./runcluvfy.sh comp nodereach -n db1,db3 -verbose
Verifying node reachability
Checking node reachability...
Check: Node reachability from node "db1"
Destination Node Reachable?
------------------------------------ ------------------------
db3 yes
db1 yes
Result: Node reachability check passed from node "db1".
Verification of node reachability was successful.
/home/oracle10g_2ban/clusterware/cluvfy
5. 準備共享磁碟
這一部分有三種準備共享磁碟以用於 RAC 的方法:
1. Oracle 集群文件系統 (OCFS)
2. 自動存儲管理器 (ASM)
3. 原始設備
----------------------------------繼續
《解決方案》
但是我選擇了原始設備共享方法。時間久技術很成熟,也比較容易一些。
在集群文件系統和 ASM 可用之前,原始分區是為 Oracle RAC 配置共享磁碟存儲的唯一選擇。 由於這種技術經歷長時間的考驗,因此它們構成了一個構建 RAC 集群的非常堅實的平台。
但是,原始分區有很多缺點。 主要是它們必須接受每個磁碟可使用 15 個分區的限制、Linux 強制的 255 個原始設備的限制以及額外的管理任務和所需計劃。 對於單實例環境而言,邏輯卷管理器 (LVM) 可以減少管理工作並在存儲布局方面提供更多靈活性。 不幸的是,LVM 不能識別集群,因此在 RAC 環境中不支持它的使用。
在使用原始分區時,通常最好選擇一組標準的分區大小,即某個基本大小的倍數。 這就在存儲布局方面提供了更大的靈活性,並且在需要重新調整 I/O 時便於將分區重新配給其他磁碟。
為進一步簡化管理,每個共享磁碟將擁有相同的分區布局,其中包含某種標準化的分區大小。 在單個磁碟上能夠創建的可用分區的最大數量是 15,因此要謹慎地計劃分區布局。 下表顯示了本指南中用於原始分區示例的分區布局。
使用 fdisk為每個共享磁碟創建分區。 以下示例顯示了用於本指南所使用磁碟之一的部分過程:
# fdisk /dev/sdb
我的分區:
fdisk -l
Disk /dev/cciss/c0d0: 72.8 GB, 72833679360 bytes
255 heads, 32 sectors/track, 17433 cylinders
Units = cylinders of 8160 * 512 = 4177920 bytes
Device Boot Start End Blocks Id System
/dev/cciss/c0d0p1 * 1 257 1048544 83 Linux
/dev/cciss/c0d0p2 258 15316 61440720 83 Linux
/dev/cciss/c0d0p3 15317 16344 4194240 82 Linux swap
/dev/cciss/c0d0p4 16345 17433 4443120 5 Extended
/dev/cciss/c0d0p5 16345 17433 4443104 83 Linux
Disk /dev/sda: 880.8 GB, 880890871296 bytes
255 heads, 63 sectors/track, 107095 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 25 200781 83 Linux
/dev/sda2 26 50 200812+ 83 Linux
/dev/sda3 51 100 401625 83 Linux
/dev/sda4 101 107095 859437337+ 5 Extended
/dev/sda5 101 344 1959898+ 83 Linux
/dev/sda6 345 588 1959898+ 83 Linux
/dev/sda7 589 832 1959898+ 83 Linux
/dev/sda8 833 1076 1959898+ 83 Linux
/dev/sda9 1077 1320 1959898+ 83 Linux
/dev/sda10 1321 1564 1959898+ 83 Linux
/dev/sda11 1565 1808 1959898+ 83 Linux
/dev/sda12 1809 2052 1959898+ 83 Linux
/dev/sda13 2053 2296 1959898+ 83 Linux
/dev/sda14 2297 2540 1959898+ 83 Linux
/dev/sda15 2541 2784 1959898+ 83 Linux
/dev/sda16 2785 107095 837878076 83 Linux
Disk /dev/sdb: 880.8 GB, 880890404864 bytes
255 heads, 63 sectors/track, 107095 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 12450 100004593+ 83 Linux
/dev/sdb2 12451 24900 100004625 83 Linux
/dev/sdb3 24901 37350 100004625 83 Linux
/dev/sdb4 37351 107095 560226712+ 5 Extended
/dev/sdb5 37351 37594 1959898+ 83 Linux
/dev/sdb6 37595 37838 1959898+ 83 Linux
/dev/sdb7 37839 38082 1959898+ 83 Linux
/dev/sdb8 38083 38326 1959898+ 83 Linux
/dev/sdb9 38327 38570 1959898+ 83 Linux
/dev/sdb10 38571 38814 1959898+ 83 Linux
/dev/sdb11 38815 39058 1959898+ 83 Linux
/dev/sdb12 39059 39302 1959898+ 83 Linux
/dev/sdb13 39303 39546 1959898+ 83 Linux
/dev/sdb14 39547 39790 1959898+ 83 Linux
/dev/sdb15 39791 40034 1959898+ 83 Linux
/dev/sdb16 40035 107095 538667451 83 Linux
看到我的分區是不是很爽, 哈哈!!!!!!!伺服器硬碟2*72.8做了rede(可能寫錯了)的。能看到的大分區是盤陣上的。
一定要記得資料庫伺服器硬碟同步,在其他主機上運行 partprobe
使內核與所做的更改同步:
# partprobe
我RAC 資料庫所需的每個分區:
/dev/sda
分區 類型 大小
1 主分區 200
2 主分區 200
3 主分區 400
4 擴展分區 -
5 邏輯型 2000
6 邏輯型 2000
7 邏輯型 2000
8 邏輯型 2000
9 邏輯型 2000
10 邏輯型 2000
11 邏輯型 2000
12 邏輯型 2000
13 邏輯型 2000
14 邏輯型 2000
15 邏輯型 max
--------------------------------繼續
《解決方案》
/dev/sdb
分區 類型 大小
1 主分區 200
2 主分區 200
3 主分區 400
4 擴展分區 -
5 邏輯型 2000
6 邏輯型 2000
7 邏輯型 2000
8 邏輯型 2000
9 邏輯型 2000
10 邏輯型 2000
11 邏輯型 2000
12 邏輯型 2000
13 邏輯型 2000
14 邏輯型 2000
15 邏輯型 max
目的 標準大小(MB) 磁碟設備 原始設備
Oracle Cluster Registry 200 /dev/sda3 /dev/raw/raw1
Oracle CRS Voting 50 /dev/sda1 /dev/raw/raw2
System 表空間 600 /dev/sda5 /dev/raw/raw3
SysAux表空間 1200 /dev/sda6 /dev/raw/raw4
UndoTBS1表空間 600 /dev/sda7 /dev/raw/raw5
UndoTBS2表空間 600 /dev/sda8 /dev/raw/raw6
Example表空間 200 /dev/sda9 /dev/raw/raw7
Users 表空間 200 /dev/sda10 /dev/raw/raw8
Temp 表空間 600 /dev/sda11 /dev/raw/raw9
Spfile 50 /dev/sda2 /dev/raw/raw10
口令文件 50 /dev/sda4(不能用)/dev/sdb5 /dev/raw/raw11
控制文件1 200 /dev/sda12 /dev/raw/raw12
控制文件2 200 /dev/sda13 /dev/raw/raw13
重做日誌1_1 200 /dev/sda14 /dev/raw/raw14
重做日誌1_2 200 /dev/sda15 /dev/raw/raw15
重做日誌2_1 200 /dev/sda1(不用)/dev/sdb6 /dev/raw/raw16
重做日誌2_2 200 /dev/sda17(不用)/dev/sdb7 /dev/raw/raw17
裸設備映射:在/etc/sysconfig/rawdevices文件,添加分區與裸設備的對應關係,例如:
# cat /etc/sysconfig/rawdevices
# This file and interface are deprecated.
# Applications needing raw device access should open regular
# block devices with O_DIRECT.
# raw device bindings
# format: <rawdev> <major> <minor>
# <rawdev> <blockdev>
# example: /dev/raw/raw1 /dev/sda1
# /dev/raw/raw2 8 5
/dev/raw/raw1 /dev/sda5
/dev/raw/raw2 /dev/sda6
/dev/raw/raw3 /dev/sda7
/dev/raw/raw4 /dev/sda8
/dev/raw/raw5 /dev/sda9
#db file
/dev/raw/raw6 /dev/sda10
/dev/raw/raw7 /dev/sda11
/dev/raw/raw8 /dev/sda12
/dev/raw/raw9 /dev/sda13
/dev/raw/raw10 /dev/sda14
/dev/raw/raw11 /dev/sda15
/dev/raw/raw12 /dev/sdb5
/dev/raw/raw13 /dev/sdb6
/dev/raw/raw14 /dev/sdb7
/dev/raw/raw15 /dev/sdb8
/dev/raw/raw16 /dev/sdb9
/dev/raw/raw17 /dev/sdb10
/dev/raw/raw18 /dev/sda2
/dev/raw/raw19 /dev/sda3
/dev/raw/raw20 /dev/sdb11
#db publish datafile
/dev/raw/raw21 /dev/sdb12
執行命令使得配置生效
#/sbin/service rawdevices restart
#chkconfig raw on
-----------------------------繼續
《解決方案》
(注意: RHEL4 對原始設備的實施方法與以前的版本不同。 每次啟動原始設備服務時,都會重新創建 /dev/raw/raw* 設備文件,刪除任何現有的非默認所有權或許可權。 當原始設備與 Oracle 搭配使用時,有幾種方法可以解決這個問題。 最簡單的方法是將 oracle 帳戶添加到 disk 組(例如: usermod –G dba,disk oracle)。 或者,您可以創建一個啟動腳本,在系統啟動時更改原始設備的所有權和許可權。) 最好是加在rc.local裡面比較方便。
最後,我們需要為資料庫配置助手 (DBCA) 創建原始設備映射文件。 此文件將您已創建的原始設備與 DBCA 將要用於創建資料庫的名稱相關聯。 剪切和粘貼以下各行,為本示例創建映射文件:
然後將 DBCA_RAW_CONFIG 環境變數導出並指向此文件:
export DBCA_RAW_CONFIG=$HOME/ publish_raw.conf
# cat publish_raw.conf
system=/dev/raw/raw6
sysaux=/dev/raw/raw7
example=/dev/raw/raw20
users=/dev/raw/raw8
temp=/dev/raw/raw9
undotbs1=/dev/raw/raw10
undotbs2=/dev/raw/raw11
redo1_1=/dev/raw/raw12
redo1_2=/dev/raw/raw13
redo2_1=/dev/raw/raw14
redo2_2=/dev/raw/raw15
control1=/dev/raw/raw16
control2=/dev/raw/raw17
spfile=/dev/raw/raw18
pwdfile=/dev/raw/raw19
現在您已準備就緒,可以安裝 Oracle CRS、安裝 Oracle 資料庫軟體並創建 Oracle RAC 資料庫了。
--------------------------繼續
《解決方案》
6. 安裝資料庫
在安裝之前,最好測試(oracle,root)用戶等效性,如果ssh公匙通路不通,應該重新建立。
其實我嘗試了oracle10g10.1.0.1的,oracle10g10.2.0.1有個測試工具很好用的,可以在安裝之前測試一下現在的系統是否 符合。
例如:各節點的聯通性,這之前提到過!
export CVUQDISK_GRP=oinstall
clusterware/cluvfy/runcluvfy.sh stage -pre crsinst -n db1,db3
等等…
6.1 安裝Crs
創建Clusterware目錄,在安裝群集軟體之前要在每個節點上創建Clusterware目錄,掛載點,例如:
# mkdir –p /u01/crs/oracle
# chown -R root:oinstall /u01/crs
# chmod -R 775 /u01/crs/
#mkdir –p /u01/crs/oracle/oracrs
clusterware home
/u01/crs/oracle/product/10/crs
cat ~/. bash_profile
ORACLE_BASE=/u01/app/oracle
#ORACLE_HOME=/u01/crs/oracle/product/10/app
ORACLE_SID=PUBLISH1
export ORACLE_SID
export ORACLE_BASE
export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859p1
#export ORACLE_HOME
ORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_2
export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME:$ORACLE_HOME/bin
DBCA_RAW_CONFIG=$ORACLE_BASE/oradata/publish/publish_raw.conf
export DBCA_RAW_CONFIG
在db1,db3上都要有:
# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01/app/oracle/
# chmod -R 775 /u01/app/oracle/
# mkdir -p /u01/crs/oracle/product/10/app
# chown -R root:oinstall /u01/crs/
# chmod -R 775 /u01/crs/oracle/
6.1.1 設置環境變數:
裝crs的時候的環境變數為,/u01/crs
例如:
在每個節點,oracle和root的.bash_profile 都添加如下代碼
在節點1上:
# vi .bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/crs/oracle/product/10/app
export ORACLE_SID=PUBLISH1
DBCA_RAW_CONFIG=$ORACLE_BASE/oradata/publish/publish_raw.conf
Export DBCA_RAW_CONFIG
在節點3上:
# vi .bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/crs/oracle/product/10/app
export ORACLE_SID=PUBLISH2
DBCA_RAW_CONFIG=$ORACLE_BASE/oradata/publish/publish_raw.conf
Export DBCA_RAW_CONFIG
6.1.2 配置遠程X-windows客戶端
啟用vnc 比較好,很好用,至於怎麼配置,運行這裡就省略了。我用過X-win32感覺不是很好用,終端網路斷了很麻煩。如果你也需要vnc的話,我有很經典的使用經驗,可以諮詢我。
6.1.3 配置orcle共享文件系統
Creating Required Directories for Oracle Clusterware Files on Shared File Systems
CRS 需要在集群的所有主機中共享兩個文件: Oracle Cluster Registry (100MB) 和 CRS Voting Disk (20MB)。 這些文件可能存儲在原始設備或集群文件系統上。 (還支持將 NFS 用於認證的 NAS 系統,但這超出了本指南的範圍。) Oracle ASM 不能用於這些文件,這是因為 ASM 依賴於 CRS 所提供的服務。
在每個節點執行,例如:
· # mkdir /u01/crs/oracle/oracrs
· # chown oracle:oinstall/u01/crs/oracle/oracrs
· # chmod 775 /u01/crs/oracle/oracrs
# chown root:oinstall /dev/raw/raw
# chmod 640 /dev/raw/raw
創建共享文件,當然是裸設備上創建的了,但是注意的是許可權問題,剛開始創建的時候,是 root:oinstall 許可權,安裝完以後會被安裝程序改成下面顯示的許可權:
例如:
---------------------------------------繼續
《解決方案》
# cd oracrs/
# ll
total 20
lrwxrwxrwx 1 oracle oinstall 13 Jan 6 01:37 ocr.crs -> /dev/raw/raw1
lrwxrwxrwx 1 oracle oinstall 13 Jan 6 01:37 ocr2.crs -> /dev/raw/raw2
lrwxrwxrwx 1 oracle oinstall 13 Jan 6 01:37 vote.crs -> /dev/raw/raw3
lrwxrwxrwx 1 oracle oinstall 13 Jan 6 01:37 vote2.crs -> /dev/raw/raw4
lrwxrwxrwx 1 oracle oinstall 13 Jan 6 01:37 vote3.crs -> /dev/raw/raw5
創建方法:
例如:
#cd /u01/crs/oracle/oracrs
#ln -s ocr*file raw*
6.1.4 開始安裝crs
在節點1上執行:
例如:
$ cd ~oracle
$ /home/orainstall/clusterware/runInstaller –ignoreSysPrereqs
裝完以後可以在個節點檢測:
例如:
$ /u01/app/oracle/product/crs/bin/olsnodes -n
db1 1
db3 2
可以查看個節點的自動啟動腳本:
例如;
$ ls -l /etc/init.d/init.*
-r-xr-xr-x 1 root root 1951 Oct 4 14:21 init.crs*
-r-xr-xr-x 1 root root 4714 Oct 4 14:21 init.crsd*
-r-xr-xr-x 1 root root 35394 Oct 4 14:21 init.cssd*
-r-xr-xr-x 1 root root 3190 Oct 4 14:21 init.evmd*
7. 安裝oracle資料庫
7.1 環境變數的設定
註銷crs變數,聲名oracle db 變數:
例如:
在所有節點執行換變數操作,oracle,root的.bash_profile全部改掉
在db1上:
#cat .bash_profile
ORACLE_BASE=/u01/app/oracle
#ORACLE_HOME=/u01/crs/oracle/product/10/app
ORACLE_SID=PUBLISH1
export ORACLE_SID
export ORACLE_BASE
export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859p1
#export ORACLE_HOME
ORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_2
export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME:$ORACLE_HOME/bin
DBCA_RAW_CONFIG=$ORACLE_BASE/oradata/publish/publish_raw.conf
export DBCA_RAW_CONFIG
在db3上:
#cat .bash_profile
ORACLE_BASE=/u01/app/oracle
#ORACLE_HOME=/u01/crs/oracle/product/10/app
ORACLE_SID=PUBLISH2
export ORACLE_SID
export ORACLE_BASE
export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859p1
#export ORACLE_HOME
ORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_2
export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME:$ORACLE_HOME/bin
DBCA_RAW_CONFIG=$ORACLE_BASE/oradata/publish/publish_raw.conf
export DBCA_RAW_CONFIG
7.2 安裝
檢測監聽,執行安裝:
例如:
$ cd ~oracle
$ /home/orainstall/database/runInstaller –ignoreSysPrereqs
Screen Name Response
Welcome Screen Click Next
8.創建TNS
在節點一上執行
# su - oracle
$ netca &
.
----------------------------繼續
[ 本帖最後由 haishen 於 2006-1-14 10:52 編輯 ]