Oracle容灾-Oracle26ai RAC ADG集群安装配置 FOR WINDOWS2022详细过程
1. 硬件环境要求
在配置Oracle26ai RAC ADG之前,必须确保主库和备库的硬件环境满足以下要求。更多学习教程www.fgedu.net.cn
| 硬件组件 | 最低要求 | 生产环境建议 |
|---|---|---|
| CPU | 4核 | 8核以上 |
| 内存 | 16GB | 32GB以上 |
| 磁盘空间 | 500GB | 1TB以上(根据数据量调整) |
| 网络 | 千兆网卡 | 万兆网卡 |
2. 操作系统准备
本文以Windows Server 2022 Standard为例,主库和备库均使用相同操作系统版本。
C:\> systeminfo | findstr /B /C:”OS Name” /C:”OS Version”
OS Name: Microsoft Windows Server 2022 Standard
OS Version: 10.0.20348 N/A Build 20348
# 检查系统内存
C:\> wmic memorychip get capacity
Capacity
17179869184
17179869184
# 检查磁盘空间
C:\> wmic logicaldisk get size,freespace,caption
Caption FreeSpace Size
C: 120000000000 200000000000
D: 500000000000 1000000000000
# 关闭防火墙(或开放必要端口)
C:\> netsh advfirewall set allprofiles state off
# 关闭Windows Defender
C:\> Set-MpPreference -DisableRealtimeMonitoring $true
3. 主库RAC集群安装配置
首先在主库服务器上安装Oracle26ai RAC集群。
3.1 安装Grid Infrastructure
# 2. 运行setup.exe启动安装向导
# 3. 选择”安装和配置Grid Infrastructure for a Cluster”
# 4. 选择”高级安装”
# 5. 选择”企业版”
# 6. 输入集群名称:fgedudb-cluster
# 7. 输入SCAN名称:fgedudb-scan,端口:1521
# 8. 添加节点:fgedudb01, fgedudb02
# 9. 配置网络:
– 公共网络:192.168.1.0/24
– 私有网络:172.16.1.0/24
# 10. 存储选项:选择”ASM”
# 11. 创建ASM磁盘组:
– 磁盘组名:dgfgsystem
– 冗余级别:外部冗余
– 选择磁盘:\Device\Harddisk1\Partition1
# 12. 设置ASM密码
# 13. 检查先决条件,点击”下一步”
# 14. 点击”完成”开始安装
3.2 安装Oracle数据库软件
# 2. 运行setup.exe启动安装向导
# 3. 选择”安装数据库软件”
# 4. 选择”企业版”
# 5. 设置Oracle基目录:D:\oracle\app\oracle
# 6. 选择集群节点:fgedudb01, fgedudb02
# 7. 检查先决条件,点击”下一步”
# 8. 点击”完成”开始安装
3.3 创建RAC数据库
# 2. 选择”创建数据库”
# 3. 选择”高级配置”
# 4. 选择”Oracle RAC数据库”
# 5. 输入全局数据库名:fgedudb
# 6. 选择存储选项:”使用ASM”
# 7. 选择ASM磁盘组:dgfgsystem
# 8. 设置数据库文件位置:+dgfgsystem
# 9. 选择”使用相同的密码对所有账户”
# 10. 检查先决条件,点击”下一步”
# 11. 点击”完成”开始创建数据库
3.4 主库参数配置
安装完成后,需要配置主库的参数以支持ADG。
C:\> sqlplus / as sysdba
— 启用归档模式
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
— 配置强制日志记录
SQL> ALTER DATABASE FORCE LOGGING;
— 设置归档路径
SQL> ALTER SYSTEM SET log_archive_dest_1=’LOCATION=+dgfgsystem VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=fgedudb’ SCOPE=SPFILE;
— 设置主库唯一名称
SQL> ALTER SYSTEM SET db_unique_name=’fgedudb’ SCOPE=SPFILE;
— 配置ADG相关参数
SQL> ALTER SYSTEM SET log_archive_config=’DG_CONFIG=(fgedudb,fgedudb_stby)’ SCOPE=SPFILE;
SQL> ALTER SYSTEM SET log_archive_dest_2=’SERVICE=fgedudb_stby ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=fgedudb_stby’ SCOPE=SPFILE;
SQL> ALTER SYSTEM SET log_archive_dest_state_2=ENABLE SCOPE=SPFILE;
SQL> ALTER SYSTEM SET remote_login_passwordfile=EXCLUSIVE SCOPE=SPFILE;
SQL> ALTER SYSTEM SET standby_file_management=AUTO SCOPE=SPFILE;
SQL> ALTER SYSTEM SET fal_server=fgedudb_stby SCOPE=SPFILE;
SQL> ALTER SYSTEM SET fal_client=fgedudb SCOPE=SPFILE;
— 重启数据库使参数生效
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
3.5 创建密码文件
C:\> orapwd file=D:\oracle\app\oracle\product\26ai\db_1\database\PWDfgedudb.ora password=Oracle123 entries=10
3.6 配置监听器
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = fgedudb01)(PORT = 1521))
)
)
# 启动监听器
C:\> lsnrctl start
# 检查监听器状态
C:\> lsnrctl status
4. 备库RAC集群安装配置
在备库服务器上安装Oracle26ai RAC集群。
4.1 安装Grid Infrastructure
# 2. 运行setup.exe启动安装向导
# 3. 选择”安装和配置Grid Infrastructure for a Cluster”
# 4. 选择”高级安装”
# 5. 选择”企业版”
# 6. 输入集群名称:fgedudb-stby-cluster
# 7. 输入SCAN名称:fgedudb-stby-scan,端口:1521
# 8. 添加节点:fgedudb03, fgedudb04
# 9. 配置网络:
– 公共网络:192.168.1.0/24
– 私有网络:172.16.1.0/24
# 10. 存储选项:选择”ASM”
# 11. 创建ASM磁盘组:
– 磁盘组名:dgfgsystem
– 冗余级别:外部冗余
– 选择磁盘:\Device\Harddisk1\Partition1
# 12. 设置ASM密码
# 13. 检查先决条件,点击”下一步”
# 14. 点击”完成”开始安装
4.2 安装Oracle数据库软件
# 2. 运行setup.exe启动安装向导
# 3. 选择”安装数据库软件”
# 4. 选择”企业版”
# 5. 设置Oracle基目录:D:\oracle\app\oracle
# 6. 选择集群节点:fgedudb03, fgedudb04
# 7. 检查先决条件,点击”下一步”
# 8. 点击”完成”开始安装
4.3 复制密码文件
# 使用Windows资源管理器或命令行复制
C:\> copy \\fgedudb01\d$\oracle\app\oracle\product\26ai\db_1\database\PWDfgedudb.ora D:\oracle\app\oracle\product\26ai\db_1\database\PWDfgedudb_stby.ora
4.4 配置监听器和tnsnames.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = fgedudb03)(PORT = 1521))
)
)
# 编辑tnsnames.ora文件
FGEDUDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = fgedudb-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = fgedudb)
)
)
FGEDUDB_STBY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = fgedudb-stby-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = fgedudb_stby)
)
)
# 启动监听器
C:\> lsnrctl start
5. ADG配置
现在开始配置ADG,包括备库初始化和主备库同步。
5.1 主库生成备库初始化参数文件
C:\> sqlplus / as sysdba
— 生成备库初始化参数文件
SQL> CREATE PFILE=’D:\initfgedudb_stby.ora’ FROM SPFILE;
5.2 修改备库初始化参数文件
*.db_unique_name=’fgedudb_stby’
*.fal_server=’fgedudb’
*.fal_client=’fgedudb_stby’
*.log_archive_dest_1=’LOCATION=+dgfgsystem VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=fgedudb_stby’
*.log_archive_dest_2=’SERVICE=fgedudb ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=fgedudb’
# 将修改后的参数文件复制到备库
C:\> copy D:\initfgedudb_stby.ora \\fgedudb03\d$\oracle\app\oracle\product\26ai\db_1\database\
5.3 主库执行备份
C:\> sqlplus / as sysdba
— 执行全库备份
SQL> ALTER DATABASE BEGIN BACKUP;
— 复制数据文件到备库(使用Windows资源管理器或robocopy)
C:\> robocopy +dgfgsystem \\fgedudb03\d$\oracle\app\oracle\oradata\fgedudb /E
SQL> ALTER DATABASE END BACKUP;
— 生成当前控制文件用于备库
SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS ‘D:\control01.ctl’;
— 复制控制文件到备库
C:\> copy D:\control01.ctl \\fgedudb03\d$\oracle\app\oracle\oradata\fgedudb\
— 复制当前归档日志到备库
C:\> robocopy D:\oracle\app\oracle\archive \\fgedudb03\d$\oracle\app\oracle\archive /E
5.4 备库启动到Mount状态
C:\> sqlplus / as sysdba
— 使用备库初始化参数文件启动到nomount状态
SQL> STARTUP NOMOUNT PFILE=’D:\oracle\app\oracle\product\26ai\db_1\database\initfgedudb_stby.ora’;
— 加载备库控制文件
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;
5.5 配置备库自动应用日志
C:\> sqlplus / as sysdba
— 启动MRP进程
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
6. ADG状态验证
现在验证ADG配置是否成功,检查主备库状态。学习交流加群风哥微信: itpux-com
6.1 主库状态检查
C:\> sqlplus / as sysdba
— 检查主库角色
SQL> SELECT database_role FROM v$database;
DATABASE_ROLE
—————-
PRIMARY
— 检查归档日志状态
SQL> SELECT group#, status, archived FROM v$log;
GROUP# STATUS ARCHIVED
———- —————- ——–
1 CURRENT NO
2 INACTIVE YES
3 INACTIVE YES
— 检查归档目标状态
SQL> SELECT dest_id, status, error FROM v$archive_dest_status WHERE dest_id IN (1,2);
DEST_ID STATUS ERROR
———- ——— ——————–
1 VALID
2 VALID
6.2 备库状态检查
C:\> sqlplus / as sysdba
— 检查备库角色
SQL> SELECT database_role FROM v$database;
DATABASE_ROLE
—————-
PHYSICAL STANDBY
— 检查MRP进程状态
SQL> SELECT process, status FROM v$managed_standby;
PROCESS STATUS
——— ————
ARCH CONNECTED
ARCH CONNECTED
ARCH CONNECTED
ARCH CONNECTED
RFS IDLE
RFS IDLE
RFS IDLE
MRP0 APPLYING_LOG
— 检查备库同步状态
SQL> SELECT sequence#, applied FROM v$archived_log ORDER BY sequence# DESC;
SEQUENCE# APPLIED
———- ———
10 YES
9 YES
8 YES
7 YES
6 YES
7. 故障切换测试
进行故障切换测试,验证ADG在主库故障时的可用性。
7.1 主库故障模拟
C:\> sqlplus / as sysdba
— 模拟主库故障(强制关闭)
SQL> SHUTDOWN ABORT;
7.2 备库切换为主库
C:\> sqlplus / as sysdba
— 停止日志应用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
— 执行故障切换
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
— 打开数据库
SQL> ALTER DATABASE OPEN;
— 验证新主库状态
SQL> SELECT database_role FROM v$database;
DATABASE_ROLE
—————-
PRIMARY
7.3 原主库转换为备库
C:\> sqlplus / as sysdba
SQL> STARTUP MOUNT;
— 转换为备库
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
— 启动日志应用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
8. 生产环境建议
- 定期备份主库和备库,确保数据安全
- 监控ADG同步状态,设置告警机制
- 定期进行故障切换测试,确保ADG在紧急情况下能够正常工作
- 配置网络带宽足够的网络连接,确保日志传输顺畅
- 使用Oracle Data Guard Broker管理ADG,简化管理操作
- 定期更新Oracle补丁,确保安全性和稳定性
学习交流加群风哥QQ113257174
更多学习教程公众号风哥教程itpux_com
from:www.itpux.com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
