【问题标题】:Oracle 10g Logical Standby - Can you partition the tables differently from the Master DB?Oracle 10g 逻辑备用 - 您可以对表进行不同于主数据库的分区吗?
【发布时间】:2009-11-11 00:09:13
【问题描述】:

我有一个用于 OLTP 类型应用程序的主数据库。目前,我们将许多表的单个表复制到另一个用作报告实例的数据库。

很快,我们将迁移到 Data Guard 逻辑备用数据库。我似乎无法从谷歌追踪的是我是否可以更改逻辑备用表的物理结构。

我想对逻辑备用上的许多大表进行分区以使报告更容易 - 理想的方法是在逻辑备用上对表进行分区,然后 SQL 应用进程可以将表更新为正常,但我不知道是否支持。

有谁知道是否可以改变备用数据库上的表结构来实现分区?

【问题讨论】:

  • 我不确定您的标题 - 表是使用主数据库上的不同键分区还是未分区?
  • 根本没有在主数据库上分区。

标签: oracle


【解决方案1】:

这应该是可能的。我会在逻辑备用分区表上启用行移动,以防您的 OLTP 应用程序更新分区键的值。

既然您将逻辑备用数据库用作报告数据库,为什么不保留 OLTP 表的“副本”并围绕它们创建物化视图呢? - 您可能会从非规范化和聚合中获得额外的性能改进。您不一定会看到仅对表进行分区就可以提高性能。

【讨论】:

  • 许多表都有 100M 以上的行,我想对它们使用分区连接 - 这对我的测试有很大的影响。我同意我可以在 OLTP 表上创建 MView,但它需要双倍的存储空间,所以我想弄清楚我们是否可以直接分区。您知道如何更改逻辑备用数据库上的表结构吗?只需通过哈希(col)创建 tab_new 分区...从 old_tab 中选择 *,然后进行删除,重新创建索引并重命名为主数据库?
  • 我了解:散列分区 - 我使用范围分区工作太多,因此我并不总是考虑其他类型。 CTAS/重命名方法是进行转换的一种方法 - 您还应该查看 EXCHANGE PARTITION 操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
  • 2011-07-17
  • 2011-12-17
  • 1970-01-01
  • 2016-02-22
  • 2013-08-22
相关资源
最近更新 更多