Professional Documents
Culture Documents
目标数据库
版本 操作系统平台 字节顺序
11.2.0.3.0 Linux x86 64-bit Little
服务器端国家字符集 AMERICAN_AMERICA.ZHS16GBK
由于要对数据库进行迁移,数据量比较大,想通过表空间传输
想问下能否使用表空间传输,还有传输有什么细节需要注意?
3.检查下创建的目录是否成功
select * from dba_directories;
上述操作代码如下示:
1SQL> create directory green_back as '/oradata';
2Directory created.
3SQL> grant read, write on directory green_back to greenlive;
4Grant succeeded.
5SQL> select * from dba_directories;
6OWNER DIRECTORY_NAME DIRECTORY_PATH
7SYS GREEN_BACK /oradata
4.执行导出操作
expdp usename/password directory=green_back dumpfile=greenlive20130616.dmp logfile=greenlive20130616.log schemas=greenlive
二.导入数据
1.创建数据用户“greenlive”
可以用命令行也可以用诸如 plsqldev 工具创建
___________________________________________________________________________
当导出库与导入库表空间不一致时,可以使用 remap_tablespace 参数,如下示
impdp slwebtest/slwebtest directory=slwebtest dumpfile=slwebtest0828.dmp logfile=slwebtest0828.log schemas=slwebtest
remap_tablespace=slwebtest_tabs01:users remap_tablespace=slweb_tabs01:users
ORACLE EXPDP 命令使用详细
原创 2011 年 05 月 03 日 15:26:00
1. DIRECTORY
指定转储文件和日志文件所在的目录
DIRECTORY=directory_object
Directory_object 用于指定目录对象名称.需要注意,目录对象是使用 CREATE DIRECTORY 语句建立的对象,而不是 OS 目录
Expdp scott/tiger DIRECTORY= DMP DUMPFILE=a.dump
2. CONTENT
该选项用于指定要导出的内容.默认值为 ALL
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
当设置 CONTENT 为 ALL 时,将导出对象定义及其所有数据.为 DATA_ONLY 时,只导出对象数据,为 METADATA_ONLY 时,只导出对象定义
数据泵工具导出的步骤:
1、创建 DIRECTORY
create directory dir_dp as 'D:/oracle/dir_dp';
2、授权
Grant read,write on directory dir_dp to zftang;
--查看目录及权限
SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d
WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;
3、执行导出
expdp zftang/zftang@fgisdb schemas=zftang directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log;
2、在导出过程中,DATA DUMP 创建并使用了一个名为 SYS_EXPORT_SCHEMA_01 的对象,此对象就是 DATA DUMP 导出过程中所用的 JOB 名字,
如果在执行这个命令时如果没有指定导出的 JOB 名字那么就会产生一个默认的 JOB 名字,如果在导出过程中指定 JOB 名字就为以指定名字出现
如下改成:
expdp zftang/zftang@fgisdb schemas=zftang directory=dir_dp dumpfile =expdp_test1.dmp
logfile=expdp_test1.log,job_name=my_job1;
3、导出语句后面不要有分号,否则如上的导出语句中的 job 表名为‘my_job1;’,而不是 my_job1。因此导致 expdp zftang/zftang
attach=zftang.my_job1 执行该命令时一直提示找不到 job 表
数据泵导出的各种模式:
1、 按表模式导出:
expdp zftang/zftang@fgisdb tables=zftang.b$i_exch_info,zftang.b$i_manhole_info dumpfile =expdp_test2.dmp
logfile=expdp_test2.log directory=dir_dp job_name=my_job
2、按查询条件导出:
expdp zftang/zftang@fgisdb tables=zftang.b$i_exch_info dumpfile =expdp_test3.dmp logfile=expdp_test3.log directory=dir_dp
job_name=my_job query='"where rownum<11"'
3、按表空间导出:
Expdp zftang/zftang@fgisdb dumpfile=expdp_tablespace.dmp tablespaces=GCOMM.DBF logfile=expdp_tablespace.log
directory=dir_dp job_name=my_job
4、导出方案
Expdp zftang/zftang DIRECTORY=dir_dp DUMPFILE=schema.dmp SCHEMAS=zftang,gwm
5、导出整个数据库:
expdp zftang/zftang@fgisdb dumpfile =full.dmp full=y logfile=full.log directory=dir_dp job_name=my_job
impdp 导入模式:
1、按表导入
p_street_area.dmp 文件中的表,此文件是以 gwm 用户按 schemas=gwm 导出的:
impdp gwm/gwm@fgisdb dumpfile =p_street_area.dmp logfile=imp_p_street_area.log directory=dir_dp tables=p_street_area
job_name=my_job
2、按用户导入(可以将用户信息直接导入,即如果用户信息不存在的情况下也可以直接导入)
impdp gwm/gwm@fgisdb schemas=gwm dumpfile =expdp_test.dmp logfile=expdp_test.log directory=dir_dp job_name=my_job
4、更换表空间
采用 remap_tablespace 参数
--导出 gwm 用户下的所有数据
expdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp SCHEMAS=gwm
注:如果是用 sys 用户导出的用户数据,包括用户创建、授权部分,用自身用户导出则不含这些内容
--以下是将 gwm 用户下的数据全部导入到表空间 gcomm(原来为 gmapdata 表空间下)下
impdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp remap_tablespace=gmapdata:gcomm
【农商行实例】
定义空间为 700G 的 sjfx ewd 数据库,expdp 估计 dmp file=390G, 实际为 280G, RDL 用户 full(全库导出,包括了 SYSMAN, 系统表等)
Ewd oracle 建在虚拟机上,io 速度可达 200M/s 左右(最快 10G/min) ,实际上,expdp 导出 280G/1h22=82 分, 约为 3.5G/min