RAC比較嚴格,若是操做系統不純淨,容易失敗:linux
裝備第一臺VM:
chkconfig sendmail off
chkconfig iptables off
chkconfig ip6talbes off
systemctl stop firewall.service
systemctl disable firewall.service
vi /etc/sysconf.... 關閉selinuxc++
ifconfig
# 有兩塊網卡
-----------
system-config-network 圖形化界面配置網絡
---------------數據庫
vi /etc/hostswindows
XXXX網卡1 rac1
XXXX網卡2 rac1-priv
XXXX虛擬網卡1網段 rac1-vipbash
XXXX網卡1 rac2
XXXX網卡2 rac2-priv
XXXX虛擬網卡1網段 rac2-vip服務器
XXX網卡1網段 scan
----------------------------------------
改主機名:
一、vi /etc/sysocnfig/network
二、hostname XXX
----------------------------------------網絡
建立用戶和用戶組:
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 oracleoracle
passwd oracle
# 輸入密碼; Abcd@1234
passwd grid
# 輸入密碼; Abcd@1234
-------------------------------
準備相關目錄:app
su - oracle
mkdir /u01
chown -R oracle:oinstall /u01 ???兩個都寫
chown -R grid:oinstall /u01ssh
su - grid
mkdir /u01/app/oracle -p
mkdir /u01/app/grid -p
---------------------------------------
修改系統配置文件
vi /etc/sysctl.cof
添加:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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
-------------
vi /etc/securitu/limits.conf
添加:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle hard stack 10240
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid hard stack 10240
---------------
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
使配置生效:
sysctl -p
-----------------------------------------------------------------
五、安裝依存關係系統包:
vi /etc/yum.repos.d/myoel.repo
[dvdinfo]
name=oel
baseurl=file://iso/Server
enable=1
gpgcheck=0
----
mount -o loop /mnt/hgfs/downlond/EnterXXX /iso
-----
yum makecache
yum install -y binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat unixODBC unixODBC-devel
------------------------------
用戶環境變量:
vi /home/oracle/.bash_profile
export ORACLE_SID=+ASM1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/grid
export PATH=$ORACLE_HOME/bin:$PATH
讓配置生效:
..bash_profile
------------------------------------
關掉ntp的服務:
su - root
service ntpd stop
mv /etc/ntp.conf /etc/ntp.conf.bak
--------------------------------------------------------------
配置完一臺VM,直接複製VM,做爲VM2,rac2
--------------------------------------------------------------
在windows下,建立一個目錄,叫 shard_disks
--------------------------------------------------------------
由於咱們用的是虛擬機,因此共享磁盤也得用虛擬機配置出來,方法以下:
打開vmware station:
建立共享磁盤:
rac1 ---編輯--添加硬盤(模式選擇獨立---下一步大小1G,選擇馬上分配全部磁盤空間---下一步瀏覽選擇shared_disks,命名爲orc1)
在rac1再建立另外2個磁盤: D:\VM\shared_disks\ocr2,D:\VM\shared_disks\ocr3
暫時不要開機,在rac1 VM所在目錄,找到vmx後綴的文件,編輯:
把scsi設備的位置,添加內容:
disk.locking = "FALSE"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
scsi1.present = "TRUE"
scsi1.sharedBus = "VIRTUAL"
scsi1.virtualDev = "lsilogic"
scsi1:0.present = "TRUE"
scsi1:0.fileName = "D:\VM\shared_disks\ocr1"
scsi1:0.writeThrough = "TRUE"
scsi1:0.mode = "independent-persistent"
scsi1:0.deviceType = "disk"
scsi1:1.present = "TRUE"
scsi1:1.fileName = "D:\VM\shared_disks\ocr2"
scsi1:1.writeThrough = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.deviceType = "disk"
scsi1:2.present = "TRUE"
scsi1:2.fileName = "D:\VM\shared_disks\ocr3"
scsi1:2.writeThrough = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.deviceType = "disk"
在rac2的rac.vmx中添加一樣的內容。
而後開機;
檢查rac1和rac2 的IP和主機名
----------------------------------------
在rac2中,
su - grid
vi .bash_profile
修改成:
export ORACLE_SID=+ASM2
..bash_profile
--------------------------------
創建兩臺服務器之間grid用戶和oracle用戶的ssh等效性認證:
通信確認心跳等,創建無密碼的通信
grid用戶的ssh等效性認證:
rac1和rac2都配置:
su - grid
mkdir .ssh # 加. ,表示隱藏目錄,正常狀況不顯示
chmod 700 .ssh
cd .ssh
ssh-keygen -t dsa
#一直回車
ssh-keygen -t rsa
#一直回車,一個rsa,接受的,一個是dsa,發送的
在任何一個節點上操做,以在rac1上爲例:
cat id_rsa.pub >>authorized_keys
cat id_dsa.pub >>authorized_keys
# 把生成的兩個密鑰文件,加載到指定文件中
ssh rac2 cat ~/.ssh/id_rsa.pub >>authorized_keys
# 輸入密碼
ssh rac2 cat ~/.ssh/id_dsa.pub >>authorized_keys
# 同時把rac2的密鑰文件也要加載到指定文件
more authorized_keys # 能夠看到全部密鑰
把這個密鑰文件複製到rac2的目錄中:
scp authorized_keys rac2:~/.ssh/.
--------------------------------------
測試
ssh rac1 data # 發現能夠直接訪問,不須要密碼
ssh rac2 data
ssh rac2-priv data # 兩個網卡都試一下
-------------------------------------------------------
準備磁盤:
添加3快磁盤,
先建立物理分區
在任何一個節點上,如在rac1上:
fdisk -l
# 看到3塊磁盤
fdisk /dev/sdb
n
p
1
w
同理:
fdisk /dev/sdc
fdisk /dev/sdd
fdisk -l
在rac2上,fdisk -l
# 均可以看到分配好的分區,由於這些分區信息是寫在磁盤裏的,而不是系統上的,訪問這個磁盤,就能看到這個分區信息。
----------------
準備裸設備
rac1和rac2上配置:
vi /etc/udev/rules.d/60-raw.rules
添加:
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdd1", RUN+="/bin/raw /dev/raw/raw3 %N"
KERNEL=="raw[1]", OWNER="grid", GROUP="oinstall", MODE="0660"
KERNEL=="raw[2]", OWNER="grid", GROUP="oinstall", MODE="0660"
KERNEL=="raw[3]", OWNER="grid", GROUP="oinstall", MODE="0660"
而後:
start_udev
raw -qa
# 能看到3個裸設備
到此基本準備完成
--------------------------------
1五、安裝前的檢查:
su - grid
在grid解壓目錄下運行(那個共享目錄,若是從新加載,用mount -a,自動加載);
cd /mnt/hgfs/download/grid
./runcluvfy.sh stage -post hwos -n rac1,rac2 -verbose ----檢查兩個節點
# runcluvfy.sh也就是oracle安裝文件中,解壓出來的一個腳本
---若是出現Could not get the type of storage 之類的錯誤,請檢查有沒有安裝cvuqdisk-1.0.9-1.rpm,該包在目錄grid/rpm目錄下
檢查是否有錯誤的地方,仔細覈對,直到測試成功
----------------------------------------------------
在rac1
xhost + # 回到桌面環境
su - grid
cd /mnt/hgfs/download/grid
./runInstaller # 開始安裝
----------------------------
圖像化安裝oracle:
第一步,選擇第一個 安裝cluster
第二步,對初學,選擇typical
第三步,scan name,填入/etc/hosts中定義的scan name
添加rac1和rac2
第四步:要填目錄,不過以前環境變量都設置好了
cluter registory,選Automasic storage managment(ASM)
設置ASM密碼
第五步,磁盤組,命名OCR,冗餘度選normal,勾選全部disk
下一步,安裝,安裝完成,會提示執行腳本,再點擊OK
crs_stat -t ,查看羣集狀態,大部分顯示online,
------------------------------
以前的三塊磁盤是個RAC用的,
再準備磁盤,給數據庫用
關閉集羣中全部服務:
在rac1:
/u01/app/grid/product/11.2.0/grid/bin/crs_stop -all
沒徹底停服務,能夠多執行幾回
rac1,rac2 關機。
在rac1上,
直接添加磁盤,在shared_disks目錄下,叫data01,改爲scsi2,不讓形成擁擠。
編輯配置文件 rac1.vmx
修改成:
scsi2.present = "TRUE"
scsi2.sharedBus = "VIRTUAL"
scsi2.virtualDev = "lsilogic"
scsi2.deviceType = "disk"
scsi2:0.present = "TRUE"
scsi2:0.fileName = "D:\VM\shared_disks\data01"
scsi2:0.writeThrough = "TRUE"
scsi2:0.mode = "independent-persistent"
scsi2:0.deviceType = "disk"
scsi2:1.present = "TRUE"
scsi2:1.fileName = "D:\VM\shared_disks\data02"
scsi2:1.writeThrough = "TRUE"
scsi2:1.mode = "independent-persistent"
scsi2:1.deviceType = "disk"
scsi2:2.present = "TRUE"
scsi2:2.fileName = "D:\VM\shared_disks\data03"
scsi2:2.writeThrough = "TRUE"
scsi2:2.mode = "independent-persistent"
scsi2:2.deviceType = "disk"
同時編輯rac2的配置文件,rac.vmx
參考以前的配置,
建立分區,配置裸設備
ACTION=="add", KERNEL=="sde1", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="sdf1", RUN+="/bin/raw /dev/raw/raw5 %N"
ACTION=="add", KERNEL=="sdg1", RUN+="/bin/raw /dev/raw/raw6 %N"
KERNEL=="raw[4]", OWNER="grid", GROUP="oinstall", MODE="0660"
KERNEL=="raw[5]", OWNER="grid", GROUP="oinstall", MODE="0660"
KERNEL=="raw[6]", OWNER="grid", GROUP="oinstall", MODE="0660"
開機,
查看羣集狀態:
crs_stat -t
若是沒有起來:
/u01/app/grid/product/11.2.0/grid/bin/crs_start -all
--------------------------
使用ASMCA建立數據庫使用的ASM磁盤組
在rac1上
xhost +
su - grid
asmca
彈出圖像化窗口:
create
命名data,冗餘normal,勾選因此disk。
--------------------------
20、安裝oracle數據庫軟件,如今還沒開始安裝oracle,以前配置的是rac
建立目錄;
在rac1和rac2上都執行:
su - root
mkdir -p /u02
chown -R oralce:oinstall /u02
su - oracle
mkdir -p /u02/app/oracle
--------------------------------------
準備oracle環境變量
rac1上:
su - oracle
vi .bash_profile
添加:
export ORACLE_SID=racdb1
export ORACLE_BASE=/u02/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH # 把oracle的路徑加進入,再遞歸下PATH
生效:
..bash_profile
rac2上:
su - oracle
vi .bash_profile
添加:
export ORACLE_SID=racdb2
export ORACLE_BASE=/u02/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH # 把oracle的路徑加進入,再遞歸下PATH
生效:
..bash_profile
-----------------------
在oracle安裝文件目錄下,
在rac1上
xhost +
su - oracle
./runInstaller
安裝過程同樣;
到94%,提示每一個節點執行腳本,輸入yyyy
------------------------任意節點上,如在rac1,建立數據庫su - oracledbca彈出圖形化界面:第一步: 選擇 oracle rac database第二步,create,以後就同樣了。命名racdb,選擇節點 rac1,rac2