rman备份笔记

前几天听老邱的在线课程----rman备份,现在整理一下当时的笔记。
rman备份原理
1.rman要进行备份的数据库叫目标数据库。
2.rman是一个客户端程序,需要建立到目标数据库的客户端连接,并在目标数据库上创建对应的服务器进程和session。rman输入的各个命令,从客户端传递到服务器,由服务器进程负责执行,rman只能使用专有服务器连接,不能使用共享服务器连接。
3.备份过程中,rman读取目标数据库的控制文件,从而获得目标数据库里包含哪些数据文件,归档日志文件,以及各个检查点scn,指导rman完成备份和恢复的具体操作。
4.rman获得了需要备份的文件列表之后,在将数据备份到备份介质上时,需要建立到这些备份介质的通道channel。一旦建立了通道,数据就会从该通道备份到指定的备份介质上,每次备份恢复,我们都可以创建多个通道以加快速度。
5.rman将通道作为数据库上的服务器进程,会为每个通道都创建一个。对应的服务器进程,同时,通道的类型就决定了要将数据库备份到哪种介质上,两种通道类型:磁盘通道和磁带通道
磁盘和闪回恢复区使用的都是磁盘通道
磁带使用的磁带通道,需要借助MML(media management library),rman可以把备份的数据通过MML传递到磁带上。
6.rman备份过程中,会产生较多的服务器进程(rman客户端以及通道),需要内存较多,对于初始化参数sessions和processes都要相应的增加。
7.rman信息库rman repository,rman备份过程中产生的元数据,包括备份文件的名称,路径,恢复完成的时间,检查点scn等数据,rman信息库可以存放在两个位置:目标数据库的控制文件,
恢复目录recovery catalog
8.控制文件里面存放的记录分为两类:可删除记录(归档日志文件的历史记录以及rman备份的元数据)
不可删除记录(数据文件,联机日志文件列表等)
如果需要在控制文件中存放新的记录,则可以删除那些可删除的部分,从反而提供可用空间,注意:如果rman备份的元数据被删除了,rman的备份就会失去意义,因此rman备份的元数据是十分重要。
9.可以通过设置初始化参数control_file_record_keep_time来决定控制文件中可删除去的部分,该参数默认是7天,表示控制文件始终保持最近7天的可删除记录,7天前的备份信息,归档日志文件历史记录被删除,如果设置为0,表示不删除历史记录,那么控制文件的增长将会失控。因为rman的备份周期不能超过7天。
10.rman恢复目录是可选的,不是必须的,元数据通过目标数据库的控制文件传递到恢复目录,rman的元数据始终都存在一份在目标数据库的控制文件中,不会因为恢复目录的存在而删除,使用rman完成备份以后,会将控制文件的rman元数据同步到恢复目录,默认情况下,rman还可以同时为多个目标数据库服务,在同一个恢复目录里面,可以保留多个目标数据库的rman元数据。
11.rman工具本身由两部分组成
rman可执行程序:这是一个命令接口,提供了交互的界面,能够解释我们的rman命令,返回结果。在工作中,完成的实质性工作很少。
dbms_rcvman:用来读取目标数据库的控制文件信息,并将这些信息传给rman,从而rman可以获取要备份的文件列表,以及其他一些信息。
dbms_backup_restore:完成具体的备份恢复工作,并在控制文件中写入备份的元数据。
两个数据包已经硬编码到数据库软件中,因此数据库在关闭的情况下也可以使用rman。
12.rman备份的最小单位是数据块,不是数据文件,rman备份时,总是一个数据块一个数据块的读取和写入,rman可以与dbwr进程协调一致,如果在备份过程中,发现是一个脏的数据块,可以等到dbwr进程将内存的内容刷新到数据文件以后,才备份该脏数据块,因此不会出现分离数据块的情况,同时避免了使用begin backup,也就不会产生过多的重做日志,和手工的备份是两种机制。
13.rman只会对使用过的数据块进行备份,可以在数据库关闭时备份,rman备份时,从物理层面来判断数据块是否被使用,也就是说,只要某个数据块的头部被格式化过,rman就会认为这个数据块被使用过,就会备份该数据块,例如我们删除了一个大表,但是rman的备份不会减少多少,因为删除表的时候,只是将数据字典中的信息进行了删除,表实际所占用的数据块并没有删除,数据块物理上还有数据,因此rman还会进行备份。
rman备份的优点
1.备份数据文件,归档日志,控制文件,spfile
2.自动维护备份相关的元数据,例如备份文件的名称,完成备份的scn号
3.以数据块为单位进行备份,只备份使用过的数据块
4.对备份出来的文件进行压缩
5.自动检测数据块是否损坏
6.支持增量备份
等等
rman全库备份顺序
1.首先备份数据库文件
2.备份归档日志
3.备份控制文件
rman归档备份
只备份归档,没有备份控制文件
注意:备份归档的时候一定要备份控制文件
不完全恢复注意事项
RMAN>run{
2>set until time="to_date('2009-03-19 20:05:17','yyyy-mm-dd hh24:mi:ss')";
3>restore database;
4>recover database;
5>alter database open resetlogs;
}
rman log
在rman备份的时候,有一个选项是log输出,在备份的时候,oracle说明是一个选项,但是对于我们来说,备份一定要有log
恢复实验
作为dba或oracle技术人员要牢记,备份后要定期恢复检测备份的可用性,
备份到文件系统:crosscheck的时候,会检测备份文件头是好是坏,但是备份到磁带上,只是检测文件是否存在,不会检测文件头好坏。
rman备份恢复优化
1.每个备份集只能由一个通道来恢复,因此每个备份集中的备份文件个数越少越好,通过filesperset设置。
2.备份的通道和恢复的通道个数不是一一对应的。恢复时候根据备份集的个数来分配通道。
3.备份恢复的通道个数不是越多越好,要看生产存储io速度和备份空间的io速度。
注意:不要把整个数据库只分配一个通道。
请使用浏览器的分享功能分享到微信等