数据库
oracle数据库自启动和关闭脚本调用
数据库灾备恢复小结
DMS使用文档
Oracle12C安装文档_李光升
Centos配置yum源的操作步骤-李光升
CCS数据库突然卡顿问题解决-徐铭
Centos 7.9静默安装oracle 12cR2详细步骤
mysql5.7数据库sql语句数据类型隐式转换的反逻辑BUG
RDS MySQL临时文件导致实例磁盘空间满且出现“锁定中”状态
关于Mysql引擎Myisam和InnoDB的使用
MySQL查询语句中in和exists区别详解-知识点
Mysql 的存储过程中 WITH AS 的语法和使用
Mysql 性能调优-详解
oracle数据库DG搭建
SUSE linux 配置时钟同步服务NTP/Chrony
oracle数据库实例开启操作文档
oracle数据库实例关闭操作文档
oracle数据库DBS备份配置文档v2
ALiYun ECS CENTOS数据上传到OSS操作手册
Oracle - LOGMINER配置方法
oracle sysaux表空间爆满清理unified auditing数据
sysaux表空间爆满WRI$_ADV_OBJECTS占用严重
SAP权限对象
SYSAUX表空间WRI$\_ADV\_OBJECTS表过大清理V2
oracle:表访问方式
ORA性能诊断调优
数据字典(DICT)和性能事件类型(EVENT)
日志挖掘LogMiner
RMAN sql_id “0az7czjdw8z7j” 执行计划异常
Oracle11g Active Data Guard搭建、管理
ORACLE LOGMINER配置v2
oracle日志组调整
ECS linux服务器挂载nas磁盘失败
oracle数据库修改字符集
datapump数据泵导入导出
OA系统数据库ADG架构搭建
IPS数据库SQL执行异常:ORA-00600
oracle 12c 创建PDB
oracle数据库监听异常
lvm:阿里云磁盘扩容,lvm扩容
Redis基本操作
SAP S4 CLIENT COPY(800->400)
日常数据库操作
PGSQL操作
# ORA-00054: resource busy问题处理
OA数据库服务器故障分析报告
CCS数据库生产数据库(北京中心)覆盖到VER环境数据库(乌兰察布):使用nonpdb to pdb迁移方式
WINDOWS环境Django框架连接MySQL数据库配置
Django开发学习实战
什么是向量嵌入?
OA数据库服务器内次异常增长问题分析
基于AI的自动化服务器管理
AI技术发展趋势及其在农牧食品行业的创新应用
IPS数据库日志表数据归档&表分区
国产编程模型GLM-4.6海外爆火:性能媲美ClaudeSonnet,性价比优势显著
免费开源的零代码平台 / 无代码平台,敲敲云 v2.2.0 版本
数据库原理与应用
AI发展近况分析
ORACLE ADG环境下解除ADG关系并激活备库为独立数据库
麦肯锡重磅报告:关于未来的生存指南,当57%的工作被自动化,我们如何与AI结成利益共同体
【Oracle】Cursor(游标)
ORACLE数据库在曾经的备库(路径一致)进行不完全恢复
获取执行计划的6种方法
人工智能行业的发展已进入“系统竞争”时代
2026年AI与机器人发展趋势
事务未提交导致行锁等待问题处理
MongoDB日常操作命令
2026年人工智能前沿技术趋势与应用落地分析
Doris开发
本文档使用「觅思文档专业版」发布
-
+
首页
oracle数据库DG搭建
一、生产环境准备工作 1. 生产密码文件(已存在) [oracle@mux dbs]$ ls orapwmux -lh -rw-r----- 1 oracle oinstall 3.5K 11月 28 15:33 orapwmux [oracle@mux dbs]$ 2. 归档模式和强制归档 2.1 设置db_recovery_file_dest和db_recovery_file_dest_size参数 SQL> show parameter db_recovery_file_dest NAME TYPE ------------------------------------ --------------------------------- VALUE ------------------------------ db_recovery_file_dest string db_recovery_file_dest_size big integer 0 SQL> alter system set db_recovery_file_dest='/u01/apps/oracle/flash_recover_area' scope=spfile; 系统已更改。 SQL> alter system set db_recovery_file_dest_size=2g scope=spfile; 系统已更改。 2.2 开归档,设置强制归档 SQL> startup mount; ORACLE 例程已经启动。 Total System Global Area 771751936 bytes Fixed Size 8625464 bytes Variable Size 578814664 bytes Database Buffers 180355072 bytes Redo Buffers 3956736 bytes 数据库装载完毕。 SQL> alter database archivelog; 数据库已更改。 SQL> alter database force logging; 数据库已更改。 SQL> alter database open; 数据库已更改。 3. 生成standby logfile alter database add standby logfile group 4 ('/u01/apps/oracle/oradata/mux/std_redo04.log') size 50M; alter database add standby logfile group 5 ('/u01/apps/oracle/oradata/mux/std_redo05.log') size 50M; alter database add standby logfile group 6 ('/u01/apps/oracle/oradata/mux/std_redo06.log') size 50M; alter database add standby logfile group 7 ('/u01/apps/oracle/oradata/mux/std_redo07.log') size 50M; 二、容灾环境准备工作 1. 软件安装:使用VirtualBox复制方式搭建容灾环境 SQL> alter system set db_recovery_file_dest='/u01/apps/oracle/flash_recover_area' scope=spfile; 系统已更改。 SQL> alter system set db_recovery_file_dest_size=2g scope=spfile; 系统已更改。 SQL> shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount; ORACLE 例程已经启动。 Total System Global Area 771751936 bytes Fixed Size 8625464 bytes Variable Size 570426056 bytes Database Buffers 188743680 bytes Redo Buffers 3956736 bytes 数据库装载完毕。 SQL> alter database archivelog; 数据库已更改。 SQL> alter database force logging; 数据库已更改。 SQL> alter database open; 数据库已更改。 2. 配置监听文件: [oracle@mux admin]$ cat listener.ora SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = mux) (ORACLE_HOME = /u01/apps/oracle/product/12/db_1) ) ) LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = mux.standby)(PORT = 1521)) ) 3. 配置TNSNAMES文件 [oracle@mux admin]$ vim tnsnames.ora mux_pri= (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=mux.master)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=mux))) mux_dg= (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=mux.standby)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=mux))) 三、生产主库操作 1. 备份数据库:打开数据库到mount,执行脚本 [oracle@mux shell]$ cat backup.sh export BK_PATH=/u01/backups export ORACLE_HOME=/u01/apps/oracle/product/12/db_1 export ORACLE_SID=mux date > $BK_PATH/backup_${ORACLE_SID}.log $ORACLE_HOME/bin/rman target / log $BK_PATH/backup_${ORACLE_SID}.log append <<EOF run { allocate channel c1 type disk; backup as compressed backupset database format '${BK_PATH}/db_0_${ORACLE_SID}_%U' skip inaccessible; backup format '${BK_PATH}/$ORACLE_SID.control' current controlfile for standby; #standby database release channel c1; } EOF 2. 拷贝备份到容灾环境:spfile,controlfile,databasefile [oracle@mux backups]$ scp /u01/apps/oracle/flash_recover_area/MUX/autobackup/2022_12_01/o1_mf_s_1122313051_krjxgw29_.bkp oracle@10.2.9.106:/u01/backups oracle@10.2.9.106's password: o1_mf_s_1122313051_krjxgw29_.bkp 100% 10MB 10.2MB/s 00:00 [oracle@mux backups]$ scp /u01/backups/db_0_mux_021ea8pb_1_1 oracle@10.2.9.106:/u01/backups oracle@10.2.9.106's password: db_0_mux_021ea8pb_1_1 100% 337MB 25.9MB/s 00:13 [oracle@mux backups]$ 3. 本地设置tnsnames解析,将生产和容灾的解析都添加进去 [oracle@mux admin]$ cat tnsnames.ora mux_pri= (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=mux.master)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=mux))) mux_dg= (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=mux.standby)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=mux))) 4. 将密码文件,参数文件拷贝到目标主机$ORACLE_HOME/dbs目录下(容灾环境参数文件和密码文件备份) [oracle@mux dbs]$ scp orapwmux oracle@10.2.9.106: /u01/apps/oracle/product/12/db_1/dbs oracle@10.2.9.106's password: orapwmux 100% 3584 3.5KB/s 00:00 [oracle@mux dbs]$ scp initmux.ora oracle@10.2.9.106: /u01/apps/oracle/product/12/db_1/dbs oracle@10.2.9.106's password: initmux.ora 100% 9205 9.0KB/s 00:00 四、容灾从库恢复操作 1. 修改pfile并启动数据库到nomount状态,可以直接使用pfile生产spfile后启动 [oracle@mux dbs]$ sqlplus / as sysdba SQL*Plus: Release 12.2.0.1.0 Production on 星期四 12月 1 18:35:19 2022 Copyright (c) 1982, 2016, Oracle. All rights reserved. 已连接到空闲例程。 SQL> create spfile from pfile; File created. SQL> startup nomount; ORACLE instance started. Total System Global Area 771751936 bytes Fixed Size 8625464 bytes Variable Size 562037448 bytes Database Buffers 197132288 bytes Redo Buffers 3956736 bytes 2. 恢复控制文件 [oracle@mux dbs]$ rman target / 恢复管理器: Release 12.2.0.1.0 - Production on 星期四 12月 1 18:38:45 2022 Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved. 已连接到目标数据库: MUX (未装载) RMAN> restore controlfile from '/u01/backups/o1_mf_s_1122313051_krjxgw29_.bkp'; 从位于 01-12月-22 的 restore 开始 使用目标数据库控制文件替代恢复目录 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=35 设备类型=DISK 通道 ORA_DISK_1: 正在还原控制文件 通道 ORA_DISK_1: 还原完成, 用时: 00:00:01 输出文件名=/u01/apps/oracle/oradata/mux/control01.ctl 输出文件名=/u01/apps/oracle/oradata/mux/control02.ctl 在 01-12月-22 完成了 restore RMAN> 3. 启动数据库到mount状态,恢复数据文件 RMAN> catalog start with '/u01/backups'; 从位于 01-12月-22 的 implicit crosscheck backup 开始 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=41 设备类型=DISK 已交叉检验的 3 对象 在 01-12月-22 完成了 implicit crosscheck backup 从位于 01-12月-22 的 implicit crosscheck copy 开始 使用通道 ORA_DISK_1 在 01-12月-22 完成了 implicit crosscheck copy 搜索恢复区中的所有文件 正在编制文件目录... 目录编制完毕 已列入目录的文件的列表 ======================= 文件名: /u01/apps/oracle/flash_recover_area/MUX/archivelog/2022_11_30/o1_mf_1_4_krgwhhbx_.arc 文件名: /u01/apps/oracle/flash_recover_area/MUX/archivelog/2022_12_01/o1_mf_1_5_krjqrmph_.arc 文件名: /u01/apps/oracle/flash_recover_area/MUX/archivelog/2022_12_01/o1_mf_1_6_krk0wswz_.arc 搜索与样式 /u01/backups 匹配的所有文件 数据库未知文件的列表 ===================================== 文件名: /u01/backups/o1_mf_s_1122313051_krjxgw29_.bkp 是否确实要将上述文件列入目录 (输入 YES 或 NO)? yes 正在编制文件目录... 目录编制完毕 已列入目录的文件的列表 ======================= 文件名: /u01/backups/o1_mf_s_1122313051_krjxgw29_.bkp RMAN> restore database; 从位于 01-12月-22 的 restore 开始 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 正在开始还原数据文件备份集 通道 ORA_DISK_1: 正在指定从备份集还原的数据文件 通道 ORA_DISK_1: 将数据文件 00001 还原到 /u01/apps/oracle/oradata/mux/system01.dbf 通道 ORA_DISK_1: 将数据文件 00002 还原到 /u01/apps/oracle/oradata/mux/supply01.dbf 通道 ORA_DISK_1: 将数据文件 00003 还原到 /u01/apps/oracle/oradata/mux/sysaux01.dbf 通道 ORA_DISK_1: 将数据文件 00004 还原到 /u01/apps/oracle/oradata/mux/undotbs01.dbf 通道 ORA_DISK_1: 将数据文件 00005 还原到 /u01/apps/oracle/oradata/mux/sale01.dbf 通道 ORA_DISK_1: 将数据文件 00007 还原到 /u01/apps/oracle/oradata/mux/users01.dbf 通道 ORA_DISK_1: 将数据文件 00008 还原到 /u01/apps/oracle/oradata/mux/storage01.dbf 通道 ORA_DISK_1: 将数据文件 00009 还原到 /u01/apps/oracle/oradata/mux/finance01.dbf 通道 ORA_DISK_1: 将数据文件 00010 还原到 /u01/apps/oracle/oradata/mux/hr01.dbf 通道 ORA_DISK_1: 正在读取备份片段 /u01/backups/db_0_mux_021ea8pb_1_1 通道 ORA_DISK_1: 片段句柄 = /u01/backups/db_0_mux_021ea8pb_1_1 标记 = TAG20221201T173643 通道 ORA_DISK_1: 已还原备份片段 1 通道 ORA_DISK_1: 还原完成, 用时: 00:01:36 在 01-12月-22 完成了 restore RMAN> 五、生产启动日志传输进程 1. 设置log_archive_dest_n参数,向从库传输日志 alter system set log_archive_dest_2='service=mux_dg lgwr async noaffirm'; select dest_name,error,status,process from v$archive_dest where rownum<3; 2. 设置日志删除策略 [oracle@mux backups]$ rman target/ 恢复管理器: Release 12.2.0.1.0 - Production on 星期四 12月 1 19:23:29 2022 Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved. 已连接到目标数据库: MUX (DBID=1225114744, 未打开) RMAN> configure archivelog deletion policy to shipped to all standby; 使用目标数据库控制文件替代恢复目录 新的 RMAN 配置参数: CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO ALL STANDBY; 已成功存储新的 RMAN 配置参数 RMAN> 六、容灾启动日志应用 1. Active standby(可选):alter database open read only; 2. 启动日志应用,观察日志正常应用 Alter database recover managed standby database parallel 1 disconnect from session; 3. 设置fal参数 SQL> alter system set fal_server='mux_pri'; 系统已更改。 SQL> alter system set fal_server='mux_dg'; 系统已更改。 4. 设置归档日志删除策略 [oracle@mux backups]$ rman target / 恢复管理器: Release 12.2.0.1.0 - Production on 星期四 12月 1 21:06:54 2022 Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved. 已连接到目标数据库: MUX (DBID=1225114744) RMAN> configure archivelog deletion policy to applied on standby; 使用目标数据库控制文件替代恢复目录 旧的 RMAN 配置参数: CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO ALL STANDBY; 新的 RMAN 配置参数: CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY; 已成功存储新的 RMAN 配置参数 RMAN> 七、重启生产&容灾 重启完成后(容灾mount),执行第五、第六步骤。
徐铭
2023年1月3日 19:29
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期