Oracle 备份与恢复常见的七大问题

为了最大限度保障数据的安全性,同时能在不可预计灾难的情况下保证数据的快速恢复,需要根据数据的类型和重要程度制定相应的备份和恢复方案。

在这个过程中,DBA的职责就是要保证数据库(其它数据由其它岗位负责)的高可用和高性能,以下典型问题及解答可供参考。

1、Oracle的几种备份方式简介

备份就是把数据库复制到转储设备的过程。其中,转储设备是指用于放置数据库副本的磁带或磁盘,备份是一份数据副本。

从物理与逻辑的角度来看,备份可以分为物理备份和逻辑备份。

物理备份:

对数据库操作系统的物理文件(数据文件,控制文件和日志文件)的备份。物理备份又可以分为脱机备份(冷备份)和联机备份(热备份),前者是在关闭数据库的时候进行的,后者是以归档日志的方式对运行的数据库进行备份。可以使用oracle的恢复管理器(RMAN)或操作系统命令进行数据库的物理备份。

逻辑备份:

对数据库逻辑组件(如表和存储过程等数据库对象)的备份。逻辑备份的手段很多,如传统的EXP,数据泵(EXPDP),数据库闪回技术等第三方工具,都可以进行数据库的逻辑备份。

从数据库的备份角度,备份可以分为完全备份和增量备份和差异备份。

  • 完全备份:每次对数据库进行完整备份,当发生数据丢失的灾难时,完全备份无需依赖其他信息即可实现100%的数据恢复,其恢复时间最短且操作最方便。
  • 增量备份:只有那些在上次完全备份或增量备份后被修改的文件才会被备份。优点是备份数据量小,需要的时间短,缺点是恢复的时候需要依赖以前备份记录,出问题的风险较大。
  • 差异备份:备份那些自从上次完全备份之后被修改过的文件。从差异备份中恢复数据的时间较短,因此只需要两份数据---最后一次完整备份和最后一次差异备份,缺点是每次备份需要的时间较长。

2、Oracle数据库备份采用哪种备份方式?适用范围分别是什么?

RMAN是oracle推荐的数据保护工具,在备份恢复上,RMAN能够借助备份数据恢复一段时间范围内某个时间点数据库的状态。此外RMAN在备份恢复的校验上更加严格,最大程度保护数据的完整性、一致性以及适用性,同时也方便备份恢复的统一管理。

EXP/EXPDB,在oracle的定位中,只是一个数据迁移的手段。在备份恢复上,数据泵只能利用备份数据来恢复一个时间点上的数据库状态,无法借助备份数据在一段时间内自由选择恢复点。在严格的意义说,数据泵备份并不能说是一种有效的数据保障措施,这更像是一种临时的保底操作。

集中化备份管理来说,rman是最有效也是最可靠的方式。数据泵虽然操作简单,对于数据的持续性保护太弱了。

结合系统的特点,逻辑导出和RMAN配合使用效果最佳。

3、数据库的备份与恢复的时间窗口?需要做都那些方面的考虑?

需要着重考虑几点:

1、备份方式:一般都是FULL+INCR。

2、备份时间窗口:备份的过程中对生产业务(数据库)压力是很大的,所以首先应该规划备份的时间窗口,一般都在晚上。

3、备份流量路径:确定了备份时间窗口,就想想备份的流量怎么走。确定好流量路径,不要影响其他业务。

4、数据保留、克隆:对于重要的数据,不仅需要备份,最好克隆一份。

恢复一般在单独的恢复环境。恢复验证周期,一般一个季度内至少挑选各类型备份恢复一次。

4、Rman备份保留天数和保留副本数,这两种具体有什么区别,在什么场景下使用什么样的参数设置?

复制代码
Configure retention policy to recovery window of N days;--表示备份保留N天,即表示oracle可以保证还原到N天内的任意时间点。
CONFIGURE RETENTION POLICY TO REDUNDANCY n--表示备份保留N份。

保留天数主要考虑的方面是:想要把数据库恢复到历史的哪一个时间点;保留副本主要考虑的方面是:要针对备份如何做冗余。

区别就是基于恢复窗口的保留策略纬度不同,看业务的具体需求。

5、在三地两中心的双活结构中,数据库还有备份的必要性吗?

数据库双活了更需要数据库备份,否则数据库逻辑错误,一损俱损。多活只能保障单边故障下业务还可以online(高可用),但对于数据逻辑错、历史数据审查、历史数据分析等问题,多中心多活的结构框架依旧无法克服。

6、在备份和恢复中,Catalog的主要优势在哪?

rman的备份信息默认是存放在目标数据库的控制文件中的,存放时间由control_file_record_keep_time参数控制,默认是7天。

也可以把rman的备份信息保存到一个独立的数据库中,叫做recovery catalog,使用recovery catalog可以保存更长时间的备份信息,如果想要试用永久保留备份的话,必须使用catalog。

如果只是简单的备份管理需求的话,建议使用控制文件即可。

7、Oracle11g数据库数据量有50T,每天增量50g左右,该如何制定备份方案,如何验证备份的有效性?

以一次全备份来算,在12h内备份完成,那么平均备份速度最低是5010241024/12/3600=1210MB/S

按照LTO 5 drive的速度(140MB/S)来算,备份最低的drive数量:1210/140=9

为了保障dive尽量保持最大IO,建议额外关注几点:

1、datafile较小的话,聚合成较大的bakcup piece;

2、调整read/write blocksize减少读写次数,可酌情调整至MB大小;

3、调整备份脚本,一个channel对应一个backup session,每个channel尽量保障只有一个大块backup piece写入;

4、关闭备份软件和drive的多路复用功能,保证每个dive上只有一个session写入;

5、备份尽量走单独的HBA卡,不要和业务或存储共用。

相关推荐
叁沐2 分钟前
MySQL 08 详解read view:事务到底是隔离的还是不隔离的?
mysql
周胡杰19 分钟前
鸿蒙arkts使用关系型数据库,使用DB Browser for SQLite连接和查看数据库数据?使用TaskPool进行频繁数据库操作
前端·数据库·华为·harmonyos·鸿蒙·鸿蒙系统
wkj00123 分钟前
navicate如何设置数据库引擎
数据库·mysql
ladymorgana23 分钟前
【Spring Boot】HikariCP 连接池 YAML 配置详解
spring boot·后端·mysql·连接池·hikaricp
赵渝强老师26 分钟前
【赵渝强老师】Oracle RMAN的目录数据库
数据库·oracle
暖暖木头27 分钟前
Oracle注释详解
数据库·oracle
御控工业物联网44 分钟前
御控网关如何实现MQTT、MODBUS、OPCUA、SQL、HTTP之间协议转换
数据库·sql·http
GJCTYU2 小时前
spring中@Transactional注解和事务的实战理解附代码
数据库·spring boot·后端·spring·oracle·mybatis
MicroTech20252 小时前
微算法科技(NASDAQ: MLGO)探索Grover量子搜索算法,利用量子叠加和干涉原理,实现在无序数据库中快速定位目标信息的效果。
数据库·科技·算法
Code季风2 小时前
SQL关键字快速入门:CASE 实现条件逻辑
javascript·数据库·sql