RAC <- RACOneNode转换

这篇博客详细记录了如何将Oracle RAC数据库转换为单实例,包括使用srvctl命令检查数据库配置、确认数据库状态、执行转换操作、添加新实例以及启动和检查实例状态的过程。

1 确认信息

>srvctl config database -d bpxtest

在这里插入图片描述

2 查看数据库状态

>srvctl status database -d bpxtest
Instance bpxtest1_1 is running on node wqqone1
Online relocation: INACTIVE

3 RAC <- RACOneNode

>srvctl convert database -d bpxtest -c rac
>srvctl config database -d bpxtest

在这里插入图片描述

4 添加实例

>srvctl add instance -d bpxtest -i bpxtest2 -n wqqone2
>srvctl config database -d bpxtest

在这里插入图片描述

5 启动实例

>srvctl status database -d bpxtest
Instance bpxtest1_1 is running on node wqqone1
Instance bpxtest2 is not running on node wqqone2
>srvctl start instance -d bpxtest -i bpxtest2
>srvctl status database -d bpxtest
Instance bpxtest1_1 is running on node wqqone1
Instance bpxtest2 is running on node wqqone2
<think>嗯,用户这次明确提出了一个具体的Oracle 12c RAC错误PRVF-5449的解决方案需求。从引用内容看,用户似乎正在搭建Oracle 12c RAC环境,引用中提到了节点间SSH通信验证和安装预检查步骤,这恰好与PRVF-5449的常见触发场景相关。 用户没有提供具体错误细节,但根据Oracle官方文档,PRVF-5449通常出现在集群验证阶段,核心是节点间的SSH互信配置问题。需要引导用户检查几个关键点:首先确认互信配置是否完整,包括所有节点的hosts文件一致性;其次检查oracle用户的SSH密钥权限是否过于开放(600为安全阈值);最后验证环境变量是否包含冲突的SSH参数。 考虑到用户引用的是静默安装脚本,要特别提醒检查脚本中的SSH配置步骤是否覆盖了双向互信。另外注意到用户示例中节点名为rac1/rac2,在解决方案里需要保持命名一致性。 对于解决方案的优先级安排:基础检查(权限/hosts文件)放在第一步,因为60%的案例由此解决;互信测试使用ssh -v提供详细日志最实用;若用户遇到复杂情况再建议CVU验证。最后补充了MOS文档参考,因为实际案例中可能有补丁依赖。 用户能精准提出错误代码,说明具备一定技术基础,所以回复可以包含诊断命令细节。不过仍要避免过度技术化,把最关键的chmod 600和ssh -v验证放在突出位置。 </think> Oracle 12c RAC 安装中的 **PRVF-5449** 错误通常与**节点间 SSH 互信配置**或**用户环境变量**有关。以下是系统化的解决方案: --- ### **1. 检查 SSH 互信配置**(关键步骤) 此错误表明节点间 `oracle` 用户的 SSH 连接未正确建立: ```bash # 在 rac1 节点验证到 rac2 的 SSH 连接(以 oracle 用户执行) oracle@rac1:~> ssh rac2 date ``` - **问题现象**:若提示 `Permission denied` 或超时,需重新配置互信。 - **解决方法**: ```bash # 1. 重新生成密钥(双节点执行) rm -rf ~/.ssh/* ssh-keygen -t rsa # 2. 合并公钥到 authorized_keys cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 3. 设置权限(必须!) chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys # 4. 测试互信 ssh rac2 date # 应返回日期无密码提示 ``` --- ### **2. 验证 hosts 文件一致性** 确保 `/etc/hosts` 在所有节点**完全一致**: ```bash # 检查所有节点的 hosts 配置 cat /etc/hosts | grep -E 'rac1|rac2|scan' ``` **要求**: - 包含 VIP、SCAN IP、节点名解析 - 无重复 IP 或主机名 --- ### **3. 检查用户环境变量** 在 `oracle` 用户的 `~/.bashrc` 或 `~/.bash_profile` 中: ```bash # 确保未覆盖 SSH 路径 echo $PATH | grep -i ssh # 应包含 /usr/bin/ssh ``` - **禁用冲突变量**:注释掉可能覆盖 `PATH` 或 `SSH` 路径的自定义设置。 --- ### **4. 使用 CVU 手动验证** 运行集群验证工具定位问题: ```bash # 以 oracle 用户执行 cluvfy stage -pre crsinst -n rac1,rac2 -verbose ``` - **重点关注输出**:查找 `SSH connectivity` 或 `User Equivalence` 的 FAIL 项。 --- ### **5. 检查系统防火墙** 临时关闭防火墙测试: ```bash # SUSE 12 SP5 命令(双节点执行) sudo systemctl stop firewalld sudo systemctl disable firewalld ``` 若问题解决,需添加防火墙规则: ```bash sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload ``` --- ### **典型修复流程** ```mermaid graph TD A[PRVF-5449 错误] --> B[测试 SSH 互信] B -->|失败| C[重新配置 SSH 密钥] C --> D[验证 authorized_keys 权限] D --> E[检查 /etc/hosts] E --> F[关闭防火墙测试] F -->|问题仍存| G[检查环境变量冲突] G --> H[使用 cluvfy 诊断] H --> I[查看具体失败项] ``` > **注意**:Oracle 官方文档强调 SSH 配置需满足: > 1. 所有节点的 `oracle` 用户 UID/GID 一致 > 2. `~/.ssh` 权限必须为 `700` > 3. `authorized_keys` 权限必须为 `600`(权限过高会导致失败)[^1][^2] --- **
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值