向基於 Linux 的 Oracle RAC 10g 叢集新增新節點

fanhongjie發表於2010-07-08

向基於 Linux Oracle RAC 10g 叢集新增新節點

關於將節點新增到現有 Oracle RAC 10g 2 版叢集的分步指南

2006 9 月釋出

在多數業務中,Oracle 真正應用叢集 (RAC) 配置的主要業務要求是整個系統中資料庫層的可伸縮性這樣,當使用者數增加時,可將額外例項新增到該叢集來分發該負載。

Oracle RAC 10g 中,這個特定的功能已經變得更加容易。當節點/例項變成可用狀態後,Oracle 即可透過必需的幾個設定步驟來包含這個即插即用功能。

[@more@]

在本文中,我將討論將節點新增到現有 Oracle RAC 10g 2 版叢集所需的步驟。

當前環境

出於演示目的,我們這裡的環境是一個四節點的 Rd Hat Linux 叢集。該任務是新增一個附加節點,從而使它成為一個五節點叢集。

資料庫名

節點編號

資料庫版本

例項編號

作業系統核心版本

檔案系統

叢集管理器

SSKYDB

四個節點 — oradb1oradb2oradb3 oradb4

10.2.0.1

四個例項 — SSKY1SSKY2SSKY3 SSKY4

Red Hat Enterprise Linux AS 3
Linux sumsky.net 2.4.21-32.ELsmp

OCFS 1.0 ASM

Oracle 叢集件

該過程將透過以下 7 個步驟實現:

  1. 考慮依賴性和前提條件
  2. 配置網路元件
  3. 安裝 Oracle 叢集件
  4. 配置 Oracle 叢集件
  5. 安裝 Oracle 軟體
  6. 新增新例項(一個或多個)
  7. 執行日常管理任務

1 步:考慮依賴性和前提條件

任何軟體安裝或升級的第一個主要步驟都是確保系統的完整備份可用,包括作業系統和資料檔案。下一步是驗證系統要求、作業系統版本和所有應用程式補丁級別。

新節點應該具有與現有節點相同的作業系統版本,包括 Oracle 所需的所有補丁。在這個示例中,由於駐留在節點 1 4 上的作業系統是 Red Hat Enterprise Linux 3,因此新節點也應該具有該版本。此外,為了維持當前命名慣例,應該將新節點稱為 oradb5

除了基本的作業系統外,還應該安裝 Oracle 需要的以下程式包:

[root@oradb5 root]# rpm -qa | grep -i gcc

compat-gcc-c++-7.3-2.96.128

compat-gcc-7.3-2.96.128

libgcc-3.2.3-42

gcc-3.2.3-42

[root@oradb5 root]# rpm -qa | grep -i openmotif

openmotif-2.2.3-3.RHEL3

openmotif21-2.1.30-8

[root@oradb5 root]# rpm -qa | grep -i glibc

glibc-2.3.3-74

glibc-utils-2.3.3-74

glibc-kernheaders-2.4-8.34.1

glibc-common-2.3.3-74

glibc-headers-2.3.3-74

glibc-devel-2.3.3-74

[root@oradb5 root]# rpm -qa | grep -i compat

compat-libstdc++-7.3-2.96.128

compat-gcc-c++-7.3-2.96.128

compat-gcc-7.3-2.96.128

compat-db-4.0.14-5

compat-libstdc++-devel-7.3-2.96.128

[root@oradb5 root]#

使用以下值更新核心引數。

kernel.core_uses_pid = 1

kernel.hostname = oradb5.sumsky.net

kernel.domainname = sumsky.net

kernel.shmall = 2097152

#kernel.shmmax = 536870912

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.shmseg = 4096

kernel.sem = 250 32000 100 150

kernel.msgmnl = 2878

kernel.msgmnb = 65535

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default = 262144

net.core.wmem_default = 262144

net.core.rmem_max = 262144

net.core.wmem_max = 262144

將下列引數新增到 /etc/security/limits.conf

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

將裝置新增到 /etc/fstab — 將裝置定義從現有節點之一複製到 oradb5

[root@oradb5 root]$ more /etc/fstab

LABEL=/ / ext3 defaults 1 1

none /dev/pts devpts gid=5,mode=620 0 0

none /proc proc defaults 0 0

none /dev/shm tmpfs defaults 0 0

/dev/sda2 swap swap defaults 0 0

/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0

/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0

/dev/sdb5 /u01 ocfs _netdev 0 0

