我是靠谱客的博主 幸福夏天,最近开发中收集的这篇文章主要介绍rman备份原理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1 . 进入rman软件

2 . connect target /
rman以sysdba连接数据库,连接数据库建立一个专用服务器进程,并创建两个服务进程(主要进程和次要进程)。

show all;查看所有的参数设置,如果需要可以修改,(比如修改通道和过期时间,备份位置),然后执行备份。
3 . backup database;
下发备份命令之后,会建立一个通道进程,通道程序会在pga中分配。rman主要进程对DBMS_RCVMAN调用,从控制文件解析出数据库结构信息(确定版本和控制文件信息(类型,当前序列号,创建时间))。
如果是数据库完全备份,rman会请求数据库的每一个数据文件的信息,判断是否离线,所在磁盘和数据文件的工作方式。

rman就准备开始备份了。为了保持一致性rman会先构建控制文件快照。

rman主要进程对DBMS_BACKUP_RESTORE的调用,并根据数据文件数分配输入和输出缓冲区(分配内存)。分配了内存后,rman初始化备份片,备份片得到了一个唯一的默认名字。

当备份片初始化完成,通道进程开始数据库备份。rman会判断是否使用了spfile,如果用了spfile会自动备份spfile成为备份集的一部分。还要备份当前的控制文件。

完成控制文件和spfile的备份,通道进程开始读取数据文件并将数据块推入输入缓冲区,之后从输入缓冲区到输出缓冲区的内存队列。

内存的写操作。在这个写操作期间,rman会判断块是否被初始化或数据块头信息是否为零。如果块用过(块头信息不为0),rman会在这个块上执行效验操作。如块头和脚注不匹配,rman会指出存在error的数据块并终止备份。如通过则数据块被推入输出缓冲区。

一般输出缓冲区填满,就会把输出缓冲区的内容转存到备份文件位置。输出缓冲区里有来自各个数据文件的块杂乱无章,只有rman能还原到正确位置。在备份片写入数据块时,可从rman的次要进程得到备份的状态信息,次要进程在数据库上检查过程调用信息。

一旦一个数据文件的所有数据块都被读入输入缓冲区并且确定了状态,rman就会通过将这个数据文件头写入备份片来结束该文件的备份操作。所有数据文件头都被写入备份片之后,rman(主要进程)会生成最后一个对DBMS_BACKUP_RESTORE的调用,这个调用向控制文件中写入备份信息,包含备份片名,启动备份操作时的scn,完备备份操作时间。

这就是备份的所有工作流程!

最后

以上就是幸福夏天为你收集整理的rman备份原理的全部内容,希望文章能够帮你解决rman备份原理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部