oracle普通导出导入

原始的普通导出导入工具,是一个客户端工具。使用导出工具(export utility简称exp)是将数据从oracle数据库以二进制形式写入操作系统文件,这个文件存储在数据库之外,并且可以被另一个数据库使用导入工具(import utility简称imp)读入。

注意:从oracle11g开始,不再支持oracle导出导入的使用(不再支持,但11g还可以使用这个功能)。唯一支持的是使用导出导入将XMLType数据向后迁移至10g或者更早版本。

参照

https://docs.oracle.com/cd/E11882_01/server.112/e22490/original_export.htm#BABBHCIE

https://docs.oracle.com/cd/E11882_01/server.112/e22490/original_import.htm#i1023560

exp

exp导出工具提供了一种在oracle数据库之间传输数据对象的简单方式,即使这些数据库是位于不同硬件和软件配置的平台上。

当在oracle数据库使用exp时,对象会被抽取,与被抽取对象相关的任何对象也会被抽取。

一个导出文件,是一个oracle二进制格式的文件,会被存储在硬盘或者磁带。这个文件可以被使用FTP传输或者物理传输到不同的站点,可以作为普通备份的补充。

exp文件只能被oracle imp工具读取,imp工具的版本不能早于exp工具的版本。

也可以在不做imp的情况下显示exp文件的内容,要做这个,需要使用imp show parameter。要从ASCII固定格式或者分隔符文件加载数据,要使用SQL*Loader utility。

前置要求

要使用exp,需确保如下三点

  • 若是手动创建的数据库,确保已经运行了catexp.sql或者catalog.sql脚本。若是使用dbca创建的,则不必运行。
  • 确保有足够多的磁盘空间
  • 确保有必要的访问权限。

参数说明

本部分是对于exp命令参数的描述

buffer 默认值取决于操作系统,按照字节指定用于获取rows的缓存大小。

compress 默认值y

file 默认是expdat.dmp,指定导出文件的名称,默认的扩展名是.dmp,也可以指定任何扩展名。exp支持导出多个exp文件,你可以指定多个文件名称使用。

当导出文件达到指定的filesize大小后,exp会停止想当前文件写入,打开另一个file参数中指定名称的exp文件,导出继续直至完成或者再次达到filesize大小。

full 默认值n,full=y是导出整个数据库,此时需要exp_full_database角色。

log 默认值none,指定一个文件名,接收导出时的信息和错误消息。

owner 默认值none,说明导出是按照用户模式导出,把要导出的用户列表放在后面

query 默认值none,表模式导出时,用于筛选表的子集进行导出。

tables 默认值none,表模式导出时,在该参数后罗列需要导出的若干表。

实例演示

完整库模式

EXP 用户名/密码@网络服务名 FULL=Y FILE=路径/文件名.dmp LOG=路径/文件名.log

--如:

exp test2/test2@orcltns file=test240807.dmp log=test240807.log full=y buffer=64000

exp test2/test2@orcltns file=test240808.dmp log=test240808.log

备注:file后的文件忘了加扩展名.dmp,不影响导出导入

要使用@orcltns网络服务名,需要创建tns服务名,并重启监听,详见其后的截图

用户模式

-- 按用户导出,不指定owners参数时,默认是用户名/密码中的那个用户的所有对象

EXP 用户名/密码@网络服务名 OWNERS=user1,user2,… FILE=路径/文件名.dmp LOG=路径/文件名.log

exp test2/test2@orcltns owner=test2,test3 file=test240809.dmp log=test240809.log

exp test2/test2@orcltns file=test240809.dmp log=test240809.log

表模式

--1.指定表导出

EXP 用户名/密码@网络服务名 TABLES=table1,table2,… FILE=路径/文件名.dmp LOG=路径/文件名.log

exp test2/test2@orcltns tables=t_od_bd_material,t_od_bd_stordoc file=test240809.dmp log=test240809.log

--2.导出时不导出表的数据,对比上图,并没有显示导出了多少行数据

EXP 用户名/密码@网络服务名 TABLES=table1,table2,… ROWS=N FILE=路径/文件名.dmp LOG=路径/文件名.log

exp test2/test2@orcltns tables=t_od_bd_material,t_od_bd_stordoc rows=n file=test240809.dmp log=test240809.log

--3.导出表时加入对数据的要求

EXP 用户名/密码@网络服务名 TABLES=tableName FILE=路径/文件名.dmp LOG=路径/文件名.log QUERY = \”WHERE 条件一 OR|AND 条件二\”

exp test2/test2@orcltns tables=t_od_bd_material file=test240809.dmp log=test240809.log query=\" where code like \'02\' \"

exp test2/test2@orcltns tables=t_od_bd_material file=test240809.dmp log=test240809.log query=\" where code like \'02%\' \"

imp

前置要求

要使用exp,需确保如下两点

  • 若是手动创建的数据库,确保已经运行了catexp.sql或者catalog.sql脚本。若是使用dbca创建的,则不必运行。
  • 确保有必要的访问权限。

参数说明

data_only 默认值n,若要从导出文件中只导入数据而不包含元数据,指定data_only=y。

file 默认值expdat.dmp,指定要用于导入的导出文件名。默认扩展名是.dmp。

fromuser 默认值none,若导出文件中含多个schemas,可以使用该参数指定一个或者多个user,用逗号分割,进行导入。

full 默认值y,指定是否导入完整的导出文件。

log 默认值none,指定文件记录导入信息。

touser 默认值none,指定用户名称列表,这些用户的schema是要导入的目标。这些用户名必须在导入操作前就存在,否则会报错。imp_full_database角色要求要使用这个参数。要将一个schema包含的对象导入到另一个schema,要指定touser。

ignore 默认值n 是否忽略导入过程中创建数据库对象时的错误。

实例演示

--1.全库导入

IMP 用户名/密码@网络服务名 FULL=Y FILE=路径/文件名.dmp LOG=路径/文件名.log

imp test2/test2@orcltns full=y file=test240809.dmp log=test2408092.log

--2.按用户导入(同名用户可以不指定用户)

IMP 用户名/密码@网络服务名 FILE=路径/文件名.dmp FROMUSER=导出的用户名 TOUSER=导入的用户名 LOG=路径/文件名.log

exp test3/test3@orcltns file=test240812.dmp log=test240812.log

imp test4/test4@orcltns file=test240812.dmp fromuser=test3 touser=test4 log=test2408122.log

--3.指定表导入

IMP 用户名/密码@网络服务名 TABLES=table1,table2,… FILE=路径/文件名.dmp FROMUSER=导出的用户名 TOUSER=导入的用户名 LOG=路径/文件名.log ignore=y

exp test3/test3@orcltns file=test240812.dmp log=test240812.log

imp test4/test4@orcltns file=test240812.dmp tables=ttable fromuser=test3 touser=test4 log=test2408122.log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值