實驗環境准備
虛擬機:VMware® Workstation 14 Pro
操作系統:Red Hat Enterprise Linux 6.6 x86_64
rhel-server-6.6-x86_64-dvd.iso
oracle軟件:oracle 11.2.0.4
p13390677_112040_Linux-x86-64_1of7.zip
p13390677_112040_Linux-x86-64_2of7.zip
p13390677_112040_Linux-x86-64_3of7.zip
虛擬服務器配置
cpu:1核心
內存:2G
硬盤:30G
共享磁盤:2G*3 + 5G + 6G
網卡*3
操作系統安裝
分區:(實驗環境以最小化原則進行安裝,實際生產環境需要根據需求進行合理規划)
/boot 200M
swap 3200M
/ 剩余所有空間
軟件包:
選擇Desktop
時區:
選擇shanghai
創建共享磁盤
vmware-vdiskmanager.exe -c -s 2g -a lsilogic -t 2 "D:\vmware\sharedisk\Shared_Virtual_Disk_OCR1.vmdk" vmware-vdiskmanager.exe -c -s 2g -a lsilogic -t 2 "D:\vmware\sharedisk\Shared_Virtual_Disk_OCR2.vmdk" vmware-vdiskmanager.exe -c -s 2g -a lsilogic -t 2 "D:\vmware\sharedisk\Shared_Virtual_Disk_OCR3.vmdk" vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 "D:\vmware\sharedisk\Shared_Virtual_Disk_FRA.vmdk" vmware-vdiskmanager.exe -c -s 6g -a lsilogic -t 2 "D:\vmware\sharedisk\Shared_Virtual_Disk_DATA.vmdk"
虛擬機關機后,在srac1.vmx/srac2.vmx文件最后追加以下內容
#shared disks configure disk.EnableUUID="TRUE" disk.locking = "FALSE" scsi1.shared = "TRUE" diskLib.dataCacheMaxSize = "0" diskLib.dataCacheMaxReadAheadSize = "0" diskLib.dataCacheMinReadAheadSize = "0" diskLib.dataCachePageSize= "4096" diskLib.maxUnsyncedWrites = "0" scsi1.present = "TRUE" scsi1.virtualDev = "lsilogic" scsil.sharedBus = "VIRTUAL" scsi1:0.present = "TRUE" scsi1:0.mode = "independent-persistent" scsi1:0.fileName = "D:\vmware\sharedisk\Shared_Virtual_Disk_OCR1.vmdk" scsi1:0.deviceType = "disk" scsi1:0.redo = "" scsi1:1.present = "TRUE" scsi1:1.mode = "independent-persistent" scsi1:1.fileName = "D:\vmware\sharedisk\Shared_Virtual_Disk_OCR2.vmdk" scsi1:1.deviceType = "disk" scsi1:1.redo = "" scsi1:2.present = "TRUE" scsi1:2.mode = "independent-persistent" scsi1:2.fileName = "D:\vmware\sharedisk\Shared_Virtual_Disk_OCR3.vmdk" scsi1:2.deviceType = "disk" scsi1:2.redo = "" scsi1:3.present = "TRUE" scsi1:3.mode = "independent-persistent" scsi1:3.fileName = "D:\vmware\sharedisk\Shared_Virtual_Disk_FRA.vmdk" scsi1:3.deviceType = "disk" scsi1:3.redo = "" scsi1:4.present = "TRUE" scsi1:4.mode = "independent-persistent" scsi1:4.fileName = "D:\vmware\sharedisk\Shared_Virtual_Disk_DATA.vmdk" scsi1:4.deviceType = "disk" scsi1:4.redo = ""
IP規划
|
hostname |
IP |
Public Network |
srac1 |
92.0.2.101 |
srac2 |
92.0.2.102 |
|
Virtual IP (VIP) |
srac1 |
92.0.2.103 |
srac2 |
92.0.2.104 |
|
Private Interconnect |
srac1 |
192.168.0.101 |
srac2 |
192.168.0.102 |
|
SCAN IP |
srac1/srac2 |
92.0.2.105 |
hosts規划
##Public Network
92.0.2.101 srac1.example.com srac1
92.0.2.102 srac2.example.com srac2
##Public Virtual IP (VIP) addresses
92.0.2.103 srac1-vip.example.com srac1-vip
92.0.2.104 srac2-vip.example.com srac2-vip
##Private Interconnect
192.168.0.101 srac1-priv.example.com srac1-priv
192.168.0.102 srac2-priv.example.com srac2-priv
##SCAN IP
92.0.2.105 srac-scan.example.com srac-scan
安裝
1. 關閉防火牆、SELinux
# chkconfig iptables off # chkconfig ip6tables off # vi /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted 重啟后生效
2. 查看修改主機名
# hostname (查看hostname) # vi /etc/sysconfig/network (如果hostname不合適修改該文件) 建議在安裝操作系統時設置合適的主機名
3. 修改/etc/hosts
# vi /etc/hosts增加以下內容 ##Public Network 92.0.2.101 srac1.example.com srac1 92.0.2.102 srac2.example.com srac2 ##Public Virtual IP (VIP) addresses 92.0.2.103 srac1-vip.example.com srac1-vip 92.0.2.104 srac2-vip.example.com srac2-vip ##Private Interconnect 192.168.0.101 srac1-priv.example.com srac1-priv 192.168.0.102 srac2-priv.example.com srac2-priv ##SCAN IP 92.0.2.105 srac-scan.example.com srac-scan
4. 創建用戶和組
# /usr/sbin/groupadd -g 501 oinstall # /usr/sbin/groupadd -g 502 dba # /usr/sbin/groupadd -g 503 oper # /usr/sbin/groupadd -g 504 asmadmin # /usr/sbin/groupadd -g 505 asmoper # /usr/sbin/groupadd -g 506 asmdba # /usr/sbin/useradd -u 501 -g oinstall -G dba,oper,asmdba,asmadmin,asmoper grid # /usr/sbin/useradd -u 502 -g oinstall -G dba,oper,asmdba oracle # passwd grid # passwd oracle
# id grid
# id oracle
5. 配置內核參數
# vi /etc/sysctl.conf fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 4294967296 # kernel.shmmax/kernel.shmmni可以大不能小 kernel.shmmax = 68719476736 #超過memory_target,現在配置為64G kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 #(PROCESSES+10 (PROCESSES+10)*128 PROCESSES+10 128) net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 # /sbin/sysctl -p 注:kernel.shmall= kernel.shmmax/ kernel.shmmni是理論值,一般設置偏大一點,按照kernel.shmmax/8設置即可 # vi /etc/security/limits.conf grid soft nproc 2047 grid hard nproc 16384 grid soft nofile 1024是 grid hard nofile 65536 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 # vi /etc/pam.d/login session required pam_limits.so # vi /etc/profile if [ $USER = "oracle" ] || [ $USER = "grid" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi umask 022 fi
6. 停止NTP服務
# /sbin/service ntpd stop # service ntpd status # mv /etc/ntp.conf /etc/ntp.conf.bak 停用NTP服務后,grid組件安裝時會自動啟用oracle自帶的時鍾同步服務。
7. 增加/dev/shm大小
大小要超過memery_target # mount -o remount,size=4G /dev/shm # vi /etc/fstab tmpfs /dev/shm tmpfs defaults,size=4G 0 0
8. 創建目錄並修改權限
# mkdir -p /u01/app/oracle # mkdir -p /u01/app/grid # mkdir -p /u01/app/11.2.0/grid # chown -R grid:oinstall /u01/app/grid # chown -R grid:oinstall /u01/app/11.2.0 # chown -R oracle:oinstall /u01/app/oracle # chmod -R 775 /u01 # mkdir -p /u01/app/oraInventory # chown -R grid:oinstall /u01/app/oraInventory # chmod -R 775 /u01/app/oraInventory
9. 修改環境變量
# su – grid $ vi .bash_profile export ORACLE_SID=+ASM1 export ORACLE_BASE=/u01/app/grid export ORACLE_HOME=/u01/app/11.2.0/grid export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32 export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS" export NLS_LANG=American_america.ZHS16GBK export PATH=$ORACLE_HOME/bin:$PATH $ source .bash_profile
# su - oracle
$ vi .bash_profile
export ORACLE_SID=xdja1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG=American_america.ZHS16GBK
export PATH=$PATH:$ORACLE_HOME/bin
$ source .bash_profile
注:srac2節點上需要把紅色部分分別改為對應的+ASM2和xdja2;
oracle用戶的ORACLE_SID按照規划的實例名進行相應設置,例如規划實例名為xdja,這里的ORACLE_SID分別設置為xdja1/xdja2
10. 安裝依賴包
首先配置本地yum源,軟后使用yum命令安裝所有依賴包 # yum -y install \ binutils \ compat-libcap1 \ compat-libstdc++-33 \ elfutils-libelf-devel \ gcc \ gcc-c++ \ glibc \ glibc-devel \ ksh \ libgcc \ libstdc++ \ libstdc++-devel \ libaio \ libaio-devel \ make \ sysstat \ unixODBC \ unixODBC-devel \ libXp \ parted \ vim \ xorg-x11-utils \ xorg-x11-xauth \ unzip
11. 配置共享存儲
查看是否認出前面配置的共享磁盤 # ll /dev/sd* 查出每塊共享磁盤的wwid # scsi_id --whitelisted --replace-whitespace --device=/dev/sdb 36000c29cc2059bd2971fa2c85def1bb7 # scsi_id --whitelisted --replace-whitespace --device=/dev/sdc 36000c29291defedaa634a5b6edcf005d # scsi_id --whitelisted --replace-whitespace --device=/dev/sdd 36000c29b22662652d2aed62610921779 # scsi_id --whitelisted --replace-whitespace --device=/dev/sde 36000c297efa48942f5c92f20c5301103 # scsi_id --whitelisted --replace-whitespace --device=/dev/sdf 36000c295385cc5aec648a12c665d88e0 根據wwid對共享磁盤進行綁定 # vim /etc/udev/rules.d/99-oracle-asmdevices.rules KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29cc2059bd2971fa2c85def1bb7", NAME="asm-diskb", OWNER="grid",GROUP="oinstall", MODE="0660" KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29291defedaa634a5b6edcf005d", NAME="asm-diskc", OWNER="grid",GROUP="oinstall", MODE="0660" KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29b22662652d2aed62610921779", NAME="asm-diskd", OWNER="grid",GROUP="oinstall", MODE="0660" KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c297efa48942f5c92f20c5301103", NAME="asm-diske", OWNER="grid",GROUP="oinstall", MODE="0660" KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c295385cc5aec648a12c665d88e0", NAME="asm-diskf", OWNER="grid",GROUP="oinstall", MODE="0660" 重啟udev,使配置生效 # start_udev
12. 安裝GI
選擇第三項,跳過update

