腾讯云搭建oracle11G rac集群环境笔记
云环境准备
博客参考:
https://cloud.tencent.com/developer/article/2192961
需要申请私网ip和集群ip,和共享云硬盘。
数据库安装包下载
链接: https://pan.baidu.com/s/1EQuUHNBMn2Kd-3CS6CYpoQ
提取码: xtgp
网络配置
127.0.0.1 localhost.localdomain localhost 10.0.0.2 vmrac01 10.0.0.4 vmrac02 10.0.0.3 rac1-vip 10.0.0.5 rac2-vip 10.0.1.4 rac1-priv 10.0.1.2 rac2-priv 10.0.0.14 rac-scan 10.0.0.14 rac-scan.localdomain
磁盘规划
200G 磁盘规划ocr和数据(较大浪费,客户要求大一点,就设置默认了),2TB,用于存储数据,单盘即可,云环境底层有备份
[grid@vmrac01 ~]$ sqlplus / as sysasm SQL*Plus: Release 11.2.0.4.0 Production on Tue Dec 23 15:15:49 2025 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Real Application Clusters and Automatic Storage Management options SQL> set lines 200 SQL> SELECT name, state, type, total_mb, free_mb, usable_file_mb FROM v$asm_diskgroup; NAME STATE TYPE TOTAL_MB FREE_MB USABLE_FILE_MB ------------------------------ ----------- ------ ---------- ---------- -------------- DATA2 MOUNTED EXTERN 2097152 2075328 2075328 DATA MOUNTED EXTERN 204800 204403 204403 SQL> column path format a30
SQL> SELECT name, path, header_status FROM v$asm_disk; NAME PATH HEADER_STATU ------------------------------ ------------------------------ ------------ DATA_0000 /dev/raw/raw1 MEMBER DATA2_0000 /dev/raw/raw2 MEMBER SQL>
安装文档
参考我的另一篇博客
https://www.cnblogs.com/wenxiao1-2-3-4/p/13306296.html
查看集群资源
[grid@vmrac01 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE vmrac01
ONLINE ONLINE vmrac02
ora.DATA2.dg
ONLINE ONLINE vmrac01
ONLINE ONLINE vmrac02
ora.LISTENER.lsnr
ONLINE ONLINE vmrac01
ONLINE ONLINE vmrac02
ora.asm
ONLINE ONLINE vmrac01 Started
ONLINE ONLINE vmrac02 Started
ora.gsd
OFFLINE OFFLINE vmrac01
OFFLINE OFFLINE vmrac02
ora.net1.network
ONLINE ONLINE vmrac01
ONLINE ONLINE vmrac02
ora.ons
ONLINE ONLINE vmrac01
ONLINE ONLINE vmrac02
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE vmrac01
ora.cvu
1 ONLINE ONLINE vmrac02
ora.oc4j
1 ONLINE ONLINE vmrac02
ora.orcl.db
1 OFFLINE OFFLINE Instance Shutdown
2 ONLINE ONLINE vmrac01 Open
ora.scan1.vip
1 ONLINE ONLINE vmrac01
ora.vmrac01.vip
1 ONLINE ONLINE vmrac01
ora.vmrac02.vip
1 ONLINE ONLINE vmrac02
[grid@vmrac01 ~]$
查看数据库实例
[oracle@vmrac01 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Tue Dec 23 15:11:21 2025 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> SQL> SQL> column host_name format a10 SQL> select host_name ,instance_name,status,database_status from gv$instance; HOST_NAME INSTANCE_NAME STATUS DATABASE_STATUS ---------- ---------------- ------------ ----------------- vmrac01 orcl1 OPEN ACTIVE vmrac02 orcl2 OPEN ACTIVE SQL>
srvctl管理查看数据库
[grid@vmrac01 ~]$ srvctl status instance -d orcl -i orcl1,orcl2 Instance orcl1 is running on node vmrac01 Instance orcl2 is not running on node vmrac02 [grid@vmrac01 ~]$ srvctl status asm -a ASM is running on vmrac02,vmrac01 ASM is enabled. [grid@vmrac01 ~]$ srvctl status database -d orcl Instance orcl1 is running on node vmrac01 Instance orcl2 is not running on node vmrac02 [grid@vmrac01 ~]$ srvctl status diskgroup -g DATA Disk Group DATA is running on vmrac02,vmrac01 [grid@vmrac01 ~]$ srvctl status diskgroup -g DATA2 Disk Group DATA2 is running on vmrac02,vmrac01 [grid@vmrac01 ~]$ srvctl status scan_listener -i 1 -v SCAN Listener LISTENER_SCAN1 is enabled SCAN listener LISTENER_SCAN1 is running on node vmrac01 [grid@vmrac01 ~]$
集群169网段无法联通的问题
由于云环境,网络169不通,会导致两个节点无法同时启动,根本原因为169段ip无法通信导致
asm 和oracle实例两个无法同时启动的问题
asm实例 修改 Cluster Interconnect 配置
[grid@vmrac01 ~]$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.4.0 Production on Tue Dec 23 14:58:12 2025
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
SQL> desc gv$cluster_interconnects
Name Null? Type
----------------------------------------- -------- ----------------------------
INST_ID NUMBER
NAME VARCHAR2(15)
IP_ADDRESS VARCHAR2(16)
IS_PUBLIC VARCHAR2(3)
SOURCE VARCHAR2(31)
SQL> select * from gv$cluster_interconnects;
INST_ID NAME IP_ADDRESS IS_ SOURCE
---------- --------------- ---------------- --- -------------------------------
1 eth1 10.0.1.4 NO cluster_interconnects parameter
2 eth1 10.0.1.2 NO cluster_interconnects parameter
SQL>
如何有169之类的ip,修改成心跳ip即可,重新启动asm实例,不再报错
oracle实例 修改数据库 Cluster Interconnect 配置
-- 查看当前 cluster interconnects SHOW PARAMETER cluster_interconnects; -- 修改为新的 IP ALTER SYSTEM SET cluster_interconnects='10.0.1.4' SID='orcl1'; ALTER SYSTEM SET cluster_interconnects='10.0.1.2' SID='orcl2';
如何有169之类的ip,修改成心跳ip即可,重新启动数据库实例,不再报错
客户端验无法使用公网IP链接oracle
[oracle@vmrac01 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Tue Dec 23 14:48:01 2025 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> SQL> SQL> show parameter local_listener; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ local_listener string (ADDRESS=(PROTOCOL=TCP)(HOST=10.0.0.2)(PORT=1521)) SQL> show parameter remote_listener; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ remote_listener string rac-scan:1521 SQL>
执行sql,改成你的公网ip即可
ALTER SYSTEM SET local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=你的公网ip)(PORT=1521))' SID='orcl1' SCOPE=BOTH; ALTER SYSTEM SET local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=你的公网ip)(PORT=1521))' SID='orcl2' SCOPE=BOTH;
查看监听配置
[grid@vmrac01 ~]$ srvctl config scan_listener SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521 [grid@vmrac01 ~]$ srvctl status scan_listener SCAN Listener LISTENER_SCAN1 is enabled SCAN listener LISTENER_SCAN1 is running on node vmrac01 [grid@vmrac01 ~]$ srvctl config listener Name: LISTENER Network: 1, Owner: grid Home: <CRS home> End points: TCP:1521 [grid@vmrac01 ~]$ srvctl status listener Listener LISTENER is enabled Listener LISTENER is running on node(s): vmrac02,vmrac01 [grid@vmrac01 ~]$ lsnrctl status LISTENER LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 23-DEC-2025 14:40:07 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production Start Date 23-DEC-2025 11:12:08 Uptime 0 days 3 hr. 27 min. 59 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/11.2.0/grid/network/admin/listener.ora Listener Log File /u01/app/grid/diag/tnslsnr/vmrac01/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.0.0.2)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.0.0.3)(PORT=1521))) Services Summary... Service "+ASM" has 1 instance(s). Instance "+ASM1", status READY, has 1 handler(s) for this service... The command completed successfully [grid@vmrac01 ~]$ lsnrctl status LISTENER_SCAN1 LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 23-DEC-2025 14:40:12 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1))) STATUS of the LISTENER ------------------------ Alias LISTENER_SCAN1 Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production Start Date 23-DEC-2025 11:10:26 Uptime 0 days 3 hr. 29 min. 46 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/11.2.0/grid/network/admin/listener.ora Listener Log File /u01/app/grid/diag/tnslsnr/vmrac01/listener_scan1/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.0.0.14)(PORT=1521))) Services Summary... Service "orcl" has 2 instance(s). Instance "orcl1", status READY, has 2 handler(s) for this service... Instance "orcl2", status READY, has 1 handler(s) for this service... Service "orclXDB" has 2 instance(s). Instance "orcl1", status READY, has 1 handler(s) for this service... Instance "orcl2", status READY, has 1 handler(s) for this service... The command completed successfully [grid@vmrac01 ~]$
SQL 查看 Listener 参数
-- 查看 Listener 配置参数 show parameter listener;
[oracle@vmrac01 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Tue Dec 23 14:48:01 2025 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> SQL> SQL> show parameter local_listener; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ local_listener string (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.0.2)(PORT=1521)) SQL> show parameter remote_listener; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ remote_listener string rac-scan:1521 SQL>
删除监听 Listener
删除本地 Listener 配置
srvctl remove listener -l <listener_name>
删除 SCAN Listener 配置
srvctl remove scan_listener -l <scan_listener_name>
重新创建 Listener
srvctl add listener -l <listener_name> -p <port> -n <节点1,节点2,...>
创建 SCAN Listener
srvctl add scan_listener -l <scan_listener_name>
监听配置文件如下:
LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))) # line added by Agent LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))) # line added by Agent ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON # line added by Agent

浙公网安备 33010602011771号