天天看點

Oracle RAC 10g 叢集添加新節點

向基于 Linux 的 Oracle RAC 10g 叢集添加新節點

http://www.oracle.com/technology/global/cn/pub/articles/vallath-nodes.html

關于将節點添加到現有 Oracle RAC 10g 第 2 版叢集的分步指南

2006 年 9 月釋出

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

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

在本文中,我将讨論将節點添加到現有 Oracle RAC 10g 第 2 版叢集所需的步驟。

目前環境

出于示範目的,我們這裡的環境是一個四節點的 Rd Hat Linux 叢集。該任務是添加一個附加節點,進而使它成為一個五節點叢集。

資料庫名 節點編号 資料庫版本 執行個體編号 作業系統核心版本 檔案系統 叢集管理器
SSKYDB 四個節點 — oradb1、oradb2、oradb3 和 oradb4 10.2.0.1 四個執行個體 — SSKY1、SSKY2、SSKY3 和 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 需要的以下程式包:

[[email protected] 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

[[email protected] root]# rpm -qa | grep -i openmotif

openmotif-2.2.3-3.RHEL3

openmotif21-2.1.30-8

[[email protected] 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

[[email protected] 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

[[email protected] 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。

[[email protected] 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 節點的相同。該資訊可以使用以下指令擷取:

[[email protected] 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.

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

[[email protected] root]$ id oracle

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

第 2 步:配置網絡元件

在節點 oradb5 上将所有網絡位址添加到 /etc/hosts 檔案。此外,要在叢集的其他四個節點上交叉注冊節點 oradb5 資訊。

[email protected] 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.           [[email protected] 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 [email protected]

12.       [[email protected] oracle]$

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

14.       [[email protected] oracle]$ cd .ssh

15.       [[email protected] .ssh]$ cat id_dsa.pub > authorized_keys

當建立完密鑰并将其複制到所有節點之後,oracle 使用者帳戶無需使用密碼就可以從一個節點連接配接到另一個節點上的另一個 oracle 帳戶。這允許 Oracle Universal Installer 将安裝節點的檔案複制到叢集的其他節點。

以下輸出是從節點 oradb1 到節點 oradb5 顯示 ssh 的驗證。

[[email protected] oracle]$ ssh oradb1 hostname

oradb1.sumsky.net

[[email protected] oracle]$ ssh oradb5 hostname

Oradb5.sumsky.net

[[email protected] oracle]$ ssh oradb1-priv hostname

oradb1.sumsky.net

[[email protected] 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.       [o[email protected] 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=<client IP address>:0.0

例如:

[[email protected] oracle]$export DISPLAY=192.168.2.101:0.0

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

  1. 執行腳本 <Clusterware Home>/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

[[email protected] 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

[[email protected] oraInventory]#

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

[[email protected] 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 EVMR=49897.

node <nodenumber>: <nodename> <private interconnect name> <hostname>

node 5: oradb5 oradb5-priv oradb5

Creating OCR keys for user 'root', privgrp 'root'..

Operation successful.

/usr/app/oracle/product/10.2.0/crs/bin/srvctl

add nodeapps -n oradb5 -A oradb5-v ip/255.255.255.0/bond0

-o /usr/app/oracle/product/10.2.0/crs

[[email protected] install]#

/usr/app/oracle/product/10.2.0/crs/root.sh on node oradb5. 

[[email protected] crs]# ./root.sh

WARNING: directory '/usr/app/oracle/product/10.2.0' is not owned by root

WARNING: directory '/usr/app/oracle/product' is not owned by root

WARNING: directory '/usr/app/oracle' is not owned by root

Checking to see if Oracle CRS stack is already configured

/etc/oracle does not exist. Creating it now.

OCR backup directory '/usr/app/oracle/product/10.2.0/crs/cdata/SskyClst'

does not exist. Creating now

Setting the permissions on OCR backup directory

Setting up NS directories

Oracle Cluster Registry configuration upgraded successfully

WARNING: directory '/usr/app/oracle/product/10.2.0' is not owned by root

WARNING: directory '/usr/app/oracle/product' is not owned by root

WARNING: directory '/usr/app/oracle' is not owned by root

clscfg: EXISTING configuration version 3 detected.

clscfg: version 3 is 10G Release 2.

assigning default hostname oradb1 for node 1.

Successfully accumulated necessary OCR keys.

Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.

node :  

node 1: oradb1 oradb1-priv oradb1

node 2: oradb2 oradb2-priv oradb2

node 3: oradb3 oradb3-priv oradb3

node 4: oradb4 oradb4-priv oradb4

clscfg: Arguments check out successfully.

NO KEYS WERE WRITTEN. Supply -force parameter to override.

-force is destructive and will destroy any previous cluster

configuration.

Oracle Cluster Registry for cluster has already been initialized

Startup will be queued to init within 90 seconds.

Adding daemons to inittab

Expecting the CRS daemons to be up within 600 seconds.

CSS is active on these nodes.

        oradb1

        oradb2

        oradb3

        oradb4

        oradb5

CSS is active on all nodes.

Waiting for the Oracle CRSD and EVMD to start

Oracle CRS stack installed and running under init(1M)

Running vipca(silent) for configuring nodeapps

IP address "oradb-vip" has already been used.

Enter an unused IP address.

産生錯誤“oradb-vip’ has already been used”,因為 VIP 已經在所有節點(而非 oradb5)上進行了配置。重要的是在繼續之前手動執行 VIPCA(虛拟 IP 配置助手)。

使用 VIPCA 手動配置 VIP。與執行 OUI 相似,執行 VIPCA 要求運作該安裝程式的終端與 X-windows 相容。否則,應安裝相應的 X-windows 模拟器并使用以下文法通過 DISPLAY 指令調用此模拟器:

export DISPLAY=<client IP address>:0.0

例如:

[[email protected] oracle]$export  DISPLAY=192.168.2.101:0.0

在節點 oradb1(或者執行添加節點過程的節點)上的指令提示符處執行 root.sh 之後,還要立即作為根調用 VIPCA。(VIPCA 還将在新節點上配置 GSD 和 ONS 資源。)

    1. Welcome — 單擊 Next。
    2. 第 1 步(共 2 步):網絡接口 — 顯示網絡接口清單;選擇 VIP 将配置設定/映射到的網絡公共網絡接口。通常是清單 (eth0) 中的第一個接口;但是,在這個特定情況中,由于針對私有互連啟用了綁定而且該清單以字母次序顯示,是以 bond0 接口将顯示在清單頂部。完成後單擊 Next。
    3. 第 2 步(共 2 步):叢集節點的虛拟 IP — 對于清單中的每個節點名,在适當的列中提供 VIP 别名和虛拟 IP 位址。完成後單擊 Next。
    4. 總結 — 列出目前所選配置的總結。當所有設定正确後,單擊 Finish。
    5. 配置助手進度對話框 — 該螢幕将顯示 VIP、GSD 和 ONS 配置過程的進度。VIPCA 提示後單擊 OK。
    6. 配置結果 — 該螢幕将顯示配置結果。單擊 Exit 退出 VIPCA。

完成 Oracle 叢集件安裝後,将在其各自目錄中建立下列檔案。

叢集件檔案:

[[email protected] root]# ls -ltr /etc/init.d/init.*

-r-xr-xr-x    1 root     root     3197 Aug 13 23:32 /etc/init.d/init.evmd

-r-xr-xr-x    1 root     root    35401 Aug 13 23:32 /etc/init.d/init.cssd

-r-xr-xr-x    1 root     root     4721 Aug 13 23:32 /etc/init.d/init.crsd

-r-xr-xr-x    1 root     root     1951 Aug 13 23:32 /etc/init.d/init.crs

[[email protected] root]#

使用以下條目更新了作業系統提供的 inittab 檔案。

[[email protected] root]# tail -5 /etc/inittab

# Run xdm in runlevel 5

x:5:respawn:/etc/X11/prefdm -nodaemon

h1:35:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 </dev/null

h2:35:respawn:/etc/init.d/init.cssd fatal >/dev/null 2>&1 </dev/null

h3:35:respawn:/etc/init.d/init.crsd run >/dev/null 2>&1 </dev/null

  1. 當列出的所有腳本都在所有節點上運作後,單擊 OK。
  2. 安裝結束 — 單擊 Exit。
  3. 使用 olsnodes 指令驗證叢集件是否注冊了所有節點。

10.       [[email protected] oracle]$ olsnodes

11.       oradb1

12.       oradb2

13.       oradb3

14.       oradb4

15.       oradb5

16.       [[email protected] oracle]$

  1. 使用 crs_stat 指令驗證是否啟動了叢集服務。

18.       [[email protected] oracle]$ crs_stat -t

19.       Name           Type           Target    State     Host

20.       ------------------------------------------------------------

21.       ora.oradb1.gsd application    ONLINE    ONLINE    oradb1

22.       ora.oradb1.ons application    ONLINE    ONLINE    oradb1

23.       ora.oradb1.vip application    ONLINE    ONLINE    oradb1

24.       ora.oradb2.gsd application    ONLINE    ONLINE    oradb2

25.       ...

26.       ora.oradb3.vip application    ONLINE    ONLINE    oradb3

27.       ora.oradb4.gsd application    ONLINE    ONLINE    oradb4

28.       ora.oradb4.ons application    ONLINE    ONLINE    oradb4

29.       ora.oradb4.vip application    ONLINE    ONLINE    oradb4

30.       ora.oradb5.gsd application    ONLINE    ONLINE    oradb5

31.       ora.oradb5.ons application    ONLINE    ONLINE    oradb5

32.       ora.oradb5.vip application    ONLINE    ONLINE    oradb5

  1. 驗證是否在 OS 級配置了 VIP 服務。配置虛拟 IP 位址并将其添加到 OS 網絡配置并啟動網絡服務。VIP 配置可以使用 ifconfig 指令在 OS 級驗證。

34.       [[email protected] oracle]$ ifconfig -a

35.       eth0     Link encap:Ethernet  HWaddr 00:90:27:B8:58:10

36.                 inet addr:192.168.2.50  Bcast:192.168.2.255  Mask:255.255.255.0

37.                 UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1

38.                 RX packets:123 errors:0 dropped:0 overruns:0 frame:0

39.                 TX packets:67 errors:0 dropped:0 overruns:0 carrier:0

40.                 collisions:0 txqueuelen:1000

41.                 RX bytes:583308844 (556.2 Mb)  TX bytes:4676477 (4.4 Mb)

42.        

43.       eth0:1   Link encap:Ethernet  HWaddr 00:90:27:B8:58:10

44.                 inet addr:192.168.2.55  Bcast:192.168.3.255  Mask:255.255.252.0

45.                 UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1

46.                 RX packets:14631 errors:0 dropped:0 overruns:0 frame:0

47.                 TX packets:21377 errors:0 dropped:0 overruns:0 carrier:0

48.              collisions:0 txqueuelen:1000

49.              RX bytes:8025681 (7.6 Mb)  TX bytes:600 (600.0 b)

50.              Interrupt:11 Base address:0x2400 Memory:41300000-41300038

注意:eth0:1 訓示它是基本主機 eth0 的 VIP 位址。當節點出現故障時,eth0:1 将移動到叢集中的一個可用節點。故障切換伺服器上的 VIP 的新辨別符變為 eth0:2 或更高數值,具體情況取決于叢集中哪些節點故障以及 VIP 移植到的其他節點。

第 5 步:安裝 Oracle 軟體

下一步是在新節點上安裝 Oracle 軟體。如前所述,Oracle 已經提供了一個新的稱為 addNode.sh 的可執行檔案,它位于 $ORACLE_HOME/oui/bin 目錄。

  1. 執行腳本 $ORACLE_HOME/oui/bin/addNode.sh。
  2. Welcome — 單擊 Next。
  3. 指定要通過添加來安裝的叢集節點 — 在該螢幕中,OUI 列出了叢集的現有節點,并在下半個螢幕中列出了新節點(一個或多個)。選擇節點 oradb5。輸入資訊之後,單擊 Next。
  4. 叢集節點添加總結 — 驗證新節點列在“New Nodes”下拉菜單之下并單擊 Install 按鈕。
  5. 将 Oracle 軟體複制到節點 oradb5 之後,OUI 将提示您以 root 使用者的身份在另一個視窗中對叢集中的新節點(一個或多個)執行 /usr/app/oracle/product/10.2.0/db_1/root.sh 腳本。

6.           [[email protected] db_1]# ./root.sh

7.           Running Oracle10 root.sh script...

8.            

9.           The following environment variables are set as:

10.           ORACLE_OWNER= oracle

11.           ORACLE_HOME=  /usr/app/oracle/product/10.2.0/db_1

12.        

13.       Enter the full pathname of the local bin directory: [/usr/local/bin]:

14.       The file "dbhome" already exists in /usr/local/bin.  Overwrite it? (y/n)

15.       [n]: y

16.          Copying dbhome to /usr/local/bin ...

17.       The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)

18.       [n]: y

19.          Copying oraenv to /usr/local/bin ...

20.       The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)

21.       [n]: y

22.          Copying coraenv to /usr/local/bin ...

23.        

24.       Creating /etc/oratab file...

25.       Entries will be added to the /etc/oratab file as needed by

26.       Database Configuration Assistant when a database is created

27.       Finished running generic part of root.sh script.

28.       Now product-specific root actions will be performed.

  1. 單擊 OK(當 root.sh 在節點 oradb5 上運作後)。
  2. 安裝結束 — 單擊 Exit。

當安裝 RDBMS 軟體之後,比較好的做法是在進行下一步之前運作 netca。Netca 将配置需要的所有網絡檔案和參數,例如,監聽程式、sql*net 和 tnsnames.ora 檔案。

第 6 步:添加新執行個體(一個或多個)

DBCA 具有将附加執行個體添加到叢集所需的所有選項。

要求:

1.    在開始執行更新過程前,請建立資料庫的完整冷備份。

2.    Oracle 叢集件應該運作在所有節點上。

  1. Welcome 螢幕 — 選擇 Oracle Real Application Cluster database 并單擊 Next。
  2. 第 1 步(共 7 步):操作 — 列出了可以使用 DBCA 執行的所有操作清單。選中 Instance Management,然後單擊 Next。
  3. 第 2 步(共 7 步):執行個體管理 — 列出了可以執行的執行個體管理操作清單。選中 Add an Instance,然後單擊 Next。
  4. 第 3 步(共 7 步):叢集資料庫清單 — 列出了該節點上運作的叢集資料庫清單。在本例中,運作在節點 oradb1 上的資料庫是 SSKYDB;選擇該資料庫。在螢幕下半部分,DBCA 要求您“利用 SYSDBA 系統特權指定一個使用者”:

Username:sys

Password:<     > 并單擊 Next。

  1. 第 4 步(共 7 步):叢集資料庫執行個體清單 — DBCA 将列出叢集上目前可用的所有執行個體。驗證是否列出了所有執行個體并單擊 Next。/li>
  2. 第 5 步(共 7 步):執行個體命名和節點選擇 — DBCA 将列出序列中的下一個執行個體名并請求該節點來添加此執行個體。在我們的示例中,下一個執行個體名是 SSKY5,節點名是 oradb5。進行适當的選擇後單擊 Next。在該階段,在下一螢幕顯示之前會有一個小暫停,因為 DBCA 要确定新節點的目前狀态以及目前節點上配置了什麼服務。
  3. 第 6 步(共 7 步):資料庫服務 — 如果目前配置中配置了任何資料庫服務,将顯示該螢幕(否則跳過)。在我們的示例中,目前配置定義了兩個服務 — CRM 和 PAYROLL。該螢幕提示跨新執行個體配置它們。進行适當的選擇并在準備好後單擊 Next。
  4. 第 7 步(共 7 步):執行個體存儲 — 在該螢幕中,DBCA 将列出執行個體特定的檔案,例如,撤消表空間、重做日志組,等等。驗證是否列出了所需的所有檔案并單擊 Finish。
  5. 資料庫配置助手:總結 — 驗證該總結後,單擊 OK 開始軟體安裝。
  6. DBCA 驗證新節點 oradb5,而且由于該資料庫配置為使用 ASM,将提示消息“ASM 位于該叢集上,但需要擴充到以下節點:[oradb5]。您想擴充 ASM 嗎?”單擊 Yes 将 ASM 添加到新執行個體。
  7. 為了在新節點上建立并啟動 ASM 執行個體,Oracle 要求監聽程式可用且已啟動。DBCA 通過請求特權提示使用端口 1521 和監聽程式名 LISTENER_ORADB5 配置監聽程式。如果預設端口可用,單擊 Yes,否則單擊 No 并在 oradb5 上手動執行 NetCA 來使用不同端口建立監聽程式。
  8. 資料庫配置助手進度螢幕 — 當執行個體管理完成後,将提示使用者消息“您想執行另一操作嗎?”單擊 No 結束。
  9. 在該階段,以下内容是真實的:
    1. 已經在節點 oradb5 上安裝了該叢集件,現在它是該叢集的一部分。
    2. 已經在節點 oradb5 上安裝了該 Oracle 軟體。
    3. 已經在節點 oradb5 上建立并配置了 ASM5 和新 Oracle 執行個體 SSKY5。
  10. 驗證更新是否成功。
    1. 從任何參與執行個體使用 V$ACTIVE_INSTANCES 視圖驗證是否啟動了叢集中的所有執行個體。 例如:

b.                 SQL> select * from v$active_instances;

c.                  

d.                  

e.                 INST_NUMBER INST_NAME

f.                 ----------- -----------------------------------

g.                           1 oradb1.sumsky.net:SSKY1

h.                           2 oradb2.sumsky.net:SSKY2

i.                           3 oradb3.sumsky.net:SSKY3  

j.                           4 oradb4.sumsky.net:SSKY4

k.                           5 oradb5.sumsky.net:SSKY5

    1. 驗證是否已經安裝了所有 ASM 磁盤組,而且資料檔案是否對新執行個體可視。

m.                 SQL> SELECT NAME,STATE,TYPE FROM V$ASM_DISKGROUP;

n.                  

o.                 NAME                           STATE       TYPE

p.                 ------------------------------ ----------- ------

q.                 ASMGRP1                        CONNECTED   NORMAL

r.                 ASMGRP2                        CONNECTED   NORMAL

s.                  

t.                 SQL> SELECT NAME FROM V$DATAFILE;

u.                  

v.                 NAME

w.                 -----------------------------------------------------------------

x.                 +ASMGRP1/sskydb/datafile/system.256.581006553

y.                 +ASMGRP1/sskydb/datafile/undotbs1.258.581006555

z.                 +ASMGRP1/sskydb/datafile/sysaux.257.581006553

aa.             +ASMGRP1/sskydb/datafile/users.259.581006555

bb.             +ASMGRP1/sskydb/datafile/example.269.581007007

cc.             +ASMGRP1/sskydb/datafile/undots2.271.581029215

    1. 驗證 OCR 是否知道:

叢集中的新執行個體:

[[email protected] oracle]$ srvctl status database -d SSKYDB

Instance SSKY1 is running on node oradb1

Instance SSKY2 is running on node oradb2

Instance SSKY3 is running on node oradb3

Instance SSKY4 is running on node oradb4

Instance SSKY5 is running on node oradb5

資料庫服務:

[[email protected] oracle]$ srvctl status service -d SSKYDB

Service CRM is running on instance(s) SSKY1

Service CRM is running on instance(s) SSKY2

Service CRM is running on instance(s) SSKY3

Service CRM is running on instance(s) SSKY4

Service CRM is running on instance(s) SSKY5

Service PAYROLL is running on instance(s) SSKY1

Service PAYROLL is running on instance(s) SSKY5

第 7 步:執行日常管理任務

為便于管理和導航,應在登入配置檔案中定義幾個不同的環境變量。例如:

[[email protected] oracle]$ more .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

        . ~/.bashrc

fi

# User specific environment and startup programs

export ORACLE_BASE=/usr/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1

export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin

export PATH=${PATH}:$ORA_CRS_HOME/bin

export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin:/sbin

export ORACLE_ADMIN=$ORACLE_BASE/admin

export TNS_ADMIN=$ORACLE_HOME/network/admin

export LD_ASSUME_KERNEL=2.4.19

export LD_LIBRARY=$ORACLE_HOME/lib

export LD_LIBRARY=${LD_LIBRARY}:/lib:/usr/lib:/usr/local/bin

export LD_LIBRARY=${LD_LIBRARY}:$ORA_CRS_HOME/lib

export CLASSPATH=$ORACLE_HOME/JRE

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export THREADS_FLAG=native

export ORACLE_SID=SSKY5

将網絡位址添加到 DNS 以進行檢視。為了便于連接配接到使用 VIP 的資料庫的應用程式和用戶端将别名轉換為适當的 IP 位址,重要的是将 VIP 位址添加到 DNS。

還要将新網絡位址添加到 clinet tnsnames.ora 檔案,添加到适當的 connect 描述符。

CRAC =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = oradb1-vip)(PORT = 1521))

    (ADDRESS = (PROTOCOL = TCP)(HOST = oradb2-vip)(PORT = 1521))

    (ADDRESS = (PROTOCOL = TCP)(HOST = oradb3-vip)(PORT = 1521))

    (ADDRESS = (PROTOCOL = TCP)(HOST = oradb4-vip)(PORT = 1521))

    (ADDRESS = (PROTOCOL = TCP)(HOST = oradb5-vip)(PORT = 1521))

    (LOAD_BALANCE = yes)

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = CRM)

    )

  )

如果這些伺服器配置為使用 FAN 功能,将新的伺服器位址添加到所有資料庫伺服器上的 onsctl 檔案中。ons.config 檔案位于

[[email protected] oracle]$ more $ORACLE_HOME/opmn/conf/ons.config

localport=6101

remoteport=6201

loglevel=3

useocr=on

nodes=oradb4.sumsky.net:6101,oradb2.sumsky.net:6201,

oradb1.sumsky.net:6201,oradb3.sumsky.net:6201,oradb5.sumsky.net:6201

onsclient1.sumsky.net:6200,onsclient2.sumsky.net:6200

結論

恭喜,您已成功地将一個新節點添加到了四節點的現有配置。下表顯示了新配置。

資料庫名 節點編号 資料庫版本 執行個體編号 作業系統核心版本 檔案系統 叢集管理器
SSKYDB 五個節點 — oradb1、oradb2、oradb3、oradb4 和 oradb5 10.2.0.1 五個執行個體 — SSKY1、SSKY2、SSKY3、SSKY4 和 SSKY5

Red Hat Advanced Server 3.0

Linux sumsky.net 2.4.21-32.ELsmp

OCFS 1.0 和 ASM Oracle 叢集件