我可以使用 Data Guard 在主模式和暂存模式之间仅同步数据(而不是数据库结构)吗
Can I use Data Guard to sync only data (not DB structure) between a primary and a staging schema
我的版本需要应用程序服务器停机长达 4 小时,以防止用户在执行各种脚本(包括对 table 结构的更改)时向 Oracle 12c 数据库添加任何新数据。
Data Guard 可以用在这样的场景中吗:
- 在暂存区复制当前生产模式
- 用户在生产环境中继续工作
- 运行 暂存数据库中的各种脚本,包括对
table结构
- 在某些时候,使用数据保护 "push"
生产环境到暂存环境
- 此时,暂存环境变为生产环境
环境
这仅用于计划发布
您可以为此使用 Data Guard 逻辑备用数据库。
注意
逻辑 Data Guard 备用设置比典型的物理备用设置复杂得多,尤其是在谈论要进行的更改类型并在主备之间保持分离时。因此,在开始管理逻辑备用之前,我至少会非常熟悉管理物理备用。
1) 创建 Data Guard 物理备用。
2)将物理备库转换为逻辑备库:
--STANDBY
alter database recover managed standby database cancel;
--PRIMARY
execute dbms_logstdby.build;
--STANDBY
alter database recover to logical standby keep identity;
alter database open;
alter database start logical standby apply immediate;
3) 只跳过整个模式的 DDL:
--STANDBY
EXECUTE DBMS_LOGSTDBY.SKIP(STMT => 'SCHEMA DDL', -
schema_name => 'HR', -
table_name => '%', -
proc_name => null);
您也可以跳过特定对象的 DDL 或 DML,但我认为在您的情况下,架构级别会更合适。 DBMS_LOGSTDBY 非常健壮,您可以从 docs.
中了解到这一点
4) 当你只需要将更改推送到备用数据库而不影响主数据库时,你可以禁用该会话的保护模式:
--STANDBY
alter session disable guard;
--Make your changes
alter session enable guard;
5) 当您准备好上线时,执行 Data Guard 切换,您可以从 docs 中了解到这一点。本文档特定于使用 Data Guard 代理,在管理 Data Guard 环境时强烈推荐使用它。
我的版本需要应用程序服务器停机长达 4 小时,以防止用户在执行各种脚本(包括对 table 结构的更改)时向 Oracle 12c 数据库添加任何新数据。
Data Guard 可以用在这样的场景中吗:
- 在暂存区复制当前生产模式
- 用户在生产环境中继续工作
- 运行 暂存数据库中的各种脚本,包括对 table结构
- 在某些时候,使用数据保护 "push" 生产环境到暂存环境
- 此时,暂存环境变为生产环境 环境
这仅用于计划发布
您可以为此使用 Data Guard 逻辑备用数据库。
注意
逻辑 Data Guard 备用设置比典型的物理备用设置复杂得多,尤其是在谈论要进行的更改类型并在主备之间保持分离时。因此,在开始管理逻辑备用之前,我至少会非常熟悉管理物理备用。
1) 创建 Data Guard 物理备用。
2)将物理备库转换为逻辑备库:
--STANDBY
alter database recover managed standby database cancel;
--PRIMARY
execute dbms_logstdby.build;
--STANDBY
alter database recover to logical standby keep identity;
alter database open;
alter database start logical standby apply immediate;
3) 只跳过整个模式的 DDL:
--STANDBY
EXECUTE DBMS_LOGSTDBY.SKIP(STMT => 'SCHEMA DDL', -
schema_name => 'HR', -
table_name => '%', -
proc_name => null);
您也可以跳过特定对象的 DDL 或 DML,但我认为在您的情况下,架构级别会更合适。 DBMS_LOGSTDBY 非常健壮,您可以从 docs.
中了解到这一点4) 当你只需要将更改推送到备用数据库而不影响主数据库时,你可以禁用该会话的保护模式:
--STANDBY
alter session disable guard;
--Make your changes
alter session enable guard;
5) 当您准备好上线时,执行 Data Guard 切换,您可以从 docs 中了解到这一点。本文档特定于使用 Data Guard 代理,在管理 Data Guard 环境时强烈推荐使用它。