数据库管理-第357期 23ai:试玩Extended Cluster(20250814)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database
PostgreSQL ACE Partner

10年数据库行业经验
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP,ITPUB认证专家
圈内拥有“总监”称号,非著名社恐(社交恐怖分子)

公众号:胖头鱼的鱼缸
CSDN:胖头鱼的鱼缸(尹海文)
墨天轮:胖头鱼的鱼缸
ITPUB:yhw1809
IFClub:胖头鱼的鱼缸
除授权转载并标明出处外,均为“非法”抄袭

30efd366624530ae0b59caeac2b6a15a.jpg
本期来玩一玩23ai上的Extended Cluster,也被称为Extended RAC。

1 简介

Oracle Extended Cluster由位于多个位置(称为站点,site)的节点组成。如果其中一个站点发生故障,另一个站点将作为活动备用。
一般来说,Oracle ASM和Oracle数据库都是为在数据中心使用企业级共享存储而设计的。然而,光纤通道技术使您能够在两个或多个数据中心之间分配计算和存储资源,并通过以太网电缆和光纤通道将它们连接起来,分别满足计算和存储需求。
Oracle建议您部署具有normal冗余磁盘组的Oracle Extended Cluster。您可以将节点和故障组分配给站点。站点包含故障组,故障组包含磁盘。对于正常冗余磁盘组,磁盘组提供一级故障保护,可以容忍站点或故障组的故障。
同时Oracle不建议site之间的距离超过100KM。
image.png

2 环境说明

这里仍然部署的是23.8内测版,基本安装过程可以参考《数据库管理-第334期 Oracle Database 23ai测试版RAC部署文档(20250607)》。本次安装的集群变化内容主要有:

  • 操作系统使用Oracle Linux 9.6
  • 3个节点
  • 公网和私网均未配置多网卡
  • 磁盘组均使用normal冗余

image.png
image.png
image.png
这里没有做存储复制,相当于用一套存储模拟两个site都能访问到的存储,在实际生产部署Extended Cluster需要确保多个site的存储能够一致,且节点能够正常识别对应磁盘,这一硬件配置成本较高。

3 配置Extended Cluster

3.1 检查当前集群状态

crsctl get cluster extended
crsctl query cluster site -all

image.png

3.2 手动备份OCR信息

su -
ocrconfig -manualbackup

image.png

3.3 配置site

在第一个节点(db01)执行,执行下面命令过程中,:

su -
cd /u01/app/23.0.0/grid/crs/install
./rootcrs.sh -converttoextended -first -sites chengdu,chongqing -site chengdu
# -first 第一个执行的节点
# -sites 指定有哪些site
# -site  指定本节点的site,后续节点只需要指定本节点的site即可

image.png

执行converttoextended的节点数据库实例将不可用

image.png

节点2(db02)执行:

cd /u01/app/23.0.0/grid/crs/install
./rootcrs.sh -converttoextended -site chengdu

image.png
image.png

节点3(db03)执行:

cd /u01/app/23.0.0/grid/crs/install
./rootcrs.sh -converttoextended -site chongqing

image.png
image.png
这是db01和db02已经到了site:chengdu,而db03到了site:chongqing。

3.4 删除多余site

需要删除多余的site:db。

crsctl delete cluster site db

image.png

3.5 配置ASM磁盘与site关联

这是一个我认为的可选操作

首先需要关闭数据库:

su - oracle
srvctl stop database -db racdb

image.png

然后调整ASM磁盘:

su - grid
sqlplus / as sysasm
select a.group_number,a.name gname,b.name dname from v$asm_diskgroup a,v$asm_disk b where a.group_number=b.group_number and a.name='DATA';

image.png
所有节点执行:

alter diskgroup data dismount;

一个节点执行:

alter diskgroup data mount restricted;
ALTER DISKGROUP DATA RENAME DISK 'DATA_0000' SITE chengdu;
ALTER DISKGROUP DATA RENAME DISK 'DATA_0001' SITE chengdu;
ALTER DISKGROUP DATA RENAME DISK 'DATA_0002' SITE chengdu;
ALTER DISKGROUP DATA RENAME DISK 'DATA_0003' SITE chengdu;
ALTER DISKGROUP DATA RENAME DISK 'DATA_0004' SITE chengdu;
ALTER DISKGROUP DATA RENAME DISK 'DATA_0005' SITE chengdu;
ALTER DISKGROUP DATA RENAME DISK 'DATA_0006' SITE chengdu;
ALTER DISKGROUP DATA RENAME DISK 'DATA_0007' SITE chengdu;
ALTER DISKGROUP DATA RENAME DISK 'DATA_0008' SITE chongqing;
ALTER DISKGROUP DATA RENAME DISK 'DATA_0009' SITE chongqing;
ALTER DISKGROUP DATA RENAME DISK 'DATA_0010' SITE chongqing;
ALTER DISKGROUP DATA RENAME DISK 'DATA_0011' SITE chongqing;
ALTER DISKGROUP DATA RENAME DISK 'DATA_0012' SITE chongqing;
ALTER DISKGROUP DATA RENAME DISK 'DATA_0013' SITE chongqing;
ALTER DISKGROUP DATA RENAME DISK 'DATA_0014' SITE chongqing;
ALTER DISKGROUP DATA RENAME DISK 'DATA_0015' SITE chongqing;

image.png

检查ASM磁盘:

select a.group_number,b.name dname,b.site_name from v$asm_diskgroup a,v$asm_disk b where a.group_number=b.group_number and a.name='DATA';

image.png

重新挂载磁盘:

alter diskgroup data dismount;
alter diskgroup data mount; --所有节点执行

启动数据库:

su -  oracle
srvctl start database -db racdb

image.png

3.6 检查集群

su - grid
crsctl get cluster extended
crsctl query cluster site -all

image.png

4 其他维护命令

4.1 添加site

crsctl add cluster site site_name [-guid site_guid]

eg.
crsctl add cluster site mianyang

4.2 修改site

crsctl modify cluster site site_name {–n node1, node2, ... | -s {rejuvenate | quarantine} | [-local]}

eg.
crsctl modify cluster site chengdu –n node1

image.png

总结

本期简单演示了在Oracle 23ai测试版RAC集群上转换成Extended Cluster的操作。
老规矩,知道写了些啥。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