1

在实时运行的 Oracle 数据库上允许和不允许哪些操作?具体来说,在添加、删除和重命名列时如何处理?

4

4 回答 4

2

您可以在正在运行的实例上进行几乎所有类似的更改。当然,我不建议在系统中对用户执行此操作。

也就是说,Oracle 11.2 有一个杀手级的新特性,称为 EBR,即基于版本的重新定义。可以把它想象成能够“提交”和“回滚”DDL 更改。这可能很有用,具体取决于具体情况。

于 2010-12-02T21:48:31.247 回答
2

在线更改(即在其他会话处于活动状态时)可以使用DBMS_REDEFINITION在此处此处此处描述)完成,但这是企业版功能

于 2010-12-02T23:50:20.413 回答
1

你可以做这些事情。如果数据库找到了不允许更改的原因,您将得到一个带有很酷的错误代码的漂亮 nastygram,您可以检查下一步需要做什么。

如果没有其他用户运行查询或后台 tc 中没有作业运行,您的麻烦就会减少。

于 2010-12-02T21:54:25.830 回答
1

您可以毫无问题地添加、删除和重命名列。

注意事项,

添加具有默认值的列会强制数据库为现有行发出更新语句。在大桌子上要小心,否则负载会激增。

重命名列可能会破坏您的应用程序。为此做好计划,否则你应该没问题。还要意识到,除非您正确计划事情,否则您将为尝试访问该列的查询生成错误。

于 2010-12-03T13:30:43.583 回答