使用Oracle自带工具实现数据库备份与迁移(一)

才疏学浅,欢迎批评指正

使用Oracle自带的exp和imp实现数据库的备份与迁移
一.exp和imp
从exp和imp是oracle提供的传统方法用来实现数据的备份与迁移,适用于数据量不是很大的情况;数据量较大时可以使用数据泵(expdp/impdp)的方法,可见 https://blog.csdn.net/xinxindiandeng9789/article/details/88198204
1.说明

exp和imp是oracle客户端工具,它既可以在客户端使用,也可以在服务器端使用;
exp命令用于导出数据;
exp可以将数据从数据库所在的服务器端机器导出到客户端机器,在数据库备份与迁移的过程中可以不直接接触服务器端的机器;
imp命令用于导入数据;
imp可以将数据从客户端机器或服务器端机器导入数据库;

2.exp语法总结

  • exp xx/xx@test file=d:\oracle\exp.dmp full=y log=full.log
    使用xx用户将数据库test全部导出至d:\oracle\exp.dmp,日志文件为full.log
    exp 用户名/密码@数据库名 file=导出文件位置 full=y log=日志文件名称

  • exp xx/xx@test file=d:\oracle\exp.dmp owner=(xx1,xx2)
    使用xx用户将xx1、xx2用户下的数据全部导出至d:\oracle\exp.dmp
    exp 用户名/密码@数据库名 file=导出文件位置 owner=用户名称

  • exp xx/xx@test file=d:\oracle\exp.dmp tables=(table1,table2)
    使用xx用户将table1、table2导出至d:\oracle\exp.dmp
    exp 用户名/密码@数据库名 file=导出文件位置 tables=(表的名称)

  • exp xx/xx@test buffer=100 file=(exp1.dmp,exp2.dmp) filesize=100M tables=(table1,table2) owner=(xx1) log=full.log
    使用xx用户将xx1用户下的table1、table2导出至exp1.dmp,exp2.dmp中,数据缓冲区大小为100字节,转储文件最大为100M,日志文件为full.log
    exp 用户名/密码@数据库名 buffer=缓冲区大小 file=(导出文件1,导出文件2) filesize=转储文件最大值 tables=(表1名称,表2名称) owner=(所属用户) log=日志文件
    注:在使用exp导出较大的表时,可以将其转存为若干转储文件,转储文件最大大小为fillsize

常用参数
file:指定导出文件放置路径;
log:指定日志文件路径;
tables:导出指定表;
full:完全导出整个文件(N);
rows:导出数据行(Y);
query:用于导出表的子集的 select子句,需根据需求编写查询语句;
buffer:数据缓冲区大小。
filesize:转储文件大小

3.imp语法总结

  • imp xx/xx file=d:\oracle\imp.dmp full=y log=full.log
    导入d:\oracle\imp.dmp文件,日志文件为full.log
    imp 用户名/密码 file=导入文件位置 full=y log=日志文件名称

  • imp xx/xx file=d:\oracle\imp.dmp fromuser=xx1 log=full.log
    导入d:\oracle\imp.dmp文件中xx1所属的全部表,日志文件为full.log
    imp 用户名/密码 file=导入文件位置 fromuser=来源用户名 log=日志文件名称

  • imp xx/xx file=d:\oracle\imp.dmp fromuser=xx1 tables=(table1,table2) log=full.log
    导入d:\oracle\imp.dmp文件中xx1用户下的table1,table2,日志文件为full.log
    imp 用户名/密码 file=导出文件位置 fromuser=来源用户名 tables=(表的名称) log=日志文件名称

  • imp xx/xx file=d:\oracle\imp.dmp fromuser=xx1 touser=xx2 log=full.log
    导入d:\oracle\imp.dmp中xx1所属的数据到用户xx2中,日志文件为full.log
    imp 用户名/密码 file=导入文件位置 fromuser=来源用户名 touser=目标用户名 log=日志文件名称

  • imp xx/xx file=(imp1.dmp,imp2.dmp) fromuser=xx1 touser=xx2 tablespaces=xxspace ignore=Y log=full.log
    导入imp1.dmp,imp2.dmp文件中属于xx1的数据到xx2中,指定表空间空间xxspace,日志文件为full.log
    imp 用户名/密码 file=(导入文件1,导入文件2) fromuser=来源用户名 touser=目标用户名 tablespaces=指定的表空间名称 ignore=Y log=日志文件名称

常用参数
file:指定导入文件路径;
log:指定日志文件路径;
ignore:忽略创建错误:
设置Y:表存在时不会建表,忽略建表错误;
设置Y:表没有唯一性约束,导入全部数据;表有唯一性约束,只导入符合约束的数据;
fromuser:数据来源的用户名;
touser:要导入的用户名;
tables:导入指定表;
full:完全导入整个文件;
rows:导出数据行;
show: 只列出文件内容,不执行导入
tablespaces:指定导入的表空间名称

你可能感兴趣的:(数据库,Oracle,Oracle,数据库)