问题标签 [dbms-redefinition]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
365 浏览

oracle - oracle防止在表上选择

我有一个运行更改表交换分区操作的 pl\sql 进程。

另一个会话对此表进行选择,如果选择在更改之前开始但尚未完成(选择期间更改表开始) - 选择会引发异常(对象不再存在)。

由于交换操作非常快,我想阻止对表的任何操作,然后执行更改。或者如果选择已经开始 - 延迟交换直到它完成,然后执行改变。

来自很多会话的选择,我无法控制它们。所以我不能在选择之前\之后添加任何代码 - 只能在更改表之前\之后。

有没有办法制作这样的东西???

我尝试了 rdbm_redefinition 而不是交换但总是选择失败,出于同样的原因..

谢谢。

0 投票
0 回答
261 浏览

oracle - 如何在保留对象id的情况下使用Oracle在线重定义将分区表转换为非分区表

如果我们使用Oracle在线重定义,并且由于临时表(非分区)变为原始表而导致源表的对象id因操作而改变,那么将分区表转换为非分区表并不难桌子。

我在 Oracle 重新定义中意识到了以下事实:

  • 为了保留源表的对象id,我们应该使用重定义的交换分区,其目的表与源表相同。

不知道有没有什么办法可以在使用Oracle在线重定义将分区表转换为非分区表时保留对象id。原因是有时不允许在 CDC(GoldenGate/SharePlex) 环境中更改对象 ID。

0 投票
1 回答
292 浏览

oracle - Oracle sql - 使用 DBMS_REDEFINITION 包重新定义表以启用表的 ROWDEPENDENCIES

我们有使用“NOROWDEPENDENCIES”(默认值)创建的表。我在 oracle 文档中读到,这样做的唯一两种方法是:

使用 DBMS_REDEFINITION 包重新定义表或重新创建表。

我无法重新创建表,所以我唯一的解决方案是重新定义它,但我在任何地方都找不到示例或指南来执行此操作。

你能给我看一个例子或参考任何指南吗?谢谢

0 投票
0 回答
82 浏览

sql - 自动分区我们用来手动添加分区的现有表,方法是在 Oracle 中拆分最大分区

我需要有关将分区添加到现有手动分区表的建议。我的案例:版本:Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - 生产现有表数据类型:总行数:13495522

高分区统计:

我们曾经通过拆分最大分区来手动添加分区,但是最大分区中的行数看起来不是一个可行的解决方案。这导致我们使用 dbms_redefinition 包。

我当前使用 dbms_redefinition 自动分区表的解决方案的步骤:

在较低的车道上,DBMS_REDEFINITION.start_redef_table 进程(13495522 条记录)花了我 7 个多小时。

我想知道是否有任何其他方法可以自动化分区。