個人覺得最好最全的11g Linux RAC 安裝文件
- 安裝Oracle RAC
- 打補丁到最新版本
- 完成安裝後的除錯
三、詳細安裝過程及說明(參考官方文件)
1.通過SecureCRT或TerminalX建立命令列連線。
2.在每一個節點上新增安裝Oracle
Grid的使用者、組和家目錄,並設定許可權。
點選(此處)摺疊或開啟
- # /usr/sbin/groupadd -g 1000 oinstall
- # /usr/sbin/groupadd -g 1020 asmadmin
- # /usr/sbin/groupadd -g 1021 asmdba
- # /usr/sbin/groupadd -g 1022 asmoper
- # /usr/sbin/groupadd -g 1031 dba
- # /usr/sbin/groupadd -g 1032 oper
- # useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
- # useradd -u 1101 -g oinstall -G dba,asmdba,oper oracle
- # mkdir -p /u01/app/11.2.0/grid
- # mkdir -p /u01/app/grid
- # chown -R grid:oinstall /u01
- # mkdir /u01/app/oracle
- # chown oracle:oinstall /u01/app/oracle
- # chmod -R 775 /u01/
3.檢查伺服器各個節點的配置是否符合安裝要求
I.伺服器硬碟空間要求
/tmp目錄大小至少:1GB
安裝Grid Infrastracture所需空間:6.6GB
安裝Oracle Database所需空間:4GB
此外安裝過程中分析、收集、跟蹤檔案所需空間:10GB
建議總共至少30GB,放心!(此處不包含ASM或NFS的空間需求)
II.伺服器記憶體要求
記憶體大小:至少2.5GB
Swap大小:
當記憶體為2.5GB-16GB時,Swap需要大於等於系統記憶體。
當記憶體大於16GB時,Swap等於16GB即可。
III.檢查和除錯程式碼
-
檢視記憶體及Swap大小的命令如下。
點選(此處)摺疊或開啟
- # grep MemTotal /proc/meminfo
- # grep SwapTotal /proc/meminfo
-
檢視/tmp目錄以及配置單獨lv的命令如下。
點選(此處)摺疊或開啟
- # df -h /tmp
- # lvcreate -L 2G -n lv_tmp vg_temp
- # mount /dev/vg_temp/lv_tmp /tmp
-
# df -h /tmp
4.設定作業系統相關引數
這一項在非Oracle Linux的作業系統中算是一項比較繁瑣的工作,然而我們這次安裝的版本是Oracle Linux 6.4 with Unbreakable Enterprise Kernel,因此我們有了更簡單的辦法,就是通過安裝Oracle Preinstallation RPM來實現相關作業系統引數的調整和軟體包的安裝。這個安裝包主要完成以下工作:
-
Automatically downloads and installs any additional RPM packages needed for installing Oracle Grid Infrastructure and Oracle Database, and resolves any dependencies
-
Creates an oracle user, and creates the oraInventory (oinstall) and OSDBA (dba) groups for that user
-
As needed, sets sysctl.conf settings, system startup parameters, and driver parameters to values based on recommendations from the Oracle Preinstallation RPM program
-
Sets hard and soft resource limits
-
Sets other recommended parameters, depending on your kernel version
點選(此處)摺疊或開啟
- # cd /mnt/install_DVD
- # cd Packages
- # ll | grep preinstall
- -rw-r--r-- 1 root root 15524 Jan 16 2013 oracle-rdbms-server-11gR2-preinstall-1.0-7.el6.x86_64.rpm
- # rpm -ivh oracle-rdbms-server-11gR2-preinstall-1.0-7.el6.x86_64.rpm
其中標有oracle-rdbms-server-11gR2-preinstall字樣註釋的便是安裝包所新增的引數。
點選(此處)摺疊或開啟
- # cat /etc/sysctl.conf
- # Kernel sysctl configuration file for Red Hat Linux
- #
- # For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
- # sysctl.conf(5) for more details.
- # Controls IP packet forwarding
- net.ipv4.ip_forward = 0
- # Controls source route verification
- net.ipv4.conf.default.rp_filter = 1
- # Do not accept source routing
- net.ipv4.conf.default.accept_source_route = 0
- # Controls the System Request debugging functionality of the kernel
- kernel.sysrq = 0
- # Controls whether core dumps will append the PID to the core filename.
- # Useful for debugging multi-threaded applications.
- kernel.core_uses_pid = 1
- # Controls the use of TCP syncookies
- net.ipv4.tcp_syncookies = 1
- # Disable netfilter on bridges.
- net.bridge.bridge-nf-call-ip6tables = 0
- net.bridge.bridge-nf-call-iptables = 0
- net.bridge.bridge-nf-call-arptables = 0
- # Controls the default maxmimum size of a mesage queue
- kernel.msgmnb = 65536
- # Controls the maximum size of a message, in bytes
- kernel.msgmax = 65536
- # Controls the maximum shared segment size, in bytes
- # Controls the maximum number of shared memory segments, in pages
- # oracle-rdbms-server-11gR2-preinstall setting for fs.file-max is 6815744
- fs.file-max = 6815744
- # oracle-rdbms-server-11gR2-preinstall setting for kernel.sem is '250 32000 100 128'
- kernel.sem = 250 32000 100 128
- # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmmni is 4096
- kernel.shmmni = 4096
- # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmall is 1073741824 on x86_64
- # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmall is 2097152 on i386
- kernel.shmall = 1073741824
- # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmmax is 4398046511104 on x86_64
- # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmmax is 4294967295 on i386
- kernel.shmmax = 4398046511104
- # oracle-rdbms-server-11gR2-preinstall setting for net.core.rmem_default is 262144
- net.core.rmem_default = 262144
- # oracle-rdbms-server-11gR2-preinstall setting for net.core.rmem_max is 4194304
- net.core.rmem_max = 4194304
- # oracle-rdbms-server-11gR2-preinstall setting for net.core.wmem_default is 262144
- net.core.wmem_default = 262144
- # oracle-rdbms-server-11gR2-preinstall setting for net.core.wmem_max is 1048576
- net.core.wmem_max = 1048576
- # oracle-rdbms-server-11gR2-preinstall setting for fs.aio-max-nr is 1048576
- fs.aio-max-nr = 1048576
- # oracle-rdbms-server-11gR2-preinstall setting for net.ipv4.ip_local_port_range is 9000 65500
- net.ipv4.ip_local_port_range = 9000 65500
5.配置Oracle網路
I.硬體配置要求
- 每個伺服器節點至少需要2塊網絡卡,一塊對外網路介面,一塊私有網路介面(心跳)。
- 如果你通過OUI安裝Oracle叢集軟體,需要保證每個節點用於外網或私網介面(網絡卡名)保證一致。比如,node1使用eth0作為對外介面,node2就不能使用eth1作為對外介面。
II.IP配置要求
-
存在為叢集服務的DHCP
-
DHCP能為每個節點提供足夠的IP,一個虛擬IP、3個SCAN IP
III.非GNS下手動配置IP例項
6.檢查作業系統軟體包
首先,根據作業系統版本到官方文件中找到安裝包需求列表,如下圖
可以通過mount安裝盤或直接通過yum源檢查和安裝所需要的包:
點選(此處)摺疊或開啟
- # rpm -qa packages_name
- # rpm -ivh packages_name
- # yum list packages_name
- # yum install packages_name
點選(此處)摺疊或開啟
- # 檢查是否已經安裝
- # rpm -qi cvuqdisk
- # 如果已安裝需要先解除安裝之前的版本
- # rpm -e cvuqdisk
- # 安裝新版本
- # CVUQDISK_GRP=oinstall; export CVUQDISK_GRP
- # rpm -ivh cvuqdisk-1.0.9-1.rpm
7.關閉NTP及埠範圍引數修改
點選(此處)摺疊或開啟
- # Oracle建議使用Oracle Cluster Time Synchronization Service,因此關閉刪除NTP
- # /sbin/service ntpd stop
- # chkconfig ntpd off
- # rm /etc/ntp.conf (mv /etc/ntp.conf /etc/ntp.conf.old)
- # rm /var/run/ntpd.pid
- 檢查TCP/UDP埠範圍
- # cat /proc/sys/net/ipv4/ip_local_port_range
-
如果已經顯示9000 65500,就不用進行下面的步驟了
- # echo 9000 65500 > /proc/sys/net/ipv4/ip_local_port_range
- # vim /etc/sysctl.conf
- # 新增此行:
- # TCP/UDP port range
- net.ipv4.ip_local_port_range = 9000 65500
- # 重啟網路
- # /etc/rc.d/init.d/network restart
8.調整.bash_profile內容並設定顯示地址
點選(此處)摺疊或開啟
- 設定引數:
- $ su - root
- # mkdir /mount_point/tmp
- # chmod 775 /mount_point/tmp
- # exit
- $ vi .bash_profile
- 加入行:
- TEMP=/mount_point/tmp
- TMPDIR=/mount_point/tmp
- export TEMP TMPDIR
- 加入行:umask 022
- 加入行:DISPLAY=local_IP:0.0 ; export DISPLAY
- local_IP為你要將安裝檢視所顯示的桌面地址
- 檢查設定引數
- $ umask
- $ env | more
- $ echo $DISPLAY
- $ echo $TEMP
-
$ echo $TMPDIR
9.配置SSH互信
這是很關鍵的一步,雖然官方文件中聲稱安裝GI和RAC的時候OUI會自動配置SSH,但為了在安裝之前使用CVU檢查各項配置,還是手動配置互信更優。
點選(此處)摺疊或開啟
- 配置過程如下:
- 各節點生成Keys:
- [[email protected] ~]# su - oracle
- [[email protected] ~]$ mkdir ~/.ssh
- [[email protected] ~]$ chmod 700 ~/.ssh
- [[email protected] ~]$ ssh-keygen -t rsa
- [[email protected] ~]$ ssh-keygen -t dsa
- [[email protected] ~]# su - oracle
- [[email protected] ~]$ mkdir ~/.ssh
- [[email protected] ~]$ chmod 700 ~/.ssh
- [[email protected] ~]$ ssh-keygen -t rsa
- [[email protected] ~]$ ssh-keygen -t dsa
- 在節點1上進行互信配置:
- [[email protected] ~]$ touch ~/.ssh/authorized_keys
- [[email protected] ~]$ cd ~/.ssh
- [[email protected] .ssh]$ ssh rac1 cat ~/.ssh/id_rsa.pub >> authorized_keys
- [[email protected] .ssh]$ ssh rac2 cat ~/.ssh/id_rsa.pub >> authorized_keys
- [[email protected] .ssh]$ ssh rac1 cat ~/.ssh/id_dsa.pub >> authorized_keys
- [[email protected] .ssh]$ ssh rac2 cat ~/.ssh/id_dsa.pub >> authorized_keys
- 在rac1把儲存公鑰資訊的驗證檔案傳送到rac2上
- [[email protected] .ssh]$ pwd
- /home/oracle/.ssh
- [[email protected] .ssh]$ scp authorized_keys rac2:'pwd'
- [email protected]'s password:
- authorized_keys 100% 1644 1.6KB/s 00:00
- 設定驗證檔案的許可權
- 在每一個節點執行:
- $ chmod 600 ~/.ssh/authorized_keys
- 啟用使用者一致性
- 在你要執行OUI的節點以oracle使用者執行(這裡選擇rac1):
- [[email protected] .ssh]$ exec /usr/bin/ssh-agent $SHELL
- [[email protected] .ssh]$ ssh-add
- 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配置是否正確
- 以oracle使用者在所有節點分別執行:
- ssh rac1 date
- ssh rac2 date
- ssh rac1-priv date
- ssh rac2-priv date
- 如果不需要輸入密碼就可以輸出時間,說明ssh驗證配置成功。必須把以上命令在兩個節點都執行,每一個命令在第一次執行的時候需要輸入yes。
- 如果不執行這些命令,即使ssh驗證已經配好,安裝clusterware的時候也會出現錯誤:
- The specified nodes are not clusterable
- 因為,配好ssh後,還需要在第一次訪問時輸入yes,才算是真正的無障礙訪問其他伺服器。
10.為Grid叢集基礎軟體配置儲存(使用ASM)
Oracle所允許的儲存主要有ASM、NFS和ACFS等,這裡僅介紹ASM的配置過程。
(1)安裝ASM配置軟體
點選(此處)摺疊或開啟
- 依然是可以通過yum或者系統DVD光碟安裝
- # cd /mnt/install_DVD/Packages
- # rpm -qi oracleasm
- # rpm -qi oracleasm-support
- # rpm -qi oracleasm-support-2.1.8-1.el6.x86_64.rpm
- //我們是Oracle Linux系統,此版本已經集成了oracleasm和oracleasmlib,所以就不用再安裝了~
官方文件中規定了不同冗餘策略下OCR、Voting Disk、Database和Recovery所需求的大小。
找到儲存管理員,把規劃好的磁碟都讓他給你配置好~
(3)配置ASM
點選(此處)摺疊或開啟
- 格式化每個磁碟
- [[email protected] ~]# fdisk /dev/sdb
- 完成後我們通過fdisk -l檢視一下
- [[email protected] ~]# fdisk -l
- [[email protected] ~]# /usr/sbin/oracleasm configure -i
- Default user to own the driver interface []: grid
- Default group to own the driver interface []: asmadmin
- Start Oracle ASM library driver on boot (y/n) [n]: y
- Scan for Oracle ASM disks on boot (y/n) [y]: y
- [[email protected] ~]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1
- [[email protected] ~]# /etc/init.d/oracleasm createdisk VOL2 /dev/sdc1
- [[email protected] ~]# /etc/init.d/oracleasm createdisk VOL3 /dev/sdd1
- 以下操作在另一個節點上進行,RAC2上操作
- [[email protected] ~]# oracleasm scandisks
- 這裡用到的是asmlib來做磁碟裝置管理的,這裡大家也可以使用UDEV來管理,在RHEL6中asmlib已經被廢棄了,以後就是UDEV的天下
11.使用CVU檢查各個節點的配置工作
千辛萬苦終於到了安裝前的最後一步~
點選(此處)摺疊或開啟
- [[email protected] ~]# su - grid
- [[email protected] ~]$ cd grid_sw
- [[email protected] grid_sw]$ ./runcluvfy.sh stage -pre crsinst -n node1,node2 -fixup -verbose
- 其中“grid_sw”為安裝包解壓出來的grid安裝檔案。
我這次安裝遇到了PRVF-5636,此問題是由於沒有DNS以及/etc/resolv.conf 的設定引起的,因為指令碼要用nslookup命令去檢測兩個節點的連通性。
12.安裝GI和RAC
(1)安裝Oracle Grid Infrastructure
安裝過程中遇到了udev的報錯,由於我們使用的oracleasmlib,所以直接無視~
(2)安裝Oracle Database 11g with Oracle Real Application Clusters
安裝Grid是難點,RAC只要Grid安裝順利基本不是問題,安裝過程中也請先使用CVU進行安裝前檢測,本次安裝過程中遇到了一些檔案許可權的問題,大家安裝時也請多注意。尤其是ASM的許可權和安裝使用者的家目錄許可權。
13.使用ASMCA和DBCA管理資料庫
關於這兩個管理軟體網上文章很多,這裡不再贅述。
鳴謝:
本文參考了眾多高手的部落格和文章,特此說明,以表敬意!
http://blog.itpub.net/28883355/viewspace-1125122/
http://blog.itpub.net/20674423/viewspace-1130320/
https://community.oracle.com/message/10696565