expdp简单使用(入门)

173 阅读1分钟

在维护Oracle数据库时,expdp是一个常用工具。下面简单介绍下使用方法(适合Oracle入门级选手)

创建目录

--创建导出目录
CREATE OR REPLACR DIRECTORY 目录名称 as '磁盘路径';

--查看数据库目录 
select * from all_directories; 

创建用户

CREATE USER EXPDPUSER IDENTIFIED BY "密码";

创建Oracle用户时,建议用户名为大写

用户授权

GRANT CONNECT,RESOURCE,EXP_FULL_DATABASE TO "用户名"; 
GRANT READ,WRITE ON DIRECTORY DUMP_DIR TO "用户名"; 
GRANT UNLIMITED TABLESPACE TO "用户名";

导出数据

将以下脚本保存为shell脚本,修改参数后即可执行备份

##用户每次登录设置一次环境变量  
if [ -f ~/.bash_profile ];
then
  . ~/.bash_profile
fi

##修改实例名
export instance_name=INSTANCE_NAME

##修改用户
export expdpuser=USERNAME
export password=PASSWORD
export schemas=USERNAME
##时间格式
export time=`date '+%Y%m%d%H%M'`

##备份所有对象数据
expdp \'''${expdpuser}'/"'${password}'"'@${instance_name}\' directory=dump_dir JOB_NAME="$instance_name"_"$schemas"_ALL_"$time" dumpfile="$instance_name"_"$schemas"_ALL_"$time"_%U.dmp logfile="$instance_name"_"$schemas"_ALL_"$time".log full=y compression=all metrics=y exclude=STATISTICS parallel=8
##备份某个schema所有数据
expdp \'''${expdpuser}'/"'${password}'"'@${instance_name}\' directory=dump_dir JOB_NAME="$instance_name"_"$schemas"_ALL_"$time" dumpfile="$instance_name"_"$schemas"_ALL_"$time"_%U.dmp logfile="$instance_name"_"$schemas"_ALL_"$time".log schema="$schemas" compression=all metrics=y exclude=STATISTICS parallel=8
##备份某个schema指定表数据
##修改tables后的参数
##expdp \'''${expdpuser}'/"'${password}'"'@${instance_name}\' directory=dump_dir dumpfile="$instance_name"_"$schemas"_TABLES_"$time".dmp logfile="$instance_name"_"$schemas"_TABLES_"$time".log tables=USERNAME.TABLENAME1,USERNAME.TABLENAME2 compression=all metrics=y parallel=8
##COMPRESSION:all/data_only/metadata_only/none/DEFAULT
##metrics:导出日志记录了每个对象的导出时间

作业相关

 终止数据泵作业 

--先查到这个作业的名称
select * from DBA_DATAPUMP_JOBS;

--shell中输入下面命令,查看作业的属性
--"$expdpuser""$password"参照导出脚本中的修改
--"$instance_name"_"$schemas"_ALL_"$time"从数据库中查出实际名字
$ impdp "$expdpuser"/"$password" attach="$instance_name"_"$schemas"_ALL_"$time"

--根据需求执行以下命令 
--stop_job=immediate
--kill_job
--continue_client