Oracle 导出 & 导入 - zLulus/My_Note GitHub Wiki
部分内容摘抄自有关ORACLE数据库备份的总结、Oracle中如何创建数据库
导出exp
登录数据库所在服务器
使用管理员身份运行命令提示符
执行导出命令
exp userName/password file=D:\BACKUP\yourdatabase.dmp buffer=100000 compress=N indexes=N direct=N rows=Y consistent=N log=D:\BACKUP\yourdatabase-log.log
参数
exp
[USERID=name/passwd] 用户名密码相关信息
[BUFFER=xx byte] 数据缓冲区大小
[File=输出文件全路径] 导出的文件输出路径
[TABLES=需要导出的表名,表名间已 ' , ' 分隔] 导出的数据表
[COMPRESS=Y/N 导入到一个区]
[RECORDLENGTH=xx] IO记录的长度,单位byte
[INDEXES=Y/N] 导出索引
[DIRECT=Y/N] 直接路径
[LOG=日志文件路径] 屏幕输出的日志文件
[ROWS=Y/N] 是否导出数据行,默认为Y,若为N,则只导出表结构
[CONSISTENT=Y/N] 交叉表的一致性
[FILESIZE=xx byte] 每个转储文件的最大大小,当导出的文件大小超过该值时,会生产新的文件。
[QUERY="where 条件语句"] 用户导出表的子集的select子句,用于导出部分数据,该参数在 Windows、Linux下是不同的。Linux下需要添加'\'转义符。
[CONSTRAINTS=Y/N] 是否导出约束条件
[GRANTS=Y/N] 是否导出授权信息
[STATISTICS=NONE/COMPUTE/ESTIMATE] 分析对象
导入imp
目标是在一个新的表空间里面还原数据
先新建表空间A并创建授权的用户,参考资料Oracle中如何创建数据库
使用管理员身份运行命令提示符
执行导入命令
imp scott/scott file=/home/oracle/work/emp_exp_imp.dmp buffer=100000 tables=table1,table2 compress=N indexes=N direct=N rows=Y grants=Y consistent=N constraints=Y log=/home/oracle/work/emp_exp_imp.log query=\"where EMPNO \> 7600\"
参数
imp
参数与EXP类似,
[USERID]
[BUFFER]
[FROMUSER=用户列表] 所有者用户列表
[TOUSER=用户列表] 导入的目标用户列表,与fromuser相对应
[FILE=输入文件的路径信息]
[TABLES=导入的表名信息]
[IGNORE=Y/N] 是否忽略错误信息,若忽略,则无论导入的数据库是否有重复数据都会将数据导入,且无错误信息。
[COMMIT=Y/N] 提交数组插入。默认为N,表示导完一张表后就进行提交;若设为Y,则表示,只有当缓冲区数据满时,才会提交,建议为Y,这样可以减少回滚段大小。
[GRANTS=Y/N] 是否导入权限信息
[STATISTICS=ALWAYS/NONE/SAFE/RECALCULATE] 统计信息,统计导入过程的相关信息
[INDEXES=Y/N] 导出索引
[RECORDLENGTH=xx] IO记录的长度,单位byte
[ROWS=Y/N] 是否导入数据行,默认为Y,若为N,则只导入表结构
[CONSTRAINTS=Y/N] 是否导入约束条件
导入impdp
创建表空间
create tablespace REGCERT3
datafile 'REGCERT3.dbf' size 50M autoextend on
创建用户
create user ccc3 identified by 123456
default tablespace REGCERT3
TEMPORARY TABLESPACE temp
ccc3是用户名,123456是密码
赋予权限
grant connect,resource,dba to ccc3
创建虚拟目录
create directory expnc_dir as 'D:\BACKUP'
注意,D:\BACKUP实际上没有被Oracle创建,需要手动创建,并放入.dmp文件
导入数据
cmd执行
impdp 'sys/syspassword@ORCL as sysdba' directory=expnc_dir dumpfile=FULL.DMP remap_schema=SOURCE_USER:ccc3
或者
impdp ccc3/123456 directory=expnc_dir dumpfile=FULL.DMP
参考资料
imp&exp impdp&expdp的区别
Oracle基础 exp/imp和expdp/impdp的区别
oracle数据导入导出的几种方式
Oracle的数据 导入与导出-数据库(27)
oracle数据的导入导出(两种方法三种方式)
Oracle导出导入dmp文件(exp.imp命令行)