使用ORACLE导出dmp时发现没有数据的空表没有导出来,是因为创建完数据库后没有执行
alter system set deferred_segment_creation=false;
执行上述语句可以在表创建时让空表也占有表空间,这样导出时就不会缺少空表了。
如果已经创建数据库时没有执行,现在导出dmp时需要导出空表,执行下方语句,查询出当前数据库中的空表,以及使现有空表也占表空间的语句。
select 'alter table'|| table_name || 'allocate extent;'
from user_tables where segment_created='NO';
查出来的是如下格式的语句
alter table 表名 allocate extent;
对于空表使用当前用户挨个执行该语句,然后导出即可。
整库导出语句:
exp user/password@orcl full=y file=文件名及路径
整库导入语句:
imp user/password@ip:1521/orcl file=dmp文件地址 log=日志地址 fromuser=dmp文件用户
touser=当前用户 constraints=N ignore=y
导入的过程中可能遇到相同的数据,可以加上 ignore=y 忽略掉重复数据只导入新数据