oracle 12c GI安装详细步骤(oracle 12C + Grid Infrastructure(
1、前面准备阶段博客: http://www.52php.cn/article/p-tiwwctwu-bph.html 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,+3 errors,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,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=2048m0 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",ATTR{address}=="08:00:27:68:23:42",NAME="eth1" # PCI device 0x8086:0x100e (e1000) SUBSYSTEM=="net",ATTR{address}=="08:00:27:4e:68:35",NAME="eth3" # PCI device 0x8086:0x100e (e1000) SUBSYSTEM=="net",ATTR{address}=="08:00:27:35:88:b0",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-eth3 DEVICE=eth3 HWADDR=08:00:27:4e:68:35 TYPE=Ethernet ONBOOT=yes BOOTPROTO=none IPADDR=10.0.10.6 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 IPV6INIT=no USERCTL=no然后重启网络服务就ok了。 10、添加图形界面支持: 本实验因为我虚拟机装的是基本服务器版,无图形界面,所以使用xmananger5实现图形界面。如果你的虚拟机装的是桌面版的,你也可以使用vnc进行图形界面安装。 使用xmanager需要在grid用户下环境变量中添加如下两行: export LANG=en export DISPLAY=192.168.0.4:0.0其中LANG添加英文支持,因为我的虚拟机系统是中文版的,不加这个变量,oracle弹出来的图形界面都是乱码。 DISPLAY变量冒号前面部分是我笔记本的iP地址。该ip地址是虚拟机通过桥连接连接的那块网卡的ip地址。我这边虚拟机桥连接的网卡是我笔记本的无线网卡,所以这个ip地址也是我的无线网卡的地址。 0.0就是xmanager - Passive打开后运行在任务栏鼠标指上去的地址,如图: 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,rac4 -fixup -verbose 执行 集群服务设置 的预检查 正在检查节点的可访问性... 检查: 节点 "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]$节点grid用户等价性可以通过oracle OUI提供的功能去做,我们可以不用管。 通过OUI配置集群的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实例并且运行在哪些节点上。 ?? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |