Oracle数据库导入导出逻辑备份方法总结

【EXP常用参数】

USERID 即用户名/密码该参数就必须且为第一个;

FILE 指定数据输出文件路径;

LOG 指定日志输出文件路径;

TABLES 导出指定表数据;

FULL 完全导出整个文件(N);

ROWS 导出数据行(Y);

QUERY 用于导出表的子集的 select 子句;

【示例】

1、【全库模式】将数据库orcl完全导出,用户名scott密码scott数据文件导出到D:/orcl/scott.dmp,日志文件到出到D:/orcl/scott.log

exp scott/scott@orcl file = D:/orcl/scott.dmp log =D:/orcl/scott.log full = y

2、【表模式】将数据库中的表emp、dept导出到D:/orcl/scott_empdept.dmp

exp scott/scott@orcl file = D:/orcl/scott_empdept.dmptables = (emp,dept)

3、【用户模式】将243数据库中用户ng_lxj1和ng_lxj2的所有数据导出到D:/orcltest/ ng_lxj_user.dmp

exp system/manager@243 file = D:/orcltest/ng_lxj_user.dmpowner = (ng_lxj1,ng_lxj2)

4、将数据库中的表emp中SAL字段大于1000的记录导出到D:/orcl/scott_emp.dmp

exp scott/scott@orcl file = D:/orcl/sys_scott.dmptables = (emp) query = \”where sal > 1000\”

5、将数据库中的表emp仅导出建表语句不导出数据行到D:/orcl/scott_empddl.dmp

exp scott/scott@orcl file = D:/orcl/scott_empddl.dmptables = emp rows = n

【全部参数】

USERID 用户名/口令 FULL 导出整个文件 (N)

BUFFER 数据缓冲区大小 OWNER 所有者用户名列表

FILE 输出文件 TABLES 表名列表

COMPRESS 导入到一个区 (Y) RECORDLENGTH IO 记录的长度

GRANTS 导出权限(Y) INCTYPE 增量导出类型

INDEXES 导出索引(Y) RECORD 跟踪增量导出 (Y)

DIRECT 直接路径(N) TRIGGERS 导出触发器 (Y)

LOG 屏幕输出的日志文件 STATISTICS 分析对象 (ESTIMATE)

ROWS 导出数据行(Y) PARFILE 参数文件名

CONSISTENT 交叉表的一致性 (N) CONSTRAINTS 导出的约束条件 (Y)

OBJECT_CONSISTENT只在对象导出期间设置为只读的事务处理 (N)

FEEDBACK每 x 行显示进度 (0)

FILESIZE每个转储文件的最大大小

FLASHBACK_SCN用于将会话快照设置回以前状态的 SCN

FLASHBACK_TIME用于获取最接近指定时间的 SCN 的时间

QUERY用于导出表的子集的 select 子句

RESUMABLE遇到与空格相关的错误时挂起 (N)

RESUMABLE_NAME用于标识可恢复语句的文本字符串

RESUMABLE_TIMEOUTRESUMABLE 的等待时间

TTS_FULL_CHECK对 TTS 执行完整或部分相关性检查

TABLESPACES要导出的表空间列表

TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)

TEMPLATE调用 iAS 模式导出的模板名

【IMP常用参数】

IGNORE 忽略创建错误(N),当要导入的表已存在时若该参数为Y则不报错仅导入数据,否则将报错;若导入的表不存在,则将自动新建该表,需要注意的是,该表所建的表空间一般是导出时表所在表空间,若导入的库中无此表空间则会报错;

FROMUSER 所有者用户名列表;

TOUSER 用户名列表;

1、【全库模式】将备份数据库文件中的数据导入数据库orcl中,用户名scott密码scott,数据文件路径D:/orcl/scott.dmp,日志文件路径D:/orcl/scott.log

imp scott/scott@orcl file = D:/orcl/scott.dmp log =D:/orcl/scott.log full = y ignore = y

2、【表模式】将备份数据库文件中的表emp、dept数据导入数据库orcl中,用户名scott密码scott,数据文件路径D:/orcl/scott.dmp

imp scott/scott@orcl file = D:/orcl/scott.dmp log =D:/orcl/scott.log ignore = y tables = (emp,255);">另外,如果导出时使用了表模式,导入时要导入所有表数据,则也可以使用full = y,如:

imp scott/scott@orcl file = D:/orcl/scott_empdept.dmp ignore= y full = y

3、【用户模式】备份数据文件中存在ng_lxj1、ng_lxj2两用户数据,数据文件路径D:/orcltest/ng_lxj_user.dmp

将ng_lxj1的数据导入到ng_lxj中:

imp system/manager@243 file = D:/orcltest/ng_lxj_user.dmpfromuser = ng_lxj1 touser = ng_lxj

将ng_lxj1和ng_lxj2的数据均导入到ng_lxj中:

imp system/manager@243 file = D:/orcltest/ng_lxj_user.dmpfromuser = (ng_lxj1,ng_lxj2) touser = (ng_lxj,ng_lxj)

注意ng_lxj要写两遍与之前的对应,若仅写一个,Oracle会默认没得到对应的将导入到本用户下,如:

该命令将从ng_lxj1导入ng_lxj1,ng_lxj2导入ng_lxj2

将ng_lxj1的数据分别导入ng_lxj1和ng_lxj2两个用户:

不能写成imp system/manager@243 file = D:/orcltest/ng_lxj_user.dmpfromuser = (ng_lxj1,ng_lxj1) touser = (ng_lxj1,255);">否则会报错:

IMP-00034: 警告: 在导出文件中未找到 FromUser "NG_LXJ1"

猜测:Oracle将数据文件抽取到缓存区,一旦使用过就会进行清除。

所以,一个用户导向两个用户需要分开写两条命令语句。

将ng_lxj1用户下的t1表的数据导入ng_lxj2用户中:

imp system/manager@243 file = D:/orcltest/ng_lxj_user.dmpfromuser = ng_lxj1 touser = ng_lxj2 tables = t1

4、从备份数据文件中,仅导入建表语句而不导入数据记录,文件路径D:/orcl/scott.dmp

imp scott/scott@orcl file = D:/orcl/scott.dmp full = yignore = y rows = n

5、使用参数文件

imp system/manager@243 parfile=bible_tables.par

bible_tables.par参数文件:

file = D:/orcltest/ng_lxj_user.dmp fromuser = ng_lxj1touser = ng_lxj

USERID 用户名/口令 FULL 导入整个文件 (N)

BUFFER 数据缓冲区大小 FROMUSER 所有者用户名列表

FILE 输入文件(EXPDAT.DMP) TOUSER 用户名列表

SHOW 只列出文件内容 (N) TABLES 表名列表

IGNORE 忽略创建错误 (N) RECORDLENGTH IO 记录的长度

GRANTS 导入权限(Y) INCTYPE 增量导入类型

INDEXES 导入索引(Y) COMMIT 提交数组插入 (N)

ROWS 导入数据行(Y) PARFILE 参数文件名

LOG 屏幕输出的日志文件 CONSTRAINTS 导入限制 (Y)

DESTROY覆盖表空间数据文件 (N)

INDEXFILE将表/索引信息写入指定的文件

SKIP_UNUSABLE_INDEXES跳过不可用索引的维护 (N)

TOID_NOVALIDATE跳过指定类型 ID 的验证

STATISTICS始终导入预计算的统计信息

RESUMABLE在遇到有关空间的错误时挂起 (N)

RESUMABLE_NAME用来标识可恢复语句的文本字符串

COMPILE编译过程,程序包和函数 (Y)

STREAMS_CONFIGURATION导入流的一般元数据 (Y)

STREAMS_INSTANTIATION导入流实例化元数据 (N)

DATA_ONLY仅导入数据 (N)

下列关键字仅用于可传输的表空间

TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)

TABLESPACES 将要传输到数据库的表空间

DATAFILES 将要传输到数据库的数据文件

TTS_OWNERS 拥有可传输表空间集中数据的用户

【P.S.】

1、高版本的Export导出来的转储文件,低版本的Import读不了;低版本的Export导出来的转储文件,高版本的Import可以进行读取。

2、从Oracle低版本的Export数据可以Import到Oracle高版本中,但限于Oracle的相邻版本,两个不相邻版本间进行转换应借助中间版本。

3、Oracle 10g export的文件且包含大字段通过Oracle 11g客户端Import到Oracle10g数据库时会报“IMP-00058”、“ORA-00942”表不存在的错误,且含几个大字段会报几次,但最终数据会成功导入且无错误。想不报错就换个10g客户端或用11g客户端导入11g服务器数据库。

4、exp/imp可以做到在不同版本Oracle、不同数据库上的迁移,在进行不同数据库上迁移时很可能会出现表空间不存在的报错。解决方法:首先,我们可以尝试先建表且指定新的表空间,然后使用imp且ignore=y仅导入数据;若仍报表空间不存在则最佳方法是改变exp,将需要备份的表的表空间指定为USERS(系统默认表空间);也可以在要导入的数据库上建一个极小的与导出数据库表空间同名的表空间。

5、在有主外键关键时,若主外键表均存在于备份文件,则imp会自动识别并在导入数据后建立约束,若仅导入外键表而不导入主键表则数据成功导入但会报错且外键约束丢失。

6、多表多条件导出,tables指定多表,而query不能针对不同表做不同条件限制,可以写多条语句分别导出各表,也可以使用expdp来多表多条件导出。

7、导入大表时存储分配失败,默认的EXP时,compress = Y,也就是把所有的数据压缩在一个数据块上。导入时,如果不存在连续一个大数据块,则会导入失败。导出80M以上的大表时,记得compress= N,则不会引起这种错误。

8、导入导出时有三种可选模式(全库、用户、表),exp/imp使用时必须选用其中一种模式且全文件模式时不能出现其他模式;

9、使用用户模式导入导出时,USERID需要使用高权限用户如system/manager;

10、借助PL/SQL,在表中不存在大字段时,我们还可以借助PL/SQL的导出工具来导入导出;需要注意的是,从一个库中导出的文件可能默认的时间格式与另一个库不同而产生出错,且导出的纯SQL insert语句有时间不能直接用于DB2,里面对于空、大字段等的定义是不同的。

11、从Oracle 10g开始提供了称为数据泵新的工具expdp/impdp,它为Oracle数据提供高速并行及大数据的迁移。imp/exp可以在客户端调用,但是expdp/impdp只能在服务端,因为在使用expdp/impdp以前需要在数据库中创建一个Directory。

数据泵的特点与传统导出导入的区别

1. EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用;EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。

2.EXP和IMP效率比较低.EXPDP和IMPDP效率高

3.数据泵功能强大并行、过滤、转换、压缩、加密、交互等等

4.数据泵不支持9i以前版本,EXP/IMP短期内还是比较适用

5.数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式,而imp/exp是3种

6.IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件

【expdp/impdp】

该命令仅能在服务端使用!也就是说必须在数据库导入或导出的服务器上使用该命令!

使用该命令需要逻辑目录与物理目录均存在!

如,导出本地orcl数据库中soctt用户的emp,dept两表步骤:

1)创建逻辑目录

该命令不会在操作系统创建真正的目录,最好以system等管理员创建

登录SQLPLUS:

sqlplus system/manager@orcl as sysdba

创建逻辑目录:

create directory dptest as ‘d:\dptest’;

2)给导出用户授权

grant read,write on directory dptest to scott;

3)建立物理目录

在D盘新建目录dptest

4)导出emp、dept表

expdp scott/scott@orcl tables = emp,dept dumpfile =empdept_dp.dmp directory = dptest

【expdp常用参数】

DIRECTORY 供转储文件和日志文件使用的目录对象,需要在导出前创建;

DUMPFILE 指定导出数据文件名,不填写目录路径则默认为direcory指定的目录,也可指定已创建的目录对象;

CONTENT 指定要导出的内容,可选参数有all、data_only和metadata_only,默认为all,当参数为all时将导出DDL及其数据,data_only只导出数据,metadata_only只导出DDL;

