Oracle RAC安装实录
上回文章中说道2005年第一个工作日熬了个通宵,具体讲来是到厦门和Beta一起实施oracle rac安装。虽然已经拿到证书,但因为工作性质关系,数据库维护还是做得不多,这次让我好好重温oracle知识。 Beta比较热诚,已经在客户那里奋战两天两夜,几近油枯灯尽(
上回文章中说道2005年第一个工作日熬了个通宵,具体讲来是到厦门和Beta一起实施oracle rac安装。虽然已经拿到证书,但因为工作性质关系,数据库维护还是做得不多,这次让我好好重温oracle知识。
Beta比较热诚,已经在客户那里奋战两天两夜,几近油枯灯尽(年轻人要注意保重身体啊),我到厦门也就是参加扫尾。
总的说来,全过程碰到的问题不少,但任务比较紧急,一些细节来不及考证,回来后在办公室环境中搭一个环境继续研究,另外试验环境还可供其它同事参考。
本系列文章全程记录安装过程中碰到的所有问题和解决手段。
1.准备环境
2.准备环境(续)
3.HACMP安装配置
4.OracleRac安装前准备
5.安装oracle软件
6.Oracle建库
7.RAC使用和测试
搭设的硬件环境如下:
44p270主机一台:375MHz PowerPC_POWER3 CPU一颗、512 MB内存、18.2GB内置硬盘、主板内置网卡+2968以太网卡、6230 SSA卡;
f80主机一台:450MHz PowerPC RS64III CPU四颗、2048MB内存、36.4GB内置硬盘、主板内置网卡+2968以太网卡、6230 SSA卡;
7133-D40磁盘阵列:2块36.4B 1万转硬盘构成RAID1阵列。
最后的软件环境如下:
AIX 5L V5.2、ML04+IY64978+IY63366
HACMP V5.1+U498114
f80主机刚刚在厦门光荣退租,要重新安装操作系统。安装过程中发现一个奇怪的问题,很多执行文件的存取属性被清空(变成----------)而导致无权限执行,这首先严重影响了打ML04补丁,bos.rte补丁中的一个script总是运行不成功,报/usr/lib/methods/cfgsf命令执行失败(bos.rte.config_u[42]: /usr/lib/methods/cfgsf: 0403-006 Execute permission denied.
update: Failed while executing the bos.rte.config_u script.),结果bos.rte及依赖其的几个文件集补丁无法实施。因为cfgsf文件本身就属于bos.rte,installp在安装bos.rte的时候先把它的存取属性清除了(覆盖原文件),然后再执行它,所以在installp之前修改cfgsf的属性没有意义。
解决方法比较笨拙,写一个死循环shell程序,不断地执行chmod 500 /usr/lib/methods/cfgsf命令(见下)。
while true
do
chmod 500 /usr/lib/methods/cfgsf
done
方过此关。
存取属性被清空的执行文件还有很多,引发了相当多的类似问题,其中一个就是影响了包括ssa卡和硬盘在内的很多设备的识别配置,/usr/lib/methods/下的文件都要检查一下。还有/usr/ssa下的几个bin目录也要重新设置一下执行属性。
因为在网上找不到类似的解决案例,我怀疑是手上的安装光盘有问题。
继续软硬件环境的准备。
1.2.网卡问题270主机上的一块网卡,访问网络总是有问题,ping不通。换过网线、插槽都不行,但把卡插到另一台b50主机上,网络访问又正常,怀疑是270主机主板问题,执行diag诊断(要先ifconfig en1 detach,否则报设备忙,无法进一步诊断),报下面错误:
SRN: 777-104
Description: Internal Loopback Test Failed.
Probable FRUs:
ent1 FRU: 091H0397 P2-I4/E1
IBM 10/100 Mbps Ethernet PCI Adapter (23100020)
看来还是网卡有问题,回到b50主机再做diag诊断,也报类似错误,正式宣告该卡死刑。换了一块2968以太网卡,没再报网络问题了。
1.3.创建增强并发访问卷组进行hacmp和数据库配置之前,要先准备资源,网络(ip和tty)、appserver和以前没什么区别,有特性的是共享卷组的准备。
因为要并发处理,所以卷组要建成concurrent capable的,AIX 5.2下只支持Enhanced Concurrent卷组:
# mkvg -C -n -y datavg hdisk1
0516-1335 mkvg: This system does not support enhanced
concurrent capable volume groups.
以前在网上碰到同样的报错求助,当时是胡乱猜疑,不达要点。这回找到了真正的原因——没有安装bos.clvm.enh:
# lslpp -L bos.clvm.enh
Fileset Level State Type Description (Uninstaller)
----------------------------------------------------------------------------
bos.clvm.enh 5.2.0.40 A F Enhanced Concurrent Logical Volume Manager
安装后,重新执行mkvg就正常了。
硬件环境和软件准备好后,接下来配置HACMP。
二、HACMP安装配置因为是实验环境,HACMP配置不是一开始就制定好的,修正过几次,甚至到后面安装oracle碰了钉子,又再回过头来修改配置。
2.1. HACMP安装在RAC下,必须安装cluster.es.clvm.rte文件集,否则concurrent资源组无法增加并行卷组资源,安装后需重新启动主机,才可生效。
最后系统里所有的hacmp文件集列表如下:
Fileset Level State Type Description (Uninstaller)
----------------------------------------------------------------------------
cluster.adt.* 5.1.0.0 C F ES Client Demos
cluster.es.client.* 5.1.0.6 A F ES Client Libraries
cluster.es.clvm.rte 5.1.0.0 C F ES for AIX Concurrent Access
cluster.es.cspoc.* 5.1.0.6 A F ES CSPOC Commands
cluster.es.server.* 5.1.0.6 A F ES Server Diags
cluster.es.worksheets 5.1.0.6 A F Online Planning Worksheets
cluster.license 5.1.0.0 C F HACMP Electronic License
cluster.msg.* 5.1.0.0 C F HACMP CSPOC Messages - U.S. English
rac下,一般使用oracle自己的failover功能在客户端实现服务主机的切换。但还希望借助hacmp实现单机上的网卡热备,所以拓扑配置上有些讲究。
想到cascading资源组中ipat会让service-ip地址从主机飘到备机上(所不愿见到的),所以先使用persistent-ip。经测试,persistent-ip可以在网卡失败时切换到备份网卡(但比service-ip花的时间要长不少,客户端中断感觉明显),功能基本满足要求。但实际使用中,这种配置方法给后面的rac安装造了不少麻烦,最后只能放弃。
在rac配置上挣扎很长一段时间,被周平一句话点醒,可以用配置仅包含单个节点的cascading资源组,来避免service-ip地址在主机间的漂移。最终的配置下,各种莫名其妙的问题迎刃而解(看来rac与hacmp的拓扑关系密切)。
最后的拓扑、资源配置如下:
# /usr/es/sbin/cluster/utilities/cltopinfo -i
IP Label Network Type Node Address If Netmask
========= ======= ==== ==== ======= ==== =======
f80 net_ether_01 ether f80 10.0.0.208 255.255.255.0
p270 net_ether_01 ether f80 10.0.0.207 255.255.255.0
f80_boot2 net_ether_01 ether f80 192.168.1.208 en0 255.255.255.0
f80_boot1 net_ether_01 ether f80 192.168.0.208 en1 255.255.255.0
f80_tty1_01 net_rs232_01 rs232 f80 /dev/tty1 tty1
f80 net_ether_01 ether p270 10.0.0.208 255.255.255.0
p270 net_ether_01 ether p270 10.0.0.207 255.255.255.0
p270_boot1 net_ether_01 ether p270 192.168.0.207 en0 255.255.255.0
p270_boot2 net_ether_01 ether p270 192.168.1.207 en1 255.255.255.0
p270_tty1_01 net_rs232_01 rs232 p270 /dev/tty1 tty1
# /usr/es/sbin/cluster/utilities/clshowres

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

无法以 root 身份登录 MySQL 的原因主要在于权限问题、配置文件错误、密码不符、socket 文件问题或防火墙拦截。解决方法包括:检查配置文件中 bind-address 参数是否正确配置。查看 root 用户权限是否被修改或删除,并进行重置。验证密码是否准确无误,包括大小写和特殊字符。检查 socket 文件权限设置和路径。检查防火墙是否阻止了 MySQL 服务器的连接。

C语言条件编译是一种根据编译时条件选择性编译代码块的机制,入门方法有:使用#if和#else指令根据条件选择代码块。常用条件表达式包括STDC、_WIN32和linux。实战案例:根据操作系统打印不同消息。根据系统位数使用不同的数据类型。根据编译器支持不同的头文件。条件编译增强了代码的可移植性和灵活性,使其适应编译器、操作系统和CPU架构变化。

Linux的五个基本组件是:1.内核,管理硬件资源;2.系统库,提供函数和服务;3.Shell,用户与系统交互的接口;4.文件系统,存储和组织数据;5.应用程序,利用系统资源实现功能。

MySQL启动失败的原因有多种,可以通过检查错误日志进行诊断。常见原因包括端口冲突(检查端口占用情况并修改配置)、权限问题(检查服务运行用户权限)、配置文件错误(检查参数设置)、数据目录损坏(恢复数据或重建表空间)、InnoDB表空间问题(检查ibdata1文件)、插件加载失败(检查错误日志)。解决问题时应根据错误日志进行分析,找到问题的根源,并养成定期备份数据的习惯,以预防和解决问题。

MySQL无法直接在Android上运行,但可以通过以下方法间接实现:使用轻量级数据库SQLite,由Android系统自带,无需单独服务器,资源占用小,非常适合移动设备应用。远程连接MySQL服务器,通过网络连接到远程服务器上的MySQL数据库进行数据读写,但存在网络依赖性强、安全性问题和服务器成本等缺点。

MySQL安装报错的解决方法是:1.仔细检查系统环境,确保满足MySQL的依赖库要求,不同操作系统和版本需求不同;2.认真阅读报错信息,根据提示(例如缺少库文件或权限不足)采取对应措施,例如安装依赖或使用sudo命令;3.必要时,可尝试源码安装并仔细检查编译日志,但这需要一定的Linux知识和经验。最终解决问题的关键在于仔细检查系统环境和报错信息,并参考官方文档。

MySQL安装失败的原因主要有:1.权限问题,需以管理员身份运行或使用sudo命令;2.依赖项缺失,需安装相关开发包;3.端口冲突,需关闭占用3306端口的程序或修改配置文件;4.安装包损坏,需重新下载并验证完整性;5.环境变量配置错误,需根据操作系统正确配置环境变量。解决这些问题,仔细检查每个步骤,就能顺利安装MySQL。

MySQL安装失败通常因缺少依赖项导致。解决方法:1.使用系统包管理器(如Linux的apt、yum或dnf,Windows的VisualC Redistributable)安装缺失的依赖库,例如sudoaptinstalllibmysqlclient-dev;2.仔细检查错误信息,逐一解决复杂的依赖关系;3.确保包管理器源配置正确,能访问网络;4.对于Windows,下载安装必要的运行库。养成阅读官方文档和善用搜索引擎的习惯,能有效解决问题。
