数据库备份策略 oracle备份数据库
本篇文章给大家谈谈数据库备份策略,以及oracle备份数据库对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
系统数据的几种备份策略
1、自动备份
利用系统提供的定时进程或备份软件自动进行数据的备份,适合于数据量大、数据更新操作频繁的OA系统数据备份,有可能需要额外购置备份软件。
2、人工手动备份
适合数据量少或数据更新少,备份操作时间短的OA系统数据备份,由于是人工操作备份的频率一般比较低。
3、数据库集群技术
对于实时性要求非常高的系统,可以考虑使用数据的集群技术,在多台硬件服务器上安装多套数据库系统,并采用集群技术使数据库服务器之间的实现数据同步。当其中某台数据库服务器不可访问时,集群中的其他数据库服务可以正常访问,系统因此无需中断运行。
因此,数据数据库集群技术不仅很好的解决数备份的问题,同时也解决系统对数据库的实施访问问题,一般投入的成本比较高,适合于在实时访问要求高的OA系统中采用,。
4、数据库复制技术
利用数据库系统自身提供的数据库复制功能,在多台数据库中实现数据的复制和同步从而实现数据的备份。
5、热备份和冷备份
热备份是在OA系统服务不停止的情况下进行的数据备份,冷备份是在OA系统服务停止的情况下进行的数据备份。
以上的几种OA系统数据备份策略可以单独使用,也可组合使用,如:手工结合自动,数据库集群结合异地备份。
数据库设计备份策略的指导思想是什么
选择怎样的备份策略主要考虑以下三个方面:1.存储空间;2.对现行运行的系统的性能影响;3.恢复时间的影响
备份从策略上来说分为两种:完整的和部分的。完整的备份对于小型数据库来说相对较佳,因为能保证数据最大的完整一致,且不会占用过多资源。但对于大中型的数据库,只采用完整的备份就不科学了,应该采用完整+部分的备份。
这里的“部分”,可以进一步细化,一种是基于上次备份(无论是哪种备份)以来的变化的备份,如SQL Server中的事务日志备份,Oracle中的增量型增量导出备份;一种是基于上次完整备份以来累积的变化的备份,如SQL Server中的差异日志备份和Oracle中的累积型增量导出备份。
而对应的恢复,也是先按完整备份恢复,再按记录完整备份以来累计变化的恢复(差异日志备份/累积型增量导出备份),然后按上次备份的以来的变化的备份恢复(事务日志备份/增量型增量导出备份),从最近一次完整或差异(累积)备份以来每一次的这种备份都要按时间先后顺序一一恢复。
以SQL Server来说一般采用完整+差异+事务日志来备份,只不过其间的时间间隔这是需要根据具体的数据库的特点来定的。
RMAN备份策略都有哪些
建立增量备份:
如果数据库运行于不归档模式下,只能在数据库干净关闭的情况下(以 normal、
immediate、 transactional方式关闭)才能进行一致性的增量备份,如果数据库运行于归
档模式下,那即可以在数据库关闭状态进行,也可以在数据库打开状态进行备份。再
次说明了打开归档模式的优势,归档日志也就是多占些磁盘空间,可也相当于又给数
据加了层保护。建立增量备份,实质就是一个参数 incremental level=n,在执行 backup
命令时加上即可,例如,建立一个增量级别 0的全库备份:
rman> backup incremental level=0 database;
再例如,建立一个增量级别 1的 users01.dbf数据文件备份
rman> backup incremental level=1 tablespace system
datafile‘e:\oracle\oraback\sj_data.dbf’;
注: rman默认创建的增量备份是 differential方式,如果要建立 cumulative方式的增
量备份,在执行 backup命令时显式指定即可,例如:
rman> backup incremental level=2 cumulative database;
建立镜像复制:
rman中的镜像复制实质与通过操作系统 copy命令备份相同,甚至连命令的格式
都相似,只不过直接应用操作系统的 copy命令复制数据文件时,只是文件拷贝,而rman
的 copy则能够在复制的同时,验证数据的有效性。个人认为 rman中的镜像复制应用
有限,而且也体现不出 rman的优势,所以俺也只是大致了解了概念,没有进行过实际
操作,感兴趣的朋友可以自己做做试验,这里就不多做介绍了)
建立冗余备份
(
rman提供了一种更谨慎的备份策略: duplexed方式备份,其实质即是在生成备份
集的同时,向指定位置生成指定份数(最大不超过 4份)的备份集复制,以避免在灾难性
事故时数据库损坏和备份丢失的情况下导致完全崩溃,提高备份可用性。 rman中提供
了三种方式实现 duplexed方式备份:
1)在 rman中执行 backup命令时显式指定 copies参数。例如:
rman> backup copies 3 database;
上述命令将会在全库备份的同时,自动生成当前备份集的 2份拷贝到默认备份目录。
2)在 run{}命令块中利用 set backup copies命令为该命令块中所有的 backup命令设
置 duplexed方式,例如:
rman> run{
set backup copies 2;
backup device type disk format
‘e:\oracle\oraback\dyk1\%u’,'e:\oracle\oraback\dyk2\%u’
tablespace users,sales;
}
上述命令将生成两份备份集,分别存储到 e:\oracle\oraback\dyk1和
e:\oracle\oraback\dyk2目录。
3)通过 configure….. backup copies命令设置预定义的备份 duplexed方式
configure… backup copies命令格式,可以为指定设备类型设置默认备份拷贝数
量。这个配置仅适用于数据文件与归档重做日志文件和备份,并且,只有在使用自动
分配的通道时才能够使用 configure…
backup copies命令设置的配置。例如:
rman> configure default device type to disk;
rman> configure datafile backup copies for device type disk to 2;
rman> configure archivelog backup copies for device type disk to 2;
上述命令将 disk设置上数据文件与归档文件的拷备数量设置为 2,当再执行 backup
database备份时,即会自动生成 2份数据文件的备份集。
设置 rman备份的保存策略
策略,如果数据库非常大,并且备份执行也比较频繁,有必要对这些备份文件的
保存制订合理的策略。在通过 rman创建的备份片段中,由于备份文件也是由 rman创
建和维护,所以手工删除并不明智,并且 rman也提供了备份保留策略,合理制订,由
rman自动删除陈旧备份文件更加安全也更加方便, rman中提供了两种备份保留策略:
基于时间,和基于冗余数量
为 rman设置了备份保留策略之后, rman会自动判断哪些备份集或镜像复制文件
不必再保留。这些备份文件将会被标记为“废弃(obsolete)”,可以通过 report obsolete
命令查看当前处于废弃状态的备份文件,或者通过 delete obsolete命令删除这些废弃的
备份。例如:
rman> report obsolete;
rman> delete obsolete;
在执行删除命令时有两点需要了解:
如果被判断为废弃的备份是一个单独数据文件的镜像复制,那么在执行 delete命
令时将直接删除这个镜像复制文件;如果被判断为废弃的备份是一个备份集中的一部
分,则必须等到整个备份集中所有其它文件都被废弃之后,才能删除这个备份集。
1)基于时间的备份保留策略。
说的简单些,就是你希望数据库最早能恢复到几天前。比如将恢复时间段设置为 7,那
么 rman所保留的备份即是可以保证你将数据库恢复到一周内任何时刻下那些文件。设
置基于时间的备份保留策略可以通过 configure命令,例如:
rman> configure retention policy to recovery window of n days;
注: n=大于 0的正整数执行该命令后, rman将始终保留那些将数据库恢复到 n天前的
状态时需要用到的备份,比如,恢复时间段被设置为 7天,那么各个数据文件的备
份必须满足如下条件:
sysdate-(select checkpoint_time from v$datafile)>=7
任何不满足上述条件的备份都将被 rman废弃并可通过 delete obsolete命令删除。
2)基于冗余数量的备份保留策略
基于冗余数量实质即某个数据文件以各种形式(包括备份集和镜像复制)存在的
备份的数量。如果某个数据文件的冗余备份数量超出了指定数量, rman将废弃陈旧的
备份。同样,基于数量的备份保留策略也是通过 configure命令设置,例如:
rman> configure retention policy to recovery window of n days;
同上: n=大于 0的正整数
也可以设置不保留任何数据的策略
rman> configure retention policy to none;
备份优化
rman中的备份优化(backup optimization)是指在备份过程中,如果满足特定条件, rman
将自动跳过某些文件而不将它们包含在备份集中以节省时间和空间。通常满足如下几
个条件情况下,才能够启用备份优化的功能:
configure backup optimization参数置为 on;
执行的 backup database或 backup archivelog命令中带有 all或 like参数。
分配的通道仅使用了一种设备类型,也就是没有同时分配使用 sbt(磁带)与 disk
(磁盘)的多个通道。
打开备份优化设置通过如下命令:
rman> configure backup optimization on;
在进行备份优化时, rman是如何判断要备份的文件是否需要被优化,这个算法就
相当复杂,可能影响优化算法的因素也非常多,假如某库在上午 9点被执行过一次全
库备份,等下午 3点再次执行全库备份时,备份的文件没有变动而且也已经被备份过
时,才会跳过这部分文件。所以理论上备份优化仅对于只读表空间或 offline表空间起
作用。当然对于已经备份过的 archivelog文件,它也会跳过
3)基础补充
format字符串替代变量,使用 format参数时可使用的各种替换变量,如下:
%c:备份片的拷贝数(从 1开始编号);
%d:数据库名称;
%d:位于该月中的天数(dd);
%m:位于该年中的月份(mm);
%f:一个基于 dbid唯一的名称,这个格式的形式为 C-IIIIIIIIII-YYYYMMDD-QQ,其
中 IIIIIIIIII为该数据库的 dbid, YYYYMMDD为日期, QQ是一个 1-256的序列;
%n:数据库名称,并且会在右侧用 x字符进行填充,使其保持长度为 8;
%u:是一个由备份集编号和建立时间压缩后组成的 8字符名称。利用%u可以为每个
备份集生成一个唯一的名称;
%p:表示备份集中备份片段的编号,从 1开始编号;
%u:是%u_%p_%c的简写形式,利用它可以为每一个备份片段(即磁盘文件)生成
一个唯一名称,这是最常用的命名方式;
%s:备份集的号;
%t:备份集时间戳;
%t:年月日格式(yyyymmdd); s
注:如果在 backup命令中没有指定 format选项,则 rman默认使用%u为备份片段命
名。
configure配置项介绍
首先,先来查看一下当前配置,通过 show all命令:
连接到目标数据库: jssweb(dbid=3391142503)
rman> show all;
正在使用目标数据库控制文件替代恢复目录
rman配置参数为:
configure retention policy to recovery window of 3 days;
configure backup optimization off;# default
configure default device type to disk;# default
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to‘e:\oracle\oraback\%f’;
configure device type disk parallelism 1;# 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 snapshot controlfile name to‘e:\oracle\oraback\sj_data.ora’;#
default
rman>
show命令在 rman命令篇简单介绍过,同时也知道后跟#default表示该条配置仍
然是初始的默认配置,如果想把某条更改过配置选项再置为
初始设置,用如下命令: configure… clear;例如:
rman> configure retention policy clear;
configure retention policy to recovery window of 3 days;
上述的各项配置,在前面章节中有一些已经有所体现,以下是详细介绍:
1)configure retention policy配置备份保留策略
两种保留策略设置:
基于时间:
configure retention policy to recovery window of n days;
基于冗余数量:
configure retention policy to redundancy n;
也可以取消备份保留策略:
configure retention policy to none;
2)configure backup optimization配置备份优化
备份优化:包括 off和 on两个状态
打开备份优化:
configure backup optimization on;
关闭备份优化:
configure backup optimization off;
3)configure default device type配置 io设备类型
rman支持的 io设备类型有两种:磁盘(disk)和磁带(sbt),默认情况下为磁盘。
使用磁盘设备:
configure default device type to disk;
使用磁带设置:
configure default device type to sbt;
在这里需要注意的一点是:如果 io设备发生变化,相关配置项也需要修改。例如:
rman> configure device type disk parallelism 2;
4) configure controlfile autobackup配置控制文件自动备份
是否自动备份,包含两个状态: off和 on
打开自动备份
configure controlfile autobackup on
禁止自动备份
configure controlfile autobackup off
指定备份的控制格式和路径。例如:
configure controlfile autobackup format for device type disk to
‘e:\oracle\oraback\%f’;
在备份期间,将产生一个控制文件的快照,用于控制文件的读一致性,这个快照可以
通过如下配置: configure snapshot controlfile name to
‘e:\oracle\oraback\sj_data.ora’;
5)configure device type设置并行备份
rman支持并行备份与恢复,也可以在配置中指定默认的并行程度。例如:
configure device type disk parallelism 2;
指定在以后备份与恢复中,将采用并行度为 2,同时开启 2个通道进行备份与恢复,
当然也可以在 run中指定通道来决定备份与恢复的并行程度。并行的数目决定了开启
通道的个数。如果指定了通道配置,将采用指定的通道,如果没有指定通道,将采用
默认通道配置。默认情况下,自动分配通道的并行度为 1,如果你通过设置 parallelism
设置了并行通道为 2,那么在 run块中,它会默认使用 2条并行通道;如果在 run命令
块中指定数个 allocate channel,那么 rman在执行备份命令时会以设置的 channel为准,
而不管 configure中配置了多个并行通道。需要注意的是,在 backup命令中有一个
filesperset参数,该参数是指 rman建立的每个备份集中所能包含的备份片段(即磁盘文
件)的最大数,该参数默认值为 64;如果在执行 backup命令时没有指定该参数值,那
么 rman会仅使用第一个通道来执行备份,其它通道将处于空闲状态。关于通道数与
filesperset值之间也有一个大小关系,即 filesperset值不要小于设定通道数。
6)设置备份文件冗余度
configure datafile backup copies
如下:
rman> run{
set backup copies 2;
backup device type disk format
‘e:\oracle\oraback\dyk1\%u’,'e:\oracle\oraback\dyk2\%u’
tablespace users,sales;
}
7)configure maxsetsize配置备份集的最大尺寸
该配置限制通道上备份集的最大尺寸。单位支持 bytes,k,m,g。默认值是 unlimited。
8) rman备份相关的动态性能表
v$archived_log:本视图包含了所有归档重做日志文件的创建情况,备份情况以及其
他信息。
v$backup_corruption:这个视图显示了 rman在哪些备份集中发现了损坏的数据坏。
在你使用 backup validate命令对备份集进行检查时如果发现了损坏的数据块, rman
将在这个视图中写入记录。
v$copy_corruptio:本视图显示了哪些镜像复制备份文件已经被损坏。
v$backup_datafile:本视图通常用来获取每个数据文件中非空白数据块的数量,从
而帮助你创建出大小基本相等的备份集。另外,在视图中也包含了数据文件中损坏的
数据块的信息。
v$backup_redolog:本视图显示了在现有的备份集中饮食有哪些归档重做日志文件。
v$backup_set:本视图显示了已经创建的备份集的信息。
v$backup_piect:本视图显示了已经创建的备份片段的信息。
可以通过如下 sql语句获得正在进行的镜像复制操作的状态信息:
select sid,
serial#,
context,
sofar,
totalwork,
round(sofar/ totalwork* 100, 2)“% complete”
from v$session_longops
where opname like‘rman:%’
and opname not like‘rman:aggregate%’
通过如下 sql获得 rman用来完成备份操作的服务进程的 sid与 spid信息:
select sid,spid,client_info from v$process p,v$session s where p.addr=s.paddr and
client_info like‘%id=rman%’
rman通道
上次基础知识讲提到了通道, rman通道实质是一个到存储设备的数据流。就像城市交
通道路,多建几个环路对于缓解交通是有意义的。在 rman中可以通过手动方式或自动
方式分配通道。
1)手工分配通道
在执行 backup、 restore、 delete等需要进行磁盘 i/o操作的命令时,可以将它们与 allocate
channel命令放在一个 run的命令块中,利用 allocate channel为它们分配通道。例如:
run{
allocate channel ch1 device type disk format‘e:\oracle\oraback\%u’;
backup datafile‘e:\oracle\oradata\oradb1\sj_data.ora’;
}
需要注意的是, rman中执行的每一条 backup、 delete等命令都至少要求使用一个通道,
通道数决定了这些操作执行的并行度。
数据库备份策略和oracle备份数据库的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!