EXCLUDE 排除特定的对象类型,例如 EXCLUDE=TABLE:EMP;

INCLUDE 包括特定的对象类型,例如 INCLUDE=TABLE_DATA;

JOB_NAME 要创建的导出任务的名称,若不指定则会默认会创建一个类似于SYS_EXPORT_SCHEMA_01的对象作为JOB名;

LOGFILE 指定日志文件名(export.log);

NOLOGFILE 不写入日志文件(N);

FULL 导出整个数据库(N);

SCHEMAS 要导出的方案的列表(登录方案);

TABLES 指定要导出的表的列表;

TABLESPACES 指定要导出的表空间的列表;

QUERY 用于导出表的子集的谓词子句;

1、【全库模式】将本地数据库全库导出到已创建的目录对象dptest中

expdp system/manager@orcl dumpfile = orcl_dp.dmp directory= dptest full = y

2、【表模式】将本地数据库scott中的表emp、dept导出到已创建的目录对象dptest中

3、【用户模式】将本地数据库scott用户数据导出到已创建的目录对象dptest中

expdp scott/scott@orcl schemas = scott dumpfile = scott_dp.dmpdirectory = dptest

4、【表空间模式】将本地数据库中USERS和TEMP表空间下数据导出到已创建的目录对象dptest中

expdp system/manager@orcl dumpfile = users_temp_dp.dmpdirectory = dptest tablespace = users,temp

5、按表导出且指定条件(可实现多表多条件),将表emp中SAL字段大于1000的记录导出

expdpscott/scott@orcldirectory= dptest dumpfile=expdp.dmp tables=empquery=' where sal > 1000'

6、并行进程parallel

expdpscott/scott@orcldirectory= dptest dumpfile=scott1.dmp parallel=40 job_name=scott1

【impdp常用参数】

DIRECTORY 供转储文件和日志文件使用的目录对象,需要在导入前创建;

DUMPFILE 指定导入数据文件名,不填写目录路径则默认为direcory指定的目录,也可指定已创建的目录对象;

CONTENT 指定要导入的内容,可选参数有all、data_only和metadata_only,默认为all,当参数为all时将导入DDL及其数据,data_only只导入数据,metadata_only只导入DDL;

JOB_NAME 要创建的导入任务的名称;

LOGFILE 指定日志文件名(import.log);

REMAP_SCHEMA 将一个方案中的对象加载到另一个方案;

REMAP_TABLESPACE 将表空间对象重新映射到另一个表空间,在不同数据库导入导出时用于更改表空间;

1、【全库模式】将数据文件全库导入本地数据库,数据文件存放于到已创建的目录对象dptest中

impdp system/manager@orcl dumpfile = orcl_dp.dmpdirectory = dptest full = y

2、【表模式】将数据文件中表emp、dept导入本地数据库scott用户下

impdp scott/scott@orcl tables = emp,255);">将数据文件中表emp导入本地数据库且将其拥有者改为system

impdp system/manager dumpfile = empdept_dp.dmpdirectory = dptest tables=scott.dept remap_schema=scott:system

3、【用户模式】将数据文件导入本地数据库scott用户下

impdp scott/scott@orcldumpfile = scott_dp.dmp directory = dptest SCHEMAS=scott;

4、更换表空间

impdp scott/scott@orcl dumpfile = scott_dp.dmpdirectory = dptest remap_tablespace=users:temp

【大例子】

从一个用户expdp导出再impdp导入到另一个用户

如:Windows为A服务器,Linux为B服务器,数据库用户为test,把A服务器的数据迁移到B服务器中

在A服务器操作:

1、

SQL> create directory expdp_dir as 'D:\mzl\backup';

SQL> grant read,write on directory expdp_dir totest;

2、在windows目录创建目录D:\mzl\backup

3、在DOS命令窗口导出:

expdp test/test DIRECTORY=expdp_dir DUMPFILE=test.dmplogfile=testexpdp.log

在B服务器中操作:

4、SQL> create directory impdp_diras '/home/oracle/impdp_dir';

SQL> grantread,write on directory impdp_dir to test;

1、 在系统中需要有/home/oracle/impdp_dir目录,在impdp_dir目录下必须有读写权限

(chmod 777 impdp_dir)

5、用ftp把A服务器导出的数据上传到B服务器的/home/oracle/impdp_dir目录中

在A服务器中配置好B服务器的服务器名,在A服务器导入数据

6、在DOS命令窗口导出:

imppdp test/test@B_database DIRECTORY=impdp_dirDUMPFILE=test.dmp logfile=testimpdp.log

(这里注意大小写,如果test.dmp在linux中为大写,必须更改为大写。Linux区分大小写)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读773次,点赞6次,收藏9次。【代码】c# json字符串转Oracle的insert into的小程序。
文章浏览阅读8.7k次,点赞2次,收藏17次。此现象一般定位到远端的监听服务来找问题,在远端查看监听服务状态(具体看下面的解决方案会详细呈现),服务是否开启,另外查看监听端点概要是否存在host未指向到计算名的,如无直接进入监听配置文件listener.ora内添加指向即可。2、查看监听服务状态 lsnrctl status,右边为远端端点状态,未添加host指向到计算名;1、本地及远端安装好Oracle并配置好连接,Oracle服务和监听已启动;1、远程Oracle数据库:Oracle11g R2。或者进入下述服务手动重启。,再进行远程连接即可。_ora-12541:tns:无监听程序
文章浏览阅读2.8k次。mysql脚本转化为oracle脚本_mysql建表语句转oracle
文章浏览阅读2.2k次。cx_Oracle报错:cx_Oracle DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library_cx_oracle.databaseerror: dpi-1047: cannot locate a 64-bit oracle client libr
文章浏览阅读1.1k次,点赞38次,收藏35次。本文深入探讨了Oracle数据库的核心要素,包括体系结构、存储结构以及各类参数。通过解析Oracle数据库的体系结构,读者可以深入了解其内部组成和工作原理。存储结构部分介绍了数据在Oracle中的存储方式,从表空间到数据文件的层层逻辑。最后,我们深入探讨了Oracle数据库中各类参数的作用和配置方法,帮助读者更好地理解和优化数据库性能。本文旨在帮助读者全面理解Oracle数据库的运作机制,为其在实践中的应用提供基础和指导。
文章浏览阅读1.5k次。默认自动收集统计信息的时间为晚上10点(周一到周五,4个小时),早上6点(周六,周日,20个小时)由于平时默认每天只收集4小时,时间有点短了,改成每天可收集8小时。oracle 18c中默认是打开的。查看当前自动收集统计信息的时间。_oracle自动收集统计信息
文章浏览阅读929次,点赞18次,收藏20次。只有assm(Automatic Shared Memory Management)模式可以使用大页,需要关闭amm(Memory Manager Process)HugePages_Free: 306 (空闲306页,已使用306-306=0页)防止oracle使用的内存交换,所以设置的大小与oracle配置的sga、pga相关。HugePages_Rsvd: 0 (操作系统承诺给oracle预留的页数)HugePages_Total: 306 (总共306页)_oracle11g 大页
文章浏览阅读801次。例如:10046:0,1,4,8,12。默认redo日志有三个,大小为50M,循环覆盖使用。redo log再覆盖之前,会被归档,形成归档日志。答:不同事件,不同级别。trace的不同级别?_oracle 日志
文章浏览阅读4.2k次,点赞84次,收藏77次。主要讲解MySQL中SQL的DDL语句,其中包括对数据库和表的一系列操作。_sql ddl 新增字段 mysql
文章浏览阅读1.1k次。ON DEMAND:仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性;ON COMMIT:一旦基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。Method =>'C',物化视图有三种刷新方式:COMPLETE、FAST和FORCE。物化视图会占用空间,一半可用于大量数据查询时,减缓主表的查询压力使用。例如创建一个物化视图,让对接单位查询。_oracle物化视图定时刷新
文章浏览阅读713次,点赞21次,收藏18次。1.背景介绍在当今的大数据时代,数据量越来越大,传统的关系型数据库已经无法满足业务需求。因此,NoSQL数据库技术迅速崛起,成为企业和开发者的首选。Oracle NoSQL Database是Oracle公司推出的一款分布式NoSQL数据库产品,具有高性能、高可用性和易于扩展等特点。在本文中,我们将深入了解Oracle NoSQL Database的集成与开发者工具,帮助您更好地掌握这款产品的...
文章浏览阅读2.5k次,点赞2次,收藏4次。今天遇见一个问题需要将字段中包含中文字符串的筛选出来。_oracle查询包含中文字符
文章浏览阅读802次。arcmap 在oracle删除表重新创建提示表名存在解决放啊
文章浏览阅读4.3k次,点赞2次,收藏4次。Oracle连接数据库提示 ORA-12638:身份证明检索失败_ora-12638
文章浏览阅读3.4k次,点赞6次,收藏25次。etc/profile是一个全局配置文件,所有用户登录都会使用该文件构建用户环境。与windows配置环境变量是一个道理。选择Linux系统,找到适合自己系统的安装包,我的是CentOS 8 x64。接下来需要登陆Oracle账户才能下载,无账户的可以自己注册一个。Linux中export 命令用于设置或显示环境变量。模式,利用上下键到文档最后,添加以下代码。出现如图所示版本号字样,则说明安装成功。点击下载,勾选1,点击2。记住完整路径用于后面配置。找到Java并点击进去。往下翻,找到Java8。_linux安装jdk1.8
文章浏览阅读2.4w次,点赞26次,收藏109次。JDK 是的简称,也就是 Java 开发工具包。JDK 是整个 Java 的核心,其中JDK包含了 Java 运行环境(Java Runtime Envirnment,简称 JRE),Java 工具(比如 javac、java、javap 等等),以及 Java 基础类库(比如 rt.jar)。最主流的 JDK 是Oracle公司发布的 JDK,除了 Oracle JDK(商业化,更稳定)之外,还有很多公司和组织开发了属于自己的 JDK,比较有名的有IBM JDK(更适合 IBM) 和OpenJDK。_jdk安装教程
文章浏览阅读7.5w次。出现 “java.sql.SQLNonTransientConnectionException:Could not create connection to database server” 的错误通常是由于无法连接到数据库服务器引起的。_java.sql.sqlnontransientconnectionexception: could not create connection to
文章浏览阅读849次,点赞7次,收藏10次。在ClickHouse中创建用户、数据库并进行权限分配是一个重要的管理任务,它涉及到安全性和访问控制。下面是一个基本的指南来帮助你完成这些操作:1. 创建数据库首先,需要创建一个数据库。使用以下命令:CREATE DATABASE IF NOT EXISTS your_database_name;将 your_database_name 替换为你想要的数据库名。2. 创建用户接下来,创建一个新用户。使用以下命令:CREATE USER your_username IDENTIFIED WIT_在clickhouse中如何创建用户 赋权
文章浏览阅读1.2k次,点赞53次,收藏39次。本文是一篇关于Oracle数据库安装和使用的博文摘要。作者以轻松幽默的笔调介绍了自己在实验中掌握的Oracle数据库基本操作,包括使用组件查看命令、配置数据库监听器等。作者也分享了在实验中遇到的一些有趣问题,如SQL语句缺少分号导致的意外错误。此外,作者还强调了登录sys用户和启动实例加载数据库的注意事项,并鼓励读者面对挑战时保持乐观,不断提升自己的能力。整体风格风趣严谨,引人入胜。
文章浏览阅读820次,点赞17次,收藏16次。KingbaseES、xml、dbms_xmlgen、SETSKIPROWS、人大金仓、KingbaseES兼容Oracle包dbms_xmlgen的功能是通过SQL查询将关系表中数据转化为XML文档。转化方式一共有两种:(1)通过查询字符串直接转化。(2)通过上下文句柄转化。对于通过查询字符串直接转化的方式,无法跳过若干行进行查询,只能直接将表格中的所有数据转化为XML文档。