在实时运行的 Oracle 数据库上允许和不允许哪些操作?具体来说,在添加、删除和重命名列时如何处理?
问问题
646 次
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 回答