一、备份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