标签归档:12c RAC

11.2和12c RAC的ohasd守护进程在不同Linux版本的演变

前面我们已经讲解过11.2 RAC的启动过程,可以注意到,RAC的根守护进程是/etc/init.d/init.ohasd,那么不同版本的Linux中/etc/init.d/init.ohasd是如何启动的呢? 注意:12.1的非Flex Cluster启动过程跟11.2 RAC一致。但是从12.2beta版 RAC的测试结果来看,从12.2开始OUI安装很可能只有Flex Cluster了,没有了11.2的那种普通RAC了。 . Linux4和Linux5中,在完成核内引导(内核被载入内存并运行,初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序/sbin/init的方式来启动其他用户级的进程或服务。 所以,init始终是第一个进程,其PID始终为1(ps -aux | less),它是系统所有进程的父进程. 我们看一下这三个文件哪里不同: 可以看出,/etc/inittab.no_crs的内容就是在没安装GI以前的/etc/inittab备份文件,而/etc/inittab.crs的内容就是安装GI以后/etc/inittab 备份文件 也就是说,在Linux 5中,安装完RAC(10.2或者11.2)后,该脚本就会增加上面一行启动ohasd守护进程的脚本,如果要在系统启动时启动crs,那么就需要让/etc/inittab中包含下面的一行启动命令: h1:35:respawn:/etc/init.d/init.ohasd run >/dev/null 2>&1 /dev/null 2>&1

发表在 Database, Linux, RAC | 标签为 , , | 留下评论

etc目录下的init.ohasd和ohasd文件丢失后如何启动GI

上一遍我们已经知道11.2和12c RAC中的/etc/init.d/init.ohasd是启动RAC所有其他进程的守护进程。 那么如果有人误删除了这个文件或者错误修改了,怎么办呢? 这个解决不难,因为在Standalone环境中,/etc/init.d/init.ohasd来自于$GRID_HOME/crs/init/init.ohasd,而/etc/init.d/ohasd来自于$GRID_HOME/crs/init/ohasd。 我们对比一下$GRID_HOME/crs/init/和/etc/init.d/下的ohasd和init.ohasd,看看文件内容是否一致: [/shell] 可以看到,$GRID_HOME/crs/init/和/etc/init.d/目录下的文件内容是一致的,只是权限不同。/etc/init.d/目录下的文件权限是750,$GRID_HOME/crs/init下的权限是644。 好了,解决方法有了,如果/etc/init.d/init.ohasd或者/etc/init.d/ohasd丢失了,手工创建/etc/init.d/init.ohasd 就可以了: 如果再细心一点,我们会发现$GRID_HOME/crs/init目录下除了这两个文件外,还有一个名称为ohasd.sles的文件。 熟悉SLES Linux的朋友可能猜到了,是的,这个是在SLES Linux上使用的ohasd版本。 检查当前版本是否为SLES: 现在,我们删除/etc/init.d/init.ohasd文件来模拟init.ohasd文件丢失或者损坏: 然后我们使用$GRID_HOME/crs/init/下面的文件复制过来,手工启动试试看: 下面的显示删除/etc/init.d/init.ohasd后reboot系统的结果(也可以使用kill进程的方式,不重启主机): 可以看到,当前没有任何RAC的进程被启动。 我们尝试恢复这个丢失的ohasd守护进程配置文件: 然后reboot系统后,该进程已经启动了:

发表在 Database, Linux, RAC | 标签为 , , | 留下评论

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-9-Linux 7.2上的virbr0设备

当我们安装了Linux 7.2(CentOS 7.2和 OEL 7.2都有下面的现象),缺省会安装一个虚拟网卡virbr0。 查看当前的IP信息: 这里我们看到Linux7开始使用enp0s3作为第一个缺省的网络接口名,类似于以前的eth0,当然,你后面可以修改这个缺省的网络接口名。 enp0s8是第二个网络接口名,而enp0s9就是我们新添加的第三个网络接口名。 enp0s3和enp0s8我们在安装时已经配置了网络连接和IP地址,设置了启动自动连接,因此没有问题。 enp0s9需要我们手工配置。 . 可以看出来,Linux7中缺省还有一个virbr0网络接口。 . 从网上摘录了virbr0的部分相关解释: virbr0 是一种虚拟网络接口,这是由于安装和启用了 libvirt 服务后生成的 libvirt 在服务器(host)上生成一个 virtual network switch (virbr0),host 上所有的虚拟机(guests)通过这个 virbr0 连起来。 默认情况下 virbr0 使用的是 NAT 模式(采用 IP Masquerade),所以这种情况下 guest 通过 host 才能访问外部。 . 可以看出来,virbr0是一个虚拟网卡,并且由于在Linux7.2中(CentOS … 继续阅读

发表在 Installation and Deinstall, Linux, ORACLE 12C, RAC | 标签为 , , , , , , | Comments Off on Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-9-Linux 7.2上的virbr0设备

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-8-在Linux7上安装11.2 RAC和12.1 RAC需要禁用哪些服务

安装Oracle RAC的时候,通常我们会禁用一些服务,比如:防火墙,avahi-daemon等等。 avahi-daemon是一种Linux操作系统上运行在客户机上实施查找基于网络的Zeroconf service的服务守护进程。 该服务可以为Zeroconf网络实现DNS服务发现及DNS组播规范,它可以在没有 DNS 服务的局域网里发现基于 zeroconf 协议的设备和服务。 用户程序通过Linux D-Bus信息传递接收发现到网络服务和资源的通知。 一般安装Oracle RAC,建议禁用该服务。 . 我们看一下,在Linux7(Linux5和Linux6中)以前我们一般禁用的服务列很多 例如: 等等 然后,在linux7下,已经不适用chkconfig命令了,而且很多以前的服务名称和启动配置都变化了(参考blog中Linux7管理开机启动服务的相关文章) 那么我们现在怎么禁用服务,禁用哪些呢? 首先,看看系统中当前运行了哪些服务: 在前面的blog中已经有了禁用防火墙的描述,这里不赘述。 安装Oracle,除了防火墙和SELINUX以外,通常还需要禁用以下服务 Linux7以前的命令: 在Linux7中使用systemctl stop和systemctl disable: 在Linux6以前,我们使用chkconfig –list查看当前的服务,但是在Linux7中,大部分情况我们使用systemctl 如果使用chkconfig –list,则输出类似如下: 执行chkconfig的命令提示很清晰,他告诉我们,使用chkconfig将只显示SysV的服务,不包含原生 systemd服务。 我们查询一下在Linux5和6时,咱们经常禁用的服务,在Linux7中的状态: 根据上面输出,可以总结出来,还需要禁用下面这些开机自动启动的服务: (systemctl disable的作用类似于以前的chkconfig –level 2345 avahi-daemon off) … 继续阅读

发表在 Installation and Deinstall, Linux, ORACLE 12C, RAC | 标签为 , , , , , | Comments Off on Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-8-在Linux7上安装11.2 RAC和12.1 RAC需要禁用哪些服务

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-7-网络管理之修改网络接口名

由于Linux7中采用了固定的网络接口名的方式,目的是如果网卡损坏可以方便的使用类似新增网卡的方法进行替换,非常简便 但是如果由于某种原因,需要修改网络接口名就很麻烦,例如想修改为以前的eth0的名称。 Linux7中,使用nmtui修改网络连接和IP地址后,可以使用重建加载配置文件的方式使新的配置生效。 需要注意的是,网络接口名称不能通过nmtui来修改(可以修改,但是修改是无效的,会被自动还原为缺省的网络接口名)。 . 下面是通过修改网络配置文件的方法来修改网络设备接口名称的过程(注意,结论是不能用此方法修改): 修改/etc/sysconfig/network-scripts/ifcfg-eth1中的两个地方: DEVICE=eth1 ———-设备名称(device) NAME=eth1 ———-连接名称(connect) 修改后: 修改后重新加载配置文件: 这样只能修改连接的名称,但是不能修改设备名称: 错误:没有找到设备 ‘eth1’。 在Linux7中修改设备名称只能禁用一致和可预测的网络设备命名规则,即,修改grub,还原到Linux6的设备命名方法: 至此,我们看到,不能通过修改配置文件的方法来改变网络接口设备名称。 那么如果一定要在Linux7中将网络设备接口名修改回以前很土的eth0有方法么? 答案是:yes。 . 我们可以通过禁用可命名规则,编辑/etc/default/grub文件来实现。 在该文件的GRUB_CMDLINE_linux=”rhgb quiet”改为GRUB_CMDLINE_LINUX=”net.ifnames=0 biosdevname=0 rhgb quiet” 运行命令grub2-mkconfig -o /boot/grub2/grub.cfg来重新生成grub配置并更新内核参数: 这里我们看到了熟悉的类似Linux6中的UDEV绑定网络设备的方式。 然后,我们reboot后,可以看到,网络接口名已经还原到了以前的样子: 现在,我们再还原回到可预测的网络设备命名网络接口的方法: Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–1-简介 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-2-修改主机名和hostnamectl工具的使用 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–3-systemd(d.bin和ohasd守护进程) Linux7(CentOS,RHEL,OEL)和Oracle … 继续阅读

发表在 Database, Installation and Deinstall, Linux, network | 标签为 , , , , , , , , , | 留下评论