当前位置: 首页 > news >正文

rman备份到远程服务器

rman备份到远程服务器磁盘

原因

业务数据量较大,数据库服务器上无足够地空间存放rman备份,磁盘扩容申请不批。无奈采取nfs远程备份

环境信息
ip操作系统备份目录
远程备份服务器192.168.3.130Centos7.9rmanbak
数据库服务器192.168.3.132:1521Centos7.9/remotermanbak
配置过程

采用NFS共享盘的方式将远程磁盘映射到数据库服务器,然后RMAN将数据备份到映射磁盘以达到远程备份。

远程备份服务器启动NFS服务
#检查NFS服务所需包是否已安装
[root@top130:~]$ rpm -qa | grep nfs
nfs-utils-1.3.0-0.68.el7.x86_64  #返回说明已安装[root@top130:~]$ rpm -qa | grep rpcbind
rpcbind-0.2.0-49.el7.x86_64   #返回说明已安装#编辑访问权限
mkdir -p /rmanbak
echo '/rmanbak 192.168.3.132(rw,no_root_squash)' >> /etc/exports#启动或重启服务
systemctl restart rpcbind
systemctl restart nfs
systemctl status nfs
systemctl status rpcbind
数据库服务器挂载远程目录
#创建目录
mkdir -p /remotermanbak#挂载
echo '192.168.3.130:/rmanbak   /remotermanbak      nfs defaults  0   0 ' >> /etc/fstab
mount -a
注:/etc/fstab格式:远程备份服务器目录   数据库服务器本地目录  文件系统类型#赋予权限
chown -R oracle:oinstall /remotermanbak#验证/rmanbak目录下是否可创建文件
su - oracle
cd /remotermanbak/
touch test.txt
数据库服务器rman备份数据库

1.创建脚本存放目录, 如果有该目录则跳过进行下一步

mkdir -p /home/oracle/scripts 

2.rman全备+增备脚本

cat /home/oracle/scripts/rmanbak.sh
#!/bin/bash    ##引用环境变量
if [ -f $HOME/.bash_profile ]; then. $HOME/.bash_profile
elif [ -f $HOME/.profile ]; then. $HOME/.profile
fi
##全量备份时间,例如:周六
fulbakdatetime=(6)            ##增量备份时间,例如:周日~周五
incbakdatetime=(0 1 2 3 4 5)      ##冗余策略保留份数
quantity=2datetime=`date +%w`
backtime=`date +"20%y%m%d%H%M%S"`##备份目录,请指定到nfs共享目录
###################################################
orabakdir=/remotermanbak##备份策略
rmanPolicy(){rman target / log=${orabakdir}/level_policy_${backtime}.log<<EOFrun{CONFIGURE RETENTION POLICY TO REDUNDANCY ${quantity};CONFIGURE CONTROLFILE AUTOBACKUP ON;}
EOF
}#全量备份
fulBak(){rman target / log=${orabakdir}/level0_backup_${backtime}.log<<EOFsql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"';run {allocate channel c1 device type disk;allocate channel c2 device type disk;crosscheck backup;crosscheck archivelog all; sql"alter system archive log current";delete noprompt expired backup;delete noprompt obsolete device type disk;backup incremental level 0 database include current controlfile format '${orabakdir}/backlv0_%d_%T_%t_%s_%p' plus archivelog  delete all input format '${orabakdir}/arch_%d_%T_%t_%s_%p';backup spfile format='${orabakdir}/spfile_%d_%T_%t_%s_%p';release channel c1;release channel c2;}
EOF
}#增量备份
incBak(){rman target / log=${orabakdir}/level1_backup_${backtime}.log<<EOFsql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"';run {allocate channel c1 device type disk;allocate channel c2 device type disk;crosscheck backup;crosscheck archivelog all; sql"alter system archive log current";delete noprompt expired backup;delete noprompt obsolete device type disk;backup incremental level 1 database include current controlfile format '${orabakdir}/backlv1_%d_%T_%t_%s_%p' plus archivelog  delete all input format '${orabakdir}/arch_%d_%T_%t_%s_%p';release channel c1;release channel c2;}
EOF
}for dbbaktime1 in ${fulbakdatetime[@]}
doif [[ ${dbbaktime1} == ${datetime} ]];thenrmanPolicyfulBakbreakfi
donefor dbbaktime2 in ${incbakdatetime[@]}
doif [[ ${dbbaktime2} == ${datetime} ]];thenincBakbreakfi
donefind ${orabakdir} -name 'level*.log' -mtime +14 -exec rm -f {} \;

3.赋权,配置定时任务

su - root                                                                            #
chown -R oracle:oinstall /home/oracle/scripts/rmanbak.sh                                        #
chmod -R 775 /home/oracle/scripts/rmanbak.sh                                                    #
echo "00 02 * * * /home/oracle/scripts/rmanbak.sh >/dev/null 2>&1 &" >>/var/spool/cron/oracle   #
http://www.lryc.cn/news/176697.html

相关文章:

  • 数据结构与算法
  • 【Web3】DAO相关的基础知识
  • 一文教你学会ArcGIS Pro地图设计与制图系列全流程(3)
  • 用于大规模 MIMO 检测的近似消息传递 (AMP)(Matlab代码实现)
  • 复杂SQL解析
  • js中哪些地方会用到window?
  • KITTI raw_data数据集百度云下载
  • (3) OpenCV图像处理kNN近邻算法
  • 手撸RPC【gw-rpc】
  • 【Linux】:Kafka组件介绍
  • Redis〔篇〕
  • 龙芯2K1000核心板在智能座舱行业产品方案-迅为电子
  • 2023/9/20 -- C++/QT
  • WordPress主题DUX v8.2源码下载
  • c++图像的边缘检测
  • C++ Primer 类和对象(3)
  • IntelliJ IDEA 介绍、安装、配置优化与快捷键大全
  • css 语法笔记
  • 【初阶数据结构】二叉树全面知识总结
  • CMD命令终端快捷键学习
  • Leetcode198. 打家劫舍
  • 前端技术社区总目录
  • 极客时间:左耳听风【文章笔记 思考总结】
  • 《论文阅读27》SuperGlue: Learning Feature Matching with Graph Neural Networks
  • 远程计算机或设备不接受连接解决方法
  • 基于Python实现的快递管理系统源码+数据库,采用PyQt6实现GUI界面
  • 如何使用docker快速部署MinDoc文档系统
  • 9月25日,每日信息差
  • 【网络协议】Https
  • Lostash同步Mysql数据到Elasticsearch(三)Elasticsearch模板与索引设置