/dev/sdb6 /u02 ocfs _netdev 0 0

/dev/sdb7 /u03 ocfs _netdev 0 0

/dev/sdb8 /u04 ocfs _netdev 0 0

/dev/sdb9 /u05 ocfs _netdev 0 0

/dev/sdb10 /u06 ocfs _netdev 0 0

/dev/sdb14 /u14 ocfs _netdev 0 0

接下來,建立管理使用者。Oracle 的每個安裝都要求每個節點上有一個管理使用者帳戶。在所有現有節點中,管理所有者是 oracle,因此下一步是在節點 oradb5 上建立管理使用者帳戶。當建立該使用者帳戶時,重要的是使用者 oracle UID GID 需要與其他 RAC 節點的相同。該資訊可以使用以下命令獲取:

[oracle@oradb1 oracle]$ id oracle

uid=500(oracle) gid=500(oinstall) groups=501(dba), 502(oper)

作為根連線到 oradb5(基於 Linux Unix 的環境)並建立以下作業系統組。

groupadd -g 500 oinstall

groupadd -g 501 dba

groupadd -g 502 oper

當建立這些組之後,使用以下命令建立 oracle 使用者帳戶作為 dba 組的成員,然後使用 passwd(密碼)命令重新設定使用者密碼。

useradd -u 500 -g oinstall -G dba, oper oracle

passwd oracle

Changing password for user oracle.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

當建立組和使用者之後,應該驗證它們以確保以下命令的輸出與該叢集的所有節點等同。

[root@oradb5 root]$ id oracle

uid=500(oracle) gid=500(oinstall) groups=501(dba), 502(oper)

2 步:配置網路元件

在節點 oradb5 上將所有網路地址新增到 /etc/hosts 檔案。此外,要在叢集的其他四個節點上交叉註冊節點 oradb5 資訊。

root@oradb5 root]# more /etc/hosts

127.0.0.1 localhost.localdomain localhost

192.168.2.10 oradb1.sumsky.net oradb1

192.168.2.20 oradb2.sumsky.net oradb2

192.168.2.30 oradb3.sumsky.net oradb3

192.168.2.40 oradb4.sumsky.net oradb4

192.168.2.50 oradb5.sumsky.net oradb5

#Private Network/interconnect

10.168.2.110 oradb1-priv.sumsky.net oradb1-priv

10.168.2.120 oradb2-priv.sumsky.net oradb2-priv

10.168.2.130 oradb3-priv.sumsky.net oradb3-priv

10.168.2.140 oradb4-priv.sumsky.net oradb4-priv

10.168.2.150 oradb5-priv.sumsky.net oradb5-priv

# VIP

192.168.2.15 oradb1-vip.sumsky.net oradb1-vip

192.168.2.25 oradb2-vip.sumsky.net oradb2-vip

192.168.2.35 oradb3-vip.sumsky.net oradb3-vip

192.168.2.45 oradb4-vip.sumsky.net oradb4-vip

192.168.2.55 oradb5-vip.sumsky.net oradb5-vip

SSH 建立使用者等效項。當向叢集新增節點時,Orale 將在其中執行初始安裝的節點的檔案複製到該叢集的新節點。這樣的複製過程可以透過使用 ssh 協議(如果可用)來進行,也可以使用遠端複製 (rcp) 來進行。為了使複製操作成功,RAC 節點上的 oracle 使用者必須能夠在無需提供密碼或口令短語的情況下登入到新的 RAC 節點。

當前,現有的四個節點配置為使用 ssh。要在新節點上配置 oracle 帳戶來使用無需任何密碼的 ssh,執行以下任務:

  1. 為使用者 oracle 建立身份驗證金鑰。要建立此金鑰,請將當前目錄更改為 oracle 使用者的預設登入目錄並執行以下操作:

2. [oracle@oradb5 oracle]$ ssh-keygen -t dsa -b 1024

3. Generating public/private dsa key pair.

4. Enter file in which to save the key (/home/oracle/.ssh/id_dsa):

5. Created directory '/home/oracle/.ssh'.

6. Enter passphrase (empty for no passphrase):

7. Enter same passphrase again:

8. Your identification has been saved in /home/oracle/.ssh/id_dsa.

9. Your public key has been saved in /home/oracle/.ssh/id_dsa.pub.

10. The key fingerprint is:

11. b6:07:42:ae:47:56:0a:a3:a5:bf:75:3e:21:85:8d:30 oracle@oradb5.sumsky.net

