甲骨文:Dbms_Redefinition 是什么意思?
Oracle: what does Dbms_Redefinition mean?
什么是Dbms_Redefinition
? Oracle 文档说它是一个为对象重新定义提供接口的包。
我想了解这个 "redefinition" 到底是什么意思?这种重新定义与 DDL 和 DML 命令有何不同? "Online" 是什么意思?
此包的典型用例是将 "normal" table 更改为分区 table 或 Index-Organized-Table。 "Online" 意味着,可以在不中断您的应用程序的情况下完成此更改(在某些情况下)
通常当您想要进行此类更改时,您必须创建新的 table 并将数据从旧的 table 复制到新的 table。然后您必须删除旧的 table(这会让您的应用程序停止)并重命名新的 table。在此过程中,如果应用程序继续将数据插入旧 table.
,您可能会丢失数据
定义,在数据定义语言 (DDL) 中,表示定义数据库对象。
重新定义,在此上下文中,意味着重新定义数据库对象。
在 DBMS_REDEFINITION 可用之前,数据库对象的重新定义可以而且仍然可以通过 DDL 脚本使用多种不同的策略来完成。使用DDL脚本一般会发现被重新定义的数据库对象在一段时间内对用户不可用,也称为离线。数据库对象离线的时间越长,'happy' 用户社区就越少。
解决方案是使用 DBMS_REDEFINITION,它可以在不停机的情况下执行数据库对象的重新定义。
数据库中的关键问题是有时您想要更改它的结构或定义,同时将其保持为用户可以在线访问:
任何人仍然可以 insert/delete/update 表格,而您正在修改其结构。
Oracle 为此目的提供 DBMS_REDEFINITION 包:
引用自:
http://www.dba-oracle.com/t_dbms_redefinition_example.htm
Now with all that said, Oracle provides a robust and reliable package for performing many common online table level reorganizations - dbms_redefinition.
DBMS_REDEFINITION中不同的存储过程必须按照一个过程使用,在上面link.
中有详细描述
这里列出了程序的摘要,详情请参阅上面的link:
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
什么是Dbms_Redefinition
? Oracle 文档说它是一个为对象重新定义提供接口的包。
我想了解这个 "redefinition" 到底是什么意思?这种重新定义与 DDL 和 DML 命令有何不同? "Online" 是什么意思?
此包的典型用例是将 "normal" table 更改为分区 table 或 Index-Organized-Table。 "Online" 意味着,可以在不中断您的应用程序的情况下完成此更改(在某些情况下)
通常当您想要进行此类更改时,您必须创建新的 table 并将数据从旧的 table 复制到新的 table。然后您必须删除旧的 table(这会让您的应用程序停止)并重命名新的 table。在此过程中,如果应用程序继续将数据插入旧 table.
,您可能会丢失数据定义,在数据定义语言 (DDL) 中,表示定义数据库对象。
重新定义,在此上下文中,意味着重新定义数据库对象。
在 DBMS_REDEFINITION 可用之前,数据库对象的重新定义可以而且仍然可以通过 DDL 脚本使用多种不同的策略来完成。使用DDL脚本一般会发现被重新定义的数据库对象在一段时间内对用户不可用,也称为离线。数据库对象离线的时间越长,'happy' 用户社区就越少。
解决方案是使用 DBMS_REDEFINITION,它可以在不停机的情况下执行数据库对象的重新定义。
数据库中的关键问题是有时您想要更改它的结构或定义,同时将其保持为用户可以在线访问:
任何人仍然可以 insert/delete/update 表格,而您正在修改其结构。
Oracle 为此目的提供 DBMS_REDEFINITION 包:
引用自:
http://www.dba-oracle.com/t_dbms_redefinition_example.htm
Now with all that said, Oracle provides a robust and reliable package for performing many common online table level reorganizations - dbms_redefinition.
DBMS_REDEFINITION中不同的存储过程必须按照一个过程使用,在上面link.
中有详细描述这里列出了程序的摘要,详情请参阅上面的link:
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