一、备份Oracle数据库
1.使用数据库管理员账户登录
sqlplus system/system@orcl as sysdba;
2.创建备份目录,并指定备份目录(bak_dir)的物理路径
create or replace directory bak_dir as '/Oracle/OraBackupFile/Data';
3.将“bak_dir”的读、写和执行权限赋给数据库用户(lpattendance)
grant all on directory bak_dir to lpattendance;
commit;
4.执行备份脚本
expdp lpattendance/lpattendance@orcl directory=bak_dir dumpfile=bak.dmp logfile=bak.log;
二、还原Oracle数据库
1.还原数据库
impdp lpattendance/lpattendance@orcl directory=bak_dir table_exists_action=truncate dumpfile=bak.dmp
2.还原数据库到指定用户
impdp mytest/mytest@orcl directory=bak_dir table_exists_action=truncate dumpfile=bak.dmp remap_schema=lpattendance:mytest
三、自动备份Oracle数据库
1.新建备份脚本
export ORACLE_BASE=/Oracle/OraDataBase/oracle
export ORACLE_HOME=/Oracle/OraDataBase/oracle/product/10201
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export DATA_DIR=/Oracle/OraBackupFile/Data
export BAKUPTIME=`date +%Y%m%d%H%M%S`
export DELTIME=`date -d "7 days ago" +%Y%m%d` expdp lpattendance/lpattendance@orcl directory=bak_dir dumpfile=$BAKUPTIME.dmp logfile=$BAKUPTIME.log #删除7天前的备份文件
rm -rf $DATA_DIR/$DELTIME*.dmp
rm -rf $DAta_DIR/$DELTIME*.log
注:如报“expdp command not found”错误,则将expdp命令加上对应的路径“$ORACLE_HOME/bin/expdp”
2.添加到定时任务
每天22点执行备份
crontab -e * 22 * * * /Oracle/OraBackupFile/Lpattendance/bakup.sh