12. [oracle@oradb5 oracle]$

  1. 從新節點生成的金鑰應新增到所有節點上的 /home/oracle/.ssh/id_dsa/authorized_keys 檔案中,這意味著每個節點都應包含叢集中所有其他節點的金鑰。

14. [oracle@oradb5 oracle]$ cd .ssh

15. [oracle@oradb5 .ssh]$ cat id_dsa.pub > authorized_keys

當建立完金鑰並將其複製到所有節點之後,oracle 使用者帳戶無需使用密碼就可以從一個節點連線到另一個節點上的另一個 oracle 帳戶。這允許 Oracle Universal Installer 將安裝節點的檔案複製到叢集的其他節點。以下輸出是從節點 oradb1 到節點 oradb5 顯示 ssh 的驗證。

[oracle@oradb1 oracle]$ ssh oradb1 hostname

oradb1.sumsky.net

[oracle@oradb1 oracle]$ ssh oradb5 hostname

Oradb5.sumsky.net

[oracle@oradb1 oracle]$ ssh oradb1-priv hostname

oradb1.sumsky.net

[oracle@oradb1 oracle]$ ssh oradb5-priv hostname

Oradb5.sumsky.net

注意:首次執行這些測試時,作業系統將顯示一個金鑰並請求使用者接受或拒絕。輸入“Yes”將接受並註冊此金鑰。應該在其他所有節點上跨叢集中的所有介面執行這些測試,但 VIP 除外。

3 步:安裝 Oracle 叢集件

Oracle 叢集件已經安裝在叢集上;這裡的任務是將新節點新增到叢集配置中。要執行該任務,需要執行 Oracle 提供的名為 addnode 的實用程式,該工具位於 Clusterware 的主 oui/bin 目錄中。Oracle 叢集件有兩個檔案(Oracle 叢集資訊庫 (OCR) Oracle 叢集同步服務 (CSS) 表決磁碟),它們包含有關該叢集以及由 Oracle 叢集件管理的應用程式的資訊。這些檔案需要使用關於新節點的資訊進行更新。叢集件安裝過程的第一步是驗證新節點是否準備好進行安裝。

叢集驗證。 Oracle 資料庫 10g 2 版中,Oracle 引入了一個稱為 Oracle 叢集驗證實用程式 (CVU) 的新實用程式作為該叢集件軟體的一部分。使用適當的引數執行該實用程式可以確定叢集狀態。在該階段,在安裝 Oracle 叢集件之前,應該執行兩個驗證:

  1. 如果硬體和作業系統配置已經完成:

2. cluvfy stage -post hwos -n oradb1,oradb5

3. Performing post-checks for hardware and operating system setup

4. Checking node reachability...

5. Node reachability check passed from node "oradb1".

6. Checking user equivalence...

7. User equivalence check passed for user "oracle".

8. Checking node connectivity...

9. Node connectivity check passed for subnet "192.168.2.0" with node(s) oradb5,oradb1.

10. Node connectivity check passed for subnet "10.168.2.0" with node(s) oradb5,oradb1.

11. Suitable interfaces for the private interconnect on subnet "192.168.2.0":

12. oradb5 eth0:192.168.2.50 eth0:192.168.2.55

13. oradb1 eth0:192.168.2.10 eth0:192.168.2.15

14. Suitable interfaces for the private interconnect on subnet "10.168.2.0":

15. oradb5 eth1:10.168.2.150

16. oradb1 eth1:10.168.2.110

17. Checking shared storage accessibility...

18.Shared storage check failed on nodes "oradb5".

19. Post-check for hardware and operating system setup was unsuccessful on all the nodes.

正如突出顯示的部分一樣,上面的驗證失敗於儲存檢查驗證;節點 oradb5 無法檢視儲存裝置。在這個特定示例中,磁碟沒有足夠的許可權。

如果忽略該錯誤繼續安裝,Oracle 叢集件安裝將失敗。但如果在重新執行前解決了該錯誤,該驗證步驟將成功,如下所示。

Checking shared storage accessibility...

Shared storage check passed on nodes "oradb5,oradb1".

Post-check for hardware and operating system setup was successful on all the nodes.

  1. 在安裝 Oracle 叢集件之前請對節點列表中的所有節點執行相應的檢查。

21. [oracle@oradb1 cluvfy]$ cluvfy stage -pre crsinst -n oradb1,oradb5

22. Performing pre-checks for cluster services setup

23. Checking node reachability...

