1. 通过exp命令完全导出数据库,生成dmp文件
EXP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y
2.清空所有表数据
truncate table tablename
3.plsql 以需要导出数据的用户登录
新建command window
执行下面代码
-----------
set heading off;
set echo off;
set feedback off;
set termout on;
spool C:\allocate.sql;
Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
spool off;
-----------
4.执行下面代码,目的是给空表分配表空间,以便exp命令能够导出空表
SQL>@ C:\allocate.sql;
5.exp username/passwd file=/home/oracle/exp.dmp owner=your.owner.name
创建对应原用户下的同名表空间到要导入的数据库服务器,如果同名表空间存在,将其删除重新创建,再次导入会变相的释放表空间。
新建导入用户的时候,角色要选RESOURCE。删除同名用户会清空表空间。
6.imp dbauser/passwd file=/home/oracle/exp.dmp fromuser=your.owner.name touser=tousername STATISTICS=none
STATISTICS=none
排除版本异常产生的20001的错误
本文详细介绍了如何将Oracle数据库的dmp文件还原为空库,并清理表空间的过程。首先通过exp命令导出数据库,然后清空所有表数据。接着在PL/SQL中生成并执行SQL脚本为空表分配表空间。在目标数据库上创建同名表空间,并删除原有用户以释放空间。最后使用imp命令导入dmp文件,设置适当的参数以避免错误。

2539

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



