2021年11月29日【周一】(用rman备份一个数据库,设计rman备份脚本?rman的备份策略configure会怎么设置(如果有DG的情况下)?rman catalog 是做什么用)

菜鸟粥 筑基期 2021-11-29 21:03:40
加精

1.rman备份脚本:
全备
#!/bin/bash 
export ORACLE_SID=oracle12c
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_BASE=/u01/app/oracle
rman target / 
run{ 
allocate channel c1 device type disk; 
allocate channel c2 device type disk; 
allocate channel c3 device type disk;  
backup  format '/u01/rman_datafile/full%u_%s_%p' database;
sql 'alter system archive log current';
backup  format '/u01/rman_archivelog/arch_%d_%s_%p_%t' archivelog all delete input;     ----未配置归档删除策略(未传输到备库的归档日志在正常的delete input下是不会被删除的)
release channel c1;
release channel c2;
release channel c3;
}

2.rman的备份策略configure设置
CONFIGURE CONTROLFILE AUTOBACKUP ON; # default           ------控制文件自动备份 (元数据信息放在控制文件中保存),当数据库结构信息发生改变/完成一次有效备份时候,Oracle会等待一段时间自动备份控制文件,防止控制文件损坏
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/rman_controfiles/%F';    ------控制文件自动备份路径(控制文件会放在快速恢复区中默认位置/也可以手工指定)控制文件自动备份名字必须是%F。
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default      -----归档日志删除策略(这里没有配置)
也可以进行如下配置
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
该策略对应三个值:
1)NONE :设置为该值时,则不启用归档文件的删除策略。默认情况下就是NONE。

2)APPLIED ON STANDBY :

设置为该值时,会强制检查待删除的log 是否已经在备库apply,只有apply后的log才能删除。

当通过附加的 DELETE INPUT 子句删除Standby数据库仍需要的日志时,会提示RMAN-08137错误。 不过仍然可以手动地通过 DELETE ARCHIVELOG 方式删除。

3) SHIPPED TO ALL STANDBY:

当归档传送到备库就可以删除。


3.rman catalog 是做什么用的?
Block Change Tracking(块跟踪)主要用于RMAN备份的增量备份,记录自从上一次备份以来数据块的变化,相关后台进程CTWR(Change Tracking Writer)
改善增量备份性能,RMAN可以不再扫描整个文件以查找变更数据。从10g开始提供此功能。
block change tracking技术,降低读IO。提高效率。
rman 启动channel进程 ,channel进程进行两边的读写(IO),通过读取数据块scn判断是否变更(这样的话会大量消耗读的IO),在11g后,只要数据快改变了。会把块的地址通过位图的方式写到块改变跟踪文件中(block change tracking),channel会通过块改变跟踪文件,来知道那个数据块改变了,在进行备份。
开启block change tracking;
alter database enable block change tracking using file '文件路径';   ----可以指定路径  数据库中执行

archival backups   ------归档备份技术:如果保留期限设置为一年,那么加上keep参数,保留会超过一年 。在进行过期检索时,备份不会被标注过期。
keep参数是设置超过保存期限  例:backup database keep forever; (备份数据库永久保存)

为了配合keep forever,Oracle引入了另外一种与rman有关的概念 catalog集中化管理(只有使用catalog才具备使用keep forever)

控制文件局限性
1. 有时间限制    数据库中的控制文件(Ctl) 记录了数据库中的原数据信息。  rman备份的原数据信息保存在控制文件中,keep forever针对整个的备份(既包括归档也包括数据文件) 控制文件包含两种内容:1.循环复写的 2.不循环复写的(有上限的)
记录备份原数据信息的这一部分文件,属于循环使用的。当空间不足时,控制文件会覆写之前备份的原数据信息。(一般来说最长保存365天)
2. 一旦控制文件损坏,恢复时比较繁琐
3. 控制文件空间有限

怎么解决控制文件局限性:把控制文件的原数据信息拿出来放在另一个数据库中。里面存放的也是控制文件的原数据信息,rman可以通过连接这个数据库来进行恢复。这个数据库就叫做Rman catalog  
注意:是把控制文件信息同步到一个数据库中(不是保存在控制文件中)保存在一张表里面或者用户下面。 rman连接到这个数据库上面去取这个信息。(这个时候rman恢复的时间要比控制文件恢复时间要长很多)
Rman catalog  特点:1.空间没有限制   2.可以给企业多个数据库提供服务(集中化管理)  3.没有时间限制(只要catalog中存在的)
              缺点:需要从新搭建数据库  成本会高点
              
怎么构建:1.先创建用户或者表空间(用于存放rman同步过来的原数据信息)  2.创建catalog用户赋予 recovery catalog owner权限  
          3.使用rman加上数据库连接到catalog用户上面,执行 create catalog;命令。执行后会在catalog用户创建数据字典表,这些数据字典表用于同步目标数据库上的控制文件信息(这时这些表是空的)
          4.使用 rman TARGET / CATALOG user@service name (通过网络连接到catalog数据库上)
          5.使用注册命令 register database;   注册命令执行完后相当于在用户下面建立的很多表中针对于database插入内容
          6.这时执行 report schema; 生成的信息不在来自于控制文件,来自于catalog。
 

...全文
269 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ttttwz 2021-11-29
  • 打赏
  • 举报
回复 1
太强了!非常有用!谢谢大佬!
菜鸟粥 筑基期 2021-11-30
  • 举报
回复
@ttttwz 冲冲冲
Lucifer三思而后行 社区创建者 2021-11-29
  • 打赏
  • 举报
回复 1

写的不错!厉害

菜鸟粥 筑基期 2021-11-29
  • 举报
回复 1
@Lucifer三思而后行 嘻嘻,谢谢三哥夸奖

195,895

社区成员

发帖
与我相关
我的任务
社区描述
一个人可以走的很快,一群人才能走的更远!
数据库 企业社区
社区管理员
  • Lucifer三思而后行
  • 韬光养晦208
  • 芒果再努力
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

❤️ 添加版主微信:Lucifer-4622 

🎉【数据库交流社区】联合 【摸鱼社区】本周重磅推出【兄弟社区每日打卡】活动 

🎁 新玩法,奖励升级!

数据库交流社区:https://bbs.csdn.net/forums/lucifer-database

摸鱼社区:https://bbs.csdn.net/forums/moyu

新增抽奖池:6本技术书籍 📚 + 每周社区排名奖品 🏅 ,绝对丰厚!

奖品预览可以参考:CSDN社区赞助奖品一览

⭐️ 活动要求:

1、每日 同时在两个社区 打卡贴进行发帖打卡,提交任务

2、同时在两个社区 坚持 7 天打卡 ,将参与到抽奖名单中,这很重要!

3、参加抽奖请先 添加打卡抽奖群,否则无效,加群请添加微信:Lucifer-4622

【社区积分规则】

  • 在社区「发帖」得10积分
  • 内容被管理员「加精」得10积分
  • 点赞他人内容得1积分
  • 评论内容得2积分

社区玩法👇👇👇

试试用AI创作助手写篇文章吧