分类目录归档:Linux

CentOS7.2(RHEL 7.2)的CPU占用高(%system 占用高)

开机后,发现节点1的CPU使用率很高: 节点2的也比较高: 在节点1检查哪些进程使用CPU资源较多: 检查果然vnc都自动开启: 停止vnc并设置开机不启动: 优化效果非常明显,可以看到CPU基本空闲了,符合现在的情况(Oracle的CRS还没启动呢): 再来看看节点2: 同样的方法,也停止vnc服务和vnc的开机自动启动: 停止vnc服务和进制vnc开机自动启动: 看一下节点2的优化效果:

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

Oracle 12.1 RAC 系列 – 配置第二个网络和相应的SCAN2

在配置ADG或者使用oracle 的集群管理应用的HA时(比如OGG),我们可能希望使用不同的网络,以避免ADG传输日志等对主生产网络的造成影响。 从11.2开始,我们可以使用crs管理多个网络资源(缺省只有network1),但是SCAN只能在多个网络中的一个上活动(缺省是network1,后续可以指定到不同网络上)。 然后,我们通常会配置专门为ADG传输日志的network2网络,但是在配置连接串时,只能使用vip(因为SCAN通常给主生产上的network1使用)。 . 从12.1开始,我们可以配置多个网络上的多个SCAN,比如我们配置ADG时,在network2上配置SCAN2。 具体配置如下: –检查网卡接口对应的IP地址: –添加新的public网络 –检查网络定义,缺省只有一个网络定义:network1 –添加新的网络集群资源(a new network cluster resource) 这时集群的网络资源中已经配置了两个网络(包括新增加的网络),如果使用“crsctl status res -t”查看,可以看到: –添加vip –启动vip,查看vip资源 –检查新创建的vip是否运行了: –添加网络2上的监听: 在network2上配置SCAN: –启动network2上的监听 –在network2上启动SCAN –在network2上添加SCAN LISTENER –检查监听状态 配置ORACLE数据库实例支持多个网络: 配置客户端连接串 —检查数据库是否可以登录: 至此已经全部完成。 Oracle 12.1 RAC 系列: Oracle 12.1 RAC … 继续阅读

发表在 Installation and Deinstall, Linux, network, ORACLE 12C, RAC | 标签为 , , , , , | 留下评论

11.2 RAC 系列-安装新主机,识别老存储-3-配置老存储的数据库

11.2 RAC 系列-安装新主机,识别老存储-1-识别ASM磁盘 11.2 RAC 系列-安装新主机,识别老存储-2-准备识别数据库 11.2 RAC 系列-安装新主机,识别老存储-3-配置老存储的数据库 Oracle 12.1 RAC 系列-安装新主机,识别老存储和恢复数据库 安装Oracle 11.2.0.4数据库软件,然后执行root.sh,这个没有特别的东西,略。 之后,我们需要修改ORACLE RDBMS的oracle二进制文件的权限,让oracle 数据库进程可以获取ASM磁盘组。 注意,这里的/u01/app/oracle/product/11.2.0.4/dbhome_1/bin/oracle就是安装ORACLE RDBMS的ORACLE_HOME。 然后,将数据库添加到CRS中,启动数据库: 检查数据库在ocr中的配置: 启动数据库: 检查crs的状态: 至此,整个使用新主机识别老存储的RAC(主要是识别ASM)就完成了。如果是文件系统的环境,比这个简单很多,ASM的全部可以省略了。 . Oracle 12.1 RAC 系列: Oracle 12.1 RAC 系列-安装新主机,识别老存储和恢复数据库 Oracle 12.1 RAC 系列 – 配置第二个网络和相应的SCAN2

发表在 ASM, Installation and Deinstall, Linux, Oracle 11.1 & Oracle11.2, RAC | 标签为 , , | 留下评论

11.2 RAC 系列-安装新主机,识别老存储-1-识别ASM磁盘

