red hat 7.4
oracle數據庫版本
11.2.0.4
oracle grid版本
11.2.0.4
對應的文件
p13390677_112040_Linux-x86-64_1of7.zip - database software
p13390677_112040_Linux-x86-64_2of7.zip - database software
p13390677_112040_Linux-x86-64_3of7.zip - grid softwarehtml
IP地址規劃:
DNS server:192.168.1.168
db node1:192.168.1.212 public
192.168.1.213 VIP
10.0.1.2 private
db node2:192.168.1.214 public
192.168.1.215 VIP
10.0.1.3 private
scan: 192.168.1.216node
一、修改主機名稱:
vi /etc/hostname配置文件
或
hostnamectl set-hostname <計算機名>
A: redhat-212
B: redhat-214linux
二、動態IP修改成靜態IP
cd /etc/sysconfig/network-scripts/
BOOTPROTO="static" #dhcp改成staticios
三、修改兩個rac節點網卡配置:
節點1:c++
cat /etc/sysconfig/network-scripts/ifcfg-ens192 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens192 UUID=2a2b7809-26ac-4fc6-95d0-124c7348171a DEVICE=ens192 ONBOOT=yes IPADDR=192.168.1.212 PREFIX=24
cat /etc/sysconfig/network-scripts/ifcfg-ens224 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens224 UUID=6da67cdc-933c-4bfe-a3b1-2896175be86b DEVICE=ens224 ONBOOT=yes IPADDR=10.0.1.2 PREFIX=24
節點2:sql
cat /etc/sysconfig/network-scripts/ifcfg-ens192 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens192 UUID=aeead365-1e33-41c3-b0e9-b147c4a2e688 DEVICE=ens192 ONBOOT=yes IPADDR=10.0.1.3 PREFIX=24
cat /etc/sysconfig/network-scripts/ifcfg-ens224 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens224 UUID=e4fe8fed-6e97-43b4-aec6-80ce42588ead DEVICE=ens224 ONBOOT=yes IPADDR=192.168.1.214 PREFIX=24
#vim /etc/resolv.conf
nameserver 218.2.2.2數據庫
分別重啓一下網卡:
systemctl restart network.servicevim
禁用該可預測命名規則。對於這一點,你能夠在啓動時傳遞「net.ifnames=0 biosdevname=0 」的內核參數。這是經過編輯/etc/default/grub並加入「net.ifnames=0 biosdevname=0 」到GRUBCMDLINELINUX變量來實現的。bash
cat /etc/default/grub GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap net.ifnames=0 biosdevname=0 rhgb quiet" GRUB_DISABLE_RECOVERY="true"
三、直接關閉防火牆
systemctl stop firewalld.service #中止firewall
systemctl disable firewalld.service #禁止firewall開機啓動服務器
四、關閉selinux
#vim /etc/selinux/config
修改文件
SELINUX=disabled
臨時關閉
#setenforce 0
五、內部DNS解析兩個rac節點:
NODE1:
vim /etc/hosts 127.0.0.1這一行修改一下名字racdb1,末尾添加以下: 127.0.0.1 racdb1 localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.216 cluster clusterscan 192.168.1.212 redhat-212 192.168.1.214 redhat-214 192.168.1.213 redhat-212-vip 192.168.1.215 redhat-214-vip 10.0.1.2 raca-priv 10.0.1.3 racb-priv
NODE2:
vim /etc/hosts 127.0.0.1這一行修改一下名字racdb2,末尾添加以下 127.0.0.1 racdb2 localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.216 cluster clusterscan 192.168.1.212 redhat-212 192.168.1.214 redhat-214 192.168.1.213 redhat-212-vip 192.168.1.215 redhat-214-vip 10.0.1.2 raca-priv 10.0.1.3 racb-priv
這個軟件挺好用的,在vmware環境下安裝,其實就是個linux系統,咱們建立vmdisk就好了。配置登錄一個網頁https://ip:446
在網絡存儲服務器 (openfiler1) 上執行如下安裝。
在兩個 Oracle RAC 節點上進行網絡配置以後,下一步是將 Openfiler 軟件安裝到網絡存儲服務器 (openfiler1)。稍後會將網絡存儲服務器配置爲 iSCSI 存儲設備,以知足 Oracle Clusterware 和 Oracle RAC 的全部共享存儲需求。
安裝 Openfiler步驟可參考oracle官網:
http://www.oracle.com/technetwork/cn/articles/hunter-rac11gr2-iscsi-083834-zhs.html
一、使用 Openfiler 配置 iSCSI 卷
OpenFiler設置 iSCSI / 邏輯卷卷名卷描述
racdb-crs1 racdb-ASM CRS Volume 1
racdb-crs2 racdb-ASM CRS Volume 2
racdb-crs3 racdb-ASM CRS Volume 3
racdb-data1 racdb-ASM Data Volume 1
racdb-data2 racdb-ASM Data Volume 2
racdb-data3 racdb-ASM Data Volume 3
racdb-fra1 racdb-ASM FRA Volume 1
racdb-fra2 racdb-ASM FRA Volume 2
racdb-fra3 racdb-ASM FRA Volume 3
二、ISCSI路徑名稱命名
iqn.2006-01.com.openfiler:racdb.crs1
iqn.2006-01.com.openfiler:racdb.crs2
iqn.2006-01.com.openfiler:racdb.crs3
iqn.2006-01.com.openfiler:racdb.data1
iqn.2006-01.com.openfiler:racdb.data2
iqn.2006-01.com.openfiler:racdb.data3
iqn.2006-01.com.openfiler:racdb.fra1
iqn.2006-01.com.openfiler:racdb.fra2
iqn.2006-01.com.openfiler:racdb.fra3
三、兩個節點安裝iscsi客戶端
#yum install -y iscsi-initiator-utils #systemctl start iscsid.service #service iscsid start
四、設置iscsi客戶端開機啓動
systemctl enable iscsid.service systemctl enable iscsi.service
五、查看服務狀態
#systemctl list-unit-files |grep iscsi* iscsi-shutdown.service static iscsi.service enabled iscsid.service enabled iscsiuio.service disabled iscsid.socket enabled iscsiuio.socket enabled
六、發現ISCSI服務端磁盤路徑
#iscsiadm -m discovery -t sendtargets -p openfiler1-priv 爲你的openfiler的IP地址,我這裏地址是10.0.1.100 #iscsiadm -m discovery -t sendtargets -p 10.0.1.100 10.0.1.100:3260,1 iqn.2006-01.com.openfiler:racdb.fra3 10.0.1.100:3260,1 iqn.2006-01.com.openfiler:racdb.fra2 10.0.1.100:3260,1 iqn.2006-01.com.openfiler:racdb.fra1 10.0.1.100:3260,1 iqn.2006-01.com.openfiler:racdb.data3 10.0.1.100:3260,1 iqn.2006-01.com.openfiler:racdb.data2 10.0.1.100:3260,1 iqn.2006-01.com.openfiler:racdb.data1 10.0.1.100:3260,1 iqn.2006-01.com.openfiler:racdb.crs3 10.0.1.100:3260,1 iqn.2006-01.com.openfiler:racdb.crs2 10.0.1.100:3260,1 iqn.2006-01.com.openfiler:racdb.crs1
七、每一個 Oracle RAC 節點都可以從網絡存儲服務器中發現可用目標。下一步是手動登陸每一個可用目標,這可使用 iscsiadm 命令行接口完成。這須要在兩個 Oracle RAC 節點上運行。注意,我必須指定網絡存儲服務器的 IP 地址而非其主機名 (openfiler1-priv) — 我認爲必須這麼作,由於上述發現使用 IP 地址顯示目標。
登錄ISCSI遠程磁盤
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs1 -p 10.0.1.100 -l iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs2 -p 10.0.1.100 -l iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs3 -p 10.0.1.100 -l iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.data1 -p 10.0.1.100 -l iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.data2 -p 10.0.1.100 -l iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.data3 -p 10.0.1.100 -l iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.fra1 -p 10.0.1.100 -l iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.fra2 -p 10.0.1.100 -l iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.fra3 -p 10.0.1.100 -l
八、設置開機啓動自動鏈接磁盤
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs1 -p 10.0.1.100 --op update -n node.startup -v automatic iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs2 -p 10.0.1.100 --op update -n node.startup -v automatic iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs3 -p 10.0.1.100 --op update -n node.startup -v automatic iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.data1 -p 10.0.1.100 --op update -n node.startup -v automatic iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.data2 -p 10.0.1.100 --op update -n node.startup -v automatic iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.data3 -p 10.0.1.100 --op update -n node.startup -v automatic iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.fra1 -p 10.0.1.100 --op update -n node.startup -v automatic iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.fra2 -p 10.0.1.100 --op update -n node.startup -v automatic iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.fra3 -p 10.0.1.100 --op update -n node.startup -v automatic
九、查看遠程磁盤路徑和關聯的磁盤路徑
#(cd /dev/disk/by-path; ls -l *openfiler* | awk '{FS=" "; print $9 " " $10 " " $11}') ip-10.0.1.100:3260-iscsi-iqn.2006-01.com.openfiler:racdb.crs1-lun-0 -> ../../sdc ip-10.0.1.100:3260-iscsi-iqn.2006-01.com.openfiler:racdb.crs2-lun-0 -> ../../sdd ip-10.0.1.100:3260-iscsi-iqn.2006-01.com.openfiler:racdb.crs3-lun-0 -> ../../sde ip-10.0.1.100:3260-iscsi-iqn.2006-01.com.openfiler:racdb.data1-lun-0 -> ../../sdf ip-10.0.1.100:3260-iscsi-iqn.2006-01.com.openfiler:racdb.data2-lun-0 -> ../../sdg ip-10.0.1.100:3260-iscsi-iqn.2006-01.com.openfiler:racdb.data3-lun-0 -> ../../sdh ip-10.0.1.100:3260-iscsi-iqn.2006-01.com.openfiler:racdb.fra1-lun-0 -> ../../sdi ip-10.0.1.100:3260-iscsi-iqn.2006-01.com.openfiler:racdb.fra2-lun-0 -> ../../sdj ip-10.0.1.100:3260-iscsi-iqn.2006-01.com.openfiler:racdb.fra3-lun-0 -> ../../sdk
十、安裝udev設備管理器(rac_udev創建磁盤方式安裝grid)
#yum install -y udev
查看磁盤串號
----------------------------------------------------------------------------------------------------------------- for disk in `ls /dev/sd*` do echo $disk /usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=$disk done \\回車 ----------------------------------------------------------------------------------------------------------------- /dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdc 14f504e46494c45527763443337452d557347312d514f3049 /dev/sdd 14f504e46494c4552715837527a472d78444f522d6e6b5774 /dev/sde 14f504e46494c45523045727559352d706674422d43666c59 /dev/sdf 14f504e46494c455262664b78684c2d51796e512d30464179 /dev/sdg 14f504e46494c45526c36533367792d6a6265712d45705648 /dev/sdh 14f504e46494c45524159783651312d4a4554742d4f74776f
在兩個 Oracle RAC 節點:
映射關聯磁盤
#vim /etc/udev/rules.d/99-oracle-asmdevices.rules KERNEL=="sd?", ENV{ID_SERIAL}=="14f504e46494c45527763443337452d557347312d514f3049", SYMLINK+="asm_ocr_1_1", OWNER="grid", GROUP="asmadmin", MODE="0660" KERNEL=="sd?", ENV{ID_SERIAL}=="14f504e46494c4552715837527a472d78444f522d6e6b5774", SYMLINK+="asm_ocr_1_2", OWNER="grid", GROUP="asmadmin", MODE="0660" KERNEL=="sd?", ENV{ID_SERIAL}=="14f504e46494c45523045727559352d706674422d43666c59", SYMLINK+="asm_data_1_1", OWNER="grid", GROUP="asmadmin", MODE="0660" KERNEL=="sd?", ENV{ID_SERIAL}=="14f504e46494c455262664b78684c2d51796e512d30464179", SYMLINK+="asm_data_1_2", OWNER="grid", GROUP="asmadmin", MODE="0660" KERNEL=="sd?", ENV{ID_SERIAL}=="14f504e46494c45526c36533367792d6a6265712d45705648", SYMLINK+="asm_fra_1_1", OWNER="grid", GROUP="asmadmin", MODE="0660" KERNEL=="sd?", ENV{ID_SERIAL}=="14f504e46494c45524159783651312d4a4554742d4f74776f", SYMLINK+="asm_fra_1_2", OWNER="grid", GROUP="asmadmin", MODE="0660"
加載rules文件(rac_udev創建磁盤方式安裝grid)
#udevadm control --reload-rules
#udevadm trigger
十一、查看關聯路徑狀況
#ls -l /dev/asm* lrwxrwxrwx. 1 root root 3 12月 26 17:30 /dev/asm_data_1_1 -> sdf lrwxrwxrwx. 1 root root 3 12月 26 17:30 /dev/asm_data_1_2 -> sdg lrwxrwxrwx. 1 root root 3 12月 26 17:30 /dev/asm_fra_1_1 -> sdh lrwxrwxrwx. 1 root root 3 12月 26 17:30 /dev/asm_fra_1_2 -> sdi lrwxrwxrwx. 1 root root 3 12月 26 17:30 /dev/asm_ocr_1_1 -> sdc lrwxrwxrwx. 1 root root 3 12月 26 17:30 /dev/asm_ocr_1_2 -> sdd lrwxrwxrwx. 1 root root 3 1月 8 14:00 /dev/asm_ocr_1_3 -> sde
一、建立用戶:
groupadd -g 1000 oinstall groupadd -g 1200 asmadmin groupadd -g 1201 asmdba groupadd -g 1202 asmoper groupadd -g 1300 dba groupadd -g 1301 oper
二、建立組:
useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper grid useradd -u 1101 -g oinstall -G dba,oper,asmdba oracle
三、建立密碼:
passwd grid
passwd oracle
四、設置互信關係,這裏記住oracle和grid用戶都要設置互信
#su - grid
$ mkdir ~/.ssh(有則不建立)
兩個節點執行如下操做
ssh-keygen -t rsa
ssh-keygen -t dsa
這裏一步一步直接回車的
如下操做在一個節點上執行便可(id_rsa是密鑰,id_rsa.pub是公鑰)
cat ~/.ssh/id_rsa.pub >> ./.ssh/authorized_keys --公鑰存在authorized_keys文件中,寫到本機
cat ~/.ssh/id_dsa.pub >> ./.ssh/authorized_keys
ssh redhat-214 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys --第二個節點的公鑰寫到本機
ssh redhat-214 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys secdb2:~/.ssh/authorized_keys
兩個節點上分別驗證
ssh redhat-212 date
ssh redhat-214 date
ssh raca-priv date
ssh racb-priv date
#su - oracle
兩個節點執行如下操做:
ssh-keygen -t rsa
ssh-keygen -t dsa
如下操做在一個節點上執行便可
cat ~/.ssh/id_rsa.pub >> ./.ssh/authorized_keys --公鑰存在authorized_keys文件中,寫到本機
cat ~/.ssh/id_dsa.pub >> ./.ssh/authorized_keys
ssh redhat-214 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys --第二個節點的公鑰寫到本機
ssh redhat-214 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys redhat-214:~/.ssh/authorized_keys --上傳本機公鑰到第二個節點管理
兩個節點上分別驗證
ssh redhat-212 date
ssh redhat-214 date
ssh raca-priv date
ssh racb-priv date
五、爲grid用戶設置環境變量
以下操做也須要在兩個節點上一樣進行,這裏須要注意的是grid用戶的SID和oracle用戶的SID,是不同的,這裏你們明白原理的話就不會出錯。
以 grid 用戶賬戶分別登陸到兩個 Oracle RAC 節點並建立如下登陸腳本 (.bash_profile):
注: 在爲每一個 Oracle RAC 節點設置 Oracle 環境變量時,確保爲每一個 RAC 節點指定惟一的 Oracle SID。對於此示例,我使用:
racnode1:ORACLE_SID=+ASM1
racnode2:ORACLE_SID=+ASM2
Node1:
[root@racnode1 ~]# su - grid vi .bash_profile export TMP=/tmp export TMPDIR=$TMP export ORACLE_SID=+ASM1 export ORACLE_BASE=/u01/grid export ORACLE_HOME=/u01/app/grid/11.2.0 export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss' export TNS_ADMIN=$ORACLE_HOME/network/admin 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 LANG=en_US export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK umask 022
Node2:
#su - grid vi .bash_profile export TMP=/tmp export TMPDIR=$TMP export ORACLE_SID=+ASM2 export ORACLE_BASE=/u01/grid export ORACLE_HOME=/u01/app/grid/11.2.0 export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss' export TNS_ADMIN=$ORACLE_HOME/network/admin 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 LANG=en_US export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK umask 022
六、爲 oracle 用戶設置環境變量
以 oracle 用戶賬戶分別登陸到兩個 Oracle RAC 節點並建立如下登陸腳本 (.bash_profile):
注: 在爲每一個 Oracle RAC 節點設置 Oracle 環境變量時,確保爲每一個 RAC 節點指定惟一的 Oracle SID。對於此示例,我使用:
racnode1:ORACLE_SID=orcl1
racnode2:ORACLE_SID=orcl2
#su - oracle vi .bash_profile export TMP=/tmp export TMPDIR=$TMP export ORACLE_HOSTNAME=rac1 export ORACLE_SID=orcl1 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export ORACLE_UNQNAME=orcl export TNS_ADMIN=$ORACLE_HOME/network/admin #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 LANG=en_US export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss' umask 022
Node2:
#su - oracle vi .bash_profile export TMP=/tmp export TMPDIR=$TMP export ORACLE_HOSTNAME=rac2 export ORACLE_SID=orcl2 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export ORACLE_UNQNAME=orcl export TNS_ADMIN=$ORACLE_HOME/network/admin #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 LANG=en_US export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss' umask 022
七、建立 Oracle 基目錄路徑
最後一步是配置 Oracle 基路徑,要遵循最佳靈活體系結構 (OFA) 的結構及正確的權限。須要以 root 用戶身份在集羣的兩個 Oracle RAC 節點上完成此任務。
本指南假設在根文件系統中建立 /u01 目錄。請注意,這樣作是爲了簡便起見,不建議將其做爲通用作法。一般會將 /u01 目錄做爲配置了硬件或軟件鏡像功能的單獨文件系統供應。
#mkdir -p /u01/grid
#mkdir -p /u01/app/grid/11.2.0
#chown -R grid:oinstall /u01
#mkdir -p /u01/app/oracle
#chown oracle:oinstall /u01/app/oracle
#chmod -R 775 /u01
八、爲 Oracle 軟件安裝用戶設置資源限制:
8.1 在每一個 Oracle RAC 節點上,在 /etc/security/limits.conf 文件中添加如下幾行代碼(下面的示例顯示軟件賬戶全部者 oracle 和 grid):
#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 或下面加了stack最大棧大小,通常我使用都是上面多些 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768 grid soft nproc 2047 grid hard nproc 16384 grid soft nofile 1024 grid hard nofile 65536 grid soft stack 10240 grid hard stack 32768
8.2 在每一個 Oracle RAC 節點上,在 /etc/pam.d/login 文件中添加或編輯下面一行內容(若是不存在此行):
#vi /etc/pam.d/login session required pam_limits.so
8.3 修改內核參數
#vim /etc/sysctl.conf fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 1073741824 kernel.shmmax = 4398046511104 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 = 1048576
使sysctl生效
#sysctl -p
8.3 安裝相關的開發工具包
#yum -y install glibc \ glibc-devel \ glibc-headers \ libaio \ libaio-devel \ libgcc \ libstdc++ \ libstdc++-devel \ make \ sysstat \ unixODBC \ unixODBC-devel \ pdksh \ compat-libcap1 \ compat-libstdc++-33 \ elfutils-libelf-devel \ gcc \ gcc-c++ \ smartmontools \ pdksh \ compat-libstdc \ cvuqdisk
九、RHEL 7 安裝oracle rac 11.2.0.4執行root.sh報錯ohasd failed to start
報錯緣由:
由於RHEL 7使用systemd而不是initd運行進程和重啓進程,而root.sh經過傳統的initd運行ohasd進程。
9.一、 解決方法:
在RHEL 7中ohasd須要被設置爲一個服務,在運行腳本root.sh以前。
以root用戶建立服務文件
#touch /usr/lib/systemd/system/ohas.service
#chmod 777 /usr/lib/systemd/system/ohas.service
9.二、 將如下內容添加到新建立的ohas.service文件中
#vim /usr/lib/systemd/system/ohas.service [Unit] Description=Oracle High Availability Services After=syslog.target [Service] ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 Type=simple Restart=always [Install] WantedBy=multi-user.target
9.三、以root用戶運行下面的命令
#systemctl daemon-reload
#systemctl enable ohas.service
#systemctl start ohas.service
9.四、查看運行狀態
#systemctl status ohas.service
一、鏈接操做中的 Xmanager
#su - grid
$ cd /home/grid/
$ unzip p13390677_112040_Linux-x86-64_3of7.zip
#yum install xhost + -y
#su - grid
$ export DISPLAY=ip:0.0 //ip爲你本機ip
$ xhost +
$ export LANG=en_US
$ ./runInstaller
若須要添加中文語言包
#mkdir -p /usr/share/fonts/zh_CN/TrueType
將zysong.ttf文件放至/usr/share/fonts/zh_CN/TrueType目錄中
二、安裝截圖
出來下面安裝界面,選擇最下面的Skip software updates,而後選next
選擇第一個安裝和配置集羣環境,next
選擇第二個高級安裝,next
選上添加簡體中文,next
此處集羣名本身取,SCAN名須要和/etc/hosts中的scan ip別名一致,端口默認,不選GNS,next
添加busrac2節點
點next(上面設置互信關係必定執行過,否則這一步若是next會出錯的)
或若是沒有設置互信關係的話能夠點SSH Connectivity,輸入grid用戶的密碼(注兩點節點grid用戶與密碼要一致),在點setup,最後next
這裏只須要確認一下網絡接口,安裝嚮導已經把咱們填寫,next(這裏是自動識別到你服務器上IP是哪段的)
存儲選擇:選擇ASM,next
這裏讓咱們建立asm disk group,給一個名字「ORC",創建OCR盤,選擇3塊盤 next(這裏要求至少3塊盤的,這裏圖片只是參考的;有時候會找不到盤,能夠試從新執行加載rules文件(rac_udev創建磁盤方式安裝grid))
設置密碼:next
這裏選擇第二項不使用IPMI
給ASM指定不一樣的組,next
這裏安裝嚮導會幫你填寫集羣軟件的安裝路徑,咱們繼續next,這裏咱們須要注意的是oracle_Home不能是oracle_base的子目錄
以root身份執行腳本:root用戶執行兩個腳本,一個節點執行完後再執行第二個節點(root.sh執行可能會長一點)
咱們會看到這個報錯,其實這個問題我查看了mos知識庫,說的比較含糊,能夠忽略這個錯誤,不影響咱們的安裝和將來的使用
直接finish了,這裏咱們集羣軟件安裝完成。
#su - oracle
$ export DISPLAY=ip:0.0 //ip爲你本機ip
$ xhost +
$ export LANG=en_US
$ cd database
$ ./runInstaller
在解壓database運行安裝腳本,這裏和安裝grid同樣,啓動安裝嚮導
咱們不填寫mos帳號,又不聯網沒意義,點擊next,這裏咱們仍是在rac1節點上安裝
咱們這裏只安裝數據庫軟件,點擊next
這裏選擇集羣安裝方式,有如下3種選項之一:
Single instance database installation(單實例數據庫安裝) 這一選項容許僅在本地節點上安裝單實例數據庫軟件。
Oracle Real Application Cluster database installation(Oracle RAC數據庫安裝) 這一選項容許在集羣中的選定節點上選擇和安裝Oracle RAC二進制文件。
Oracle RAC One Node database installation 這個選項在選定節點上安裝Oracle RAC One Node數據庫二進制文件。
在這個界面上,選擇Oracle Real Application Cluster database installation選項。
選擇「select All」,點擊next
仍是選擇語言爲」English/Simplified Chinese「,點擊next
選擇」Enterprise Edition「 點擊」next「
這裏是oracle_base和oracle_home,點擊next
這個對應到組就能夠了,繼續next
這一步會check你的安裝環境,咱們只要配置參數正確就沒問題,這裏基本上都是succeeded,點擊next(致使這個錯誤的緣由是在/etc/hosts中配置了SCAN的地址,嘗試ping這個地址信息,若是能夠成功,則這個錯誤能夠忽略。我嘗試ping scan ip能夠ping通,因此暫時也就忽略了這個錯誤。)
summary一下,咱們就能夠'install'了
這裏安裝會比較快
出現以下錯誤
查看日誌報錯以下:
#vi /u01/oraInventory/logs/installActions2018-01-10_02-56-55PM.log
INFO: collect2: error: ld returned 1 exit status INFO: make[1]: *** [/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/emdctl] Error 1 INFO: make[1]: Leaving directory `/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib' INFO: make: *** [emdctl] Error 2 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target 'agent nmhs' of makefile '/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk'. See '/u01/oraInventory/logs/installActions2018-01-10_02-56-55PM.log' for details. Exception Severity: 1
解決方法:
vi $ORACLE_HOME/sysman/lib/ins_emagent.mk
$vi /u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk 搜索如下行: $(MK_EMAGENT_NMECTL) 改變爲: $(MK_EMAGENT_NMECTL) -lnnz11
而後點擊:retry,能夠。
完成後一樣也要執行一個腳本,也是要在root用戶下去執行,分別兩個節點上
至此數據庫軟件已安裝完成。
一、在安裝GI集羣軟件的時候咱們就配置過asm磁盤,如今咱們還有一個disk分區沒有加入到asm磁盤組中,咱們經過asmca來實現
$ su - grid
$ export DISPLAY=ip:0.0
運行命令asmca,咱們看到下面配置嚮導。這裏能夠看到咱們以前配置過的disk group,咱們點擊create後
來到這裏,咱們給disk group起個名字,選擇redundancy Normal,勾選data_1_1和data_1_2,咱們ok一下
會有一個10秒的等待建立磁盤組,完成後提示成功
選擇redundancy Normal,勾選fra_1_1和fra_1_2,咱們ok一下
這裏咱們就能看到有三個disk group了!!!退出便可。。
咱們直接su - oracle,運行dbca命令來配置數據庫
$ export DISPLAY=IP:0.0
$ export LANG=en_US
$ dbca
來到以下界面後,咱們選擇第一項集羣模式,而後next
這個就不用考慮了,直接選擇create a database,繼續next
這個也是選擇general purpose,繼續next
配置類型選擇admin-managed,Global database name和sid相同爲test,最下面咱們選擇」select all「,而後next
這裏咱們仍是選擇默認推薦的配置,EM和amt都選擇配置,繼續next
把sys、system、dbsnmp都給一個相同的密碼,這裏你本身給吧!!而後next
這裏咱們選擇用存儲類型爲asm,使用omf管理數據文件(這裏的名字是存放數據數據文件路徑名字,自定義)。
我安裝數據庫勾選OEM的時候,這個地方就要輸入ASMSNMP密碼的,設置好後點ok
這裏選擇閃回恢復區,看我的狀況
或是咱們這裏不選擇閃回恢復區,我這裏就不配置了,之後手動改spfile吧!!
不選擇裝sample schemas
或是裝上sample schemas,之後就有數據能夠測試玩一把了!! 繼續next
這裏咱們字符集會有所設置,ZHS16GBK-GBK,國際字符集默認的就行。其它的選項卡沒有特殊配置,在之後均可以去改spfile,咱們繼續next
這個是數據庫的存儲配置頁面,咱們看一下控制文件等等都要開始安裝了,next
繼續finish
等待吧,這個也是比較久的,若是SSD和cpu比較給力,速度基本上10分鐘吧!!
安裝完後,點擊exit
咱們就退出安裝配置嚮導了!!!
一、檢查crs資源狀態
[grid@redhat212 ~]$ crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.DATADB.dg ora....up.type ONLINE ONLINE redhat212 ora.FRA.dg ora....up.type ONLINE ONLINE redhat212 ora....ER.lsnr ora....er.type ONLINE ONLINE redhat212 ora....N1.lsnr ora....er.type ONLINE ONLINE redhat212 ora.ORC.dg ora....up.type ONLINE ONLINE redhat212 ora.asm ora.asm.type ONLINE ONLINE redhat212 ora.cvu ora.cvu.type ONLINE ONLINE redhat212 ora.gsd ora.gsd.type OFFLINE OFFLINE ora....network ora....rk.type ONLINE ONLINE redhat212 ora.oc4j ora.oc4j.type ONLINE ONLINE redhat212 ora.ons ora.ons.type ONLINE ONLINE redhat212 ora.orcl.db ora....se.type ONLINE ONLINE redhat212 ora....SM1.asm application ONLINE ONLINE redhat212 ora....12.lsnr application ONLINE ONLINE redhat212 ora....212.gsd application OFFLINE OFFLINE ora....212.ons application ONLINE ONLINE redhat212 ora....212.vip ora....t1.type ONLINE ONLINE redhat212 ora....SM2.asm application ONLINE ONLINE redhat214 ora....14.lsnr application ONLINE ONLINE redhat214 ora....214.gsd application OFFLINE OFFLINE ora....214.ons application ONLINE ONLINE redhat214 ora....214.vip ora....t1.type ONLINE ONLINE redhat214 ora.scan1.vip ora....ip.type ONLINE ONLINE redhat212
咱們看到ora.gsd、ora.214(RAC2).gsd是offline狀態,其實兩個進程對咱們的數據庫是沒有任何影響的,咱們把他們打開就好了
二、查看節點的狀態
[grid@redhat212 ~]$ srvctl status nodeapps -n redhat212 VIP redhat212-vip is enabled VIP redhat212-vip is running on node: redhat212 Network is enabled Network is running on node: redhat212 GSD is disabled GSD is not running on node: redhat212 ONS is enabled ONS daemon is running on node: redhat212
三、開啓節點
[grid@redhat212 ~]$ srvctl enable nodeapps PRKO-2415 : VIP is already enabled on node(s): redhat212,redhat214 PRKO-2416 : Network resource is already enabled. PRKO-2417 : ONS is already enabled on node(s): redhat212,redhat214 開節點後在查看節點應用程序狀態 [grid@redhat212 ~]$ srvctl status nodeapps VIP redhat212-vip is enabled VIP redhat212-vip is running on node: redhat212 VIP redhat214-vip is enabled VIP redhat214-vip is running on node: redhat214 Network is enabled Network is running on node: redhat212 Network is running on node: redhat214 GSD is enabled GSD is not running on node: redhat212 GSD is not running on node: redhat214 ONS is enabled ONS daemon is running on node: redhat212 ONS daemon is running on node: redhat214
四、啓動節點
$ srvctl start nodeapps PRKO-2421 : Network resource is already started on node(s): redhat212,redhat214 PRKO-2420 : VIP is already started on node(s): redhat212 PRKO-2420 : VIP is already started on node(s): redhat214 PRKO-2422 : ONS is already started on node(s): redhat212,redhat214
五、咱們在來查看一下全部的組件是否online
$ crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.DATADB.dg ora....up.type ONLINE ONLINE redhat212 ora.FRA.dg ora....up.type ONLINE ONLINE redhat212 ora....ER.lsnr ora....er.type ONLINE ONLINE redhat212 ora....N1.lsnr ora....er.type ONLINE ONLINE redhat212 ora.ORC.dg ora....up.type ONLINE ONLINE redhat212 ora.asm ora.asm.type ONLINE ONLINE redhat212 ora.cvu ora.cvu.type ONLINE ONLINE redhat212 ora.gsd ora.gsd.type ONLINE ONLINE redhat212 ora....network ora....rk.type ONLINE ONLINE redhat212 ora.oc4j ora.oc4j.type ONLINE ONLINE redhat212 ora.ons ora.ons.type ONLINE ONLINE redhat212 ora.orcl.db ora....se.type ONLINE ONLINE redhat212 ora....SM1.asm application ONLINE ONLINE redhat212 ora....12.lsnr application ONLINE ONLINE redhat212 ora....212.gsd application ONLINE ONLINE redhat212 ora....212.ons application ONLINE ONLINE redhat212 ora....212.vip ora....t1.type ONLINE ONLINE redhat212 ora....SM2.asm application ONLINE ONLINE redhat214 ora....14.lsnr application ONLINE ONLINE redhat214 ora....214.gsd application ONLINE ONLINE redhat214 ora....214.ons application ONLINE ONLINE redhat214 ora....214.vip ora....t1.type ONLINE ONLINE redhat214 ora.scan1.vip ora....ip.type ONLINE ONLINE redhat212
咱們這裏安裝完畢!!!
grid和oracle用戶均可以執行,在其中一個節點執行便可:
一、RAC監聽啓停:
$ srvctl status listener #檢查TNS listener的狀態
$ srvctl config listener -a #檢查TNS listener的配置
$ srvctl start listener #開啓監聽
$ srvctl stop listener #停掉監聽
$ srvctl stop listener -n redhat212 #停掉指定節點監聽
$ srvctl start listener -n redhat212 #啓動指定節點監聽
例子:
RAC啓動數據庫監聽,進入grid用戶來啓停端口
#su - grid
$ srvctl start|stop|status listener
二、RAC啓停數據庫:
srvctl status database -d RAC # 檢查數據庫的狀態
srvctl status instance -d RAC -i rac1 #檢查指定實例的狀態
srvctl start database -d orcl # 啓動數據庫
srvctl stop database -d orcl # 關閉數據庫
srvctl start instance -d orcl -i orcl1 # 啓動指定的實例
srvctl stop instance -d orcl -i orcl2 # 關閉指定實例
例子:在nodes1上關閉一個實例,分別查看兩個節點狀態
或下面方式
RAC啓動數據庫,進入oracle用戶 #su - oracle $ sqlplus sys/**** as sysdba SQL> select status from v$instance; //查看數據庫狀態 SQL>startup; //啓動數據庫 SQL>shutdown immediate; //停數據庫
ssh root 進入 192.168.1.212 su - oracle source .bash_profile sqlplus /nolog connect /as sysdba 建立表空間: SQL>CREATE SMALLFILE TABLESPACE "TEST" DATAFILE '+DATADB/ORCL/DATAFILE/test001.dbf' SIZE 1024M AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; 添加TEST表空間中的存儲test001.dbf文件在ASM的+DATADB/ORCL/DATAFILE/目錄下,初始大小爲1G,自動500MB擴展不作限制。 增長表空間: alter tablespace CP_TM add datafile '+DATADB/orcl/datafile/cp_tm_08.dbf' size 20480M; RAC方式給CP_TM表空間增長cp_tm_08.dbf數據文件大小爲20G。 alter tablespace CP_TM add datafile +DATADB/orcl/datafile/cp_tm_09.dbf' size 10240M autoextend on next 50m maxsize 20480; RAC增長表空間cp_tm_-09.dbf初始爲10G,按50M增長最大到20G。
集羣信息grid和oracle用戶均可以執行
10.一、數據庫與實例:
列出全部的配置數據庫
$ srvctl config database
檢查數據庫相關的信息 (-d參數後面是您server_name)
$ srvctl config database -d orcl -a
或
$ srvctl config database -d orcl -t
srvctl status database -d RAC # 檢查數據庫的狀態
srvctl status instance -d RAC -i rac1 #檢查指定實例的狀態
srvctl start database -d rac # 啓動數據庫
srvctl stop database -d rac # 關閉數據庫
srvctl start instance -d rac -i rac1 # 啓動指定的實例
srvctl stop instance -d rac -i rac2 # 關閉指定實例
ASM狀態
$ srvctl status asm
ASM配置
$ srvctl status asm -a
10.二、網絡相關的命令
TNS監聽器狀態以及配置
$ srvctl status listener #檢查TNS listener的狀態
$ srvctl config listener -a #檢查TNS listener的配置
$ srvctl start listener #開啓監聽
$ srvctl stop listener #停掉監聽
$ srvctl stop listener -n redhat212 #停掉指定節點監聽
$ srvctl start listener -n redhat212 #啓動指定節點監聽
SRVCTL的參數-n 實例節點名,不是實例sid
查看某個節點ASM信息
srvctl config listener -n node2
SCAN狀態以及配置
$ srvctl status scan
$ srvctl config scan
VIP各個節點的狀態以及配置
$ srvctl status vip -n rac1
$ srvctl status vip -n rac2
$ srvctl config vip -n rac1
$ srvctl config vip -n rac2
節點應用程序配置(VIP、GSD、ONS、監聽器)
$ srvctl config nodeapps -a -g-s -l
10.三、查看集羣狀態(nodeapps節點應用程序,ASM實例,數據庫等)
$ crs_stat -t
狀態檢查也可使用以下命令:
crsctl stat resource –t 或者 crsctl stat resource
這裏還要強調一下11.2.0.1版本的一個bug,就是客戶端沒法經過scan鏈接到數據庫解決方法以下: [oracle@redhat212 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Wed Mar 19 11:29:58 2014 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> show parameter local_listener NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ local_listener string (DESCRIPTION=(ADDRESS_LIST=(AD DRESS=(PROTOCOL=TCP)(HOST=redhat212 -vip)(PORT=1521)))) SQL> show parameter remot_listener; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ remote_dependencies_mode string TIMESTAMP remote_listener string clusterscan:1521 remote_login_passwordfile string EXCLUSIVE remote_os_authent boolean FALSE remote_os_roles boolean FALSE result_cache_remote_expiration integer 0 SQL> alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.216)(PORT = 1521))))' sid='orcl1'; System altered. SQL> alter system set remote_listener='clusterscan:1521'; System altered. SQL> alter system register; System altered. 最後配置客戶端tnsname.ora文件指向scan listener #tnsnames.ora.rac1 Network Configuration File: /u01/app/11.2.0/grid/network/admin/tnsnames.ora.rac1 #Generated by Oracle configuration tools. ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.216)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )