Oracle数据库备份与恢复之exp/imp
Oracle数据库备份与恢复之exp/imp
1.1 基本命令
1. 获取帮助
exp help=y
导出使用exp命令来完成的,该命令常用的选项有:
userid: 用于指定执行导出操作的用户名,口令,连接字符串
tables: 用于指定执行导出操作的表
owner: 用于指定执行导出操作的方案
full=y: 用于指定执行导出操作的数据库
rows: 用于指定执行导出操作是否要导出表中的数据
file: 用于指定导出文件名
imp help=y
imp常用的选项有:
userid: 用于指定执行导入操作的用户名,口令,连接字符串
tables: 用于指定执行导入操作的表
formuser: 用于指定源用户
touser: 用于指定目标用户
file: 用于指定导入文件名
full=y: 用于指定执行导入整个文件
inctype: 用于指定执行导入操作的增量类型
rows: 指定是否要导入表行(数据)
ignore: 如果表存在,则只导入数据
2. 三种工作方式
(1)交互式方式
exp // 然后按提示输入所需要的参数
(2)命令行方式
exp user/pwd@dbname file=/oracle/test.dmp full=y //命令行中输入所需的参数
(3)参数文件方式
exp parfile=username.par // 在参数文件中输入所需的参数
参数文件 username.par 内容 userid=username/userpassword buffer=8192000 compress=n grants=y file=/oracle/test.dmp full=y
3. 三种模式
(1)表方式,将指定表的数据导出/导入。
导出:导出一张或几张表:
导出格式:exp用户名/密码@数据库实例file=保存路径 tables = ...
a.导出自己的表
expuserid=scott/tiger@myoral tables=(emp,dept) file=d:\e1.dmp
注:userid= 可以省略,但scott/tiger@myoral必须紧跟exp的后面.
b.导出其它方案的表
如果用户要导出其它方案的表,则需要dba的权限或是exp_full_database的权限,比如system就可以导出scott的表
expuserid=system/manager@myoral tables=(scott.emp) file=d:\e2.emp
c.导出表的结构
expuserid=scott/tiger@accp tables=(emp) file=d:\e3.dmp rows=n
d. 使用直接导出方式
expuserid=scott/tiger@accp tables=(emp) file=d:\e4.dmp direct=y
这种方式比默认的常规方式速度要快,当数据量大时,可以考虑使用这样的方法。 这时需要数据库的字符集要与客户端字符集完全一致,否则会报错...
e. 导出某张表的部分数据
经测试,在windows平台只能使用参数文件方式使用query能正常导出
在D:\ 创建a.txt 内容:file=d:\someemp.dmp tables=emp query="where deptno=10"
exp user/pwd@orcl parfile=d:\a.txt
导入:导入一张或几张表
导入格式:imp用户名/密码@数据库实例file=保存路径tables = ...
a. 导入自己的表
imp userid=scott/tiger@myorcl tables=(emp) file=d:\xx.dmp
b. 导入表到其它用户 要求该用户具有dba的权限,或是imp_full_database
imp userid=system/tiger@myorcl tables=(emp) file=d:\xx.dmp touser=scott
c. 导入表的结构 只导入表的结构而不导入数据
imp userid=scott/tiger@myorcl tables=(emp) file=d:\xx.dmp rows=n
d. 导入数据 如果对象(如比表)已经存在可以只导入表的数据
imp userid=scott/tiger@myorcl tables=(emp) file=d:\xx.dmp ignore=y
(2)用户(方案)方式,将指定用户的所有对象及数据导出/导入。
导出格式:exp用户名/密码@数据库实例file=保存路径 owner = ...
a. 导出自己的方案
exp userid=scott/tiger@myorcl owner=scott file=d:\scott.dmp
b. 导出其它方案
如果用户要导出其它方案,则需要dba的权限或是exp_full_database的权限,比如system用户就可以导出任何方案
exp userid=system/manager@myorcl owner=(system,scott) file=d:\system.dmp
导入格式:imp用户名/密码@数据库实例file=保存路径 touser = ...
1. 导入自身的方案
imp userid=scott/tiger file=d:\xxx.dmp
2. 导入其它方案 要求该用户具有dba的权限
imp userid=system/manager file=d:\xxx.dmp fromuser=system touser=scott
(3)全库(数据库)方式,将数据库中的所有对象导出/导入导出:
导出数据库:expuserid=system/manager@orclfull=yfile=d:\all.dmp
导入数据库:
在默认情况下,当导入数据库时,会导入所有对象结构和数据,案例如下:
imp userid=system/manager full=y file=d:\xxx.dmp
上一篇: Linux下恢复数据库
下一篇: JAVA导出EXCEL