DB2数据库管理培训教程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
14
用途二 查看表重组进度 db2pd –d dbname –reorg
用途四 查看HADR同步状态
15
db2top
db2top 监视实用程序快速高效地监视复杂的DB2环境。它结合来自所有数 据库分区的 DB2 快照信息,使用基于文本的用户界面提供正在运行的 DB2 系统的动态实时视图。
db2top不支持上下滚屏,一般用于了解表空间状态,缓冲池命中率,app执 行 sql,了解处于锁等待状态的应用。进而用db2pd等工具分析 示例:db2top –d dbname
create event monitor lockevmon for locking write to unformatted
event table (table locks)
Call sysproc.EVMON_FORMAT_UE_TO_TABLES('LOCKING',NUL L,NULL,NULL,NULL,NULL,'RECREATE_FORCE',-1,'SELECT * FROM locks ORDER BY event_timestamp') 只需用一个事件监控器就可捕获死锁、锁超时、锁等的语句
31
前滚恢复
前滚恢复=时间点恢复,恢复数据到一个指定的时间点。
归档日志模式下执行,有数据库完整备份,必须保留备份后到特定时间点之间所有的日志文件。 数据库前滚恢复必须离线进行。 在执行不带without rolling forward选项的DB2命令restore后,执行前滚恢复命令rollforward 将使数据库恢复至备份后的某一特定时间点或者日志末尾。
11
db2pd常用方法
用途一 抓取锁信息,进行分析 db2pd –d dbname –app –tran –agent –dyn –locks wait>db2pd.out 分析db2pd.out
第一步 --sts列 W表示等待 G代表被授权获得锁
ቤተ መጻሕፍቲ ባይዱ2
第二步 由第一步输出中的TranHdl对应到应用的AppHandl。 得到TranHdl 2和6 分别对应到应用的AppHandl 30和34
SQL,执行较慢,可考虑优化该SQL。
3. 挂起锁的数量
该数值表示挂起锁的数量,可观察哪些app挂起锁较多。
4.该APP对应的SQL
直观显示该APP对应的SQL,方便抓取运行缓慢,锁等待等状态的sql
24
WAIT FOR LOCK状态APP锁信息监控
25
1. 当前持有锁:
显示当前持有锁的AGENT ID,锁名称及级别,对应锁的表等信息
db2pd
不需要建立与数据库的连接,基本不会对系统造成影响 常用参数,以下参数常组合使用,导出文件进行分析 -appl 应用程序 -bufferpool 缓冲池信息 -logs 日志信息 -tablespaces 表空间信息 -locks 锁信息 -agents 代理信息 -dynamic 动态sql信息 -tcbstats 表状态信息
26
3
备份与恢复
3.1 目的 3.2 基本概念 3.3 备份恢复 3.4 适用场景
27
3.1 目的
数据库备份和恢复的目的
从故障中恢复数据库系统,有效保护数据。
故障场景
系统崩溃(掉电、硬件故障、OS失败、数据库实例失败等) 事务失败(语句失败、进程失败等) 人为错误(误操作等) 存储媒介故障(存储器物理损坏等) 灾难(自然灾害等)
5
基本概念
DB2体系结构中的最高一层是系统,一个系统表示DB2的一个安装。在由很多 机器组成的网络环境中,我们有时也称系统为数据库分区。一个系统可以包含 多个DB2实例,每个实例能够管理一个或多个数据库。
从操作系统角度看,DB2的实例是一组进程和一组共享内存。实例为一个数据 库的集合,共同运行在一个逻辑服务单元中(同一个端口)。在一台机器上可 以有多个相互独立的实例,实例之间彼此独立,同时运行,不会相互影响。每 个实例可以管理若干个数据库,一个数据库只属于一个实例。
32
部分恢复
部分恢复,恢复数据库一部分数据和结构,工作原理同前滚恢复,区别是
备份和恢复的对象是表空间 。
主要特点
相对数据库备份,表空间备份和恢复在时间上占有优势,并且方法灵活。
系统编目表空间的备份和恢复必须离线进行,并且必须前滚至日志的末尾。而其他的表空间都 可在线进行,并且可以前滚至某个特定时间点。 通过设定注册表变量DB2_COLLECT_TS_REC_INFO=ON,前滚命令将跳过不需要的日志
16
9.7新的锁事件监控
Lock timeout events (MON_LOCKTIMEOUT) = hist_and_values Deadlock events (MON_DEADLOCK) = hist_and_values Lock wait events (MON_LOCKWAIT) = hist_and_values Lock wait event threshold (MON_LW_THRESH) = 10000
29
崩溃恢复
从数据库日志控制文件中获取不一致起点信息,并根据日志内容对所有在 不一致起点后成功提交事务进行再应用,而对其他未完成的事务进行回滚,从 而把数据库带回可用、一致状态。
1.自动 - 数据库参数AUTORESTART=ON(缺省) 2.手动 - 数据库参数AUTORESTART=OFF。使用db2 restart database
找到性能较差的dynamic SQL语句
通过Sysibmadm.snapdyn_sql视图,根据不同字段进行排序,找到性能较差的SQL 语句
排序较多的sql
select num_executions,sort_overflows,total_sort_time,stmt_text from sysibmadm.snapdyn_sql order by sort_overflows desc fetch first 10 rows only; 执行耗时最长的sql ·select num_executions,total_exec_time,stmt_text from sysibmadm.snapdyn_sql order by total_exec_time desc fetch first 10 rows only;
21
2.3 第三方监控工具
常用第三方监控工具QuestCentral.exe
22
常用第三方监控工具QuestCentral.exe
23
1. APP状态:
UOW EXECUTING:正在执行 Wait for uow:等待执行 Wait for lock:锁等待
2.执行成本:
该sql执行成本,数值越大,成本越高,执行越慢。如有多条成本较高的相同
2. 当前APP锁等待的APP
显示当前APP正在哪个APP执行,信息包括被等待的APP的所名称及级 别,持有锁的AGENT ID,根据AGENT ID可以得到被等待锁的APP所 对应的SQL,考虑进行SQL优化或表优化等相关操作
以上功能为较为常用及实用的监控功能,该工具在管
理及维护方便也较为方便安全。
表空间是介于逻辑表和物理容器之间的逻辑对象,所有的表、索引和其他数据都
存储在表空间中,表空间总是关联到相同页大小的缓冲池
视图是虚拟的表,不需要物理存储,不包含真实的用户物理数据
6
系统、实例、数据库
7
1.2 对象层次关系
DB2中的数据库
对象主要分为数
据库、表空间、 表、索引、视图、 容器(存储组)。 右图全局概要描
DB2数据库管理
浪潮软件
2018/10/19
母版题样式
2
目录
1 2
3 4
基本概念
监控与维护 备份与恢复 性能优化 常见问题处理
5
3
1
基本概念
1.1 DB2数据库对象 1.2 对象层次关系
4
1.1 DB2数据库对象
DB2数据库体系
系统
实例
数据库
数据库对象
表、视图、索引、模式、存储过程、程序包等 缓冲池、日志文件、表空间 物理存储、表空间容器、目录、文件系统或裸设备
第三步获得应用程序的更多信息
C-AnchID/C-StmtUID 和L-AnchID/L-StmtUID 上。“C” 代表当前 (current),“L” 代表最近(last)的语句 UID
13
第四步检查动态语句缓存的内容
经分析得出锁等待的语句为 UPDATE EMPLOYEE SET SALARY = SALARY * 0.02 拥有锁的APP的语句为 UPDATE EMPLOYEE SET BONUS = SALARY * 0.1 WHERE JOB = 'MANAGER'
17
2.2 监控要点
日常监控 数据库状态 表空间状态、使用率 applications状态 锁情况 性能指标 常用性能指标 读有效性rows_read/rows_selected 寻找性能较差的动态SQL Buffpool命中率
18
日常监控 数据库状态 db2 get snapshot for db on dbname 表空间状态及占用率 db2 get snapshot for tablespaces on dbname db2pd –d dbname –tab db2top –d dbname 出现界面后按t 缓冲池命中率 db2pd –d dbname –buf db2top –d dbname 出现界面后按b 是否有锁等待 db2pd –d dbname –locks wait db2top –d dbname 出现界面后按U
20
db2advis建议索引工具 采用db2advis建立合适的索引,使得其能够走索引查询,由于索 引的范围和排序,可以直接跳过许其他行,定位到符合我们需要 的行。 前提条件 创建分析表 db2 –tvf &installpath/misc/EXPLAIN.DDL 做数据库升级或数据迁移后,若版本与原有版本不一致,应先 drop掉分析表,创建新的分析表 常见用法如下: 创建db2advis.in文件,保存要分析的sql db2advis –d dbname –i db2advis.in 可参考建立索引
述了各个对象在
DB2中的关系。
8
2
监控与维护
2.1 监控工具 2.2 监控要点 2.3 第三方监控工具
9
2.1 监控工具
即时监控工具
--snapshot --db2pd --db2top 事件监控工具 – Event monitor – 新事件监控工具(9.7)
10
snapshot
需要打开实例级监控器开关,有一定性能损耗 --snapshot命令行监控 --snapshot管理视图(DB2V9后) 管理视图较容易分析,通常用于查找存在性能问题的动态sql
28
3.2 基本概念
事务
(事务=工作单元) 事务是组合在一起的一个或多个 SQL 操作序列,也被称为一个工作单 元,用来保证数据的完整性和一致性。
特性如下:
A 原子性–操作序列不可分割,或全部成功或全部失败。
C 一致性–事务执行前后数据库都处于一致性状态。 I 隔离性–并发事务相互隔离,互不影响。 D 持久性–事务被成功提交后,对数据库的更新被持久化,不会丢失。
30
版本恢复
版本恢复=完全恢复,恢复数据库所有数据和结构。
循环日志模式下:备份和恢复都必须离线进行。执行DB2命令(backup/database)来进行 全备份和版本恢复。
归档日志模式下:备份可以在线,而恢复必须离线进行。在执行DB2命令(restore)进行恢
复的时候,需指定without rolling forward选项来清除数据库的ROLLFORWARD PENDING状态。
19
常用性能指标 读有效性rows_read/rows_selected
db2 get snapshot for db on dbname:Rows read /Rows selected 管理视图查询:select rows_read/rows_selected from sysibmadm.snapdb; 对于OLTP,最好小于20 对于OLAP,最好小于100 当读有效性值较高时,表示可能在发生表扫描,可通过索引等手段进行优化