一、总览

大致上的逻辑如上图,简化细节来归纳,便是 用一个bat脚本来驱动整个备份过程。
 
二、一些准备工作

1、为备份所需的脚本,以及最终备份生成的文件创建目录

   开始=》运行=》 cmd
  1. mkdir "D:\dba_files\hemes_db_bak\HEMESDB1\full_daily"
  2. mkdir "D:\dba_files\hemes_db_bak\HEMESDB1\full_daily\log"
  3. mkdir "D:\dba_files\hemes_db_bak\HEMESDB1\full_daily\bak_files"
  4. mkdir "D:\dba_files\hemes_db_bak\HEMESDB1\full_daily\control_files_bak"
  5. pushd "D:\dba_files\hemes_db_bak\HEMESDB1\full_daily"
  6. write ""> HEMESDB1_BACKUP_FULL_DAILY_by_frk.bat
  7. write ""> HEMESDB1_BACKUP_FULL_DAILY_by_frk.rman
 
 
OK,到目前为止,D:\dba_files\hemes_db_bak\HEMESDB1\full_daily的目录结构便大致如下 
 
│  HEMESDB1_BACKUP_FULL_DAILY_by_frk.bat
│  HEMESDB1_BACKUP_FULL_DAILY_by_frk.rman
├─bak_files
│      
├─control_files_bak
│     
└─log
 
 

2、Control file 多路径存放(非必须)

 
如上图,登录sqlplus ,用alter system set control_files='X:,X:' 来修改,英文逗号分隔,
上图设置为5个control file存放路径,分别为D盘,F盘,D盘为location disk,F盘为存储

设置时需要停机,再进行操作系统复制文件,确保配置参数的路径都拥有此文件。

3、设置操作系统日期格式

否则rman会报错 "RMAN-00557: 无法打开 MSGLOG"

4、确认归档模式

检查是否 开启归档
 
  1. SYS@(10.2)> archive log list
  2. 数据库日志模式非存档模式
  3. 自动存档禁用
  4. 存档终点 USE_DB_RECOVERY_FILE_DEST
  5. 最早的联机日志序列734
  6. 当前日志序列736
 
没有开启归档,先shutdown 
  1. 连接到:
    OracleDatabase10gEnterpriseEditionRelease10.2.0.5.0-64bitProduction
    With the Partitioning, OLAP,DataMiningandRealApplicationTesting options SYS@(10.2)> alter system checkpoint;
    系统已更改。
    SYS@(10.2)> alter system flush shared_pool;
    系统已更改。
    SYS@(10.2)> alter system flush buffer_cache;
    系统已更改。
    SYS@(10.2)> shutdown immediate;
也可以在
Oracle Fail Safe Manager里手动操作Take offline 
 

 
 
找出parameter file
 
『注:』这里是用的Win NT的集群,所以是共享存储上的parameter文件,确保在实例发生故障的时候仍然用同样的一份parameter file在备机启动,如果是单机实例则可以直接用 alter system set X=XXX scope=spfile;即可 
 

 
 
修改如下:
 

 
  1. ##########################
  2. log_archive_format='HXXDB1_ARC%s%t%r.log'
  3. log_archive_dest_1='LOCATION=F:\hXXdb1_archive_log'
​注意,是用的log_archive_dest_1参数,而不是log_archive_dest,后者用于向后兼容而使用,9i之后的版本不推荐使用此参数。
 
修改完毕后,
  1. SQL> startup mount;
  2. ORACLE 例程已经启动。
  3. 修改数据库位模式
  4. SQL> alter database archivelog;
  5. 数据库已更改。
  6. SQL> alter database open;
  7. 数据库已更改。
至此,准备工作完毕
 
三、配置备份脚本
  1. │ HXXXSDB1_BACKUP_FULL_DAILY_by_frk.bat
  2. │ HXXXSDB1_BACKUP_FULL_DAILY_by_frk.rman
  3. ├─bak_files
  4. ├─control_files_bak
  5. └─log