24. Node reachability check passed from node "oradb1".

25. Checking user equivalence...

26. User equivalence check passed for user "oracle".

27. Checking administrative privileges...

28. User existence check passed for "oracle".

29. Group existence check passed for "oinstall".

30. Membership check for user "oracle" in group "oinstall" [as Primary] failed.

31. Check failed on nodes:

32. oradb5,oradb1

33. Administrative privileges check passed.

34. Checking node connectivity...

35. Node connectivity check passed for subnet "192.168.2.0" with node(s) oradb5,oradb1.

36. Node connectivity check passed for subnet "10.168.2.0" with node(s) oradb5,oradb1.

37. Suitable interfaces for the private interconnect on subnet "192.168.2.0":

38. oradb5 eth0:192.168.2.50 eth0:192.168.2.55

39. oradb1 eth0:192.168.2.10 eth0:192.168.2.15

40. Suitable interfaces for the private interconnect on subnet "10.168.2.0":

41. oradb5 eth1:10.168.2.150

42. oradb1 eth1:10.168.2.110

43. Checking system requirements for 'crs'...

44. Total memory check passed.

45. Check failed on nodes:

46. oradb5,oradb1

47. Free disk space check passed.

48. Swap space check passed.

49. System architecture check passed.

50. Kernel version check passed.

51. Package existence check passed for "make-3.79".

52. Package existence check passed for "binutils-2.14".

53. Package existence check passed for "gcc-3.2".

54. Package existence check passed for "glibc-2.3.2-95.27".

55. Package existence check passed for "compat-db-4.0.14-5".

56. Package existence check passed for "compat-gcc-7.3-2.96.128".

57. Package existence check passed for "compat-gcc-c++-7.3-2.96.128".

58. Package existence check passed for "compat-libstdc++-7.3-2.96.128".

59. Package existence check passed for "compat-libstdc++-devel-7.3-2.96.128".

60. Package existence check passed for "openmotif-2.2.3".

61. Package existence check passed for "setarch-1.3-1".

62. Group existence check passed for "dba".

63. Group existence check passed for "oinstall".

64. User existence check passed for "nobody".

65. System requirement failed for 'crs'

66. Pre-check for cluster services setup was successful on all the nodes.

4 步:配置 Oracle 叢集件

執行 OUI 需要執行該安裝程式的終端與 X-windows 相容。否則,應安裝相應的 X-windows 模擬器並使用以下語法透過 DISPLAY 命令呼叫此模擬器。

export DISPLAY=:0.0

例如:

[oracle@oradb1 oracle]$export DISPLAY=192.168.2.101:0.0

下一步是在新節點 oradb5 上配置叢集件。為此,如前所述,Oracle 已經提供了一個新的稱為 addNode.sh 的可執行檔案,它位於 /oui/bin 目錄。

  1. 執行指令碼 /oui/bin/addNode.sh
  2. Welcome — 單擊 Next
  3. 指定要透過新增來安裝的叢集節點在該螢幕中,OUI 列出了叢集的現有節點,並在下半個螢幕中列出了要新增到適當列中的新節點(一個或多個)資訊。輸入資訊之後,單擊 Next

公共節點名稱

私有節點名稱

虛擬主機名稱

oradb5

oradb5-priv

oradb5-vip

  1. 叢集節點新增總結驗證新節點列在“New Nodes”下拉選單之下並單擊 Install
  2. 當需要的所有叢集件元件從 oradb1 複製到 oradb5 之後,OUI 將提示執行三個檔案:

/usr/app/oracle/oraInventory/orainstRoot.sh on node oradb5

[root@oradb5 oraInventory]# ./orainstRoot.sh

Changing permissions of /usr/app/oracle/oraInventory to 770.

Changing groupname of /usr/app/oracle/oraInventory to dba.

The execution of the script is complete

[root@oradb5 oraInventory]#

/usr/app/oracle/product/10.2.0/crs/install/rootaddnode.sh on node oradb1.addnoderoot.sh 檔案將使用 srvctl 實用程式將新節點資訊新增到 OCR。請注意下面指令碼輸出末尾的具有 nodeapps 引數的 srvctl 命令。)

[root@oradb1 install]# ./rootaddnode.sh

clscfg: EXISTING configuration version 3 detected.

clscfg: version 3 is 10G Release 2.

Attempting to add 1 new nodes to the configuration

Using ports: CSS=49895 CRS=49896 EVMC=49898 and

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

相關文章