選擇第一項,集群部署

選擇第二項,高級安裝

默認選擇即可

集群名稱自己定義,SCAN Name按照/etc/hosts中規划的進行設置,端口默認1521,勾選掉Configure GNS的復選框

增加2節點的配置,按照/etc/hosts中的規划添加

配置SSH互信,輸入grid用戶的密碼,點擊Setup

選擇網卡的類型,公網和私網要分清楚

選擇第一項,ASM管理

磁盤組名稱輸入OCR,冗余級別選擇Normal,磁盤選擇asm-diskb/ asm-diskc/ asm-diskd

選擇第二項,使用統一密碼,密碼根據需求自己定義

點Yes強制設置密碼

選擇第二項,不使用IPMI

檢查用戶組分配情況,一般默認都是對的

檢查Oracle Base和Software Location,應該和環境變量中一致,否則檢查環境變量

保持默認即可

界面上的2個報錯點擊忽略

點擊Install安裝

兩個節點依次執行root腳本,一定要等第一個節點執行完成后,再在第二個節點上執行

點擊OK忽略報錯

點擊Yes繼續

安裝完成,點擊Close關閉安裝界面

13. 創建ASM磁盤
創建磁盤組DATA,選擇asm-diskf,冗余級別選擇External

創建磁盤組FRA,選擇asm-diske,冗余級別選擇External

14. 安裝database
勾選掉MOS的復選框
選擇第三項,跳過升級

選擇第二項,僅安裝數據庫軟件

選擇2個節點,輸入oracle用戶密碼,點擊Setup配置SSH互信
保持默認即可

現在第一項,企業版

檢查Oracle Base和Software Location,應該與環境變量保持一致,否則檢查環境變量

檢查用戶組設置,一般默認設置是對的

界面中的3個報錯點擊忽略即可

點擊Yes繼續

點擊Install安裝

依次在兩節點執行root腳本

安裝完成,點擊Close關閉界面
15. dbca建庫
選擇RAC數據庫

選擇創建數據庫

選擇一般用途

輸入實例名,要跟環境變量保持一致

選擇配置EM

設置密碼

選擇ASM

Database Area 選擇 +DATA

設置ASMSNMP的密碼

為閃回區選擇 +FRA

不創建示例

內存根據實際情況進行分配

設置連接數

設置字符集,一定要設置正確,無法修改

可以修改一些控制文件信息和Redo大小數量等,實驗環境直接下一步即可

點擊Finish開始創建數據庫
