oracle19c数据库备份(.dmp)

Linux下oracle数据库本地备份

背景:oracle19c、linux、数据库备份

一、编写备份脚本并授权

#引用环境变量;如果不引用环境变量可能会导致定时任务导出空包
#!/bin/bash
source /etc/profile
source ~/.bash_profile
#脚本正文
export DATA_DIR=/backup
export LOGS_DIR=/backup
export DELTIME=`date -d "5 days ago" +%Y%m%d`
export BAKUPTIME=`date +%Y%m%d%H%M%S`
echo "Starting bakup..."
echo "Bakup file path $DATA_DIR/$BAKUPTIME.dmp"
#写上你自己的用户名/密码;如有@等特殊字符,加'""''smpm/"Mpm@1234"' 
expdp smpm/Mpm1234  dumpfile=$BAKUPTIME.dmp log=$BAKUPTIME.log directory=mydata schemas=smpm;
echo "backup file success..."
tar -zcvPf $DATA_DIR/$BAKUPTIME.tar.gz $DATA_DIR/$BAKUPTIME.dmp $DATA_DIR/$BAKUPTIME.log --remove-files
echo "tar the file bakup successfully. "
find  $DATA_DIR -name "*.gz" -ctime +5 -exec rm -rf {} \;
echo "Bakup completed."

注意:脚本中directory需要和前面的/backup路径一直;创建directory如下

#创建directory
CREATE  DIRECTORY mydata AS '/backup';
#查询directory:
SELECT * from dba_directories;

使用root账户授予脚本执行权限

[root@localhost ~]# cd /home/oracle/
[root@localhost oracle]# ll
总用量 52
-rw-r-----. 1 oracle oinstall 26499 83 15:20 dbca.rsp
-rw-r--r--. 1 oracle oinstall 19872 83 15:14 db.rsp
drwxr-xr-x  2 oracle oinstall    89 911 17:42 oracledmp
-rwxr-xr-x  1 oracle oinstall   652 912 13:51 P_DB_BAK.sh
drwxr-xr-x. 2 oracle oinstall     6 83 15:12 公共
drwxr-xr-x. 2 oracle oinstall     6 83 15:12 模板
drwxr-xr-x. 2 oracle oinstall     6 83 15:12 视频
drwxr-xr-x. 2 oracle oinstall     6 83 15:12 图片
drwxr-xr-x. 2 oracle oinstall     6 83 15:12 文档
drwxr-xr-x. 2 oracle oinstall     6 83 15:12 下载
drwxr-xr-x. 2 oracle oinstall     6 83 15:12 音乐
drwxr-xr-x. 2 oracle oinstall     6 83 15:12 桌面
[root@localhost oracle]# pwd
/home/oracle
[root@localhost oracle]# chmod +x P_DB_BAK.sh

备份目录/backup的属主需要为oracle,属组要为oninstall,命令为:
chown -R oracle:oinstall /backup/

二、设置定时任务

假设设置定时任务每天下午13:53定时执行.并且会自动删除5天前的数据,
编辑系统任务执行计划crontab -e
53 13 * * * /home/oracle/P_DB_BAK.sh #每天下午13:53,以oracle用户自动执行P_DB_BAK.sh备份文件

#使用绝对路径
[oracle@localhost ~]$ crontab -l
53 13 * * *  /home/oracle/P_DB_BAK.sh

查看备份文件:

#我的directory路径为/u01/app/oracle/mydata
[oracle@localhost ~]$ cd /u01/app/oracle/mydata/
[oracle@localhost mydata]$ ll
总用量 828
-rw-r--r-- 1 oracle oinstall     60 912 13:52 :
-rw-r----- 1 oracle oinstall 323584 912 10:45 20230912104408.dmp
-rw-r--r-- 1 oracle oinstall   1558 912 10:45 20230912104408.log
-rw-r----- 1 oracle oinstall 335872 912 10:55 20230912105438.dmp
-rw-r--r-- 1 oracle oinstall   1637 912 10:55 20230912105438.log
-rw-r--r-- 1 oracle oinstall  31634 912 11:05 20230912110454.tar.gz
-rw-r--r-- 1 oracle oinstall  31598 912 11:15 20230912111424.tar.gz
-rw-r--r-- 1 oracle oinstall  31896 912 11:27 20230912112645.tar.gz
-rw-r--r-- 1 oracle oinstall  31920 912 11:29 20230912112901.tar.gz
-rw-r--r-- 1 oracle oinstall  31627 912 13:53 20230912135301.tar.gz

##三、恢复备份

当oracle需要恢复数据时,在/backup文件夹下找到需要备份的数据,使用su - oracle切换
本地备份:
到oracle用户下执行以下命令即可:
impdb 账号/密码DIRECTORY=mydata备份路径 DUMPFILE=full.dmp(根据实际备份文件名情况修改) schemas=用户;

远程备份:
使用imp导入
imp 账户/密码@ip:端口/服务名file=export.dmp fromuser=用户名 touser=用户名;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值