Oracle 10g RAC與SLES9
2024-08-29 13:39:22
供稿:網友
第 1 部分 安裝SLES9 1. 安裝SLES9。不要安裝 認證服務器(NIS、LDAP、Kerberos)。 2. 為每臺服務器的兩塊網卡提供兩個ip地址。一個用于專門網絡,一個用于公共網絡。 分別是:node1: 192.168.1.68 10.0.0.1 node2: 192.168.1.69 10.0.0.2 3. 在YaST中配置本地主機名:n1pub.site.com和n2pub.site.com。 4. SLES9下所需的程序包: 基本運行時系統
YaST
圖形基本工具
linux工具
KDE桌面環境
C/C++編譯環器和工具(安裝操作系統時手工選擇)
Tips:選完全安裝即可,省了很多挑選包的繁瑣工作 5. 所需內核:2.6.5-7.97-smp或更高。升級內核到2.6.5-7.155.29-smp。 # uname –r //查看內核 2.6.5-7.155.29-smp 6. 其他所需程序包的版本(或更高版本): make-3.8
gcc-3.3.3-43
gcc-c++=3.3.3-43
libaio-0.3.98-18
libaio-devel-0.3.98-18
openmotif-libs-2.2.2-519 驗證已安裝的程序包:
# rpm -q make gcc gcc-c++ libaio libaio-devel openmotif-libs 第 2 部分 為 Oracle 配置 Linux 1. 創建 Oracle 組和用戶帳戶 用戶帳戶名是‘oracle’,組是‘oinstall’和‘dba’。 僅在一個集群主機上以 root 用戶身份執行以下命令:
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -m -g oinstall -G dba oracle
# id oracle
uid=1000(oracle) gid=1000(oinstall) groups=1000(oinstall),1001(dba) 用戶 ID 和組 ID 在所有集群主機上必須相同。 使用從 id oracle 命令得到的信息,在其余集群主機上創建 Oracle 組和用戶帳戶:
# /usr/sbin/groupadd -g 1000 oinstall
# /usr/sbin/groupadd -g 1001 dba
# /usr/sbin/useradd -m -u 1000 -g oinstall -G dba oracle
# id oracle
uid=1000(oracle) gid=1000(oinstall) groups=1000(oinstall),1001(dba) 設置 oracle 帳戶的口令:
# passwd oracle 2. 創建掛載點 以 root 用戶身份執行以下命令:
# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01/app/oracle
# chmod -R 775 /u01/app/oracle 3. 配置內核參數 以 root 用戶身份登錄并在每個主機上配置 Linux 內核參數。
# cat>> /etc/sysctl.conf <<EOF
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmin = 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.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
EOF
# /sbin/sysctl -p
在完成以上步驟之后運行以下命令:
# /sbin/chkconfig boot.sysctl on 4. 為 oracle 用戶設置 Shell 限制 Oracle 建議對每個 Linux 帳戶可以使用的進程數量和打開文件的數量設置限制。要進行這些更改,以 root 用戶身份剪切和粘貼下列命令。 # cat >> /etc/security/limits.conf <<EOF
oracle soft nPRoc 16384
oracle hard nproc 16384
oracle soft nofile 65536
oracle hard nofile 65536
EOF
//啟用資源限制
# cat >> /etc/pam.d/login <<EOF
session required /lib/security/pam_limits.so
EOF 說明:此處soft 值即缺省值 和hard 值上限值相等。有的參考文檔描述 需要生成profile.local ,設置 nproc 和 nofile ,這是不對的,非root 用戶無權ulimit 修改bash資源限制! 5. SLES9避免錯誤 在 SLES9 上安裝 Oracle Enterprise Manager 10g 的一個錯誤將導致安裝因網絡端口不可用而失敗。OEM DBConsole 需要端口 1830,而在 SLES 環境中,此端口已經預留給 /etc/services。此錯誤在 MetaLink 上的錯誤號為 3513603。
要避免安裝過程中出現問題,以 root 用戶身份登錄,并在安裝 Oracle 10g 軟件之前將 /etc/services 文件中的端口 1830 應的行注釋掉。 6. 配置 Hangcheck 計時器 # modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
# cat >> /etc/init.d/boot.local <<EOF
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
EOF 7. 配置 /etc/hosts 有些 Linux 發行版本將主機名與回送地址 (127.0.0.1) 相關聯。 假如出現這種情況,則從回送地址中刪除主機名。 用于此指南的 /etc/hosts 文件:
127.0.0.1 localhost
10.0.0.1 n1pri.site.com n1pri
10.0.0.2 n2pri.site.com n2pri
192.168.1.68 n1pub.site.com n1pub
192.168.1.69 n2pub.site.com n2pub
192.168.1.66 n1vip.site.com n1vip
192.168.1.67 n2vip.site.com n2vip 8. 為用戶等效性配置 SSH 第一步是生成 SSH 的公共密鑰和專用密鑰。 在每個主機上,以 oracle 用戶身份登錄:
> mkdir ~/.ssh
> chmod 755 ~/.ssh
> /usr/bin/ssh-keygen -t rsa
> /usr/bin/ssh-keygen -t dsa 第二步將每個主機上的公共密鑰文件 id_rsa.pub 和 id_dsa.pub 的內容復制到其他每個主機的 ~/.ssh/authorized_keys 文件中。使用 ssh 第一次訪問遠程主機時,將提示確認是否希望連接該主機。 在第一個主機上,以 oracle 用戶身份登錄:
> cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
> cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys > ssh oracle@n2pub cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
> ssh oracle@n2pub cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
> chmod 644 ~/.ssh/authorized_keys 對第二個主機做同樣的處理。這次 SSH 會提示輸入在創建密鑰時所使用的口令短語而非 oracle 的口令。 這是因為第一個主機 (n1pub) 現在知道了第二個主機的公共密鑰,而 SSH 現在使用的是一種不同的認證協議。
> cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
> cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys > ssh oracle@n1pub cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
> ssh oracle@n1pub cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys > chmod 644 ~/.ssh/authorized_keys 9. 建立用戶等效性 以 oracle 用戶身份在每個主機上執行命令:
> exec /usr/bin/ssh-agent $SHELL
> /usr/bin/ssh-add 注重,用戶等效性僅為當前會話建立。 假如切換到其他會話或注銷并重新登錄,則必須再次運行 ssh-agent 和 ssh-add 才能重新建立用戶等效性。 10. 測試連通性 現在應該可以使用 ssh 在其他集群主機上不必輸入口令而登錄、執行程序和復制文件了。 通過在遠程集群主機上運行諸如 hostname 等簡單命令來驗證用戶等效性,如在n2pub上:
> ssh n1pub hostname 假如返回如n1pub,則表示正常。 測試每個方向上所有服務器的連通性。 如在n1pub上:
> ssh n2pub hostname 11. 同步時間 第 3 部分: 預備共享磁盤 有三種預備共享磁盤以用于 RAC 的方法: Oracle 集群文件系統 (OCFS) 自動存儲治理器 (ASM) 原始設備 Oracle 自動存儲治理器 (ASM) 1. 首先確定ASMLib的版本。ASMLib 以一套共三個 Linux 程序包的形式提供: oracleasmlib — ASM 庫
oracleasm-support — 治理 ASMLib 所需的實用程序
oracleasm — 用于 ASM 庫的內核模塊 以 root 用戶身份登錄并運行以下命令:
# uname -rm
2.6.5-7.155.29-smp i686 2. 下載與內核版本相應的oracleasm程序包(或者升級內核版本)。下載oracleasmlib 和 oracleasm-support 程序包。 3. 以 root 用戶身份執行以下命令,在每個集群主機上安裝這些程序包: # rpm -Uvh /
> oracleasm-2.6.5-7.155.29-smp-2.0.0-1.i586.rpm /
> oracleasmlib-2.0.0-1.i386.rpm /
> oracleasm-support-2.0.0-1.i386.rpm
Preparing... ########################################### [100%]
1:oracleasm-support ########################################### [ 33%]
2:oracleasm-2.6.5-7.155.2########################################### [ 67%]
3:oracleasmlib ########################################### [100%]
4. 運行配置腳本來預備驅動程序。以 root 用戶身份在每個集群主機上運行以下命令并回應提示: # /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
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 5. 啟用 ASMLib 驅動程序: # /etc/init.d/oracleasm enable
Writing Oracle ASM library driver configuration: done
Scanning system for ASM disks: done 6. 使用fdisk對磁盤進行分區。 用途 大小 磁盤設備
ASM數據區1 600G dev/sdb
ASM數據區2 600G dev/sdc
Oracle Cluster Registry 200M dev/sdd1
Oracle CRS Voting 200M dev/sdd2
7. 為 ASM 配置磁盤。注重,這些磁盤應該是不包含任何內容的空磁盤分區。僅從一個集群主機上以 root 用戶身份運行以下命令: # /etc/init.d/oracleasm createdisk DISK_NAME1 /dev/sdb1
# /etc/init.d/oracleasm createdisk DISK_NAME2 /dev/sdc1
…
Marking disk "/dev/sdb1" as an ASM disk: done 8. 列出標記為由 ASMLib 使用的所有磁盤: # /etc/init.d/oracleasm listdisks
DISK_NAME1
DISK_NAME2
... 9. 在所有其他集群主機上,以 root 用戶身份運行以下命令,掃描所配置的 ASMLib 磁盤: # /etc/init.d/oracleasm scandisks 第 4 部分: 安裝 Oracle 軟件 1.1 創建CRS 1. 在原始設備上創建 Oracle CRS 文件 目的 大小 磁盤設備 原始設備 文件名
Oracle ClusterRegistry 500M dev/sdd1 /dev/raw/raw1 /u02/oracrs/ocr.crs
Oracle CRS Voting 100M dev/sdd2 /dev/raw/raw2 /u02/oracrs/vote.crs 將以下各行添加到每個集群節點上的 /etc/raw:
raw1:sdd1
raw2:sdd2 2. 為每個節點上的 CRS 原始設備設置所有權和權限(嚴格按照下述配置) # chown root:oinstall /dev/raw/raw1
# chmod 660 /dev/raw/raw1
# chown oracle:dba /dev/raw/raw2
# chmod 640 /dev/raw/raw2 3. 重新啟動原始設備服務 # /etc/init.d/raw start
bind /dev/raw/raw1 to /dev/sdd1... done
bind /dev/raw/raw2 to /dev/sdd2... done
bind /dev/raw/raw3 to /dev/sdd3... done
4. 讓系統啟動時啟動raw # chkconfig raw on 5. 初始化raw (500m=524288000, 100m=104857600) # dd if=/dev/zero of=/dev/raw/raw1 bs=524288000 ount=1
# dd if=/dev/zero of=/dev/raw/raw2 bs=104857600 ount=1 6. 以 oracle 用戶身份登錄X-Window并建立節點間的用戶等效性: > exec /usr/bin/ssh-agent $SHELL
> /usr/bin/ssh-add 7. 設置 ORACLE_BASE 和 ORACLE_HOME 環境變量:.profile > eXPort ORACLE_BASE=/u01/app/oracle
> export ORACLE_HOME=/u01/app/oracle/prodUCt/10.1.0/db_1
> export ORA_CRS_HOME=/u01/app/oracle/crs
> export LD_ASSUME_KERNEL=2.4.21
> export LANG=C
>export PATH=$PATH:$ORACLE_HOME/bin 8. 在一臺主機上(n1pub)以oracle身份登錄,安裝CRS。掛載包含 CRS 介質的 CD 或文件系統,假如是ship.*.cpio.gz 形式壓縮的, 先執行gunzip 加壓, 然后執行 Cpio –idmv < ship.*.cpio 解壓。運行Disk1下的安裝腳本, ./runInstaller 9. Welcome;單擊 Next。 10. Specify Inventory Directory and Credentials — 默認值應該就是正確的。確保 inventory 目錄位于 ORACLE_BASE 目錄中(例如: /u01/app/oracle/oraInventory)并且操作系統組是“oinstall”,在安裝節點 (n1pub) 上運行 orainstRoot.sh(確保在 /etc/hosts 中而不僅僅是在 DNS 中配置了您的主機)。 11. Specify File Locations — 確認默認值后繼續。 12. Language Selection — 確認默認值后繼續。 13. Cluster Configuration — 輸入集群名和集群節點名。這里集群名可以取默認值或自己輸入。公共節點名和專用節點名在此例中是public:n1pub.site.com和 n2pub.site.com;private:n1pri.site.com和n2pri.site.com。 14. Private Interconnect Enforcement — 為每個接口指定接口類型。 15. Oracle Cluster Registry — 在 Cluster Specify OCR Location 中,本例為
/dev/raw/raw1 16. Voting Disk — 輸入 voting disk 名,本例為 /dev/raw/raw2
17. 在集群的其余節點上運行 orainstRoot.sh。 18. Summary — 在出現提示時單擊 Install。 19. 從安裝節點開始,每次在一個節點上運行 Oracle CRS 主目錄中的 root.sh,如 /u01/app/oracle/product/10.1.0/crs_1/root.sh。不要同時在不同主機上運行該腳本,等在一臺主機上腳本運行結束后再啟動另一個。 (su -) 20. 從 $ORACLE_BASE/product/10.1.0/crs_1/bin 目錄中運行 olsnodes 驗證安裝已成功。例如:
> cd $ORACLE_BASE/product/10.1.0/crs_1/bin
> ./olsnodes 21. 在一臺主機安裝數據庫。從 db CD 運行 ./runInstaller。 22. Welcome — 單擊 Next。 23. Specify File Locations — 確認默認值后繼續。 24. Specify Hardware Cluster Installation Mode — 選擇 Cluster Installation 并選擇集群中的其他節點。 25. Select Installation Type — Enterprise Edition。 26. Product-specific Prerequisite Checks — 全部選 OK。 27. Select Database Configuration — 選擇“Do not create a starter database”。使用數據庫配置助手 (DBCA) 來創建數據庫。 28. Summary — 在出現提示時單擊 Install。 29. 在安裝數據庫的節點上運行/u01/app/oracle/product/10.1.0/db_1/root.sh前,必須先執行以下操作: # export DISPLAY=:0.0
# export XAUTHORITY=/home/oracle/.Xauthority 30. 從安裝節點開始,以 root 用戶身份登錄,每次在一個主機上運行 Oracle 數據庫主目錄中的 root.sh,本例中為 /u01/app/oracle/product/10.1.0/db_1/root.sh。不要同時在不同主機上運行該腳本,等在一臺主機上腳本運行結束后再啟動另一個。 31. 在安裝節點上執行 root.sh 腳本期間,將會出現VIPCA。 32. Welcome — 單擊 Next。 33. Network Interfaces — 只選擇用于公共網絡的接口(在本示例中為 eth0)。 集群中所有主機上的這個接口必須相同。 (假如在安裝主機上該接口是 eth0,則在集群中所有其他主機上都必須是 eth0。) 34. Virtual IPs for cluster nodes — 輸入在 DNS 中所配置的每個主機的虛擬 IP 別名(主機名)和虛擬 IP 地址。 35. Summary — 單擊 Finish。 VIP 配置助手創建并啟動 VIP、GSD 和 ONS 應用程序資源。 36. Configuration Results — 檢查結果并單擊 Exit。 在其他節點上依次運行 root.sh。 37. End of Installation — 安裝結束。
38. 在一個節點上Create the TNS Listener Process
./netca (在用戶等效性已經建立的session 中執行) 1.2 創建 Oracle RAC 數據庫 38. 以 oracle 用戶身份登錄,設置環境。 > . oraenv
ORACLE_SID = [oracle] ? *
ORACLE_HOME = /u01/app/oracle/product/10.1.0/db_1 39. dbca 1. Welcome — 選擇“Oracle Real application Clusters database” 2. Operations — 創建數據庫 3. Node Selection — 單擊 Select All(ds1 和 ds2) 4. Database Templates — 通用 5. Database Identification — 全局數據庫名: gemni.orademo.org 6. Management Options — 利用 Enterprise Manager 配置數據庫;使用數據庫控制進行數據庫治理 7. Database Credentials — 為所有帳戶使用相同的口令;輸入口令并再次確認 8. Storage Options — 自動存儲治理 (ASM) 9. Create ASM Instance — 設置 SYS 口令并確認;創建初始化參數文件 (IFILE) 10. ASM Disk Groups — Create New>Create Disk Group>Disk Group Name (DATA);冗余(正常);更改磁盤發現路徑(ORCL:* — 即使磁盤顯示為已供給狀態,仍然必須輸入此項,否則會出錯);選擇磁盤;輸入故障組名;選擇新創建的磁盤組 11. Database File Locations — 使用 Oracle 治理的文件 12. Recovery Configuration — 單擊 Next 13. Database Content — 示例模式 14. Initialization Parameters — 內存、典型 、字符集 15. Database Storage — 單擊 Next 16. Create Options — 選擇“Create Database” 17. Summary — 檢查總結信息并單擊 OK 1.3 設置開機啟動數據庫和客戶端配置 設置自動啟動: 編輯 /etc/oratab 將實例對應的 N 改為 Y
編輯 $oracle_home/bin 的dbshut dbhome dbstart 腳本 設置
將 ORATAB設置為/etc/oratab 客戶端設置 NetMgr 或者 netca 配置 TNSServiceName
地址有2個,分別是n1pub 的虛擬地址192.168.1.66 和n2pub的虛擬地址192.168.1.67 高級選上 ,隨機選取一個嘗試,直到成功。 服務名:orcl.site.com ,要跟listener.ora 描述的一致。服務器類型選數據庫默認。 注重:需要在客戶端 hosts文件加上以下2條記錄(主要是有重定向): 192.168.1.68 n1pub ?。╪1pub 為節點一 上 uname –n 的輸出)
192.168.1.69 n2pub ?。╪2pub 為節點二 上 uname –n 的輸出)