还记得我们前面的工作路径吗? 我们现在要先完成rman脚本。
 
  1. RUN {
    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;#备份集有效时间为7天。
    CONFIGURE CONTROLFILE AUTOBACKUP ON;#自动备份控制文件。
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'D:\dba_files\hXXXs_db_bak\HXXXSDB1\full_daily\bak_files\%d%F_ctl.bak';
    ##控制文件的备份路径以及格式。
    ALLOCATE CHANNEL CH1 DEVICE TYPE DISK FORMAT 'D:\dba_files\hXXXs_db_bak\HXXXSDB1\full_daily\bak_files\%d%T%U';
    BACKUP AS COMPRESSED BACKUPSET DATABASE SKIP INACCESSIBLE format='D:\dba_files\hXXXs_db_bak\HXXXSDB1\full_daily\bak_files\%d%T%U_data.bak' FILESPERSET 20
    ##开启CH1通道,压缩的方式备份整个DB,并且跳过不可读的文件
    PLUS ARCHIVELOG FILESPERSET 20##同时备份归档日志
    DELETE ALL INPUT;##备份完归档日志后,将其清空
    RELEASE CHANNEL CH1;##释放CH1通道
    }
    CROSSCHECK BACKUPSET;##交叉校验备份集
    DELETE NOPROMPT OBSOLETE;##删除过期的备份集 接着完成bat脚本。 rem 整体的思路为
    rem 1、oracle的进程是否存在,因为是windows高可用,双机状态
    rem 2、rman脚本全备份至本地磁盘
    rem 3、RoBocopy拷贝全备份至存储,以达成两地备份
    rem 4、删除15天之前的备份文件
    rem
    rem 注释RoBoCopy D:\dba_files\hXXXs_db_bak\HXXXDB1\full_daily\bak_files\ F:\hXXXsdb1_backup /E /MT:16/MAXAGE:1
    rem 把D盘的对应内容拷贝至F盘,/E 包含子文件夹/MT 线程数量,/MAXAGE 拷贝的文件为最近1天
    rem
    rem 最后forfiles命令清除15天之前的备份文件,具体参数可以查看forfiles /?帮助 @echo off
    set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    set oracle_sid=hemesdb1
    rem 设置oracle_sid,以及nls_lang tasklist|find /i "oracle.exe"||exit
    rem 判定本机器是否有oracle.exe进程,如果没有则直接退出脚本,不执行后续的备份操作,这样本脚本即可通用于双机实例的环境。 rman target sys/sys的密码@hemesdb1 msglog D:\dba_files\hXXXs_db_bak\HXXXSDB1\full_daily\log\%date:~0,10%.log cmdfile=D:\dba_files\hXXXs_db_bak\HXXXSDB1\full_daily\HXXXSDB1_BACKUP_FULL_DAILY_by_frk.rman
    rem 执行rman备份,msglog为log路径,cmdfile则为rman脚本路径 RoBoCopy D:\dba_files\hXXXs_db_bak\HXXXSDB1\full_daily\bak_files\ F:\hXXXsdb1_backup\ /E /MT:50/MAXAGE:1
    rem RoBocopy拷贝全备份至存储,以达成两地备份,local disk一份,存储一份 forfiles /P F:\hXXXsdb1_backup /D -15/C "cmd /c del @file"
    forfiles /P D:\dba_files\hXXXs_db_bak\HXXXSDB1\full_daily\bak_files /D -15/C "cmd /c del @file"
    rem 最后forfiles命令清除15天之前的备份文件,具体参数可以查看forfiles /?帮助 exit
 
设置任务计划,定时每日执行 HEMESDB1_BACKUP_FULL_DAILY_by_frk.bat
 
同样的脚本,同样的配置,一起放到备机上。
 

 
 
 
至此,WIN NT上的高可用双机多实例rman备份完成。
 
很高兴你能看到这里,欢迎交流更好的方案, Thanks & Regards.

