视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Oracle教程:使用expdp、impdp迁移数据库
2020-11-09 11:58:11 责编:小采
文档


expdp、impdp在Oracle10g中才开始使用,下面的源数据库为Oracle10.2,目标数据库为Oracle11.21、在源数据库服务器A上创建expdp的

expdp、impdp在Oracle10g中才开始使用,下面的源数据库为Oracle10.2,目标数据库为Oracle11.2
1、在源数据库服务器A上创建expdp的导出目录
$ pwd
/home/oraoms
$ mkdir exp_dir

SQL> create or replace directory exp_dir as '/home/oraoms/exp_dir';

Directory created.

2、在源数据库A上查询比较大的表,不影响系统运行的大表不导入到目标数据库B中
select *
from (select table_name,
round((blocks * 8192 / 1024 / 1024 ), 2) "MB"
from user_tables
where blocks is not null
order by blocks desc)
where rownum < 21

下面这些表很大可以不导出来:
'MLOG_ENGI_GTB','MLOG_ENGI_MUDV','MLOG_ENGI_HYD'

3、在源数据库A中导出
expdp A_user/A_user directory=exp_dir dumpfile=20100506.dump logfile=20100506.log schemas=A_user exclude=table:\"IN\(\'MLOG_ENGI_GTB\',\'MLOG_ENGI_MUDV\',\'MLOG_ENGI_HYD\'\)\"
在导出是想单引号,括号,需要“\”作为转化符。
导出的数据大概8GB多,共用了18分钟左右。
4、在源数据库A查看该用户对象数量,用力验证导入是否成功
select count(*) from user_objects

7532个对象

5、在源数据库A中查看表空间,在目标库B中也建立相应的表空间
select tablespace_name, count(*)
from user_tables
group by tablespace_name
order by 2;

MLOG_NORM_SPACE

在目标数据库B创建相关的表空间:
查看目标数据库的数据文件位置
select name from v$datafile;
如:
create tablespace MLOG_NORM_SPACE
datafile '/oratest/app/oracle/oradata/orcl/MLOG_NORM_SPACE.dbf'
size 5M autoextend on

创建相应的用户并授权
create user test
identified by test
default tablespace PUB_NORM_SPACE

grant dba to test;

6、在目标数据库B建立导入目录
>mkdir /oratest/imp_dir
把该目录授权给oracle用户
>chown -R oracle:dba /oratest/imp_dir

7、把导出的数据ftp到目标数据库B中
ftp 目标数据库ip
put 20100506.dump

8、在目标数据库B创建导入目录
SQL>create or replace directory imp_dir as '/oratest/imp_dir';

9、在目标数据库B中导入数据
>su - oracle
impdp test/test DIRECTORY=imp_dir DUMPFILE=20100506.dump logfile=20100506imp.log REMAP_SCHEMA=A_user:test

10、在目标数据库B中创建 没有导出源数据库A的大表的结构。
可以把表结构拷贝到目标数据库B中。
或者在目标数据库B中创建db_link,然后再创建相应的表结构

11、在目标数据库B查看该用户对象数量,用来验证对象是否齐全
select count(*) from user_objects

注:
如果有些表中的字段用到了Oracle的关键字,需要用双引号括起来。如time date,换成"time" date.

下载本文
显示全文
专题