重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
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 software
创新互联建站为客户提供专业的网站设计、网站建设、程序、域名、空间一条龙服务,提供基于WEB的系统开发. 服务项目涵盖了网页设计、网站程序开发、WEB系统开发、微信二次开发、成都手机网站制作等网站方面业务。
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.216
1、修改主机名称:
vi /etc/hostname配置文件
或
hostnamectl set-hostname <计算机名>
A: redhat-212
B: redhat-214
2、动态IP修改为静态IP
cd /etc/sysconfig/network-scripts/
BOOTPROTO="static" #dhcp改为static
3、修改两个rac节点网卡配置:
节点1:
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:
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.service
禁用该可预测命名规则。对于这一点,你可以在启动时传递“net.ifnames=0 biosdevname=0 ”的内核参数。这是通过编辑/etc/default/grub并加入“net.ifnames=0 biosdevname=0 ”到GRUBCMDLINELINUX变量来实现的。
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"
3、直接关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
4、关闭selinux
#vim /etc/selinux/config
修改文件
SELINUX=disabled
临时关闭
#setenforce 0
5、内部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
1、使用 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
2、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
3、两个节点安装iscsi客户端
#yum install -y iscsi-initiator-utils
#systemctl start iscsid.service
#service iscsid start
4、设置iscsi客户端开机启动
systemctl enable iscsid.service
systemctl enable iscsi.service
5、查看服务状态
#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
6、发现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
7、每个 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
8、设置开机启动自动连接磁盘
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
9、查看远程磁盘路径和关联的磁盘路径
#(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
10、安装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
11、查看关联路径情况
#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
1、创建用户:
groupadd -g 1000 oinstall
groupadd -g 1200 asmadmin
groupadd -g 1201 asmdba
groupadd -g 1202 asmoper
groupadd -g 1300 dba
groupadd -g 1301 oper
2、创建组:
useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper grid
useradd -u 1101 -g oinstall -G dba,oper,asmdba oracle
3、创建密码:
passwd grid
passwd oracle
4、设置互信关系,这里记住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
5、为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 hh34: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 hh34: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
6、为 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 hh34: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 hh34:mi:ss'
umask 022
7、创建 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
8、为 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
9、RHEL 7 安装oracle rac 11.2.0.4执行root.sh报错ohasd failed to start
报错原因:
因为RHEL 7使用systemd而不是initd运行进程和重启进程,而root.sh通过传统的initd运行ohasd进程。
9.1、 解决方法:
在RHEL 7中ohasd需要被设置为一个服务,在运行脚本root.sh之前。
以root用户创建服务文件
#touch /usr/lib/systemd/system/ohas.service
#chmod 777 /usr/lib/systemd/system/ohas.service
9.2、 将以下内容添加到新创建的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.3、以root用户运行下面的命令
#systemctl daemon-reload
#systemctl enable ohas.service
#systemctl start ohas.service
9.4、查看运行状态
#systemctl status ohas.service
1、连接操作中的 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目录中
2、安装截图
出来下面安装界面,选择最下面的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用户下去执行,分别两个节点上
至此数据库软件已安装完成。
1、在安装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
我们就退出安装配置向导了!!!
1、检查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状态,其实两个进程对我们的数据库是没有任何影响的,我们把他们打开就行了
2、查看节点的状态
[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
3、开启节点
[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
4、启动节点
$ 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
5、我们在来查看一下所有的组件是否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用户都可以执行,在其中一个节点执行即可:
1、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
2、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.1、数据库与实例:
列出所有的配置数据库
$ 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.2、网络相关的命令
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.3、查看集群状态(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)
)
)