数据库的备份与恢复,是作为一个dba所必须掌握的保命技术,关键时刻能够保证我们的数据库能够‘启’起来、数据最少量的丢失或零丢失,这是一个合格dba安身立命的筹码,下面我们来看下日常数据库维护中,如何高效备份数据库以及了解备份的全过程。一、rman默认备份参数 RMAN> show all; RMAN configuration parameters for database with db_unique_name ORCL are: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default CONFIGURE BACKUP OPTIMIZATION OFF; CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE ENCRYPTION FOR DATABASE OFF; # default CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_orcl.f'; # default按照以上的默认参数我们一 一讲解CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default该参数主要负责备份保留情况,分为按副本数或者按时间窗口两种方式副本数:保留多少份副本,确保可恢复到具体的时间点。保留副本数设置为1时,每次使用level0级别增量或完整备份时,超出的副本数的备份,oracle数据库将其标记为obsolete(废弃)。如果第一次level0备份,后面多次使用level1级别备份,即使oracle将超出的副本标记为obsolete,但是不会将level0级别的备份全部删除,level0和后面的level1备份会组成一个完整的备份。恢复窗口:该方式保留备份文件多少天,保证数据可以回到整个窗口的任意一天,超出的备份天数,oracle将其标记为obsolete状态,他也会遵循窗口期内保存完整备份的情况,所有有时候我们看到备份文件有超出恢复窗口的备份文件。CONFIGURE BACKUP OPTIMIZATION OFF;备份优化参数,主要是针对脱机,只读,无变化的表空间,将备份过的文件,将会跳过这些文件,从而提升数据库的备份效率。on 开启、off关闭。CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default备份默认设备选择,此处选择是磁盘。CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default控制文件自动备份,当涉及数据结构变化或者对system,sysaux表空间进行改动时,会出发控制文件自动备份。CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default控制文件自动备份的具体位置。CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default设置并行备份到备份集。CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default设置镜像拷贝数据文件副本数。CONFIGURE MAXSETSIZE TO UNLIMITED; # default设置备份集的默认大小,此处是不限制。CONFIGURE ENCRYPTION FOR DATABASE OFF; # default设置数据库备份文件是否加密,默认是关闭的。CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default设置加密算法。CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default设置数据备份压缩方式基本或者默认的,一般备份压缩只针对备份片,镜像备份不涉及。CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default设置归档日志保留策略,默认是:无CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_orcl.f'; # default;设置控制文件快照的位置,正在使用控制文件的快照文件。(控制文件丢失,可以使用该文件来恢复,默认位置保留在$ORACLE_HOME/dbs目录下)二、rman备份对象rman备份是基于数据库物理的备份,包括数据文件,表空间、控制文件、参数文件、归档日志的备份,不包括在线redo日志的备份,这就意味着,只要有归档日志,数据库是可以恢复的,当执行数据库全备或者增备带日志的备份时,它首先切换在线日志,再执行日志备份、再者执行数据文件的备份,之后切换日志组,进行过程中自身产生日志的备份,最后备份控制文件、参数文件。有些情况进行数据库恢复时,备份时间的数据恢复时没有问题的,但是有时redo日志中产生的日志,还没有及时形成日志,或者没有提交或已经提交,也有可能造成数据的丢失。(数据库恢复的时间点取决于控制文件及在线redo日志的保存量以及归档日志是否完整等)三、rman备份优化备份优化主要涉及到数据库的备份性能、数据量备份的是否冗余等下面我列举几个例子:1、开启优化备份参数,将备份过的数据文件,在下次进行备份时选择跳过,减少数据的冗余量。2、开启block change tracking参数,以位图的形式记录两次备份之间的数据变化到日志文件,数据增量备份时只需要读取变化文件日志,就可以获取变化量,提升备份的效率。3、有效的备份副本数或备份窗口数,直接关系到数据库是否能恢复到具体的时间点。也可避免数据无法恢复的情况。四、rman单实例备份脚本考虑哪些1、备份副本的保留数量,建议使用保留副本 2、控制文件的自动备份开启3、备份脚本中开启并行,提升备份速度4、归档日志保留时间,可以使用备份归档日志后,删除日志记录,delete input或delete all input 第二个针对多个归档日志目的存放地址5、开启压缩选项,减少数据量,减少备份占用的存储空间6、设置控制文件副本位置,作为控制文件丢失一个备用选项7、使用增量备份(晚上业务非繁忙时间选择level0级别备份、中午可以使用level1级别备份,减少备份时间)8、开启bct,块跟踪技术,减少增量备份的时间9、备份数据文件和归档日志设置最大读取文件或日志数量,提升备份效率10、备份过程中,数据文件后,需要切换归档日志,alter system archive log current五、rman 多实例rac备份脚本考虑哪些和单实例基本一样,区别在于:1、开启bct ,bct日志文件存放在共享盘上,方便于获取数据库块的变化六、dg rman 备份数据注意哪些一般情况下,备份安排在备库上,这样释放主库的压力,同时在备份的过程,会促使日志切换,日志、数据落盘,造成系统io及计算资源紧张或者压力,放在备库,数据从主库同步过来,延迟很小,同时备库从事备份工作,物尽其用。七、rman数据恢复注意什么1、数据备份时间点,数据恢复丢失量或零丢失情况2、不同的故障,采用不同的恢复方法3、恢复对象包括数据文件,表空间、表、控制文件、参数文件等4、恢复时间点选取,最少量的数据丢失,采用的方法 总结:rman备份主要在日常数据库运维过程中,主要体现在备份,优化备份效率,恢复,高效恢复效率应用场景。在恢复场景中,主要考虑RTO,RPO这两个指标,关心数据丢失最少或者无丢失,涉及到控制文件,归档日志,在线日志等,它们的完整程度是确保数据最少丢失或无丢失的保证,后面通过实验来完善。
Yicheng16 22.08.25
-- The End --
