Oracle导出和导入数据
Oracle导出和导入数据
查看Oracle安装目录(如expdp是全局命令则可以忽略)
# 如服务器上已安装Oracle,则可以通过此命令查看Oracle的安装目录
echo $ORACLE_HOME
# 获取可以创建一个目录对象
CREATE DIRECTORY ORACLE_HOME AS '/path/to/directory';
# 切换到输出目录下的/bin/expdp,如上步骤输出的为/oracle/products/11.2.0.4/db,则执行以下命令
cd /oracle/products/11.2.0.4/db/bin/expdp
执行以下命令备份数据库
nohup ./expdp system/password@orcl dumpfile=full_231116.dmp full=y logfile=full_231116.log directory=DATA_PUMP_DIR buffer=65535 job_name=eom_full_job_2 parallel=6 compression=all > /home/oracle/temp/export_full_231116.out &
system/hzwq#2017@orcl是数据库的链接、账号和密码
directory=DATA_PUMP_DIR 指定了导入文件所在的目录对象,可以链接数据库后执行SELECT * FROM all_directories WHERE directory_name = 'DATA_PUMP_DIR'; 查询备份文件地址
dumpfile=eom_backup_file.dmp指定了导出的文件名称
logfile=eom_backup_log.log指定了导出中的日志文件名称
tablespaces=EOM,EAS,WYY指定了需要导出的表空间,多个使用英文逗号分隔
job_name 指定任务名称
parallel 设置并行,可以提高导出速度
compression 指定压缩级别
最后的&符合可以使其后台运行,后台运行后可以通过监控日志文件的方式查看进度
执行以下命令导入备份数据
查看导出文件路径
SELECT directory_path FROM all_directories WHERE directory_name = 'DATA_PUMP_DIR';
执行导入命令
impdp system/hzwq#2017@orcl DIRECTORY=datapump DUMPFILE=eom_backup_file.dmp LOGFILE=eom_backup_log.log SCHEMAS=hr
导出速度优化
-- 导出前禁用约束
alter table tablename disable constrnt all;
-- 导出后启用约束
alter table tablename enable constrnt all;
停止导出任务
-- 查看执行脚本名称
select job_name,state from dba_datapump_jobs;
-- attach的值为任务名称
./expdp system/hzwq#2017@orcl attach=EOM_FULL_JOB
-- 进入expdp命令后输入以下命令停止任务
stop_job=immediate