Oracle11g和oracle10g之间数据的导入导出
- 格式:pdf
- 大小:358.06 KB
- 文档页数:4
使用数据泵导出和导入几乎所有DBA都熟悉oracle的导出和导入实用程序,它们将数据装载进或卸载出数据库,在oracle database 10g和11g中,你必须使用更通用更强大的数据泵导出和导入(Data Pump Export and Import)实用程序导出和导入数据。
以前的导出和导入实用程序在oracle database 11g中仍然可以使用,但是Oracle强烈建议使用数据泵(Data Pump)技术,因为它提供了更多的高级特性。
例如,你可以中断导出/导入作业,然后恢复它们;可以重新启动已失败的导出和导入作业;可以重映射对象属性以修改对象;可以容易地从另一个会话中监控数据泵的作业,甚至可以在作业过程中修改其属性;使用并行技术很容易快速移动大量的数据;因为oracle提供了针对数据泵技术的API,所以可以容易地在PL/SQL 程序中包含导出/导入作业;可以使用更强大的可移植表空间特性来快速移植大量的数据,甚至可在不同操作系统平台之间移动。
与旧的导出和导入实用程序不同,数据泵程序有一组可以在命令行中使用的参数以及一组只能以交互方式使用的特殊命令,你可以通过在命令行中输入expdp help = y 或者impdp help = y快速获取所有数据泵参数及命令的概述。
一.数据泵技术的优点原有的导出和导入技术基于客户机,而数据泵技术基于服务器。
默认所有的转储,日志和其他文件都建立在服务器上。
以下是数据泵技术的主要优点:1.改进了性能2.重新启动作业的能力3.并行执行的能力4.关联运行作业的能力5.估算空间需求的能力6.操作的网格方式7.细粒度数据导入功能8.重映射能力二.数据泵导出和导入的用途1.将数据从开发环境转到测试环境或产品环境2.在不同的操作系统平台上的oracle数据库直接的传递数据3.在修改重要表之前进行备份4.备份数据库5.把数据库对象从一个表空间移动到另一个表空间6.在数据库直接移植表空间7.提取表或其他对象的DDL注意:数据库不建立完备的备份,因为在导出文件中没有灾难发生时的最新数据。
Oracle11g数据迁到Oracle10g(expdp和impdp)由于客户要求,要把一个Oracle11g数据库迁移到一个Oracle10g ,由于deferred_segment_creation参数建库之初没有设置为false,并且目前存在空表,所以还是使用expdp和impdp。
1、expdp和rman相像的地方时都是在主机端(目标数据库端)生成dmp文件所以文件夹和权限等都在主机端设置。
2、由于是从11g迁移到10g,所以expdp增加了一个参数 version在需要迁移的目标数据库端执行 select * from v$version; 就知道version的值了,不然会报错。
【报错内容ORA-39001: invalid argument valueORA-39000: bad dump file specificationORA-39142: incompatible version number】expdp opsteel/opsteel dumpfile=20150923.dmp logfil e=exp20150923.logdirectory=expdp_dir schemas=opsteel version=10.2.0.1.03、impdp和 ORA-39125这个错误出现在10.2.0.4之前的版本,需要加参数exclude=statistics就可以10.2.0.4是否不需要加,忘了测试了,明天测试一把,看metalink 10.2.0.4已经修订了这个BUG【报错内容ORA-39125: KUPW$WORKER.PUT_DDLS[DBMS_METADATA.CONVERT]调用出错ORA-06502:LPX-00210:】最终的impdp的语法impdp opsteel/opsteel dumpfile=20150923.dmp logfil e=imp20150923.logDIRECTORY=impdp_dir SCHEMAS=opsteel version=10.2.0.1.0 exclude=statistics。
Oracle 11G数据库导出问题解决oracle11g数据库导出问题解决一:11g数据库dmp文件导出问题问题描述:windows2021r2无法正常加装64十一位oracle10g,只可以加装64十一位11g和32十一位10g(兼容性模式)。
由于我们习惯用10g客户端相连接11g数据库展开建立表中空间等有关操作方式,此时求出存有一个问题:通过exp命令求出的dmp版本与客户端版本有关,如果10g客户端相连接另一台服务器上的11g数据库通过exp求出dmp文件在完结后可以提示信息“切换外溢数据类型错误”,这就是因客户端(10g)和数据库(11g)版本号不一致引致。
但如果客户端和数据库在同一服务器,求出时会通过环境变量去挑选调用适当版本的exp程序,我们在求出窗口中也可以看见适当版本号。
所以客户端和数据库在一台服务器时,求出完结后通常不能存有问题(由于环境变量的布局而调用了11g数据库的exp程序)。
问题解决:方法一:求出11g数据库的dmp文件中无法涵盖空表,可以使用以下方法化解:求出前在plsql中继续执行以下语句,用以查阅当前用户下数据库中所有空表:select'altertable'||table_name||'allocateextent;'fromuser_tableswherenum_rows=0将查询出的结果中生成的语句复制到sql窗口中执行,通过给所有空表分配空间的方式就可以通过exp命令成功导出空表。
对于加装oracle11g的2021r2服务器,如果数据库和客户端拆分,可以在客户端服务器加装一个11g客户端,再协调上面的方法,就可以正常求出涵盖空表的dmp文件,并且因为调用的就是11g客户端的exp命令,求出完结也不收起。
但由于导出所用的exp版本号为11g,直接将dmp文件导入10g会提示头部验证失败:可以用notepad++修正版本号用imp引入10g数据库,经测试引入并无错误提示信息,登入系统可以正常采用。
传输数据库——从linux64位oracle10.2.0.5到windows64位11.2.0.11.实验之前先做全备份运行/u01下的脚本rman_full.shexport ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/11.2/db_1export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatchexport NLS_LANG=AMERICAN_AMERICA.zhs16gbkexport ORACLE_SID=fsdbrman target / log /tmp/rman_full.log append<<EOFrun{allocate channel c1 type disk;allocate channel c2 type disk;backup filesperset 2 database format '/u01/rmanbackup/full_%d_%T_%s_%p';sql 'alter system archive log current';sql 'alter system archive log current';sql 'alter system archive log current';backup archivelog all format '/u01/rmanbackup/arch_%d_%T_%s_%p' delete input; backup current controlfile format '/u01/rmanbackup/ctl_%d_%T_%s_%p';}EOFrman target / log /tmp/rman_delete.log append<<EOFallocate channel for maintenance type disk;crosscheck backup;crosscheck archivelog all;delete noprompt obsolete;EOF2.查看可传输平台,必须要是big对big,little对little源端linux平台,查看linux位数select * from v$database目标windows平台SQL> col PLATFORM_NAME for a40SQL> select platform_name,endian_format from v$transportable_platform order by 2,1;3. 一致性关闭数据库SQL>shutdown immediate;将数据库打开到只读模式SQL>startup mountSQL>alter database opne read only4. 调用dbms_tdb.check_db函数该函数确定数据库是否已经准备好进行传输。
一次Oracle11g数据库导入Oracle10g数据库操作笔记注:导入和导出的用户名一定要一致(sybj)一、在11g服务器上,用expdp命令备份数据。
用cmd打开,dos命令输入以下:EXPDP USERID='SYS/cuc2009@cuc as sysdba' schemas=sybj directory=DATA_PUMP_DIR dumpfile=dag.dmp logfile=dag.log version=10.2.0.1.0其中,红色文字部分是根据需要改写的地方。
例如我的sys密码是cuc2009,数据库sid是cuc,要到出的用户名是sybj,要导入到10.2.0.1.0版本的Oracle数据库中去。
aa.dmp和aa.log将会在11g的dpdump目录中生成,例如我的11g装在了E盘下面,于是aa.dmp 将会在E:/app/Administrator/admin/cuc/dpdump目录下被生成。
二、在10g服务器上,使用impdp命令恢复数据步骤:(1.建库2.建表空间3.建用户并授权)(1-3可以不按下面走单,要建立一个登陆名与导出一致就可以了)4.将dag.dmp拷贝到10g的dpdump目录下5.impdp导入数据库1、建库:是在database configuration assistant 中直接新建一个数据库(实例)。
2、建表空间:create tablespace sybj datafile'D:\oracle\product\10.2.0\oradata\orcl\oa.dbf' size 400m autoextend on next 20m online;3、建用户:create user sybj identified by sybj;授权:Alter user sybj default tablespace sybj quota unlimited on sybj;grant create session to sybj;grant connect to sybj;grant connect, resource, dba to sybj;grant create table to sybj;grant create view to sybj;grant create trigger to sybj;grant select any table to sybj;grant create sequence to sybj;grant create procedure to sybj;grant create role to sybj;grant create type to sybj;grant GRANT ANY PRIVILEGE to sybj;4、导入:首先测试机中10g装在了D:/根目录下,于是将dag.dmp文件copy到了D:\oracle\product\10.2.0\admin\daggis\udump目录下。
Oracle 10g EXPDP和IMPDP使用说明收藏Oracle Database 10g引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中.数据泵导出导入(EXPDP和IMPDP)的作用1,实现逻辑备份和逻辑恢复.2,在数据库用户之间移动对象.3,在数据库之间移动对象4,实现表空间搬移.数据泵导出导入与传统导出导入的区别在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项;EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用.EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件.数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.EXPDP命令行选项1. ATTACH该选项用于在客户会话与已存在导出作用之间建立关联.语法如下ATTACH=[schema_name.]job_nameSchema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:Expdp scott/tiger ATTACH=scott.export_job2. CONTENT该选项用于指定要导出的内容.默认值为ALLCONTENT={ALL | DATA_ONLY | METADATA_ONLY}当设置CONTENT为ALL 时,将导出对象定义及其所有数据.为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dumpCONTENT=METADATA_ONLY3. DIRECTORY指定转储文件和日志文件所在的目录DIRECTORY=directory_objectDirectory_object用于指定目录对象名称.需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS 目录Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump先在对应的位置创建物理文件夹,如D:\backup建立目录:create or replace directory backup as '/opt/oracle/utl_file'SQL>CREATE DIRECTORY backup as ‘d:\backup’;SQL>grant read,write on directory backup to SYSTEM;查询创建了那些子目录:SELECT * FROM dba_directories;4. DUMPFILE用于指定转储文件的名称,默认名称为expdat.dmpDUMPFILE=[directory_object:]file_name [,….]Directory_object用于指定目录对象名,file_name用于指定转储文件名.需要注意,如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象Expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp5. ESTIMATE指定估算被导出表所占用磁盘空间分方法.默认值是BLOCKSEXTIMATE={BLOCKS | STATISTICS}设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STATISTICS时,根据最近统计值估算对象占用空间Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICSDIRECTORY=dump DUMPFILE=a.dump6. EXTIMATE_ONLY指定是否只估算导出作业所占用的磁盘空间,默认值为NEXTIMATE_ONLY={Y | N}设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作.Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y7. EXCLUDE该选项用于指定执行操作时释放要排除对象类型或相关对象EXCLUDE=object_type[:name_clause] [,….]Object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDE 和INCLUDE不能同时使用Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW8. FILESIZE指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)9. FLASHBACK_SCN指定导出特定SCN时刻的表数据FLASHBACK_SCN=scn_valueScn_value用于标识SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同时使用Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmpFLASHBACK_SCN=35852310. FLASHBACK_TIME指定导出特定时间点的表数据FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME=“TO_TIMESTAMP(’25-08-2004 14:35:00’,’DD-MM-YYYY HH24:MI:SS’)”11. FULL指定数据库模式导出,默认为NFULL={Y | N}为Y时,标识执行数据库导出.12. HELP指定是否显示EXPDP命令行选项的帮助信息,默认为N当设置为Y时,会显示导出选项的帮助信息.Expdp help=y13. INCLUDE指定导出时要包含的对象类型及相关对象INCLUDE = object_type[:name_clause] [,…]14. JOB_NAME指定要导出作用的名称,默认为SYS_XXXJOB_NAME=jobname_string15. LOGFILE指定导出日志文件文件的名称,默认名称为export.logLOGFILE=[directory_object:]file_nameDirectory_object用于指定目录对象名称,file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值.Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log16. NETWORK_LINK指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.17. NOLOGFILE该选项用于指定禁止生成导出日志文件,默认值为N.18. PARALLEL指定执行导出操作的并行进程个数,默认值为119. PARFILE指定导出参数文件的名称PARFILE=[directory_path] file_name20. QUERY用于指定过滤导出数据的where条件QUERY=[schema.] [table_name:] query_clauseSchema用于指定方案名,table_name用于指定表名,query_clause用于指定条件限制子句.QUERY选项不能与CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES 等选项同时使用.Expdp scott/tiger directory=dump dumpfiel=a.dmpTables=emp query=’WHERE deptno=20’21. SCHEMAS该方案用于指定执行方案模式导出,默认为当前用户方案.22. STATUS指定显示导出作用进程的详细状态,默认值为023. TABLES指定表模式导出TABLES=[schema_name.]table_name[:partition_name][,…]Schema_name用于指定方案名,table_name用于指定导出的表名,partition_name用于指定要导出的分区名.24. TABLESPACES指定要导出表空间列表25. TRANSPORT_FULL_CHECK该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,默认为N.当设置为Y时,导出作用会检查表空间直接的完整关联关系,如果表空间所在表空间或其索引所在的表空间只有一个表空间被搬移,将显示错误信息.当设置为N时,导出作用只检查单端依赖,如果搬移索引所在表空间,但未搬移表所在表空间,将显示出错信息,如果搬移表所在表空间,未搬移索引所在表空间,则不会显示错误信息.26. TRANSPORT_TABLESPACES指定执行表空间模式导出27. VERSION指定被导出对象的数据库版本,默认值为COMPATIBLE.VERSION={COMPATIBLE | LATEST | version_string}为COMPATIBLE时,会根据初始化参数COMPATIBLE生成对象元数据;为LATEST时,会根据数据库的实际版本生成对象元数据.version_string用于指定数据库版本字符串.调用EXPDP使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此,使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.CREATE DIRECTORY dump dir AS ‘D:DUMP’;GRANT READ, WIRTE ON DIRECTORY dump_dir TO scott;1,导出表Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp logfile=exp.log;2,导出方案Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=system,scott logfile=/exp.log;3.导出表空间Expdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=user01,user02 logfile=/exp.log;4,导出数据库Expdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=Y logfile=/exp.log;使用IMPDPIMPDP命令行选项与EXPDP有很多相同的,不同的有:1,REMAP_DATAFILE该选项用于将源数据文件名转变为目标数据文件名,在不同平台之间搬移表空间时可能需要该选项.REMAP_DATAFIEL=source_datafie:target_datafile2,REMAP_SCHEMA该选项用于将源方案的所有对象装载到目标方案中.REMAP_SCHEMA=source_schema:target_schema3,REMAP_TABLESPACE将源表空间的所有对象导入到目标表空间中REMAP_TABLESPACE=source_tablespace:target_tablespace4.REUSE_DATAFILES该选项指定建立表空间时是否覆盖已存在的数据文件.默认为NREUSE_DATAFIELS={Y | N}5.SKIP_UNUSABLE_INDEXES指定导入是是否跳过不可使用的索引,默认为N6,SQLFILE指定将导入要指定的索引DDL操作写入到SQL脚本中SQLFILE=[directory_object:]file_nameImpdp scott/tiger DIRECTORY=dump DUMPFILE=tab.dmp SQLFILE=a.sql7.STREAMS_CONFIGURATION指定是否导入流元数据(Stream Matadata),默认值为Y.8,TABLE_EXISTS_ACTION该选项用于指定当表已经存在时导入作业要执行的操作,默认为SKIPTABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | FRPLACE }当设置该选项为SKIP时,导入作业会跳过已存在表处理下一个对象;当设置为APPEND时,会追加数据,为TRUNCATE时,导入作业会截断表,然后为其追加新数据;当设置为REPLACE时,导入作业会删除已存在表,重建表病追加数据,注意,TRUNCATE选项不适用与簇表和NETWORK_LINK选项9.TRANSFORM该选项用于指定是否修改建立对象的DDL语句TRANSFORM=transform_name:value[:object_type]Transform_name用于指定转换名,其中SEGMENT_ATTRIBUTES用于标识段属性(物理属性,存储属性,表空间,日志等信息),STORAGE用于标识段存储属性,VALUE用于指定是否包含段属性或段存储属性,object_type用于指定对象类型.Impdp scott/tiger directory=dump dumpfile=tab.dmp Transform=segment_attributes:n:table 10.TRANSPORT_DATAFILES该选项用于指定搬移空间时要被导入到目标数据库的数据文件TRANSPORT_DATAFILE=datafile_nameDatafile_name用于指定被复制到目标数据库的数据文件Impdp system/manager DIRECTORY=dump DUMPFILE=tts.dmpTRANSPORT_DATAFILES=’/user01/data/tbs1.f’调用IMPDP1, 导入表Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp logfile=/exp.log;Impdp system/manage DIRECTORY=dump_dir DUMPFILE=tab.dmpTABLES=scott.dept,scott.emp REMAP_SCHEMA=SCOTT:SYSTEM logfile=/exp.log;第一种方法表示将DEPT和EMP表导入到SCOTT方案中,第二种方法表示将DEPT和EMP表导入的SYSTEM方案中.注意,如果要将表导入到其他方案中,必须指定REMAP SCHEMA选项.2,导入方案Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott logfile=/exp.log;Impdp system/manager DIRECTORY=dump_dir DUMPFILE=schema.dmpSCHEMAS=scott REMAP_SCHEMA=scott:system logfile=/exp.log;3,导入表空间Impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=user01 logfile=/exp.log;4,导入数据库Impdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y logfile=/exp.log;impdp wms_dmzs/wms_dmzs@orcl directory=BACKUP dumpfile=WMS_DM20150820.DMP logfile=WMS_DM20150820.log remap_tablespace=WMS:USERS SCHEMAS=WMS_DMZS REMAP_SCHEMA=wms_dmzs:wms_dmzs EXCLUDE=PROCEDURE:\"='PROC_DO_DZ_TY'\"。
环境介绍源环境:Windows Server 2008 X64+ Oracle 11G 64目标环境:Linux 5.4 + Oracle 10G(10.2.0.4.0)Rac迁移方式由于由上至下迁移,采用exp/imp无法正常导入;故使用expdp/impdp(数据泵)迁移 迁移步骤源端:连接cms数据库服务器192.168.253.113 administrator/******打开dos窗口通过expdp命令导出dmp文件,命令如下:Expdpcms/******@orcl directory=DATA_PUMP_DIRdumpfile=cms.dmp schemas=cmslogfile=cms.log version=10.2.0.3.0;参数说明:expdp用户名/密码@实例名directory=【directory_object】虚拟目录对象(DATA_PUMP_DIR系统安装后默认的目录可用system登陆通过select*FROM dba_directories;查看)dumpfile=导出文件的名schemas=方案名logfile=日志文件version=指定版本导出将导出的.dmp,.log 文件拷贝到目标环境中(路径是DATA_PUMP_DIR对应的目录) Plsql system连接数据库创建cms用户创建cms表空间授权cms用户Ssh连接目标服务器切换oracle 用户执行命令:Impdp system/******@other directory=DATA_PUMP_DIRdumpfile=cms.dmpschemas=cms logfile=cms.log参数同expdp一次艰辛的数据导入导出:环境介绍源环境:Windows Server 2008 X64 + Oracle 11G 64目标环境:Linux 5.4 + Oracle 10G(10.2.0.4.0)Rac迁移方式由于由上至下迁移,采用exp/imp无法正常导入;故使用expdp/impdp(数据泵)迁移 要求目标表空间,用户按照源数据格式创建好导出文件●SELECT CURRENT_SCN FROM V$DATABASE;●expdp system/oracle@orcl DIRECTORY=DATA_PUMP_DIR DUMPFILE=FALABELLA_AR_20111214.DMP SCHEMAS=FALABELLA_AR_CORE,FALABELLA_AR_CATA,FALABELLA_AR_CATB,FALABELLA_AR _PUB logfile=FALABELLA_AR_expdp_20111214.log status=10 parallel=1 CONTENT=ALL f lashback_scn=612654934压缩dmp文件[sql]view plaincopyprint?1.gzip -9 FALABELLA_AR_20111214.DMP三、上传DUMP文件到目标库并解压。
oracle11g数据库导入导出方法教程oracle11g数据库导入导出:①:传统方式——exp(导出)和(imp)导入:②:数据泵方式——expdp导出和(impdp)导入;③:第三方工具——PL/sql Develpoer;一、什么是数据库导入导出?oracle11g数据库的导入/导出,就是我们通常所说的oracle数据的还原/备份。
数据库导入:把.dmp 格式文件从本地导入到数据库服务器中(本地oracle测试数据库中);数据库导出:把数据库服务器中的数据(本地oracle测试数据库中的数据),导出到本地生成.dmp格式文件。
.dmp 格式文件:就是oracle数据的文件格式(比如视频是.mp4 格式,音乐是.mp3 格式);二、二者优缺点描述:1.exp/imp:优点:代码书写简单易懂,从本地即可直接导入,不用在服务器中操作,降低难度,减少服务器上的操作也就保证了服务器上数据文件的安全性。
缺点:这种导入导出的速度相对较慢,合适数据库数据较少的时候。
如果文件超过几个G,大众性能的电脑,至少需要4~5个小时左右。
2.expdp/impdp:优点:导入导出速度相对较快,几个G的数据文件一般在1~2小时左右。
缺点:代码相对不易理解,要想实现导入导出的操作,必须在服务器上创建逻辑目录(不是真正的目录)。
我们都知道数据库服务器的重要性,所以在上面的操作必须慎重。
所以这种方式一般由专业的程序人员来完成(不一定是DBA(数据库管理员)来干,中小公司可能没有DBA)。
3.PL/sql Develpoer:优点:封装了导入导出命令,无需每次都手动输入命令。
方便快捷,提高效率。
缺点:长时间应用会对其产生依赖,降低对代码执行原理的理解。
三、特别强调:目标数据库:数据即将导入的数据库(一般是项目上正式数据库);源数据库:数据导出的数据库(一般是项目上的测试数据库);1.目标数据库要与源数据库有着名称相同的表空间。
在10g服务器的D盘创建文件夹'datadump'。
将从11g服务器导出的数据库文件orcl_1(his_dp).dmp放到该目录下。
①进入到命令提示符号开始”——“运行”——输入“CMD”回车②输入“sqlplus”回车③输入“system”回车④输入密码(密码输入时是不可见的,此密码是在安装oracle10G时设置的)"orcl"⑤现在已经登陆了oracle,输入“drop user @数据库方案名 cascade;”回车⑥输入“CREATE USER @数据库方案名 identified by @数据库方案密码;”回车⑦输入“Grant dba to @数据库方案名;”回车⑧输入“Create tablespace dzh_datadatafile 'D:\oracle\dzh_data01.dbf'size 3M reuse autoextend on next 5M maxsize 4096M;”回车创建表空间⑨输入“CREATE TEMPORARY TABLESPACE dzh_temptempfile 'D:\oracle\dzh_temp.dbf'size 2M reuse autoextend on next 5M maxsize 4096M;”回车创建临时表空间⑩输入“Alter user @数据库方案名 temporary tablespace dzh_temp;”回车指定数据库方案存放表空间输入“Alter user @数据库方案名 default tablespace dzh_data;”回车指定数据库方案临时表空间11 输入“create directory dumpdir as 'D:\datadump';”回车如果要删除 drop directory dumpdir;输入“grant read,write on directory dumpdir to @数据库方案名;”回车12 输入“exit”回车,退出sqlplus命令行。
Oracle11g和oracle10g之间的导入/导出
一:oracle的IMP/EMP特性:
Oracle的imp/exp组件的一个操作原则就是向下兼容,且有一些规则:
规则1:低版本的exp/imp可以连接到高版本(或同版本)的数据库服务器,但高版本的exp/imp不能连接到低版本的数据库服务器。
规则2:高版本exp出的dmp文件,低版本无法imp(无法识别dmp文件);低版本exp出的dmp文件,高版本可以imp(向下兼容)。
规则3:从Oracle 低版本Export的数据可以Import到Oracle高版本中,但限于Oracle的相邻版本,如从Oracle 7 到 Oracle 8。
对于两个不相邻版本间进行转换,如从Oracle 6 到 Oracle 8,则应先将数据输入到中间版本—Oracle 7,再从中间数据库转入更高版本Oracle 8。
二:oracle的IMPDP/EMPDP的特性:
1.在oracle9i以后引入数据泵命令IMPDP/EXPDP,oracle11g中exp命令是无法
导出数据库中的空表的,但可以通过EXPDP导出
2.Oracle11g通过exp导出的数据是无法通过imp导入到oracle10g中的,但
可以通过expdp和impdp完成。
3.IMPDP/EMPDP是服务器端是命令,无法在客户端使用。
三:oracle10g数据导入到oracle11g中:
在oracle10g上执行:
Exp ccense/ccense@orcl file=D:\2012123101.dmp
在oracle11g上创建好表空间和用户后执行:
Imp ccense/ccense@orcl file=D:\20121231001.dmp
四.Oracle11g数据导入到oracle10g中:
1.在oracle11g服务器命令行中用expdp导出数据(数据泵的用法请参考23期相应文档)
expdp ccense/ccense@orcl directory=expdp_dir dumpfile=expdp11g_123101.dmp logfile=expdp11g_123101.log version=10.2.0.1.0 (schemas=ccense)
具体备份文件在expdp_dir目录中:
2.在oracle10g服务器DOS命令行中用IMPDP导入数据:
把oracle11g的备份文件放到oracl10g服务器的impdp_dir目录中,并创建好相应的用户和表空间,然后执行下面的命令:
impdp ccense/ccense@orcl directory=impdp_dir dumpfile=expdp11g_123101.dmp logfile=impdp11g_123101.log version=10.2.0.1.0 (schemas=ccense)
技术管理部
姜涛
20121231。