You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否将单个表空间排除DataGuard并设置为NOLOGGING?

Oracle DataGuard 单表空间排除相关问题解答

问题1:能否将单个表空间排除在DataGuard之外?

答案:可以

从Oracle 12c版本开始,官方提供了直接的命令来实现这个需求:

ALTER DATABASE EXCLUDE TABLESPACE your_tablespace_name;

执行这个命令后,主库中该表空间的后续redo日志不会被发送到备库,备库上对应的表空间会被自动置为离线状态。如果是12c之前的旧版本,可以通过传输表空间的方式间接实现:先把目标表空间置为只读,传输到其他存储后从主库中移除,备库就不会再同步这个表空间的内容了。

问题2:在同一数据库中,能否将单个表空间设置为NOLOGGING并排除在DataGuard之外?

答案:完全可以

这个方案刚好匹配你想要的场景——把指定schema的对象隔离到单个表空间,既不生成大量redo,又不纳入DataGuard管理。具体操作步骤如下:

  1. 创建或修改目标表空间为NOLOGGING模式(这样该表空间内的大部分操作不会生成redo,减少日志量):
-- 创建时指定NOLOGGING
CREATE TABLESPACE your_ts_name DATAFILE '/path/to/datafile.dbf' SIZE 100M NOLOGGING;
-- 修改现有表空间为NOLOGGING
ALTER TABLESPACE your_ts_name NOLOGGING;
  1. 将该表空间排除在DataGuard同步范围之外:
ALTER DATABASE EXCLUDE TABLESPACE your_ts_name;

需要额外注意两点:

  • 仅设置NOLOGGING的话,备库虽然不会同步无redo的操作,但备库上的对应表空间会处于不一致状态;搭配排除命令后,备库的该表空间会直接离线,彻底和主库的该表空间解耦。
  • 如果后续想要恢复同步,只需要执行ALTER DATABASE INCLUDE TABLESPACE your_ts_name;,再把主库的表空间备份恢复到备库即可。

内容的提问来源于stack exchange,提问作者SqlWorldWide

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:45:00