首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dbms_Redefinition是什么意思?

Dbms_Redefinition是什么意思?
EN

Stack Overflow用户
提问于 2015-07-18 13:42:25
回答 3查看 622关注 0票数 2

Dbms_Redefinition是什么?Oracle docs说,它是一个为对象重新定义提供接口的包。

我想知道这个“重新定义”究竟是什么意思?这种重新定义与DDL和DML命令有何不同?“在线”是什么意思?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-18 16:41:22

此包的典型用法是将“普通”表更改为分区表或索引组织表。“联机”是指在不中断您的应用程序的情况下(在某些情况下)进行此更改。

通常,当您想要进行这样的更改时,您必须创建新表并将数据从旧表复制到新表。然后,您必须删除旧表(让应用程序停止)并重命名新表。在此过程中,如果应用程序继续向旧表中插入数据,则可能会丢失数据。

票数 3
EN

Stack Overflow用户

发布于 2015-07-19 07:40:35

定义,如在数据定义语言(DDL)中,意味着定义数据库对象。

在此上下文中,重新定义意味着重新定义数据库对象。

在DBMS_REDEFINITION可用之前,可以而且仍然可以使用DDL脚本使用许多不同的策略来重新定义数据库对象。使用DDL脚本,您通常会发现重新定义的数据库对象在一段时间内对用户不可用,也称为脱机。数据库对象离线时间越长,用户社区的“快乐”就越少。

解决方案是使用DBMS_REDEFINITION,它可以在没有停机时间的情况下执行数据库对象的重新定义。

票数 3
EN

Stack Overflow用户

发布于 2017-01-25 05:50:42

数据库中的关键问题是,有时您希望更改它的结构或定义,同时将其维护为用户可以在线访问的内容:

任何人都可以在修改表结构时插入/删除/更新表。

Oracle为此提供了DBMS_REDEFINITION包:

引用如下:

example.htm

代码语言:javascript
复制
Now with all that said, Oracle provides a robust and reliable package for performing many common online table level reorganizations - dbms_redefinition. 

DBMS_REDEFINITION中的不同存储过程必须按照一个过程使用,这在上面的链接中有详细描述。

此处列出了该过程的摘要,详情请参见上面的链接:

代码语言:javascript
复制
 1.      Verify that the table is a candidate for online redefinition

2.      Create an interim table

3.      Enable parallel DML operations

4.      Start the redefinition process (and do not stop until step 9 is done)

5.      Copy dependent objects

6.      Check for any errors

7.      Synchronize the interim table (optional)

8.      Complete the redefinition

9.      Drop the interim table
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31491768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档