oracle11g,在用exp命令备份数据库时,如果表中没有数据报EXP-00011错误,对应的表不存在。这导致对应的空表无法备份。
首先、执行sql语句:
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
然后把执行的结果语句拿到PL—sql当中进行执行!
原因:11g默认创建一个表时不分配segment,只有在插入数据时才会产生(当然也可以强制分配),以节省磁盘空间。
我们这个时候就强制给它分配segment(数据片段)

但是有时候还有一部分表比较特殊的,可能还是会出现对应的表不存在:
那么就直接执行:
alter table 表名(导出出现不存在的表) allocate extent.
本文介绍了解决Oracle 11g在使用EXP命令备份时遇到的空表无法备份的问题。通过执行特定SQL语句来为未分配segment的空表分配空间,确保所有表都能被正确备份。
7018

被折叠的 条评论
为什么被折叠?



