Oracle教程:使用expdp、impdp迁移数据库
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
下面这些表很大可以不导出来:
'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.
推荐阅读
-
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
-
oracle数据库中impdp和expdp使用实例讲解
-
oracle如何用expdp定时备份?oracle用expdp实现定时备份数据库图文详细教程
-
异构环境oracle数据库迁移教程之exp和imp以及expdp和impdp的使用
-
Oracle数据库下impdp,expdp的使用详解
-
使用kettle工具进行MySQL迁移Oracle数据库(教程)
-
windows使用sqlpus连接oracle 数据库的教程图解
-
Oracle expdp/impdp测试库搭建教程
-
如何将Oracle的一个大数据表快速迁移到 Sqlserver2008数据库(图文教程)
-
通过数据泵expdp、impdp方式备份与还原/恢复 Oracle数据库(详细过程)