adg 的tempfile 和 offline datafile 最近做adg项目的时候主要到几个问题,主备库的tempfile 是否一致以及备库 datafile 是否online不影响日志的传输和应用(其实想想原理也能理解),现在就相关问题测试如下: 参考的相关文档: Temporary Datafile created in Primary is missing in the Standby Database (Doc ID 834174.1) Data Guard Physical Standby - Managing temporary tablespace tempfiles (Doc ID 1514588.1) 测试有两个方向: 1 主库添加temp file对备库的影响 2 备库的数据文件offline 对同步的影响 环境准备: 主库情况: SQL> select name from v$tempfile; NAME -------------------------------------------------------------------------------- /oradata/test/temp01.dbf SQL> select open_mode,database_role from v$database; OPEN_MODE DATABASE_ROLE -------------------- ---------------- READ WRITE PRIMARY 备库情况: SQL> select open_mode,database_role from v$database; OPEN_MODE DATABASE_ROLE -------------------- ---------------- READ ONLY WITH APPLY PHYSICAL STANDBY SQL> select name from v$tempfile; NAME ------------- /oradata/test/temp01.dbf select name,value,unit,time_computed from v$dataguard_stats where name in ('transport lag','apply lag'); NAME VALUE UNIT TIME_COMPUTED ------------- -------------------- ------------------------------ ------------------------------ transport lag +00 00:00:00 day(2) to second(0) interval 05/22/2024 15:11:51 apply lag +00 00:00:00 day(2) to second(0) interval 05/22/2024 15:11:51 然后我们主库添加temp file 再次查看备库情况和延迟: alter tablespace temp add tempfile '/oradata/test/temp02.dbf' size 5M autoextend on; 主库情况: SQL> select name from v$tempfile; NAME -------------------------------------------------------------------------------- /oradata/test/temp01.dbf /oradata/test/temp02.dbf 备库情况: SQL> col name format a80 SQL> select name from v$tempfile; NAME -------------------------------------------------------------------------------- /oradata/test/temp01.dbf 备库添加临时文件: SQL> alter tablespace temp add tempfile '/oradata/test/temp02.dbf' size 5M autoextend on; Tablespace altered. SQL> select name from v$tempfile; NAME -------------------------------------------------------------------------------- /oradata/test/temp01.dbf /oradata/test/temp02.dbf 结论: 1 主备库的临时文件对主备库同步关系不大 2 正常rman恢复的时候临时文件是不恢复的,只有在数据库open的时候会在相应的目录下创建临时文件,我们需要保证临时文件所在的目录存在并且数据库 有读写权限。不然得话就得重命名select 'alter database rename file '''||name||''''||' to '''||'/home/'''||';' from v$tempfile; 3 正常同步的主备库主库创建临时文件备库是不会创建的,切换的时候要注意是否需要在切换后添加临时文件 4 备库是可以独立添加临时文件的,如果备库跑报表业务用到TEMP表空间可以添加相应文件。 测试2: 备库的数据文件offline 不会影响主备同步,查延迟是没有的。 主库情况: SQL> select open_mode,database_role from v$database; OPEN_MODE DATABASE_ROLE -------------------- ---------------- READ WRITE PRIMARY SQL> select name,status from v$datafile; NAME STATUS -------------------------------------------------------------------------------- ------- /oradata/test/system01.dbf SYSTEM /oradata/test/sysaux01.dbf ONLINE /oradata/test/undotbs01.dbf ONLINE /oradata/test/users01.dbf ONLINE /oradata/test/example01.dbf ONLINE 备库情况: SQL> select open_mode,database_role from v$database; OPEN_MODE DATABASE_ROLE -------------------- ---------------- READ ONLY WITH APPLY PHYSICAL STANDBY SQL> select name,value,unit,time_computed from v$dataguard_stats where name in ('transport lag','apply lag'); NAME VALUE UNIT TIME_COMPUTED ------------- -------------------- ------------------------------ ------------------------------ transport lag +00 00:00:00 day(2) to second(0) interval 05/22/2024 16:07:19 apply lag +00 00:00:00 day(2) to second(0) interval 05/22/2024 16:07:19 SQL> select name,status from v$datafile; NAME STATUS -------------------------------------------------------------------------------- ------- /oradata/test/system01.dbf SYSTEM /oradata/test/sysaux01.dbf ONLINE /oradata/test/undotbs01.dbf ONLINE /oradata/test/users01.dbf ONLINE /oradata/test/example01.dbf ONLINE alter database datafile '/oradata/test/example01.dbf' offline drop; offline 数据文件 SQL> alter database datafile '/oradata/test/example01.dbf' offline drop; alter database datafile '/oradata/test/example01.dbf' offline drop * ERROR at line 1: ORA-01156: recovery or flashback in progress may need access to files SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; Database altered. SQL> alter database datafile '/oradata/test/example01.dbf' offline drop; Database altered. SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT; Database altered. SQL> select name,value,unit,time_computed from v$dataguard_stats where name in ('transport lag','apply lag'); NAME VALUE UNIT TIME_COMPUTED ------------- -------------------- ------------------------------ ------------------------------ transport lag +00 00:00:00 day(2) to second(0) interval 05/22/2024 16:12:31 apply lag +00 00:00:00 day(2) to second(0) interval 05/22/2024 16:12:31 SQL> select to_char(current_scn) from v$database; TO_CHAR(CURRENT_SCN) ---------------------------------------- 2158450 SQL> select to_char(current_scn) from v$database; TO_CHAR(CURRENT_SCN) ---------------------------------------- 2158451 SQL> select to_char(current_scn) from v$database; TO_CHAR(CURRENT_SCN) ---------------------------------------- 2158451 SQL> select to_char(current_scn) from v$database; TO_CHAR(CURRENT_SCN) ---------------------------------------- 2158452 数据文件状态 NAME STATUS -------------------------------------------------------------------------------- ------- /oradata/test/system01.dbf SYSTEM /oradata/test/sysaux01.dbf ONLINE /oradata/test/undotbs01.dbf ONLINE /oradata/test/users01.dbf ONLINE /oradata/test/example01.dbf RECOVER SQL> select name,value,unit,time_computed from v$dataguard_stats where name in ('transport lag','apply lag'); NAME VALUE UNIT TIME_COMPUTED ------------- -------------------- ------------------------------ ------------------------------ transport lag +00 00:00:00 day(2) to second(0) interval 05/22/2024 16:12:46 apply lag +00 00:00:00 day(2) to second(0) interval 05/22/2024 16:12:46 可以发现数据库还是没有延迟 恢复: 备份数据文件5传输到备库 备库启动到mount状态恢复数据文件5 RMAN> restore datafile 5; Starting restore at 22-MAY-24 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile backup set restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set channel ORA_DISK_1: restoring datafile 00005 to /oradata/test/example01.dbf channel ORA_DISK_1: reading from backup piece /home/oracle/5.dbk channel ORA_DISK_1: piece handle=/home/oracle/5.dbk tag=TAG20240522T161821 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:07 Finished restore at 22-MAY-24 SQL> alter database datafile 5 online; SQL> alter database open; NAME STATUS -------------------------------------------------------------------------------- ------- /oradata/test/system01.dbf SYSTEM /oradata/test/sysaux01.dbf ONLINE /oradata/test/undotbs01.dbf ONLINE /oradata/test/users01.dbf ONLINE /oradata/test/example01.dbf ONLINE 12之后可以选择下面的方式恢复 restore datafile 73 FROM SERVICE ykxtoaadg; 可以通过restore .. from service指定的对象类型: database datafile tablespace 控制文件 SPFILE
adg 的tempfile 和 offline datafile
来源:这里教程网
时间:2026-03-03 20:03:33
作者:
编辑推荐:
- adg 的tempfile 和 offline datafile03-03
- 在11g到19c的迁移过程中发现一个sql语法方面的问题03-03
- oracle主机虚拟内存不足导致实例宕机03-03
- Oracle 23ai FREE安装初体验03-03
- REHL7.6静默安装Oracle19C,泰裤了!03-03
- 数据库管理-第195期 Oracle & RDMA(20240527)03-03
- oracle 区分32位还是64位03-03
- 限制RMAN备份速度03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- oracle主机虚拟内存不足导致实例宕机
oracle主机虚拟内存不足导致实例宕机
26-03-03 - Oracle 23ai FREE安装初体验
Oracle 23ai FREE安装初体验
26-03-03 - REHL7.6静默安装Oracle19C,泰裤了!
REHL7.6静默安装Oracle19C,泰裤了!
26-03-03 - 数据库管理-第195期 Oracle & RDMA(20240527)
数据库管理-第195期 Oracle & RDMA(20240527)
26-03-03 - 数据库管理-第187期 23ai:怎么用SQL创建图(20240510)
数据库管理-第187期 23ai:怎么用SQL创建图(20240510)
26-03-03 - 数据库管理-第186期 23ai:啥?我还能干掉Neo4j?(20240509)
- rac asm新增磁盘报0RA-15333或ORA-15075
rac asm新增磁盘报0RA-15333或ORA-15075
26-03-03 - Oracle RAC的排障案例一则
Oracle RAC的排障案例一则
26-03-03 - 测试开发新技能:Oracle到高斯数据库的无缝迁移
测试开发新技能:Oracle到高斯数据库的无缝迁移
26-03-03 - 因Oracle 23ai,甲骨文中国罕见的开了个会
因Oracle 23ai,甲骨文中国罕见的开了个会
26-03-03