HXXXES 高可用双机RMAN异地备份 Notes的更多相关文章

  1. heartbeat+DRBD 高可用 双机热备

    heartbeat+DRBD 高可用 双机热备 原创博文http://www.cnblogs.com/elvi/p/7658109.html ## heartbeat+DRBD 高可用 双机热备 # ...

  2. Nginx+keepalived 高可用双机热备(主从模式/双主模式)

    基础介绍负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行. 关于负载均衡介绍,可以参考:li ...

  3. 使用sqlserver搭建高可用双机热备的Quartz集群部署【附源码】

    一般拿Timer和Quartz相比较的,简直就是对Quartz的侮辱,两者的功能根本就不在一个层级上,如本篇介绍的Quartz强大的序列化机制,可以序列到 sqlserver,mysql,当然还可以在 ...

  4. Nginx+keepalived 高可用双机热备(主从模式)

    环境:centos7.6 最小化安装 主:10.11.1.32 从:10.11.1.33 VIP:10.11.1.130 修改主节点主机名: hostnamectl set-hostname web_ ...

  5. 5. 支撑高并发,高可用,海量数据备份恢复的Redis重要性

    商品详情页的架构实现 缓存架构 第一块儿,要掌握的很好的,就是redis架构 高并发,高可用,海量数据,备份,随时可以恢复,缓存架构如果要支撑这些要点,首先呢,redis就得支撑 redis架构,每秒 ...

  6. Nginx负载均衡高可用

    1.   Nginx负载均衡高可用 首先介绍一下Keepalived,它是一个高性能的服务器高可用或热备解决方案,Keepalived主要来防止服务器单点故障的发生问题,可以通过其与Nginx的配合实 ...

  7. Nginx负载均衡高可用---架构

    1. Nginx负载均衡高可用 首先介绍一下Keepalived,它是一个高性能的服务器高可用或热备解决方案,Keepalived主要来防止服务器单点故障的发生问题,可以通过其与Nginx的配合实现w ...

  8. MySQL 系列(五) 多实例、高可用生产环境实战

    MySQL 系列(五) 多实例.高可用生产环境实战   第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 史上最屌.你不知道的数据库操作 第三 ...

  9. JAVAEE——宜立方商城03:商品类目选择、Nginx端口或域名区分虚拟机、Nginx反向代理、负载均衡、keepalived实现高可用

    1. 学习计划 第三天: 1.商品类目选择(EasyUI的tree实现) 2.图片上传 a) 图片服务器FastDFS(Nainx部分) 2. 商品类目选择 2.1. 原型 2.2. 功能分析 展示商 ...

随机推荐

  1. Linux设备驱动开发基础--内核定时器

    1. Linux内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制,其实现位于 <Linux/timer.h> 和 kernel/timer.c 文件 ...

  2. PIE SDK大气校正

    1. 算法功能简介 大气校正的目的消除大气对太阳和来自目标的辐射产生吸收和散射作用的 影响,从而获得目标反射率.辐射率.地表温度等真实物理模型参数.大多数情 况下,大气校正同时也是反演地物真实反射率的 ...

  3. 破解myBase试用到期

    请保持你的myBase7是关闭的 1.找到myBase7的安装目录(myBase.exe的目录): 2.右键编辑打开myBase.ini: 3.找到 App.UserLic.FirstUseOn,并在 ...

  4. 关于表格合并span-method方法的补充(表格数据由后台动态返回)

    之前写了一些关于element-ui表格合并的方法,不过用的数据都是确定的数据(死数据),但是很多时候我们的数据都是通过后台获得的,数据不稳定,这个时候使用表格合并就需要先处理一下数据,先看一下一种很 ...

  5. request-statistics.lua

    --[[ 实现请求统计,并且将单位时间内异常次数达到阀值的请求加入到黑名单中 --]] --获取共享内存 local limit_req_store = ngx.shared.limit_req_st ...

  6. CAD 卸载工具,完美彻底清除干净cad各种残留注册表和文件

    是不是遇到MAYA/CAD/3DSMAX/INVENTOR安装失败?AUTODESK系列软件着实令人头疼,MAYA/CAD/3DSMAX/INVENTOR安装失败之后不能完全卸载!!!(比如maya, ...

  7. pjsip与QT进行适配

    pjsip是纯C语言写的一个sip协议库,整个代码写得还是比较模块化的,得益于此的设计,只要理解了pjsip的设计,就可以对其网络层进行扩展. 我们项目是QT作为主要开发工具,而PJSIP的库默认是利 ...

  8. (转)CentOS6/7 使用saltstack源安装saltstack

    CentOS6/7 使用saltstack源安装saltstack 原文:https://blog.csdn.net/wh211212/article/details/77053708 CentOS ...

  9. Fastjson解析多级泛型的几种方式—使用class文件来解析多级泛型

    Fastjson解析多级泛型 前言 现在网上大多数是使用TypeReference 方式来解析JSON数据,这里我提供另外一种方式来解析,使用类文件进行解析,两种方式我都会给出实际代码 实例 Type ...

  10. ContextCapture水面约束(水面破洞修复)

      [问题描述] 对于水面而言,由于特征点较少,软件在计算时很难匹配正确,导致输出模型的水面通常是支离破碎的.软件针对这种情况提供了一个约束工具,用户手动的为水面添加平面约束后,输出的水面模型就会非常 ...