没有合适的资源?快使用搜索试试~ 我知道了~
首先看一下Db2backup操作的线程模型,如图1所示(图片来源见参考资料):图1.Backup线程模型它主要包括db2bm,db2med,db2agent三类EDU,以及db2vend进程,在参考资料MaximizingPerformanceofIBMDB2Backups一文中有更详细的解释,这里简单说一下:1.db2agentEDU:负责backup开始阶段的工作,包括计算并创建最优数量的db2bm/db2medEDU、分配最佳大小的backupbuffer、通过向db2bm和db2med发送控制信息以协调备份工作。2.db2bmEDU:从emptyqueue里获取一个backupbuff
资源推荐
资源详情
资源评论
Db2备份恢复性能问题诊断与调优备份恢复性能问题诊断与调优
Db2 备份/恢复线程模型
Db2 备份线程模型
首先看一下 Db2 backup 操作的线程模型,如图 1 所示(图片来源见参考资料):
图 1. Backup 线程模型
它主要包括 db2bm, db2med, db2agent 三类 EDU,以及 db2vend 进程,在参考资料 Maximizing Performance of IBM DB2
Backups 一文中有更详细的解释,这里简单说一下:
1.db2agent EDU:负责 backup 开始阶段的工作,包括计算并创建最优数量的 db2bm/db2med EDU、分配最佳大小的
backup buffer、通过向 db2bm 和 db2med 发送控制信息以协调备份工作。
2.db2bm EDU:从 empty queue 里获取一个 backup buffer,然后从其对应的表空间里读取数据到 buffer 里,然后把写满的
buffer 放到 full queue 里。简单来讲,就是从磁盘上读数据到内存中。
3.db2med EDU:从 full queue 里获取一个 backup buffer,然后写到 backup 设备上。如果 backup 设备是磁盘,那么它直接
负责处理 I/O 操作;如果 backup 设备是存储管理器(storage manager),比如 TSM、NBU,它会把这个 buffer 交给 db2vend
进程。简单来讲,就是把内存中的数据写到磁盘上或者交给存储管理器。
db2vend 进程:如果使用了存储管理器,db2med 就会另外创建一个独立的 db2vend 进程,它负责从 db2med 接收数据并调
用 vendor API 将数据发送给存储管理器。
restore 线程模型
restore 操作的线程模型如图 2 所示(图片来源见参考资料):
图 2. Restore 线程模型
和 backup 线程模型类似,restore 操作同样包括 db2bm, db2med, db2agent 三类 EDU,以及 db2vend 进程:
db2agent EDU:和 backup 操作中的 db2agent EDU 功能类似,不再赘述。
db2med EDU:从 empty queue 里获取一个 buffer,从备份镜像里读取数据到 buffer 里,然后将 buffer 放到 full queue 里。
简单来讲,就是从磁盘上读取备份数据到内存中。另外,无论备份文件有几个,都只有一个 db2med EDU。
db2bm EDU:从 full queue 里获取一个 buffer,然后将里面的内容写到对应的表空间容器上,如果表空间有多个容器,I/O 操
作会由多个 db2pfchr EDU 并行写入。简单来讲,就是将内存中的数据写到容器上。
db2vend 进程:如果使用了存储管理器,就会产生一个 db2vend 进程,它负责调用 vendor API 从备份中读取数据,并将读取
的数据交给 db2med EDU。
Db2 backup/restore 命令中影响性能的参数
这一章主要介绍 db2 backup/restore 命令本身影响性能的参数。
INCREMENTAL
增量备份中只包含上次备份以来修改过的数据,备份出的文件会比较小,但并不意味着需要的时间也很短:如果表空间没有被
修改过,那么增量备份的时候就会跳过这个表空间;但只要表空间中的任一页做过修改,增量备份就会扫描这个表空间中的所
有页,并通过 page header 中的内容判断该页是否需要备份,这个过程甚至会导致增量备份花的时间比全备还要长。另外需
要注意的一点是,如果表空间修改过的页数过少,导致 db2med EDU 长时间拿不到数据,存储管理器可能会认为 db2 已经
hang 住,从而中断与 db2vend 的连接,导致备份失败,对应的解决方案是将存储管理器的 timeout 参数调大。
COMPRESS/ENCRYPT
如果备份启用了压缩或者加密,Db2 需要花额外的时间运行压缩算法或者加密算法,会造成备份/恢复速度的下降。
BUFFER
BUFFER 的大小和数量会影响备份/恢复性能,Db2 会自动调优 buffer 的数量和大小,其总大小受限于数据库配置参数
util_heap_sz。对于离线备份而言,backup buffer 总大小的理想值为 util_heap_sz 的 90%,对于在线备份而言,backup
buffer 总大小理想值为 util_heap_sz 的 50%。buffer 的数量取决于 db2bm 和 db2med EDU 的数量。如果想人为设定数量和
大小,可以在 backup/restore 命令中指定参数:'WITH num-buffers BUFFERS' 和 'BUFFER buffer-size'
PARALLELISM
开始备份时,每个 db2bm EDU 都会被分配给一个单独的表空间。表空间是按照从大到小顺序备份的,db2bm
份完一个表空间之后,就会检查是否还有未备份的表空间,如果有的话就从里面选择一个最大的进行备份,如果没有的话就会
保持空闲直到整个备份结束。db2bm EDU 的数量取决于 CPU 的数量,如果想要人为修改,则可以在 backup/restore 命令中
指定 PARALLELISM 参数。
OPEN SESSIONS
如果是备份到磁盘上,backup 命令的 TO 选项指定了多少个路径,就会有多少个 db2med EDU,每个 db2med 把数据写到自
己对应的路径;如果是备份到存储管理器, db2med 的数量取决于参数 'OPEN <N> SESSIONS'。对于恢复操作,只有一个
db2med EDU。
剩余8页未读,继续阅读
资源评论
Yoo?
- 粉丝: 4
- 资源: 932
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功