linux下进行Oracle自动备份配置

目录

特别注意

配置导出文件夹  

编写自动备份脚本Centos7执行脚本

设置自动执行 使用到 crontab 命令

设置开机自启

整理不易,请仔细阅读,希望对你有帮助

可自行复制粘贴,仅供参考,如有问题请及时私信或评论,我会一一回复


特别注意

     设置自动备份保证数据库和监听都启动起来了,数据库能够正常连接 数据库的安装有问题可以查看主页有详细教程。

配置导出文件夹  

在虚拟机中创建文件夹  mkdir oracle_dmp

查看当前路径 pwd 复制路径

打开plsql 登录sys 账户

1.设置导出的dmp文件存放目录

create or replace directory expdp_dir as '/opt/oracle_dmp';

查看管理员目录,检查是否存在

select * from dba_directories;

2.授权目录权限(查询指定目录sql select * from dba_directories)

grant read,write on directory expdp_dir to 用户名;

3.linux给Oracle用户授予文件夹的权限

chown -R oracle:oinstall /opt/oracle_dmp

chmod -R 775 /opt/oracle_dmp

4.执行命令 成功案例(测试 是否导出成功)

expdp c_yhpt_etl/[email protected]:1521/oradb DIRECTORY=expdp_dir dumpfile=yhjw%DATE%.dmp schemas=c_yhpt_etl compression=ALL logfile=yhjw%DATE%.log

编写自动备份脚本Centos7执行脚本

(1)编写oracle_bak.sh脚本

# vi /opt/oracle_dmp/oracle_bak.sh

内容如下:

#!/bin/sh

echo “现在开始进行数据备份…”

export PATH

export ORACLE_SID=oradb

export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1/

export PATH=$ORACLE_HOME/bin:$PATH

export LANG=C

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

date_now=$(date +%Y%m%d) #获取当前时间

days=7 #设置删除7天前备份文件

bak_dir=/opt/oracle_dmp #备份实际存放路径,backdir 为directory中定义路径

dmpname=tp_data

schname=c_yhpt_etl #备份的用户,英文逗号分隔

expdp c_yhpt_etl/[email protected]:1521/oradb DIRECTORY=expdp_dir schemas=$schname dumpfile=$dmpname_$date_now.dmp logfile=$dmpname_$date_now.log compression=ALL #执行备份指定>数据库

echo “数据备份结束…”

echo “现在开始进行压缩备份数据…”

tar -zcvf $ordatabak_$date_now.tar.gz $dmpname_$date_now.dmp $dmpname_$date_now.log

echo “压缩备份数据结束…”

echo “删除备份数据开始…”

find $bak_dir -type f -name "*.dmp" -exec rm -rf {} \;

find $bak_dir -type f -name "*.log" -exec rm -rf {} \;

find $bak_dir -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \;

echo “删除备份数据结束…”

echo “备份执行完毕…”

主页有脚本文件

(2)授权

chmod +x /opt/oracle_dmp/oracle_bak.sh

(3) 执行测试

sh oracle_bak.sh start

设置自动执行 使用到 crontab 命令

(1)查看当前的定时任务: crontab -l

(2)利用crontab定时执行任务:crontab -e  ,进入定时任务编辑界面

0 22 * * *  /opt/oracle_dmp//oracle_bak.sh  #每天晚上10点执行

0 22 * * 6 /opt/oracle_dmp//oracle_bak.sh  #每周六晚上10点执行

crontab 操作命令介绍

查看crontab:crontab -l         编辑crontab:crontab -e         删除crontab:crontab -r

启动:systemctl start crond.service

停止:systemctl stop crond.service

重启:systemctl restart crond.service

设置开机自启

把crontab设置成开机自启

# vim /etc/rc.d/rc.local

加入以下内容:

systemctl start crond.service

整理不易,请仔细阅读,希望对你有帮助

可自行复制粘贴,仅供参考,如有问题请及时私信或评论,我会一一回复

猜你喜欢

转载自blog.csdn.net/vlogghd/article/details/128311563