exp/imp对oracle进行数据进行迁移的操作笔记
1.从源服务器上导出数据文件到指定目录
exp client/zhangjianfengclient file=/zhangjianfeng/backup/oracle/client.dmp log=/zhangjianfeng/backup/oracle/client.log
2.在源服务器上查看用户默认表空间,以便导入时创建一样的表空间
SQL> select username,default_tablespace from dba_users where username =’CLIENT’;
3.查看用户使用的表空间
SQL> select DISTINCT owner ,tablespace_name from dba_extents where owner like ‘CLIENT’;
4.查看表空间对应的数据文件,以便在目标服务器上创建大小合适的数据文件。
SQL> select file_name,tablespace_name from dba_data_files where tablespace_name in (’CLIENT’);
5.检查目标服务器的表空间,看是否存在CLIENT
select name from v$tablespace where name in (’CLIENT’);
查找不到,说明没有这个两个表空间,需要创建。
#DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES; #删除表空间
6.如果要导入数据的server没有CLIENT表空间。那么需要创建
create tablespace client logging datafile ‘/var/oradata/zhangjianfeng/CLIENT.dbf’ size 500M extent management local;
7.在目标服务器上查找用户是否已经存在
select username from dba_users where username=’CLIENT’;
(1)如果用户存在,则需要删除此用户后再运行创建用户命令
drop user CLIENT cascade;
#此时如果这个用户在连接,drop会出错,必须先杀掉用户的session,然后再drop user
SELECT ‘alter system kill session ”’||SID||’,'||SERIAL#||”’ immediate;’ FROM V$SESSION WHERE USERNAME=’TEST2′;
#以上语句构建杀掉Test2用户session的语句
(2)创建用户
create user client identified by zhangjianfengclient default tablespace CLIENT temporary tablespace temp profile default;
grant connect,resource to client;
8.把文件从源服务器上拷贝到目标服务器上。假如拷贝过来放到tmp目录下/zhangjianfeng/tmp/CLIENT.dmp
9.最后在目标服务器上按用户导入数据
# export NLS_LANG=”American_america.zhs16gbk” #根据需要
imp client/zhangjianfengclient file=/zhangjianfeng/CLIENT.dmp log =/zhangjianfeng/imp.log;
# 如果源用户olduser和新用户名client不同
# imp client/zhangjianfengclient fromuser=olduser touser=client file=/zhangjianfeng/CLIENT.dmp log =/zhangjianfeng/imp.log;