在有些场景下,RAC环境中如果主机出现问题,比如硬件故障等,不能启动,我们需要尽快存储上的启动数据库,恢复业务,那么就需要迁移以前的RAC环境到新的主机环境下,我测试了11.2和12.1的RAC,恢复过程还是很快的,基本上就是安装软件的过程,如果真实场景恢复业务,有两种方法: 1,按照我这里的方法重新安装主机,恢复RAC和数据库 2,如果之前有可用的操作系统的备份(比如NBU备份了OS),那么直接使用NBU还原即可 . 我这里测试的是方法1,重新安装11204的GI(Grid Infrastructure)和ORACLE RDBMS软件,然后识别老存储。 测试环境:单节点RAC, 操作系统是OEL Linux 6.6, 数据库版本是11.2.0.4 11.2 RAC 系列-安装新主机,识别老存储-1-识别ASM磁盘 11.2 RAC 系列-安装新主机,识别老存储-2-准备识别数据库 11.2 RAC 系列-安装新主机,识别老存储-3-配置老存储的数据库 Oracle 12.1 RAC 系列-安装新主机,识别老存储和恢复数据库 . 首先,因为存储使用的是11204的ASM,测试过程只安装11204的GI(Grid Infrastructure)软件,不用OUI配置GI。 执行root.sh: 相应的checkpoint文件内容: 这里看到“DESC=”ROOTCRS_NODECONFIG” STATE=”SUCCESS””表示GI已经配置完成。 图形界面点击ok,继续执行其余配置,配置完成后,再次检查checkpoint文件: 这里看到,checkpoint文件的日期没有变化,说明checkpoint文件是执行root.sh的时候才有用的,也就是这个过程是11.2中为了方便客户,增加了root.sh的失败后继续配置二设计的,非常体贴的功能。在12.2中,该功能更加方便,他将会只管的告诉你当前配置的检查点情况,如果有些步骤失败后,oracle会自动清除老的配置,以便可以失败安装后不用重装,而是纠正错误后继续配置,类似“断点续传”那种意思。 . 比如,下面是12.2beta上安装RAC时执行root.sh的过程: 可以看到,这个过程比12.2以前的RAC执行root.sh的提示更加清晰了。 好吧,回到我们的环境中,继续检查老的asm磁盘组 将上述磁盘组添加到ASM启动磁盘组的列表中: 对新添加的磁盘组执行mount和dismount后,这些磁盘组就会自动添加到ocr中: … 继续阅读

发表在 Installation and Deinstall, Linux, Oracle 11.1 & Oracle11.2, 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环境系列-11-配置VNC和常见问题处理

在Linux7上配置VNC和以往方法不同(也是由于Linux7上的服务管理方式的变化造成的)。 安装vnc的时候,需要配置yum源,我一般选择配置本地yum源,本地yum源有两种主要方式: 1,使用vbox的共享目录 2,使用虚拟出来的光驱 配制方法跟Linux7以前的版本(Linux6和Linux5)一样,这里不赘述。 . 查看本地yum源里面可以安装的vnc包: 我一般选择tigervnc。 Linux7之前的系统,如果安装vnc一般都需要使用vncserver命令来设置口令,然后配置/etc/sysconfig/vncservers文件。 在Linux7中,仍然还存在这个文件,不过其内容只有一行: 请注意,上面文件中的重要提示,这段提示清晰的告诉我们该如何配置vnc: 好吧,按照提示,我们首先配置root用户的vnc服务启动配置文件: 然后,按照上面文件中(/lib/systemd/system/vncserver@.service)的配置方式 修改前: 修改后: 然后,重新加载systemd的配置: [root@lunar1 ~]# systemctl daemon-reload [root@lunar1 ~]# 然后,我们设置为自动启动: 启动vnc服务: 在Linux7中,VNC使用590x开始的端口号: 只配置IPv4的情况: 配置了IPv4和IPv6的情况: 设置vncserver的密码:vncpasswd root 最终root用户的vnc的配置文件: 然后使用同样的方法配置grid用户和oracle用户即可。 . 有时候vnc启动会报错,例如: 处理思路: 1,查看日志(/var/log/messages)或者使用Linux7中新引入的journalctl查看(参见前面的blog) 2,通常的问题有几类: (1)配置文件有问题。 (2)/tmp/下的临时文件因为某种原因,系统没有自动清理 (3)ghome造成的一些问题,比如修改中文语言或者英文语言后,容易出现问题 . … 继续阅读

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

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-10-ABRT-系统启动后自动检查和报告错误

启动vm时,Linux7会自动检查和报告错误: Abrt从Linux 6中引入的一个自动缺陷报告工具。 我们知道,Linux6中开始对新硬件热插拔特性的支持进一步增强(估计也是移动互联网和新硬件层出不穷催生的需求)。 比如,Linux6包括高级数据完整性特性(DIF/DIX),可以通过AER的PCIe设备的增强错误检查,因此就引入了ABRT(自动缺陷报告工具)。 ABRT全程是 Automatic Bug Reporting Tool,它提供了确定和报告系统异常情况,包括内核故障和用户空间应用崩溃等。 . abrt-cli就是这个工具的命令行接口,也可以使用图形界面的ABRT工具例如:gnome-abrt &。 详细信息,请参见Redhat的官方手册: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-abrt-handling-problems.html . abrt-cli命令的help内容: 现在,我们根据提示查看一下错误列表: 已禁用自动报告功能。请考虑启用该功能,方法是 作为有 root 特权的用户使用命令 ‘abrt-auto-reporting enabled’ [root@lunar1 ~]# 可见,主要是由于gnome引起的,因此推荐Linux使用图形界面的时候还是KDE吧,这个感觉还是比较稳定和靠谱的。 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 RAC环境系列–4-target(图形界面和字符界面) Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–5-防火墙 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–6-开机自动启动或者禁用服务 Linux7(CentOS,RHEL,OEL)和Oracle … 继续阅读

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

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需要禁用哪些服务