环境准备:
操作系统:oracle_linux6.8
软件版本:oracle 11GR2 版本
存储:openfileresa 2.9
rac节点的内存:4G swap 4G
IP规划:
rac1节点基本信息:
主机名 :node1.gsc.com
IP:172.16.1.1
gateway:172.16.1.1
IP2:10.20.89.1
gateway2:10.20.89.1
DNS:172.16.1.1
rac2节点基本信息:
主机名 :node2.gsc.com
IP:172.16.1.2
gateway:172.16.1.1
IP2:10.20.89.2
gateway2:10.20.89.1
DNS:172.16.1.1
openfileresa节点(存储节点)
主机名:storage.gsc.com
IP:172.16.1.10
gateway:172.16.1.1
DNS:172.16.1.1
安装存储节点系统
rac12节点系统
rac1 节点
先按照上边的IP规划设置一个IP172.16.1.1就好
然后配置主机名 hosts文件 关闭selinux 关闭防火墙
这时的hosts文件
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.1.1 node1.gsc.com node1
172.16.1.2 node2.gsc.com node2
172.16.1.10 storage.gsc.com storage
然后添加一块新的网卡
eth1:
IPADDR=10.20.89.1
NTETMASK=255.255.255.0
GATEWAY=10.20.89.1
rac2 节点同上
eth1:
IPADDR=10.20.89.2
NTETMASK=255.255.255.0
GATEWAY=10.20.89.1
openfileresa的配置见如下链接:配置iscsi
https://blog.csdn.net/n_u_l_l_/article/details/103785304
在node1 上配置DNS
本地源
[mnt]
name=added mnt
baseurl=file:///mnt
enable=1
gpgcheck=0
装软件
[root@node1 yum.repos.d]# yum install bind bind-chroot bind-utils -y
[root@node1 yum.repos.d]# cd /var/named/chroot/etc/
主配置文件
[root@node1 etc]# vi named.conf
options {
directory "/var/named";
};
zone "." in {
type hint;
file "/dev/null";
};
zone "gsc.com" in {
type master;
file "gsc.com.zone.db";
};
zone "1.16.172.in-addr.arpa" in{
type master;
file "gsc.com.rec.db";
};
zone "89.20.10.in-addr.arpa" in {
type master;
file "gsc.com.rec.db2";
};
区域配置文件
[root@node1 named]# cd /usr/share/doc/bind-9.8.2/sample/var/named/
[root@node1 named]# ls
data my.external.zone.db my.internal.zone.db named.ca named.empty named.localhost named.loopback slaves
[root@node1 named]# cp named.localhost /var/named/chroot/var/named/gsc.com.zone.db
[root@node1 named]# cp named.loopback /var/named/chroot/var/named/gsc.com.rec.db
[root@node1 named]# cp named.loopback /var/named/chroot/var/named/gsc.com.rec.db2
[root@node1 etc]# cd /var/named/chroot/var/named/
正向解析
[root@node1 named]# vi gsc.com.zone.db
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS dns.gsc.com.
dns A 172.16.1.1
node1 A 172.16.1.1
node2 A 172.16.1.2
node1-priv A 10.20.89.1
node2-priv A 10.20.89.2
node1-vip A 172.16.1.3
node2-vip A 172.16.1.4
rac-scan A 172.16.1.7
rac-scan A 172.16.1.8
rac-scan A 172.16.1.9
storage A 172.16.1.10
反向解析
[root@node1 named]# vi gsc.com.rec.db
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS dns.gsc.com.
dns A 172.16.1.1
1 PTR node1.gsc.com.
2 PTR node2.gsc.com.
3 PTR node1-vip.gsc.com.
4 PTR node2-vip.gsc.com.
7 PTR rac-scan.gsc.com.
8 PTR rac-scan.gsc.com.
9 PTR rac-scan.gsc.com.
10 PTR storage.gsc.com.
[root@node1 named]# vi gsc.com.rec.db2
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS dns.gsc.com.
dns.gsc.com. A 172.16.1.1
1 PTR node1-priv.gsc.com.
2 PTR node2-priv.gsc.com.
简单测试下:
[root@node1 named]# yum install bind-utils -y
重启DNS服务
[root@node1 named]# /etc/init.d/named restart
[root@node1 named]# nslookup node1.gsc.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: node1.gsc.com
Address: 172.16.1.1
看到能够解析出来
设置开机自启:
[root@node1 u01]# /etc/init.d/named restart
[root@node1 u01]# chkconfig named on
修改所有节点中网卡配置文件中的DNS1 改成本地DNS的地址172.16.1.1
包括node1 node2 openfileresa
如果一开始就设置好那么可以不用动了
再次解析下
[root@node1 named]# nslookup storage.gsc.com
Server: 172.16.1.1 可以看到这次走的是本地DNS服务器的地址解析
Address: 172.16.1.1#53
Name: storage.gsc.com
Address: 172.16.1.10
反向解析也OK
[root@node1 named]# nslookup 172.16.1.7
Server: 172.16.1.1
Address: 172.16.1.1#53
17.0.16.172.in-addr.arpa name = rac-scan.gsc.com.
节点2 也要能解析
[root@node2 mnt]# nslookup 10.20.89.2
Server: 172.16.1.1
Address: 172.16.1.1#53
2.89.20.10.in-addr.arpa name = node2-priv.gsc.com.
DNS的目的是有scan-IP,适用于大规模的rac 比如4个以上节点的rac。
1、添加组,添加用户
rac 节点都要做 这里是node1 和node2
[root@node1 ~]# groupadd -g 1100 oinstall
[root@node1 ~]# groupadd -g 1200 dba
[root@node1 ~]# groupadd -g 1300 oper
[root@node1 ~]# groupadd -g 2100 asmadmin
[root@node1 ~]# groupadd -g 2200 asmdba
[root@node1 ~]# groupadd -g 2300 asmoper
[root@node1 ~]# useradd -u 777 -g oinstall -G dba,oper,asmdba oracle
[root@node1 ~]# useradd -u 888 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
[root@node1 ~]# echo 000000 | passwd oracle --stdin
[root@node1 ~]# echo 000000 | passwd grid --stdin
2、环境变量
node1 节点 grid用户
[root@node1 ~]# su - grid
[grid@node1 ~]$ vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/u01/app/grid_base
export ORACLE_HOME=/u01/app/grid11204/product/11.2.0.4/grid_home1
export ORACLE_SID=+ASM1
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
node2 节点grid用户
只改ORACLE_SID=+ASM2
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/u01/app/grid_base
export ORACLE_HOME=/u01/app/grid11204/product/11.2.0.4/grid_home1
export ORACLE_SID=+ASM2
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
node1 节点Oracle用户
和grid
相比只修改了ORACLE_BASE
ORACLE_HOME
和ORACLE_SID
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/u01/app/oracle <----
export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/db_home1 <----
export ORACLE_SID=racdb1 <----
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
node2节点Oracle用户
只修改SID
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/db_home1
export ORACLE_SID=racdb2
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
3、创建目录
node1 和 node2 都要创建
[root@node1 ~]# mkdir /u01/app/{grid_base,oracle} -pv
[root@node1 ~]# chown grid.oinstall /u01/app -R
[root@node1 ~]# chmod 775 /u01/app -R
[root@node1 ~]# chown oracle.oinstall /u01/app/oracle -R
4、做SSH互信
如果minimal安装没有这个包就不能用ssh-copy-id 的命令 ,要装下
[root@node1 init.d]# yum -y install openssh-clients
node1 (grid) --> node2 (grid)
[root@node1 u01]# su - grid
[grid@node1 ~]$ ssh-keygen -t rsa
[grid@node1 ~]$ cd .ssh/
[grid@node1 .ssh]$ ssh-copy-id -i id_rsa.pub node2
node2 (grid) --> node1 (grid)
[root@node2 u01]# su - grid
[grid@node2 ~]$ ssh-keygen -t rsa
[grid@node2 ~]$ cd .ssh/
[grid@node2 .ssh]$ cat id_rsa.pub >> authorized_keys
[grid@node2 .ssh]$ cat authorized_keys
这里有2个指纹信息
[grid@node2 .ssh]$ scp authorized_keys node1.gsc.com:/home/grid/.ssh/
拷贝给node1节点
然后 node1 收集指纹信息:
[grid@node1 .ssh]$ ssh node1.gsc.com date
[grid@node1 .ssh]$ ssh node1 date
[grid@node1 .ssh]$ ssh node1-priv.gsc.com date
[grid@node1 .ssh]$ ssh node1-priv date
[grid@node1 .ssh]$ ssh node2.gsc.com date
[grid@node1 .ssh]$ ssh node2 date
[grid@node1 .ssh]$ ssh node2-priv.gsc.com date
[grid@node1 .ssh]$ ssh node2-priv date
node2 收集指纹信息:
[grid@node2 .ssh]$ ssh node1.gsc.com date
[grid@node2 .ssh]$ ssh node1 date
[grid@node2 .ssh]$ ssh node1-priv.gsc.com date
[grid@node2 .ssh]$ ssh node1-priv date
[grid@node2 .ssh]$ ssh node2.gsc.com date
[grid@node2 .ssh]$ ssh node2 date
[grid@node2 .ssh]$ ssh node2-priv.gsc.com date
[grid@node2 .ssh]$ ssh node2-priv date
刚刚是grid用户
的互信 现在要oracle用户
的互信
node1 (oracle) --> node2 (oracle)
[root@node1 u01]# su - oracle
[oracle@node1 ~]$ ssh-keygen -t rsa
[oracle@node1 ~]$ cd .ssh
[oracle@node1 .ssh]$ ssh-copy-id -i id_rsa.pub node2
node2 (oracle) --> node1 (oracle)
[root@node2 u01]# su - oracle
[oracle@node2 ~]$ ssh-keygen -t rsa
[oracle@node2 ~]$ cd .ssh
[oracle@node2 .ssh]$ cat id_rsa.pub >> authorized_keys
[oracle@node2 .ssh]$ scp authorized_keys node1:/home/oracle/.ssh/
同上 node1 和node2 收集 指纹信息
[oracle@node1 .ssh]$ ssh node1.gsc.com date; ssh node2.gsc.com date
[oracle@node1 .ssh]$ ssh node1 date ; ssh node2 date
[oracle@node1 .ssh]$ ssh node1-priv.gsc.com date ; ssh node2-priv.gsc.com date;
[oracle@node1 .ssh]$ ssh node1-priv date ; ssh node2-priv date ;
[oracle@node2 .ssh]$ ssh node1.gsc.com date; ssh node2.gsc.com date
[oracle@node2 .ssh]$ ssh node1 date ; ssh node2 date
[oracle@node2 .ssh]$ ssh node1-priv.gsc.com date ; ssh node2-priv.gsc.com date;
[oracle@node2 .ssh]$ ssh node1-priv date ; ssh node2-priv date ;
5、资源限制
node1 和 node2都要做
[root@node1 u01]# 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
--无论以上哪种用户安全限制方式,都是需要PAM模块来调用的,因此继续检查/etc/pam.d/login文件内容:
session required pam_limits.so
如果未发现以上行,那么加上。
6、内核参数:
[root@node1 u01]# vi /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736 或者 4294967295
kernel.shmall = 4294967296 或者 268435456
kernel.shmmni = 4096
fs.aio-max-nr = 1048576
fs.file-max = 6815744
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
[root@node1 u01]# sysctl -p
7、shm 共享内存
df -h
vim /etc/fstab
修改共享内存挂载
tmpfs /dev/shm tmpfs defaults,size=2G 0 0
重新挂载
mount -o remount /dev/shm
df -h
8、iscsi 设备:
node1 :
[root@node1 u01]# yum install iscsi-initiator-utils -y
[root@node1 u01]# /etc/init.d/iscsid start
[root@node1 u01]# chkconfig iscsid on
[root@node1 init.d]# iscsiadm -m discovery -t sendtargets -p 172.16.1.10:3260
注:这里我找到了2个块设备 其中 c6_rac_disk 是centos6 环境要用的。 另一个是之前的环境,不用管它。
172.16.1.10:3260,1 iqn.2020-06.com.openfiler:c6_rac_disk
172.16.1.10:3260,1 iqn.2020-06.com.openfiler:rac_disk
可以发现openfileresa的块设备
[root@node1 u01]# /etc/init.d/iscsi start
[root@node1 u01]# chkconfig iscsi on
[root@node1 init.d]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 100G 0 part /
├─sda3 8:3 0 50G 0 part /home
├─sda4 8:4 0 1K 0 part
├─sda5 8:5 0 20G 0 part /tmp
└─sda6 8:6 0 4G 0 part [SWAP]
sr0 11:0 1 3.7G 0 rom /mnt
sdb 8:16 0 44.6G 0 disk < -------多的硬盘 这块是要用到的 下边sdc的不是
sdc 8:32 0 50.8G 0 disk
├─sdc1 8:33 0 20G 0 part
├─sdc2 8:34 0 1K 0 part
├─sdc5 8:37 0 10G 0 part
└─sdc6 8:38 0 10G 0 part
node2 同样操作
9、udev绑定和裸设备
这里要做分区操作 为了冗余级别,一般磁盘大小尽量相同,不同也可以,为了方便管理选择相同的大小。
冗余模式 | OCRVOTE | 普通磁盘组 |
---|---|---|
Nomal | 3块大小一致的存储介质 | 2个failgroup(从两个节点各选1块大小一致的存储介质) |
High | 5块盘大小一致的存储介质 | 3个failgroup(从三个节点各选三块大小一致的存储介质) |
External | 1块存储介质 | 不需要 |
简单来说nomal存2份,high存3份,external不额外存,但是可以在硬件层面做raid。
开始操作:
分区操作:如下
https://blog.csdn.net/n_u_l_l_/article/details/102668159
[root@node1 ~]# fdisk -l /dev/sdc 查看大小
[root@node1 ~]# fdisk /dev/sdc 进入分区工具
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p <----主分区
Partition number (1-4): 1 <---- 1号
First cylinder (1-45632, default 1): <----默认从哪里开始
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-45632, default 45632): +20G <--- 大小
最后node1 和node2 要做刷新操作
[root@node1 ~]# yum -y install parted
[root@node1 ~]# partprobe /dev/sdb
[root@node2 ~]# partprobe /dev/sdb
查看分区情况
[root@node1 ~]# fdisk -l /dev/sdc
Device Boot Start End Blocks Id System
/dev/sdc1 1 20481 20972528 83 Linux
/dev/sdc2 20482 30722 10486784 83 Linux
/dev/sdc3 30723 40963 10486784 83 Linux
[root@node1 ~]# lsblk
sdc 8:32 0 44.6G 0 disk
├─sdc1 8:33 0 20G 0 part <---
├─sdc2 8:34 0 10G 0 part <---
└─sdc3 8:35 0 10G 0 part <---
格式化不用做 asm 会做的。
sdb1做不冗余 sdb5和6 做nomal。
下面先做udev绑定让这快硬盘一直是sdc
然后做裸设备
[root@node1 rules.d]# scsi_id --whitelisted --replace-whitespace --device=/dev/sdc
14f504e46494c45525332657361782d345656312d52574c4f
先查找这个磁盘的ID 如果直接用scsi_id用不了那就是环境变量中没有这个,打全路径/usr/lib/udev/scsi_id就好了。
[root@node1 ~]# cd /etc/udev/rules.d/
[root@node1 rules.d]# touch 55-oracle-asmdevices.rules
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45525332657361782d345656312d52574c4f",NAME="/dev/sdc"
[root@node1 rules.d]# start_udev
[root@node1 rules.d]# vi 60-raw.rules
ACTION=="add", KERNEL=="/dev/sdc1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="/dev/sdc2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="/dev/sdc3", RUN+="/bin/raw /dev/raw/raw3 %N"
KERNEL=="raw[1-3]",OWNER="grid",GROUP="asmadmin",MODE="660"
[root@node1 rules.d]# vi /etc/rc.local
添加这些
touch /var/lock/subsys/local
start_udev
/bin/raw /dev/raw/raw1 /dev/sdc1
/bin/raw /dev/raw/raw2 /dev/sdc2
/bin/raw /dev/raw/raw3 /dev/sdc3
如果没效果直接重启机器
然后把这几个文件拷贝到node2 上去
重启
要能看到这些裸设备
[root@node1 ~]# ll /dev/raw/raw*
crw-rw---- 1 grid asmadmin 162, 1 Jul 1 19:25 /dev/raw/raw1
crw-rw---- 1 grid asmadmin 162, 2 Jul 1 19:25 /dev/raw/raw2
crw-rw---- 1 grid asmadmin 162, 3 Jul 1 19:25 /dev/raw/raw3
[root@node2 ~]# ll /dev/raw/raw*
crw-rw---- 1 grid asmadmin 162, 1 Jul 1 19:25 /dev/raw/raw1
crw-rw---- 1 grid asmadmin 162, 2 Jul 1 19:25 /dev/raw/raw2
crw-rw---- 1 grid asmadmin 162, 3 Jul 1 19:25 /dev/raw/raw3
10、关掉NTP
[root@node1 ~]# /etc/init.c/ntpd stop
[root@node1 ~]# chkconfig ntp off
[root@node1 ~]# mv /etc/nto.conf /etc/ntp.conf.bak
首先下载软件Oracledatabase 和grid软件,解压到同一个目录。
我是把它做成ISO文件了
最好在1节点上解压缩。
[root@node1 ~]# yum install unzip smartmontools xterm xclock xorg-x11-utils xorg-x11-xauth -y
unzip 解压 smartmontools缺少这个包可能安不上这个软件cvuqdisk xterm xstart调用图形化 xclock测试图形化可用与否
xorg-x11-utils xorg-x11-xauth 这两个都是解决xstart无法连接的错误的
解压软件:
这个是11.2.0.4的名字
[root@node1 mnt]# unzip p13390677_112040_Linux-x86-64_1of7.zip -d /usr/local/src/
[root@node1 mnt]# unzip p13390677_112040_Linux-x86-64_2of7.zip -d /usr/local/src/
[root@node1 mnt]# unzip p13390677_112040_Linux-x86-64_3of7.zip -d /usr/local/src/
[root@node1 mnt]# cd /usr/local/src/
[root@node1 src]# ls
database grid
[root@node1 src]# cd /usr/local/src/grid/rpm/
这个包node1和 node2 都要安装
[root@node1 rpm]# rpm -ivh cvuqdisk-1.0.9-1.rpm
其实没装的话,图形化时检测到也是需要修复的。
硬件检测:
[root@node1 grid]# su - grid
[grid@node1 ~]$ cd /usr/local/src/grid/
[grid@node1 grid]$ ./runcluvfy.sh stage -pre crsinst -n node1.gsc.com,node2.gsc.com -fixup -verbose > /tmp/result.txt
[root@node1 tmp]# grep failed result.txt
总之就是把filed都解决
[root@node1 tmp]# yum install gcc gcc-c++ libaio libaio-devel glibc compat-libstdc++ elfutils-libelf-devel glibc-devel glibc-headers libgcc libstdc++ libstdc++-devel sysstat unixODBC unixODBC-devel ksh compat-libcap1 -y
[root@node1 tmp]# yum install gcc gcc-c++ libgomp elfutils-libelf-devel glibc-devel glibc-headers libaio-devel libstdc++-devel sysstat -y
最后出现这个就是说明检测通过了
Pre-check for cluster services setup was successful.
因为我安装的是minimal 要用xshell调用图形化。 如果是带图形化的就不用了
如下操作:
https://blog.csdn.net/n_u_l_l_/article/details/106279335
使用 xstart 中执行
[root@node1 ~]# xhost +
[root@node1 ~]# su - grid
[grid@node1 ~]$ export DISPLAY=172.16.0.1:0.0
[grid@node1 ~]$ cd /usr/local/src/grid/
[grid@node1 grid]$ ls
doc response runcluvfy.sh sshsetup welcome.html
install rpm runInstaller stage
[grid@node1 grid]$ ./runInstaller
语言支持中文
第一个rac名随便,后2个要和自己的一样
添加vip
双网卡公有和私有
正常检测通过后是直接到这个保存配置的页面的,我为了截图点回去,让大家看到succeeded。
直接保存就安装了。
这个是执行2个脚本,2个节点分别执行,等1个节点执行完第一个脚本(orainstRoot.sh),第二个节点再执行第一个脚本。
第一个节点执行完第二个脚本(root.sh) 第二个节点再执行第二个脚本(root.sh)。
[root@node1 yum.repos.d]# /u01/app/grid11204/product/11.2.0.4/grid_home1/root.sh
Running Oracle 11g root.sh script...
The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /u01/app/grid11204/product/11.2.0.4/grid_home1
Enter the full pathname of the local bin directory: [/usr/local/bin]: 这个直接回车就好,放一些文件到这个目录里
这个可能会执行很长时间,千万别急
执行这个脚本会出很多很多的信息,太多了,我就不在这里粘了 。
这个博客最下边也记录了一个执行脚本时的错误和解决方法
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 94903a34b2bd4fd7bf85b8b043e788f1 (/dev/raw/raw1) [DATA]
Located 1 voting disk(s).
CRS-2672: Attempting to start 'ora.asm' on 'node1'
CRS-2676: Start of 'ora.asm' on 'node1' succeeded
CRS-2672: Attempting to start 'ora.DATA.dg' on 'node1'
CRS-2676: Start of 'ora.DATA.dg' on 'node1' succeeded
Configure Oracle Grid Infrastructure for a Cluster ... succeeded
最后看到这个就是root.sh执行成功了。
截个图看比较直观,最后一行字体都不同
执行过脚本回来点ok,然后等进度条走完 就行了
能看到一堆的东西
[grid@node1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.DATA.dg ora....up.type ONLINE ONLINE node1
ora....ER.lsnr ora....er.type ONLINE ONLINE node1
ora....N1.lsnr ora....er.type ONLINE ONLINE node2
ora....N2.lsnr ora....er.type ONLINE ONLINE node1
ora....N3.lsnr ora....er.type ONLINE ONLINE node1
ora.asm ora.asm.type ONLINE ONLINE node1
ora.cvu ora.cvu.type ONLINE ONLINE node1
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora....network ora....rk.type ONLINE ONLINE node1
ora....SM1.asm application ONLINE ONLINE node1
ora....E1.lsnr application ONLINE ONLINE node1
ora.node1.gsd application OFFLINE OFFLINE
ora.node1.ons application ONLINE ONLINE node1
ora.node1.vip ora....t1.type ONLINE ONLINE node1
ora....SM2.asm application ONLINE ONLINE node2
ora....E2.lsnr application ONLINE ONLINE node2
ora.node2.gsd application OFFLINE OFFLINE
ora.node2.ons application ONLINE ONLINE node2
ora.node2.vip ora....t1.type ONLINE ONLINE node2
ora.oc4j ora.oc4j.type ONLINE ONLINE node1
ora.ons ora.ons.type ONLINE ONLINE node1
ora.scan1.vip ora....ip.type ONLINE ONLINE node2
ora.scan2.vip ora....ip.type ONLINE ONLINE node1
ora.scan3.vip ora....ip.type ONLINE ONLINE node1
下面就是正常的Oracle11G数据库软件安装,创建数据库。
要注意的是这次的数据库创建要选择rac的database
[root@node1 ~]# xhost +
access control disabled, clients can connect from any host
[root@node1 ~]# su - oracle
[oracle@node1 ~]$ export DISPLAY=172.16.0.1:0.0
[oracle@node1 ~]$ cd /usr/local/src/database/
[oracle@node1 database]$ ls
install response runInstaller stage
readme.html rpm sshsetup welcome.html
[oracle@node1 database]$ ./runInstaller
全是succeeded 。成功的
这个依旧是如果成功默认跳到这个页面,但我为了截图返回去看到succeeded。
[root@node1 rpm]# /u01/app/oracle/product/11.2.0.4/db_home1/root.sh
执行之后回来点 ok
直接ok就行了。(PS :手贱直接关了,忘了截图,只能找个网图。QAQ)
xstart执行
[root@node1 ~]# xhost +
access control disabled, clients can connect from any host
[root@node1 ~]# su - grid
[grid@node1 ~]$ export DISPLAY=172.16.0.1:0.0
[grid@node1 ~]$ asmca
现在状态
创建磁盘组
点ok就创建了,创建成功弹出 create succeddfully
2个磁盘组
保存退出就好了
xstart执行
[root@node1 ~]# xhost +
access control disabled, clients can connect from any host
[root@node1 ~]# su - oracle
[oracle@node1 ~]$ export DISPLAY=172.16.0.1:0.0
[oracle@node1 ~]$ dbca^C
选择在那个节点上建库, admin-managed是选择的, policy-managed的是多节点3,4以上的。
然后下边是dbname和 sid的前缀
下边在那个节点安装软件,要select all 全部节点。
数据库的位置,可以选择建的ASM磁盘组。默认是有冗余 的 ,但是Browse可以选择别的。
内存,我这个有点低
到这就等进度条就好了
[root@node1 ~]# su - oracle
[oracle@node1 ~]$ cd $ORACLE_HOME/sqlplus/admin
[oracle@node1 admin]$ vi glogin.sql
set sqlprompt "&_user@&_connect_identifier>" --设置SQL命令提示符的格式
set null (null) --设置空值的显示格式
define _editor=vi
[oracle@node1 ~]$ sqlplus / as sysdba
SYS@racdb1> alter user hr identified by hr account unlock;
[oracle@node1 admin]$ sqlplus hr/hr
HR@racdb1>select table_name from user_tables;
TABLE_NAME
------------------------------
REGIONS
LOCATIONS
DEPARTMENTS
JOBS
EMPLOYEES
JOB_HISTORY
COUNTRIES
7 rows selected.
HR@racdb1>select employee_id , last_name , salary from employees;
198 OConnell 2600
199 Grant 2600
200 Whalen 4400
201 Hartstein 13000
202 Fay 6000
203 Mavris 6500
204 Baer 10000
205 Higgins 12008
206 Gietz 8300
100 King 24000
101 Kochhar 17000
102 De Haan 17000
有样例库
同时racdb2节点不做操作就有hr用户
[oracle@node2 admin]$ sqlplus hr/hr
HR@racdb2>select table_name from user_tables ;
TABLE_NAME
------------------------------
REGIONS
LOCATIONS
DEPARTMENTS
JOBS
EMPLOYEES
JOB_HISTORY
COUNTRIES
以上。
1、如果是比较老版本的11G和grid,脚本也比较旧,可能会检测32位的包
yum install compat-libstdc++-33.x86_64 compat-libstdc++-33.i686 libaio.i686 glibc.i686 libaio-devel.i686 unixODBC.i686 unixODBC-devel.i686 -y
yum install libgcc.i686 libstdc++.i686 -y
(这两个可能有问题)
这几个是32位的包,检测脚本有可能 可能 可能 会检测,
但是有人说64位系统只装64的就好 就算检测脚本让装32位也不用管,可以忽略。
这个是我用低版本时 检测的情况,我的是64位的32位的没有装所以有一堆异常,但是网上说这种情况64的装了32的可以忽略。
2、镜像里可能会没有这两个包
pdksh-5.2.14 和 compat-libstdc++-33-3.2.3
pdksh 是个老包 可以用ksh 软件代替,不过完美主义者可以使用pdksh 这个要额外下载
而且需要额外的依赖
[root@node1 ~]# yum install -y ld-linux.so.2
装如上包 然后才可以rpm -ivh
compat-libstdc+-33 这个包也要额外下载。
直接rpm -ivh 就好了
上边2个包的下载地址:
链接: https://pan.baidu.com/s/1poJjlTbym14mYUd1EMkVOw
提取码: ydad
3、关于名字的问题
这个是11.2.0.1的名字 镜像内的名字
[root@node1 mnt]# unzip linux.x64_11gR2_database_1of2.zip -d /usr/local/src/
[root@node1 mnt]# unzip linux.x64_11gR2_database_2of2.zip -d /usr/local/src/
[root@node1 mnt]# unzip linux.x64_11gR2_grid.zip -d /usr/local/src/
[root@node1 mnt]# cd /usr/local/src/
[root@node1 src]# ls
database grid
[root@node1 src]# cd /usr/local/src/grid/rpm/
11.2.0.1的这个东西版本是1.0.7-1 我上边的是1.0.9-1
[root@node1 rpm]# rpm -ivh cvuqdisk-1.0.7-1.rpm
4、执行脚本时有报错
如果报错的话可以看这个贴子,我就遇到了这个错误:
https://blog.csdn.net/cmbzwa6940/article/details/100298812
5、低版本11.2.0.1 和 高版本11.2.0.4 有点不同 但大致相同,下边的图只是说2个版本图形化安装的说明上或者说表示上有区别,功能上基本没有差别,可以不看: