linux下进行Oracle自动备份配置
数据库导出的脚本文件编写及配置自动运行,主页有脚本文件可以免费下载,如有什么问题可以私信或者评论我会及时回复
目录
可自行复制粘贴,仅供参考,如有问题请及时私信或评论,我会一一回复
特别注意
设置自动备份保证数据库和监听都启动起来了,数据库能够正常连接 数据库的安装有问题可以查看主页有详细教程。
配置导出文件夹
在虚拟机中创建文件夹 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/c_yhpt_etl@192.168.77.102: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/c_yhpt_etl@192.168.77.102: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
整理不易,请仔细阅读,希望对你有帮助
可自行复制粘贴,仅供参考,如有问题请及时私信或评论,我会一一回复
更多推荐
所有评论(0)