您好,登錄后才能下訂單哦!
一、 規劃 2
1. 網絡規劃 2
2. 磁盤規劃 2
3. 主機硬件配置 3
二、 思路清晰 3
三、 準備工作 3
1. 網卡準備(rac1&rac2 ) 3
2. 關閉防火墻和SElinux ( rac1&rac2 ) 5
3. 軟件包準備 5
4. 共享磁盤準備 5
四、 搭建RAC 17
1. 修改系統參數( rac1&rac2 ) 17
2. 修改limits 文件( rac1&rac2 ) 18
3. 修改 /etc/hosts 文件( rac1&rac2 ) 18
4. 創建用戶和組( rac1&rac2 ) 18
5. 創建軟件安裝目錄(rac1&rac2 ) 19
6. 修改環境變量(rac1&rac2 ) 19
7. 配置本地YUM ( rac1&rac2 ) 20
8. UDEV 方式綁定磁盤( rac1&rac2 ) 21
9. 安裝grid 軟件( rac1 ) 22
10. 配置 ASM 磁盤( rac1 ) 34
11. 創建數據庫( rac1 ) 36
12. DBCA 建庫( rac1 ) 43
五、 驗證 52
1. 驗證集群狀態 52
2. 驗證實例信息 53
3. 驗證數據文件、日志文件、控制文件信息 53
虛擬 IP :虛擬 IP 是集群搭建完成后,產生的 IP 。這個 IP 需要與物理 IP 在同一個網段。虛擬 IP 最大的特點:當這個節點服務器或集群宕機的時候,虛擬 IP 會無縫銜接到另外節點,以保證事務的連續性和查詢的連續性。所以建議在業務分離的情況下,業務連接該節點虛擬 IP 。 在雙節點的RAC 集群中,每個操作系統都有他本身的物理 IP ,集群各節點還會需要一個虛擬 IP ( VIP ),這兩個 IP 需要在同一個網段。
SCAN-IP :浮動 IP 。這個 IP 會隨機的浮動與兩個節點之間。如果業務沒有分離,建議業務連接 SCAN-IP ,以達到負載均衡的作用
磁盤規劃需要考慮兩個層面:一是集群需要的磁盤,二是數據庫需要的磁盤。
1) 集群需要的磁盤
為了滿足集群的功能,需要提供兩種作用的磁盤,OCR 和 Vote 盤。 OCR 盤記錄著集群的一些相關信息, Vote 盤在集群單節點出現故障,剔除該節點的時候決定性的作用。
OCR 盤和 Votefile 盤可以在同一個磁盤組,大小要求如下:
- Externel Redundancy
1 OCR(1 x 400M)=0.4G
1 voting files(1 x 300M)=0.3G
- Normal Redundancy
2 OCRs(2 x 400M)=0.8G
3 voting files(3 x 300M)=0.9G
- High Redundancy
3 OCRs(3 x 400M)=1.2G
5 Voting files(5 x 300M)=1.5G
2) 數據庫需要的磁盤
數據庫至少需要兩個磁盤組,一個是用于存放數據文件,另一個是用于存放歸檔日志文件。大小無最低要求,需要根據業務數據量情況分配大小。
(這里是我的測試環境)
step1: 網卡配置 (rac1&rac2)
step2: 關閉防火墻和 Selinux(rac1&rac2)
step3: 共享磁盤準備
(自己的測試環境用Openfile 作為共享存儲就行,如果是生產環境,則需要一 臺存儲服務器用做共享存儲)
step4: 修改內核參數文件
step5: 修改用戶限制文件
step6: 修改 Hosts 文件
step7: 創建用戶、組
step8: 創建目錄并賦予權限
step9: 配置環境變量( grid 和 oracle )
step10: 配置本地 YUM 源,安裝必需軟件包
step11: udev 方式綁定共享磁盤
step12: 安裝集群軟件( GI )
step13: 配置 ASM 磁盤
step14: 安裝數據庫軟件
step15: DBCA 建庫
step16: 結束驗證
解釋:在RAC 集群中,每臺服務器需要兩塊網卡,一塊用做外網服務,一塊用于私網通信。
添加私有網卡
# systemctl stop firewall
# systemctl disable firewall
關閉selinux
# vi /etc/selinux/config
SELINUX=disabled
( rac1 )
GI 目錄 : # mkdir -p /u01/setup/grid
DB 目錄:# mkdir -p /u01/setup/db
OS 目錄 : # mkdir -p /u01/setup/os
( rac2 )
OS 目錄:# mkdir -p /u01/setup/os
Openfile iso 文件 下載地址
http://www.openfiler.com/community/download
1) 創建一個虛擬機,配置如下
磁盤說明:
磁盤 1 是用于安裝 openfile 系統, 30G ;
磁盤2 用于 ocr 和 vote 盤, 5G ;
磁盤3/4 用于 DATA 磁盤組,每個 100G ;
磁盤5 用于 ARCH 磁盤組, 50G 。
2) 打開虛擬機,安裝openfile
點擊Enter ,自動安裝
3) 訪問openfile 的管理界面(上面的地址)
username: openfiler
password: password
4) 進入service s 標簽, 啟動 iscsi 服務
5) 進入system 標簽頁
添加一個允許訪問的 IP 網段
6) 進入 volu mes 創建物理 卷
此時,物理卷已經創建完成
6) 創建一個卷組
7)
創建邏輯卷
同理,將上面規劃的物理磁盤都創建為邏輯卷
8) 添加IQN
4) 做磁盤映射
此時 邏輯卷添加完成,要使用的話,需要對邏輯卷進行 掃描
9) 客戶 端對 openfile 服務器進行掃描
# iscsiadm -m discovery -t sendtargets -p 172.16.70.176 -l
如果iscsiadm 命令 不可 用 ,則需要安裝 iscsi-initiator rpm 包
# iscsiadm -m discovery -t st -p 192.168.0.10
-bash: iscsiadm: command not found
# mount /dev/cdrom /media -- 加載光盤,安裝 iscsi-initiator rpm 包 mount: block device /dev/cdrom is write-protected, mounting read-only # cd /media/
# cd Server/ # ls -l *iscsi* -r--r--r-- 55 root root 579386 Dec 17 2008 iscsi-initiator-utils-6.2.0.868-0.18.el5.i386.rpm # rpm -ivh iscsi-initiator-utils-6.2.0.868-0.18.el5.i386.rpm
# vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = 8589934591
kernel.shmmni = 4096
kernel.shmall = 2097152
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 = 1048576
使參數生效
# sysctl -p
# 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
172.16.70.170 rac1
172.16.70.171 rac2
10.0.0.100 rac1-priv
10.0.0.101 rac2-priv
172.16.70.173 rac1-vip
172.16.70.174 rac2-vip
172.16.70.175 cluster-scan-ip
( 1 )創建組
# groupadd -g 501 dba
# groupadd -g 50 2 oinstall
( 2 )創建用戶
# useradd -u 50 1 -g oinstall -G dba -d /home/oracle oracle
# useradd -u 600 -g oinstall -G dba -d /home/grid grid ( 3 ) 給oracle 和 grid 用戶設置密碼
# passwd oracle
# passwd grid
(4 )檢查
# id oracle
# id grid
# mkdir -p /u01/app/oracle
# mkdir -p /u01/app/oracle /product/11.2.0/db_1
# mkdir -p /u01/app/grid
# mkdir -p /u01/app/11.2.0/grid
# chown -R oracle:oinstall /u01
# chown -R grid:oinstall /u01 /app/grid
# chown -R grid:oinstall /u01/app/11.2.0 /grid
# chown -R oracle:oinstall /u01/app/oracle
# chmod -R 775 /u01
(rac1 執行 )
# chown -R grid:oinstall /u01/setup/grid
# chown -R oracle:oinstall /u01/setup/db
----- 切換到 grid 用戶下 -----
rac1
$ 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
export PATH=$ORACLE_HOME/bin:$PATH
rac2
$ vim .bash_profile
export ORACLE_SID= +ASM2
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
---- 切換到 Oracle 用戶下 ------
rac1
# su - oracle
$ vi /home/oracle/.bash_profile
export ORACLE_SID= ORCL1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$PATH:$ORACLE_HOME/bin
rac2
# su - oracle
$ vi /home/oracle/.bash_profile
export ORACLE_SID= ORCL2
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$PATH:$ORACLE_HOME/bin
使上述環境變量生效
$ source .bash_porofile
( root 用戶)
# mount -o loop /u01/setup/os/ rhel-server-7.2-x86_64-dvd.iso /mnt
# vi /etc/yum.repos.d/mnt.repo
[mnt]
name=Yum Source
baseurl=file:///mnt
enabled=1
gpgcheck=0
# yum makecache
安裝 如下包:
# yum install -y binutils compat* elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC-devel libaio-devel ksh
# vi /etc/udev/rules.d/ 99-oracle-asmdevices.rules
KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT==" 14f504e46494c45524932494157712d763771782d30694f30 ", RUN+="/bin/sh -c 'mknod /dev/asm_ocr b $major $minor; chown grid:oinstall /dev/asm_ocr ; chmod 0660 /dev/asm_ocr '"
KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT==" 14f504e46494c45526d70325177442d616f33572d35686452 ", RUN+="/bin/sh -c 'mknod /dev/asm_data1 b $major $minor; chown grid:oinstall /dev/asm_data1 ; chmod 0660 /dev/asm_data1 '"
KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT==" 14f504e46494c455251726b30676d2d337842312d55375278 ", RUN+="/bin/sh -c 'mknod /dev/asm_data2 b $major $minor; chown grid:oinstall /dev/asm_data2 ; chmod 0660 /dev/asm_data2 '"
KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT==" 14f504e46494c45527650634d78742d4a7664622d3276506e ", RUN+="/bin/sh -c 'mknod /dev/asm_arch b $major $minor; chown grid:oinstall /dev/asm_arch ; chmod 0660 /dev/asm_arch '"
注:RESULT 參數應對應裸設備的 wwid 號;每個小版本的 udev 配置略有不同,當前這個配置只適用于 RHEL 7.2 版本
啟動udev
# /sbin/udevadm trigger --type=devices --action=change
查看asm 磁盤
# ll /dev/asm*
(1 )解壓 grid 軟件
# su - grid
$ cd /u01/setup/grid
$ unzip p*.zip
(2 )安裝 cvuqdisk
# cd rpm/
# rpm -ivh cvuqdisk-1.0.9-1.rpm
將這個 rpm 包傳輸到 2 節點上安裝
( 3 )運行圖形界面
$ unzip /u01/setup/grid/ p*
$ cd /u01/setup/grid/grid
運行 ./runInstaller
注:
1) 遠程運行圖形界面需要
打開Xmanager, 雙機 Xmanager-Passive
$ export DISPLAY= 本機 IP:0.0
2 )檢查是否可以運行圖形
$ xhost +
access control disabled, clients can connect from any host s
出現以上字樣,代表可運行圖形界面
3 )出現 ” 口口口口口 ” 亂碼,執行
$ export Lang=en_US
跳過軟件更新
選擇高級安裝
SCAN name 名字要寫 /etc/hosts 文件中 scan-ip 的名字
這里的rac1/rac1-vip/rac2/rac2-vip 名字要和 /etc/hosts 文件中名字對應
輸入密碼 grid ,點擊 setup 配置互信
通用密碼寫 oracle
執行如下兩個腳本
執行順序:
A 機執行腳本 1 → B 機執行腳本 1 → A 機執行腳本 2 → B 機執行腳本 2
執行腳本必須一個一個來,最好不要一起執行。
rac1:
rac2
腳本執行完成,點擊OK
注:
1 )如果這里 root.sh 腳本執行失敗,可以回退,如下:
# /u01/app/11.2.0/grid/crs/install/roothas.pl -deconfig -force -verbose
2 )如果一直卡在 Adding daemon to inittab 或者 Adding Clusterware entries to inittab 或者 ohasd 進程啟動失敗 , 則此時需要新開一個窗口執行下面腳本,等ohasd 進行啟動成功后再取消執行腳本即可
# /bin/dd if=/var/tmp/.oracle/npohasd of=/dev/nullbs=1024 count=1
忽略報錯,不影響
Grid 用戶
$ asmca
這里需要注意一下,對于普通磁盤組(非OCR ),正常冗余模式至少需要 2 塊盤;高冗余模式至少需要 3 塊盤;不冗余模式至少需要 2 塊盤。
最后結果如下:
(Oracle 用戶)
# su - oracle
$ cd /u01/setup/db/
$ unzip p13390677_112040_Linux-x86-64_1of7.zip
$ unzip p13390677_112040_Linux-x86-64_2of7.zip
將兩個zip 包解壓會生成一個 database 目錄
$ cd database/
$ pwd
/u01/setup/db/database
$ ./runInstaller
Oracle 的密碼是 oracle ,選擇 setup 建立互信
(Oracle 用戶)
$ dbca
密碼 oracle
----------- end -------------
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。