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

一个超简易的RMAN备份并保留到异地的方案,仅适用于小规模环境

1、需求

客户原有个中心机房A,里面有台windows 服务器运行oracle 11g

在不远的机房B里有台XXG备份一体机对这个oracle进行定时备份,但是由于XXG备份一本体过保且备份故障无法继续了。

客户想要实现一个简易的备份,并能存储到B机房的服务器中,以防止数据丢失。

2、简易RMAN备份及异地保留方案设计

由于数据库不是很大,实际的数据量只有几十G,于是计划如下:

1、在A中心的数据库服务器上配置定时RMAN备份

2、在B中心的服务器上配置FTP,并打通A中心数据库服务器到B中心FTP的网络

3、配置A中心的数据库RMAN备份后,进行RAR压缩备份,再上传备份包到B中心的FTP上

4、A中心的数据库服务器保留15天备份。B中心的备份一直保留。

A中心的数据库服务器新建如下

--备份目录
F:\BACKUP
--ftp及rman日志
F:\backup\FTP-LOG
--存储相关的执行脚本
F:\scriptr\rman_backup_full.bat  //备份执行脚本
F:\script\Dbfull.rman            //备份脚本
F:\script\ftp.bat                //FTP上传脚本
F:\script\clear15.bat            //定时清理

3、 配置脚本

1、创建备份脚本

备份脚本F:\script\Dbfull.rman

run{   
allocate channel c1 type disk;   
backup  incremental level 0 tag 'db0' format 'f:\backup\rman_backup_db%u_%s_%p.dbf'database 
include current controlfile;
release channel c1;   
sql 'alter system archive log current';
allocate channel c10 type disk;
backup filesperset 50 format 'f:\backup\rman_backup_arch%u_%s_%p.dbf' archivelog all delete input;    
release channel c10;    
}  run{
allocate channel t1 type disk;  
allocate channel t2 type disk;  
allocate channel t3 type disk;  
report obsolete;
crosscheck backup;
crosscheck archivelog all;
delete noprompt obsolete;
delete noprompt expired backup;
delete noprompt expired archivelog all;
release channel t1;  
release channel t2;  
release channel t3;  
}

执行任务脚本F:\scriptr\rman_backup_full.bat

rman target  / log='F:\backup\FTP-LOG\RMAN_BACKUP_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%".log' cmdfile=f:\script\Dbfull.rman

FTP定时上传任务脚本F:\script\ftp.bat

"c:\Program Files (x86)\WinRAR\Rar.exe" a -ep -df -m0 F:\backup\RMAN_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.rar F:\backup\*.log  F:\backup\*.dbfset FILENAME=RMAN_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.rarecho open 10.10.1.253 >>F:\script\ftp.txt
echo ftpuser>>F:\script\ftp.txt
echo Jiacheng2022>>F:\script\ftp.txt
echo bin >>F:\script\ftp.txt
echo prompt off >>F:\script\ftp.txt
echo lcd f:\backup >>F:\script\ftp.txt
echo mput %FILENAME% >>F:\script\ftp.txt
echo prompt on  >>F:\script\ftp.txt
echo bye  >>F:\script\ftp.txt
echo quit >>F:\script\ftp.txtftp -s:F:\script\ftp.txt >F:\backup\FTP-LOG\ftp_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.log 2>F:\backup\FTP-LOG\err_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.logdel f:\script\ftp.txt

保留15天备份脚本F:\script\clear15.bat

forfiles /p "F:\backup" /m *.rar /d -15 /c "cmd /c del @path"

最后在windows上创建三个定时任务:

1、每天定时备份oracle脚本:\scriptr\rman_backup_full.bat

2、定时FTP上传脚本F:\script\ftp.bat (与第一个任务时间错开)

3、定时清理空间F:\script\clear15.bat

最后就是告诉运维工程师,定期检查F:\BACKUP\FTP-LOG目录,看看有没有报错即可。

4、总结

这个就是个纯简易方案,还是存在不少缺陷

1、没有任何的纠错机制,各个脚本之间独立运行,一步报错后面步步错。

2、任务之间的时间间隔要自己提前计算好

3、还需要运维工程师定期检查

当然,好处有一点:就是不用额外的花钱。

相关文章:

  • k8s上运行的mysql、mariadb数据库的备份记录
  • IT选型指南:电信行业需要怎样的服务器?
  • uniapp分包配置,uniapp设置subPackages
  • SpringIOC中Bean生命周期
  • TeleAI发布TeleChat2.5及T1正式版,双双开源上线魔乐社区!
  • 如何应对客户对项目进度的过度干预
  • 低代码——表单生成器Form Generator详解(二)——从JSON配置项到动态渲染表单渲染
  • 若依框架 账户管理 用户分配界面解读
  • SpringBoot使用MQTT协议简述
  • 十、【核心功能篇】项目与模块管理:前端页面开发与后端 API 联调实战
  • 华为OD机试真题——阿里巴巴找黄金宝箱(II)(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • leetcode450.删除二叉搜索树中的节点:迭代法巧用中间节点应对多场景删除
  • Oracle的NVL函数
  • MCP协议开发规范
  • 第八章 Wireshark工具的安装与使用
  • 数据治理是什么意思?数据治理平台有哪些?
  • JDBC 核心执行流程详解
  • Python对接GPT-4o API接口:聊天与文件上传功能详解
  • [预训练]Encoder-only架构的预训练任务核心机制
  • 【大模型/MCP】MCP简介
  • 在线设计装修软件/aso优化推广
  • php做网站评价/今天疫情最新消息
  • 网站制作价格低/如何创建自己的小程序
  • wordpress 加载速度优化/什么是seo营销
  • 广州网站优化运营/网页制作与设计
  • 网站默认首页设置/网站流量统计分析工具