oracle的数据库的导入导出

oracle的数据库的导入导出

ID:34725162

大小:55.56 KB

页数:4页

时间:2019-03-10

上传者:U-25918
oracle的数据库的导入导出_第1页
oracle的数据库的导入导出_第2页
oracle的数据库的导入导出_第3页
oracle的数据库的导入导出_第4页
资源描述:

《oracle的数据库的导入导出》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

从一个用户expdp导出再impdp导入到另一个用户(示例:讲scott用户里面的表全部迁移到新建的test用户里面)如果想导入的用户已经存在:1.导出之前需要做的一些操作,进入数据库,默认为sys用户SQL>createdirectorydumpdiras'/home/oracle/test_bk';(该备份路径是需要手动创建的)SQL>grantread,writeondirectorydumpdirtoscott(scott为源用户);导出用户expdpuser1/pass1directory=dumpdirdumpfile=user1.dmp示例:expdpscott/tigerdirectory=dumpdirdumpfile=scott.dmp2.导入之前需要做一些操作,进入数据库,默认为sys用户SQL>createdirectorydumpdiras'/home/oracle/test_bk';(该备份路径是需要手动创建的)SQL>grantread,writeondirectorydumpdirtotest(test为目标用户);导入用户impdptest/testdirectory=dumpdirdumpfile=scott.dmpREMAP_SCHEMA=scott:testfull=y;如果想导入的用户不存在:1.导出用户expdpuser1/pass1directory=dumpdirdumpfile=user1.dmp2.导入用户impdpsystem/passsystemdirectory=dumpdirdumpfile=user1.dmpREMAP_SCHEMA=user1:user2full=y;3.user2会自动建立,其权限和使用的表空间与user1相同,但此时用user2无法登录,必须修改user2的密码impdp遇到的错误C:DocumentsandSettingsAdministrator>impdpaaa/cccdirectory=data_dumpdumpfile=fromaaa.dmplogfile=IMP_DATA_20100618.LOG连接到:OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-ProductionWiththePartitioning,OLAPandDataMiningoptionsORA-39001:参数值无效ORA-39000:转储文件说明错误ORA-39143:转储文件"F:ora10G_expdpic_price_fromlufang.dmp"可能是原始的导出转储文件可恶的提示让我一直以为是版本的的问题,因为是同事给的dmp文件,用的又都是10.2.0版本,自然以为用的是expdp,所以一直用impdp导入,其他的权限都没问题,所以最后怀疑同事用的是exp,所以试了下imp导入,成功执行了。。。。遇到的vnc错误解决方法:改变xstartup的权限这个问题是很多人容易忽视的问题,也是造成连接成功后黑屏的原因之一。在Linux中,xstartup的文件路径为:/root/.vnc/(可以通过locatexstartup来查看xstartup的文件路径)所以需要执行:chmod777root/.vnc/xstartup Exp/imp和expdp/impdp的区别在平常备库和数据库迁移的时候,当遇到大的数据库的时候在用exp的时候往往是需要好几个小时,耗费大量时间。oracle10g以后可以用expdp来导出数据库花费的时间要远小于exp花费的时间,而且文件也要小很多。    1.使用expdp要先在数据库中创建directory,并给相应的用户read,write权限.SQL>createdirectorydmpdiras‘/u01/dmdir’;SQL>grantread,writeondirectorytotest;    2.常用导出方法$expdpscott/tigerDUMPFILE=scott.dmpDIRECTORY=dmpdirSCHEMAS=test$expdpscott/tigerDUMPFILE=tmp_dump.dmpDIRECTORY=dmpdirTABLES=(tmp_test:p1,tmp_test:p2)JOB_NAME=tmp_dumpLOGFILE=tmp_dump.log$expdpscott/tigerDUMPFILE=full.dmpDIRECTORY=dmpdirFULL=YJOB_NAME=full$expdpscott/timerDUMPFILE=tmp_200703.dmpDIRECTORY=dmpdirTABLES=tmpQUERY=”whereto_char(create_time,’yyyy-mm-dd’)<'2007-04'"常用一些参数说明:SCOTT/TIGER:用户/密码(*)DUMPFILE:导出后的文件名(*)DIRECTORY:导出文件存放位置(位于服务器端)(*)CONTENT:导出文件中包含的内容(默认为:ALL,可选DATA_ONLY/METADATA_ONLY)FILESIZE:指定导出文件大小(单位为bytes).JOB_NAME:此次导出进程使用的名称,方便跟踪查询(可选)LOGFILE:日志文件名(默认为:export.log)INCLUDE:导出时包含指定的类型(例:INCLUDE=TABLE_DATA,INCLUDE=TABLE:"LIKE'TAB%'"INCLUDE=TABLE:”NOTLIKE‘TAB%’”…)EXCLUDE:导出时排除的数据类型(例:EXCLUDE=TABLE:EMP)FULL:全库导出时使用(同EXP的FULL,默认为N)SCHEMA:导出某一个SCHEMA下的所有数据TABLES:按表导出(这里的方法和EXP一样)TABLESPACE:指定一个表空间导出.QUERY:按表导出时,使用条件语句限定导出范围(同exp中的QUERY)TRANSPORT_FULL_CHECK:TRANSPORT_TABLESPACES: FLASHBACK_SCN:FLASHBACK_TIME:PARALLEL:并行操作PARFILE:NETWORK_LINK:当DataPumpExport(DPE)运行时,按Control-C;它将阻止消息在屏幕上显示,但不停止导出进程本身。相反,它将显示DPE提示符(如下所示)。进程现在被认为处于“交互式”模式:Export>这种方法允许在这个DPE作业上输入命令查询及控制当前作业。3.您可以通过PARALLEL参数为导出使用一个以上的线程来显著地加速作业。每个线程创建一个单独的转储文件,因此参数dumpfile应当拥有和并行度一样多的项目。您可以指定通配符作为文件名,而不是显式地输入各个文件名,例如:expdpananda/abc123tables=CASESdirectory=DPDATA1dumpfile=expCASES_%U.dmpparallel=4job_name=Cases_Export注意:dumpfile参数拥有一个通配符%U,它指示文件将按需要创建,格式将为expCASES_nn.dmp,其中nn从01开始,然后按需要向上增加。在并行模式下,状态屏幕将显示四个工作进程。(在默认模式下,只有一个进程是可见的)所有的工作进程同步取出数据,并在状态屏幕上显示它们的进度。分离访问数据文件和转储目录文件系统的输入/输出通道是很重要的。否则,与维护DataPump作业相关的开销可能超过并行线程的效益,并因此而降低性能。并行方式只有在表的数量多于并行值并且表很大时才是有效的。 4.exp/imp与expdp/impdp区别:(1)把用户usera的对象导到用户userb,用法区别在于fromuser=useratouser=userb,remap_schema=’usera’:'usera’。例如:impsystem/passwdfromuser=useratouser=userbfile=/oracle/exp.dmplog=/oracle/exp.log;impdpsystem/passwddirectory=expdpdumpfile=expdp.dmpremap_schema=’usera’:'userb’logfile=/oracle/exp.log;(2)更换表空间,用exp/imp的时候,要想更改表所在的表空间,需要手工去处理一下,如altertablexxxmovetablespace_new之类的操作。用impdp只要用remap_tablespace=’tabspace_old’:'tablespace_new’(3)当指定一些表的时候,使用exp/imp时,tables的用法是tables=(‘table1′,’table2′,’table3′)。expdp/impdp的用法是tables=’table1′,’table2′,’table3′(4)是否要导出数据行exp (ROWS=Y导出数据行,ROWS=N不导出数据行)expdpcontent(ALL:对象+导出数据行,DATA_ONLY:只导出对象,METADATA_ONLY:只导出数据的记录)(5)expdp是[10g]的新特性而且只能在服务器执行。而exp/imp是通用的。 (6)oracle11g中有个新特性,当表无数据时,不分配segment,以节省空间,所以exp导不出空表。解决的办法是用expdp,当然也可以设置deferred_segment_creation参数或者insert一行,再rollback,但是这样很麻烦。建立表结构相同的表只是建立ta表,与emp表结构相同,并不添加数据create table ta asselect * from scott.empwhere 1=0;建立tb表,结构与dept结构相同,将dept表中的数据导入其中:create table tb asselect * from scott.deptwhere 1=1;oracle自增列oracle中插入数据其中表tab的第一个字段Id是自动生成的,即用sequence和trigger共通生成的现在把这个实现过程列出来1:创建表sys2_klx(id,sysnm,dwdm,jydm,jymc);2:创建sequence以便于自动生成id:详见语法CREATESEQUENCE "SYS2_KLX_0" MINVALUE1MAXVALUE9999999999999999999999999999INCREMENTBY1STARTWITH1NOCACHE ORDER NOCYCLE;3:创建Id自动生成时的触发器:CREATEORREPLACETRIGGER"SYS2_KLX_TRIG"BEFOREINSERTON"SYS2_KLX"FOREACHROW WHEN(new.IDisnull) BEGIN    SELECT"SYS2_KLX_0".NEXTVALINTO:NEW."ID"FROMDUAL;  END;4:测试生成过程: insertintosys2_klxvalues('abc','swdm','jydm','jymc');上面语句运行时会出现“ORA-00947”的错误,原因是此时的insert要指明对应的列名才可以修改为 insertintosys2_klx(sysnm,dwdm,jydm,jymc)values('abc','swdm','jydm','jymc');

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