分類: Oracle
發現網上相關文章很多但是不是很專,因此細化版本爲了使文章更加實用。
這次搭建的是Oracle 11g R2 11.2.0.4的RAC環境,使用的操作系統版本爲Oracle Linux 6.4
點擊(此處)摺疊或打開
- [root@node1 ~]# lsb_release -a
- LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
- Distributor ID: OracleServer
- Description: Oracle Linux Server release 6.4
- Release: 6.4
- Codename: n/a
點擊(此處)摺疊或打開
- [root@node1 ~]# uname -r
- 2.6.39-400.17.1.el6uek.x86_64
二、Oracle 11g R2 RAC安裝整體步驟
- 安裝操作系統並升級到滿足Oracle安裝要求的版本。
- 創建安裝所需要的組、用戶以及軟件的家目錄。
- 設置GNS域名如果您打算部署GNS,並且完成網絡地址在DNS和服務器上的配置。
- 設置所要求的存儲。
- 將所有安裝文件拷貝到一個節點上。
- 爲集羣安裝Oracle Grid 基礎架構軟件。在安裝過程中,Fixup腳本進行操作系統參數、SSH和用戶環境變量等參數的附加調整。
-
升級Oracle Clusterware和Oracle ASM到最新補丁。
- 安裝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:
- [root@rac1 ~]# su - oracle
- [oracle@rac1 ~]$ mkdir ~/.ssh
- [oracle@rac1 ~]$ chmod 700 ~/.ssh
- [oracle@rac1 ~]$ ssh-keygen -t rsa
- [oracle@rac1 ~]$ ssh-keygen -t dsa
- [root@rac2 ~]# su - oracle
- [oracle@rac2 ~]$ mkdir ~/.ssh
- [oracle@rac2 ~]$ chmod 700 ~/.ssh
- [oracle@rac2 ~]$ ssh-keygen -t rsa
- [oracle@rac2 ~]$ ssh-keygen -t dsa
-
- 在節點1上進行互信配置:
- [oracle@rac1 ~]$ touch ~/.ssh/authorized_keys
- [oracle@rac1 ~]$ cd ~/.ssh
- [oracle@rac1 .ssh]$ ssh rac1 cat ~/.ssh/id_rsa.pub >> authorized_keys
- [oracle@rac1 .ssh]$ ssh rac2 cat ~/.ssh/id_rsa.pub >> authorized_keys
- [oracle@rac1 .ssh]$ ssh rac1 cat ~/.ssh/id_dsa.pub >> authorized_keys
- [oracle@rac1 .ssh]$ ssh rac2 cat ~/.ssh/id_dsa.pub >> authorized_keys
-
- 在rac1把存儲公鑰信息的驗證文件傳送到rac2上
- [oracle@rac1 .ssh]$ pwd
- /home/oracle/.ssh
- [oracle@rac1 .ssh]$ scp authorized_keys rac2:'pwd'
- oracle@rac2's password:
- authorized_keys 100% 1644 1.6KB/s 00:00
-
- 設置驗證文件的權限
- 在每一個節點執行:
- $ chmod 600 ~/.ssh/authorized_keys
-
- 啓用用戶一致性
- 在你要運行OUI的節點以oracle用戶運行(這裏選擇rac1):
- [oracle@rac1 .ssh]$ exec /usr/bin/ssh-agent $SHELL
- [oracle@rac1 .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
點擊(此處)摺疊或打開
- 格式化每個磁盤
- [root@rac1 ~]# fdisk /dev/sdb
-
- 完成後我們通過fdisk -l查看一下
- [root@rac1 ~]# fdisk -l
-
- [root@rac1 ~]# /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
-
- [root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1
- [root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL2 /dev/sdc1
- [root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL3 /dev/sdd1
-
- 以下操作在另一個節點上進行,RAC2上操作
- [root@rac2 ~]# oracleasm scandisks
- 這裏用到的是asmlib來做磁盤設備管理的,這裏大家也可以使用UDEV來管理,在RHEL6中asmlib已經被廢棄了,以後就是UDEV的天下
11.使用CVU檢查各個節點的配置工作
千辛萬苦終於到了安裝前的最後一步~
點擊(此處)摺疊或打開
- [root@node1 ~]# su - grid
- [grid@node1 ~]$ cd grid_sw
- [grid@node1 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