基於Workstation8、CentOS6.5實現12C RAC搭建安裝
作者:HopToad
地點:杭州濱江
郵箱:appdevzw@163.comj
公眾號:HopToad
歡迎各界交流
2014年12月
1 準備條件1.1 硬體版本
家用PC機一台,硬碟空間150G以上,記憶體8G以上。
每個虛擬機器(理論要求)配置4G記憶體
1.2 軟體版本
虛擬化軟體:VMware Workstation8 以上版本
作業系統: CentOS6.5/REHL6.5/OEL6.5以上
資料庫版本:12C
ASMlib下載:
http://www.Oracle.com/technetwork/server-storage/linux/asmlib/index-101839.html
2 網路規劃
家中機器的IP地址都由無線路由DHCP統一分配IP,網斷192.168.1.*。但是考慮到虛擬機器後續接入的便利性,故將IP固定,分配IP地址如下。
主機名稱 PUB Private ip VIP SCANIP 網域名稱
slave1 192.168.1.201 10.10.0.201 192.168.1.211 192.168.1.220 hoptoad.com
slave2 192.168.1.202 10.10.0.202 192.168.1.212
slave2 192.168.1.203 10.10.0.203 192.168.1.213
3 建立虛擬機器
虛擬機器設定:CPU數量2X2
記憶體:2G
硬碟:30G
網卡: 2個(一個使用VMNET0,一個使用Bridge)
安裝作業系統。
3.1 複製虛擬機器
安裝完一個虛擬機器作業系統後,可以直接進行clone.
3.1.1 修改udev檔案
複製完畢後需要修改/etc/udev/rules.d/70-persistent-net.rules,
刪除
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:42:b0:b9", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
修改第二行NAME=”eth1” 為 NAME=”eth0”
這樣複製的虛擬機器網卡看到的都是eth0開頭。
也可以直接刪除這個檔案後重啟。
3.1.2 修改主機名稱字
修改/etc/sysconfig/network檔案中HOSTNAME=rac1
防止各個機器的主機名稱字一樣。
4 共用儲存實現4.1 其中一個VM添加磁碟
右鍵其中任何一個虛擬機器->setting…->add…->HardDisk->Next->create a new virtual disk –》勾選independent->next->SCSI選中->next->大小設定10G->next->選擇single file->設定檔案名稱字->設定檔案存放路徑->advanced…->選擇虛擬設備節點scsi 1:0->確定。
同樣再增加2個虛擬設備節點分別是1G scsi 1:1,scsi 1:2的磁碟。
4.2 設定磁碟共用
找到該虛擬機器鏡像存放的路徑,本人放在D盤。
找到其中的.vmx尾碼檔案,編輯。加入如下變數。(關機設定)
disk.locking = "FALSE"
disk.EnableUUID ="true"
diskLib.dataCacheMaxSize = "0"
scsi1.sharedBus="virtual"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.datacachepagesize=4096
diskLib.maxunsyncedwrites=”0”
scsi1:0.deviceType="disk"
scsi1:1.deviceType="disk"
注意所有虛擬機器都需要設定該變數。
4.3 其他虛擬機器添加磁碟
右鍵其中任何一個虛擬機器->setting…->add…->HardDisk->Next->using an existing virtual disk->next->選中之前建立的磁碟->選擇虛擬設備節點scsi 1:0->確定
同樣再增加2個已經存在的磁碟分別是1G scsi 1:1,scsi 1:2的磁碟。
同樣處理所有其他節點的虛擬機器。
完畢後重啟,所有虛擬機器可以看到3塊共用的磁碟。
通過執行命令fdisk –l查看。
4.4 如果使用系統的ASM配置
命令如下:
systemctl enable oracleasm.service(RedHat 7之後)
/etc/init.d/oracleasm configure 或/etc/init.d/oracleasm configure –i
配置使用者grid, asmdba
配置ASM盤 (錯誤記錄檔 /var/log/oracleasm)
註:記得關閉SELINUX
如果沒有沒有UUID,繼續格式化一下,如:mkfs.ext4 /dev/sdb
5 系統內容預準備5.1 搭建YUM環境5.1.1 傳入作業系統鏡像到各個虛擬機器中
5.1.2 編輯/etc/yum.repos.d/rhel-source.repo
如下:
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///mnt
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
5.1.3 執行如下命令,掛載光碟片
[root@slave1 ~]# mount -o loop Red\ Hat\ Enterprise\ 6.5\ x86_64.iso /mnt
5.1.4 同樣每個虛擬機器都配置YUM環境
完畢,這樣可以通過本地YUM源來安裝相關RPM包。
5.2 解壓資料庫軟體包
執行加壓命令如下:
[root@slave1 ~]# unzip linuxamd64_12c_database_1of2.zip
同理解壓所有壓縮包。
5.3 安裝資料庫必備包5.3.1 依賴包
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
compat-libstdc++-33-3.2.3 (32 bit)
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-2.5-24 (32 bit)
glibc-common-2.5
glibc-devel-2.5
glibc-devel-2.5 (32 bit)
libaio-0.3.106
libaio-0.3.106 (32 bit)
libaio-devel-0.3.106
libaio-devel-0.3.106 (32 bit)
libgcc-4.1.2
libgcc-4.1.2 (32 bit)
libstdc++-4.1.2
libstdc++-4.1.2 (32 bit)
libstdc++-devel 4.1.2
make-3.81
sysstat-7.0.2
unixODBC-2.2.11 (32-bit) or later
• unixODBC-devel-2.2.11 (64-bit) or later
• unixODBC-2.2.11 (64-bit) or later
5.3.2 一鍵安裝依賴包
我們已經配置了YUM本地源,所以直接進行意見安裝即可。
yum install binutils compat-libstdc++* compat-libstdc++*.i686* elfutils-libelf* elfutils-libelf*.i686* gcc* gcc-c++* glibc* glibc*.i686* libaio* libaio*.i686* libgcc* libgcc*.i686* libstdc++* libstdc++*.i686* make sysstat* unixODBC* unixODBC*.i686 oracleasm-support compat-libcap* ksh libXext*i686 libXtst*i686 libX11*i686 libXau*i686 libxcb*i686 libXi*686 libXp.i686 libXp-devel.i686 libXt.i686 libXt-devel.i686 libXtst.i686 libXtst-devel.i686 make.x86_64 gcc.x86_64 libaio.x86_64 glibc-devel.i686 libgcc.i686 glibc-devel.x86_64 compat-libstdc++-33 glibc* gcc* make* compat-db* libstdc* libXp* libXtst* compat-libstdc++* *glibc* java
yum install libXp.x86_64 libXp.i686 elfutils-libelf.x86_64 elfutils-libelf-devel.x86_64 compat-db.i686 compat-db.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 openmotif22.i686 openmotif22.x86_64 libaio-devel.i686 libaio-devel.x86_64 control-center.x86_64 make.x86_64 gcc.x86_64 sysstat.x86_64 libaio.i686 gcc-c++.x86_64 compat-libf2c-34.x86_64 compat-libf2c-34.i686 unixODBC.i686 unixODBC.x86_64 unixODBC-devel.i686 unixODBC-devel.x86_64 libgomp.x86_64 compat-libstdc++-33.x86_64 compat-libstdc++-33.i686 glibc.i686 glibc.x86_64 glibc-common.x86_64 glibc-devel.i686 glibc-devel.x86_64 glibc-headers.x86_64 libXmu.i686 libXmu.x86_64 libgcc.i686 libgcc.x86_64 kernel-headers.x86_64 libstdc++.i686 binutils.x86_64 libstdc++.x86_64 compat-libcap1.x86_64 ompat-libcap1.i686 smartmontools iscsi-initiator-utils install nfs-utils *ksh*
5.3.3 其他包安裝
安裝oracleasmlib 包
啟動oracleasm
#service oracleasm start
紅帽7.0後啟動
#systemctl start oracleasm
安裝cvuqdisk程式包(grid壓縮包解壓得到)
6 網路設定
根據網路規劃配置網路地址。
配置網路命令
#setup 彈出配置對話方塊即可進行配置。
也可以編輯/etc/sysconfig/network-scripts/ifcfg-eth0 檔案進行配置。
(這裡是針對REHL的,SUSE的話略有不同)
6.1 編輯/etc/hosts檔案
每個虛擬機器的/etc/hosts檔案。
如下:
192.168.1.201 slave1.hoptoad.com slave1
192.168.1.202 slave2.hoptoad.com slave2
192.168.1.203 slave3.hoptoad.com slave3
#Private IP
10.10.0.201 slave1-priv.hoptoad.com slave1-priv
10.10.0.202 slave2-priv.hoptoad.com slave2-priv
10.10.0.203 slave3-priv.hoptoad.com slave3-priv
#Vip
192.168.1.211 slave1-vip.hoptoad.com slave1-vip
192.168.1.212 slave2-vip.hoptoad.com slave2-vip
192.168.1.213 slave3-vip.hoptoad.com slave3-vip
#scanip
192.168.1.220 rac-scan.hoptoad.com rac-scan
7 系統參數設定
編輯/etc/sysctl.conf 檔案,增加如下內容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax=913516544
kernel.panic_on_oops=1
kernel.shmmni = 4096
kernel.sem = 250 32000 100 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 = 1048586
執行sysctl –p
使生效
編輯/etc/sysconfig/network
加入NOZEROCONF=yes
8 環境變數設定8.1 建立目錄使用者
groupadd oinstall
groupadd dba
groupadd oper
groupadd asmadmin
groupadd asmdba
groupadd asmoper
useradd -g oinstall -G dba,asmdba,asmadmin,asmoper grid
useradd -g oinstall -G dba,oper,asmdba oracle
mkdir -p /u01/app/12.1.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
chown grid:oinstall /u01/app/12.1.0/grid
chown grid:oinstall /u01/app/grid
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/
chown -R grid:oinstall /u01
修改使用者密碼
passwd grid
passwd oracle
8.2 配置/etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
8.3 配置使用者環境變數.bash_profile8.3.1 RAC1節點
#Grid 使用者
export TMP=/tmp;
export TMPDIR=$TMP;
export ORACLE_HOSTNAME=slave1.hoptoad.com;
export ORACLE_SID=+ASM1;
export ORACLE_BASE=/u01/app/grid;
export ORACLE_HOME=/u01/app/12.1.0/grid;
export NLS_DATE_FORMAT="yy-mm-dd HH24:MI:SS";
export PATH=$ORACLE_HOME/bin:$PATH;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib64;
#ORACLE 使用者
export TMP=/tmp;
export TMPDIR=$TMP;
export ORACLE_HOSTNAME=slave1.hoptoad.com;
export ORACLE_BASE=/u01/app/oracle;
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1;
export ORACLE_UNQNAME=prod;
export ORACLE_SID=prod1;
export ORACLE_TERM=xterm;
export PATH=/usr/sbin:$PATH;
export PATH=$ORACLE_HOME/bin:$PATH;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;
8.3.2 RAC2使用者
#GRID使用者
export TMP=/tmp;
export TMPDIR=$TMP;
export ORACLE_HOSTNAME=slave2.hoptoad.com;
export ORACLE_SID=+ASM2;
export ORACLE_BASE=/u01/app/grid;
export ORACLE_HOME=/u01/app/12.1.0/grid;
export NLS_DATE_FORMAT="yy-mm-dd HH24:MI:SS";
export PATH=$ORACLE_HOME/bin:$PATH;
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib64;
#ORACLE 使用者
export TMP=/tmp;
export TMPDIR=$TMP;
export ORACLE_HOSTNAME=slave2.hoptoad.com;
export ORACLE_BASE=/u01/app/oracle;
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1;
export ORACLE_UNQNAME=prod;
export ORACLE_SID=prod2;
export ORACLE_TERM=xterm;
export PATH=/usr/sbin:$PATH;
export PATH=$ORACLE_HOME/bin:$PATH;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;
8.3.3 RAC3使用者
#GRID使用者
export TMP=/tmp;
export TMPDIR=$TMP;
export ORACLE_HOSTNAME=slave3.hoptoad.com;
export ORACLE_SID=+ASM2;
export ORACLE_BASE=/u01/app/grid;
export ORACLE_HOME=/u01/app/12.1.0/grid;
export NLS_DATE_FORMAT="yy-mm-dd HH24:MI:SS";
export PATH=$ORACLE_HOME/bin:$PATH;
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib64;
#ORACLE 使用者
export TMP=/tmp;
export TMPDIR=$TMP;
export ORACLE_HOSTNAME=slave3.hoptoad.com;
export ORACLE_BASE=/u01/app/oracle;
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1;
export ORACLE_UNQNAME=prod;
export ORACLE_SID=prod3;
export ORACLE_TERM=xterm;
export PATH=/usr/sbin:$PATH;
export PATH=$ORACLE_HOME/bin:$PATH;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;
9 Grid、oracle使用者無密碼訪問9.1 執行ssh-keygen
每個節點的GRID 使用者執行如下命令
/usr/bin/ssh-keygen -t rsa
/usr/bin/ssh-keygen -t dsa
9.2 追加到本地authorized_keys
/bin/cat ~/.ssh/*.pub >> ~/.ssh/authorized_keys
9.3 authorized_keys追加到其他節點的authorized_keys
完畢後。
測試
#建立等效性
各2節點執行
$ssh slave1 date
$ssh slave1 -priv date
$ssh slave2 date
$ssh slave2 -priv date
在CentOS 6.4下安裝Oracle 11gR2(x64)
Oracle 11gR2 在VMWare虛擬機器中安裝步驟
Debian 下 安裝 Oracle 11g XE R2
更多詳情見請繼續閱讀下一頁的精彩內容: