1、前面准备阶段博客:
http://blog.csdn.net/kadwf123/article/details/78235488
2、scan初体验:
[root@rac1 ~]# nslookup rac4
Server: 192.168.0.88
Address: 192.168.0.88#53
Name: rac4.taryartar.com
Address: 192.168.0.54
[root@rac1 ~]# ping myscan
PING myscan.taryartar.com (192.168.0.61) 56(84) bytes of data.
From rac1.taryartar.com (192.168.0.51) icmp_seq=2 Destination Host Unreachable
From rac1.taryartar.com (192.168.0.51) icmp_seq=3 Destination Host Unreachable
From rac1.taryartar.com (192.168.0.51) icmp_seq=4 Destination Host Unreachable
From rac1.taryartar.com (192.168.0.51) icmp_seq=6 Destination Host Unreachable
From rac1.taryartar.com (192.168.0.51) icmp_seq=7 Destination Host Unreachable
From rac1.taryartar.com (192.168.0.51) icmp_seq=8 Destination Host Unreachable
^C
--- myscan.taryartar.com ping statistics ---
10 packets transmitted, 0 received, +6 errors, 100% packet loss, time 9363ms
pipe 3
[root@rac1 ~]# ping myscan
PING myscan.taryartar.com (192.168.0.62) 56(84) bytes of data.
From rac1.taryartar.com (192.168.0.51) icmp_seq=2 Destination Host Unreachable
From rac1.taryartar.com (192.168.0.51) icmp_seq=3 Destination Host Unreachable
From rac1.taryartar.com (192.168.0.51) icmp_seq=4 Destination Host Unreachable
^C
--- myscan.taryartar.com ping statistics ---
5 packets transmitted, 0 received, +3 errors, 100% packet loss, time 4403ms
pipe 3
[root@rac1 ~]# ping myscan
PING myscan.taryartar.com (192.168.0.63) 56(84) bytes of data.
From rac1.taryartar.com (192.168.0.51) icmp_seq=2 Destination Host Unreachable
From rac1.taryartar.com (192.168.0.51) icmp_seq=3 Destination Host Unreachable
From rac1.taryartar.com (192.168.0.51) icmp_seq=4 Destination Host Unreachable
^C
--- myscan.taryartar.com ping statistics ---
4 packets transmitted, 0 received, +3 errors, 100% packet loss, time 3406ms
pipe 3
[root@rac1 ~]#
可以看出ping了三次myscan返回了三个不同ip地址。这个就是负载均衡,dns轮询算法,该功能由dns提供的,因为目前我们未安装任何oracle的产品。
3、截止到目前,我们还没有设置四台虚拟机的grid用户和oracle用户的密码。
[root@rac1 ~]# passwd grid
更改用户 grid 的密码 。
新的 密码:
无效的密码: 它基于用户名
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
[root@rac1 ~]# passwd oracle
更改用户 oracle 的密码 。
新的 密码:
无效的密码: 它基于用户名
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
[root@rac1 ~]#
这个在通过oui安装并且通过oui配置grid和oracle用户等价性的时候会用到,所以要提前设置。四个grid用户的密码要一样,同样四个oracle用户密码也应该一致。
4、配置ftp,把GI安装文件和database安装文件上传到虚拟机。
http://blog.csdn.net/kadwf123/article/details/78255194
5、目录权限问题。
我的安装文件都放在/taryartar/12c目录下面,所以必须保证12c目录必须能够被grid可读可写。同时,oracle OUI安装时会产生产品清单文件默认选在这个目录。
所以这个目录最后给足权限:
四个节点都执行。
6、NTPD时间同步服务;
从oralce11g开始,oracle已经对集群同步专门开发了ctss服务,我们不需要在使用操作系统的NTPD服务,所以,我们可以直接禁用NTPD服务;
oracle的ctss节点时间同步服务会自动检测ntpd服务,如果ntpd服务存在并且在运行,则ctss服务进入观察者模式,节点间的时间同步由ntpd服务来做。
如果ctss发现ntpd服务不存在,则直接接管结群的时间同步任务。
如果ntpd服务没有关闭,请先关闭
service ntpd stop
然后禁止开机自启动。
然后把ntpd的配置文件名改掉。
四个节点都需要做。
7、安装cvudisk包
其中grid目录是安装文件解压缩后创建的目录。
注意,四个节点都要安装。
可以通过第一个节点把rpm包ftp到另外三个节点,然后安装:
在节点1上:
sftp 192.168.0.52
lcd /taryartar/12c/grid/rpm
put *.rpm
quit
去节点2root家目录下:
rpm -ivh *.rpm
8、/dev/shm文件系统过小的问题。
/dev/shm文件系统oracle建议2g,我这边目前只有750m,需要增大,方法如下:
vi /etc/fstab
修改
tmpfs /dev/shm tmpfs defaults 0 0
为
tmpfs /dev/shm tmpfs defaults,size=2048m 0 0
然后重新挂载
umount /dev/shm
mount /dev/shm
就行了。
如果umount的时候遇到文件busy,可以查看哪些进程占用文件系统,可以直接杀掉,然后在umount。
fuser -m /dev/shm
命令输出比如:/dev/shm: 2481m 2571m
查看占用的进程号
然后kill
kill -9 2481 2571
然后重新umount
注意,四个节点都做。
9、通过节点1导入导出产生的节点2-4导致的网卡mac地址都一样的问题。
如果选择导入虚拟机的时候:
此时ifconfig -a看只能看到两块公网网卡,无法看到两块私网网卡了,因为私网网卡配置文件中配置了mac地址,而此时硬件的mac地址跟配置文件的不一致,所以读不出来。 可以看到此时私网没有ip展示。
h、修改私网网卡配置文件mac地址。 vi /etc/sysconfig/network-scripts/ifcfg-eth2 vi /etc/sysconfig/network-scripts/ifcfg-eth3
[root@rac3 rules.d]# cat 70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:b4:2f:11", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:68:23:42", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:4e:68:35", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:35:88:b0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
只用修改mac地址,跟70-persistent-net.rules文件中一一对应。
[root@rac3 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
HWADDR=08:00:27:35:88:b0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPV6INIT=no
USERCTL=no
IPADDR=10.0.10.5
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
[root@rac3 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth3DEVICE=eth3HWADDR=08:00:27:4e:68:35TYPE=EthernetONBOOT=yesBOOTPROTO=noneIPADDR=10.0.10.6NETMASK=255.255.255.0GATEWAY=192.168.0.1IPV6INIT=noUSERCTL=no然后重启网络服务就ok了。
10、添加图形界面支持: 本实验因为我虚拟机装的是基本服务器版,无图形界面,所以使用xmananger5实现图形界面。如果你的虚拟机装的是桌面版的,你也可以使用vnc进行图形界面安装。 使用xmanager需要在grid用户下环境变量中添加如下两行:
export LANG=en其中LANG添加英文支持,因为我的虚拟机系统是中文版的,不加这个变量,oracle弹出来的图形界面都是乱码。 DISPLAY变量冒号前面部分是我笔记本的iP地址。该ip地址是虚拟机通过桥连接连接的那块网卡的ip地址。我这边虚拟机桥连接的网卡是我笔记本的无线网卡,所以这个ip地址也是我的无线网卡的地址。 0.0就是xmanager - Passive打开后运行在任务栏鼠标指上去的地址,如图:
export DISPLAY=192.168.0.4:0.0
11、下面准备的差不多了,可以使用cvu做安装前检查了。
去grid的解压目录,本例是/taryartar/12c/grid/
[grid@rac1 grid]$ ll运行如下脚本:
total 44
drwxr-xr-x. 4 grid oinstall 4096 Oct 18 15:03 install
drwxrwxr-x. 2 grid oinstall 4096 Jul 7 2014 response
drwxr-xr-x. 2 grid oinstall 4096 Jul 7 2014 rpm
-rwxr-xr-x. 1 grid oinstall 8534 Jul 7 2014 runInstaller
-rwxr-xr-x. 1 grid oinstall 5085 Dec 20 2013 runcluvfy.sh
drwxrwxr-x. 2 grid oinstall 4096 Jul 7 2014 sshsetup
drwxr-xr-x. 14 grid oinstall 4096 Jul 7 2014 stage
-rwxr-xr-x. 1 grid oinstall 500 Feb 7 2013 welcome.html
[grid@rac1 grid]$ pwd
/taryartar/12c/grid
[grid@rac1 grid]$
./runcluvfy.sh stage -pre crsinst -n rac1,rac2,rac3,rac4 -fixup -verbose
[grid@rac1 grid]$ ./runcluvfy.sh stage -pre crsinst -n rac1,rac2,rac3,rac4 -fixup -verbose节点grid用户等价性可以通过oracle OUI提供的功能去做,我们可以不用管。 通过OUI配置集群的grid用户等价性后,在运行该检查命令,结果如下:
执行 集群服务设置 的预检查
正在检查节点的可访问性...
检查: 节点 "rac1" 的节点可访问性
目标节点 是否可访问?
------------------------------------ ------------------------
rac1 是
rac2 是
rac3 是
rac4 是
结果:节点 "rac1" 的节点可访问性检查已通过
正在检查等同用户...
检查: 用户 "grid" 的等同用户
节点名 状态
------------------------------------ ------------------------
rac2 失败
rac1 失败
rac4 失败
rac3 失败
PRVG-2019 : 用户 "grid" 在节点 "rac1" 和节点 "rac2" 之间的等同性检查出错
PRKC-1044 : 无法利用 Shell /usr/bin/ssh 和 /usr/bin/rsh 检查节点 rac2 的远程命令执行安装
节点 "rac2" 上不存在文件 "/usr/bin/rsh"
No RSA host key is known for rac2 and you have requested strict checking.Host key verification failed.
PRVG-2019 : 用户 "grid" 在节点 "rac1" 和节点 "rac1" 之间的等同性检查出错
PRKC-1044 : 无法利用 Shell /usr/bin/ssh 和 /usr/bin/rsh 检查节点 rac1 的远程命令执行安装
节点 "rac1" 上不存在文件 "/usr/bin/rsh"
No RSA host key is known for rac1 and you have requested strict checking.Host key verification failed.
PRVG-2019 : 用户 "grid" 在节点 "rac1" 和节点 "rac4" 之间的等同性检查出错
PRKC-1044 : 无法利用 Shell /usr/bin/ssh 和 /usr/bin/rsh 检查节点 rac4 的远程命令执行安装
节点 "rac4" 上不存在文件 "/usr/bin/rsh"
No RSA host key is known for rac4 and you have requested strict checking.Host key verification failed.
PRVG-2019 : 用户 "grid" 在节点 "rac1" 和节点 "rac3" 之间的等同性检查出错
PRKC-1044 : 无法利用 Shell /usr/bin/ssh 和 /usr/bin/rsh 检查节点 rac3 的远程命令执行安装
节点 "rac3" 上不存在文件 "/usr/bin/rsh"
No RSA host key is known for rac3 and you have requested strict checking.Host key verification failed.
ERROR:
等同用户在所有指定的节点上都不可用
验证无法继续
在所有节点上预检查 集群服务设置 失败。
NOTE:
没有要修复的可修复验证故障
[grid@rac1 grid]$
http://blog.csdn.net/kadwf123/article/details/78304908
12、启动安装。
报上面的错,说明缺包:xorg-x11-utils.x86_64 0:7.5-14.el6 安装之
[root@rac1 grid]# yum -y install xorg-x11-utils
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package xorg-x11-utils.x86_64 0:7.5-14.el6 will be installed
--> Processing Dependency: libdmx.so.1()(64bit) for package: xorg-x11-utils-7.5-14.el6.x86_64
--> Processing Dependency: libXxf86dga.so.1()(64bit) for package: xorg-x11-utils-7.5-14.el6.x86_64
--> Running transaction check
---> Package libXxf86dga.x86_64 0:1.1.4-2.1.el6 will be installed
---> Package libdmx.x86_64 0:1.1.3-3.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===================================================================================================
Package Arch Version Repository Size
===================================================================================================
Installing:
xorg-x11-utils x86_64 7.5-14.el6 base 101 k
Installing for dependencies:
libXxf86dga x86_64 1.1.4-2.1.el6 base 18 k
libdmx x86_64 1.1.3-3.el6 base 15 k
Transaction Summary
===================================================================================================
Install 3 Package(s)
Total download size: 133 k
Installed size: 270 k
Downloading Packages:
(1/3): libXxf86dga-1.1.4-2.1.el6.x86_64.rpm | 18 kB 00:00
(2/3): libdmx-1.1.3-3.el6.x86_64.rpm | 15 kB 00:00
(3/3): xorg-x11-utils-7.5-14.el6.x86_64.rpm | 101 kB 00:00
------------------------------------------------------------------------------------------------------------------------------------
Total 9.3 kB/s | 133 kB 00:14
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Installing : libXxf86dga-1.1.4-2.1.el6.x86_64 1/3
Installing : libdmx-1.1.3-3.el6.x86_64 2/3
Installing : xorg-x11-utils-7.5-14.el6.x86_64 3/3
Verifying : libdmx-1.1.3-3.el6.x86_64 1/3
Verifying : xorg-x11-utils-7.5-14.el6.x86_64 2/3
Verifying : libXxf86dga-1.1.4-2.1.el6.x86_64 3/3
Installed:
xorg-x11-utils.x86_64 0:7.5-14.el6
Dependency Installed:
libXxf86dga.x86_64 0:1.1.4-2.1.el6 libdmx.x86_64 0:1.1.3-3.el6
Complete!
[root@rac1 grid]#
ok,再来一次。
错误不存在了,能起来了。
13、预安装检查:
把红框中的两行注释掉,然后点check again。 ok,那个问题不存在了。 图中两个问题,一个是物理内存不足,这个oracle官方建议4g,我这边只有1.5g,可以忽略。 devices checks for ASM是没有检查到安装配置ASMlib,我们是用udev管理裸设备,不用asmlib,忽略。
14、执行root脚本: http://blog.csdn.net/kadwf123/article/details/78305427 两个root脚本第一个一般不会执行报错,都能执行过去。但是第二个一般出问题的概率比较大。 执行的时候相关日志可以看下面的三个地方:
tail -f /taryartar/12c/grid_home/log/rac1/ohasd/ohasd.log
tail -f /taryartar/12c/grid_home/log/rac1/agent/ohasd/oraagent_grid/oraagent_grid.log
tail -f $GRID_HOME/log/`hostname`/”alert`hostname`.log”
tail -f /var/log/messages如果root.sh执行失败,如果在当前的页面看不出原因,可以在上述4个日志文件里面找原因,找到原因后,
要以root用户登陆到每个节点,进入grid_home目录
cd $ORACLE_HOME
cd /crs/install
perl rootcrs.pl -deconfig -force (在单节点执行,然后重复执行这条命令在每个节点)
perl rootcrs.pl -deconfig -force -lastnode (如果是想删除所有的节点,加上选项-lastnode很危险,因为它会导致清除OCR和vote disks的数据)
在从新执行root.sh脚本。
有时候进行多次运行root.sh以后可能导致无法解释的错误,此时,比较好的办法是对GI进行干净的卸载,然后重新安装。
一旦root.sh在第一个脚本执行成功后,可以并行在另外3个节点执行。
15、由虚拟机内存不足导致的安装错误,本次实验虚拟机内存1.5G,oracle官方要求4G: http://blog.csdn.net/kadwf123/article/details/78305874 后来我把虚拟机内存扩成2148M(12.2.0.1)就可以正常安装不报错了。
16、安装GI图形界面详解:
启动安装图形化界面。 选择安装配置集群。 选择标准集群。
选择高级安装。 添加中文支持。 集群名字随意,保证同一内网唯一。集群scan name要跟dns配置的一样,否则会报错。(如果是host解析,就要保证跟host文件中配置的一样)。 私有网卡两块,一块选择asm专用,一块选择私有专用。公网bond0. 选择flex asm,是12c的新特性,多个数据库实例可以使用同一个asm实例,减少资源的占用。本实验反应出来的很大的一点就是asm实例数比节点数少一个。 选择磁盘组名,冗余选择外部冗余。分配单元1M。可选共享磁盘选择/dev/raw*这个路径。 路径指定正确后,就可以发现共享盘了。 指定oracle账号用户密码。这里选择所有账号共用一个密码。底下警告表示密码太简单,不符合oracle的密码验证要求。这里可以直接下一步。 不使用ipmi 是否配置oem,这里选择不配置。
三个都选择asmdba,oracle会提示选择可能不正确,不用管,直接下一步。 grid的base目录和home目录,oracle会自动从grid用户的环境变量读出来。如果没读出来,那你的配置有问题,请先检查。 oracle产品清单文件。需要确保/taryartar/12c有正确的权限。grid用户可读可写。 oracle从12c开始可以配置自动执行root脚本,不过为了安装步骤更清晰,我们还是不要选择自动执行。 安装前检查。两个条件不满足,一个内存大小,oracle12c官方建议4G。我们这是实验,2148M亲测可以安装成功。但是如果是1536M亲测安装配置负载资源库的时候会报错。 进入正式安装阶段。 执行两个root脚本。注意,四个节点都要执行成功才行。 ok坐等安装完成。最后就是finish了。
17、安装完成后的检验。
olsnodes -s列出集群中节点和节点状态。
crsctl check cluster -all
列出集群中所有节点的进程及状态。
crsctl check crs
列出当前节点中集群进程的状态信息。
ifconfig -a |grep -i addr四节点都执行 节点1: 节点2:
节点3: 节点4: 可以看出公网ip上分出来4个vip,而scan vip只有3个,分布于节点2、3、4上。
crsctl stat res -t
该命令展示集群各节点所有的资源、状态等。
上面我们知道集群只有三个scan vip,那么同样也对应三个scan监听器,可以通过下面的命令查看scan监听器。
ps -ef|grep -i scan节点1: 节点2: 节点3: 节点4: 发现节点1上没有scan 监听器,其它节点2、3、4上面都有scan监听器。跟上面看到的scan vip的情况吻合 。
查看scan监听器的状态可以直接执行下面的命令:
srvctl status scan_listener
18、安装后scan的体验,可以直接ping scan名:
可以看到,多次ping scan名,会返回不同ip,这个跟安装前看到的是一样的。不一样的是,此时ping myscan可以ping通了。
19、Flex ASM体验: oracle 12c以前,oracle ASM实例跟数据库实例是一对一的关系。现在有了flex asm,就可以不存在这种关系了,可以用一个asm实例服务更多的数据库实例。 下面的命令可以查看Flex ASM模式是否可用:
asmcmd showclustermode
下面的命令可以查看flex asm类型
asmcmd showclusterstate
crsctl stat res -t
可以看到有4个节点,但是只有3个asm实例在运行,分别运行在节点1、2、3上面。
ps -ef|grep -i asm也可以直接从操作系统层面直接查看asm的进程信息 节点1: 节点2: 节点3: 节点4:
节点1、2、3都有asm实例进程在,节点4上没有运行asm实例,所以无进程。
也可以通过集群资源管理命令直接查看asm实例的情况(目录、口令文件、监听器、asm实例个数)
srvctl config asm
srvctl status asm
有多少个asm实例并且运行在哪些节点上。