DB2数据库管理培训教程
合集下载
DB2培训文档

create procedure total_raise ( in p_min dec(4,2) , in p_max dec(4,2) , out p_total dec(9,2) ) language sql specific total_raise -- applies to luw and iseries tr: begin -- declare variables declare v_salary dec(9,2);
© 2006 IBM公司
IBM 软件部 | DB2 信息管理软件
定位删除:
语法:delete from [table name|view name] where current of <cursor-name>
create procedure cleanup_act ( in p_date date , out p_deleted int ) language sql specific cleanup_act -- applies to luw and iseries ca: begin declare v_date date; declare sqlstate char(5); declare c_emp cursor for -- (1) select emendate from emp_act for update; open c_emp; fetch from c_emp into v_date; set p_deleted = 0; while ( sqlstate = '00000' ) do if ( v_date < p_date ) then delete from emp_act where current of c_emp; -- (2) set p_deleted = p_deleted + 1; end if; fetch from c_emp into v_date; end while; close c_emp; end ca
© 2006 IBM公司
IBM 软件部 | DB2 信息管理软件
定位删除:
语法:delete from [table name|view name] where current of <cursor-name>
create procedure cleanup_act ( in p_date date , out p_deleted int ) language sql specific cleanup_act -- applies to luw and iseries ca: begin declare v_date date; declare sqlstate char(5); declare c_emp cursor for -- (1) select emendate from emp_act for update; open c_emp; fetch from c_emp into v_date; set p_deleted = 0; while ( sqlstate = '00000' ) do if ( v_date < p_date ) then delete from emp_act where current of c_emp; -- (2) set p_deleted = p_deleted + 1; end if; fetch from c_emp into v_date; end while; close c_emp; end ca
DB2培训文档.pptx

RETURN v_return_code; END gen
© 2006 IBM公司
IBM 软件部 | DB2 信息管理软件
调用者过程find_emp通过 get diagnostics取得被调用 者的返回值,get diagnostics 必须是紧跟在call语句之后
TIP:通过返回值判断 执行状态回结果集
存储过程中的结果集可以返回给别的存储过程,也可以返回 到客户端的应用程序。
定义游标的语法如下: declare <cursor-name> cursor [with hold] with return to caller [client] for <select statement> [stmt name]
IF ( v_total >= v_min ) THEN
SET p_bonus = 'Y'; ELSE
SET p_bonus = 'N'; END IF; END bn
© 2006 IBM公司
IBM 软件部 | DB2 信息管理软件
✓传递参数
在存储过程嵌套调用过程中,参数依照出现的次序进行传递,如果数据类型不匹 配,请使用cast函数进行数据类型转换;
ELSEIF ( v_rc = 1000 ) THEN
SET p_output = 'The employee does not exist!';
ELSE
SET p_output = 'Something else went wrong.';
END IF;
END fe
--(1) --(2)
© 2006 IBM公司
© 2006 IBM公司
© 2006 IBM公司
IBM 软件部 | DB2 信息管理软件
调用者过程find_emp通过 get diagnostics取得被调用 者的返回值,get diagnostics 必须是紧跟在call语句之后
TIP:通过返回值判断 执行状态回结果集
存储过程中的结果集可以返回给别的存储过程,也可以返回 到客户端的应用程序。
定义游标的语法如下: declare <cursor-name> cursor [with hold] with return to caller [client] for <select statement> [stmt name]
IF ( v_total >= v_min ) THEN
SET p_bonus = 'Y'; ELSE
SET p_bonus = 'N'; END IF; END bn
© 2006 IBM公司
IBM 软件部 | DB2 信息管理软件
✓传递参数
在存储过程嵌套调用过程中,参数依照出现的次序进行传递,如果数据类型不匹 配,请使用cast函数进行数据类型转换;
ELSEIF ( v_rc = 1000 ) THEN
SET p_output = 'The employee does not exist!';
ELSE
SET p_output = 'Something else went wrong.';
END IF;
END fe
--(1) --(2)
© 2006 IBM公司
© 2006 IBM公司
db2基础培训[1]
![db2基础培训[1]](https://img.taocdn.com/s3/m/56ff12e6f01dc281e53af0db.png)
db2基础培训[1]
分区数据库home目录
•一个实例映射到一个操作系统用户,拥有自己的主目录。 •每台分区的机器上单独创建的所有实例都必须使用相同的名称 和口令 •所有实例的主目录必须是相同的目录,这个目录必须在一个共享磁盘(NFS 共享)上创建 •DB2实例属主机器
db2基础培训[1]
数据库分区
存放在文件 default.env 中,该文件位于 /var 下的一个子目录中。对于每台机器,都存在该文件的一
个不同的本地副本。
/var/db2/v81/default.env
db2set –all :
[g]
•实例级概要注册表-分区共享
db2set –all :
[I]
db2set –lr
db2set DB2COMM=tcpip
对象管理 空间分配 管理方便 程度 使用限制
容器类型
性能
SMS
.操作系统 .需要时动态增长 .很少需要人工管理 .容器大小随文件系统增加 .数据和索引必须在同一表空间 .容器不能增加 .只有一种容器:目录
.动态扩展,略差于DMS
DMS
.数据库
.预分配
.需要人工指定一些参数,例如定义容器大小等 .可通过增加容器建立大容量的表空间
db2基础培训[1]
ACTIVE - Contains information for non-committed or non-externalized transactions
14
15
16
数据迁移工具
• EXPORT-将表中数据导出成文件 • IMPORT-将文件中数据导入表 • LOAD-将文件中数据导入表 • DB2MOVE-数据库迁移 • DB2LOOK-导出数据库对象
分区数据库home目录
•一个实例映射到一个操作系统用户,拥有自己的主目录。 •每台分区的机器上单独创建的所有实例都必须使用相同的名称 和口令 •所有实例的主目录必须是相同的目录,这个目录必须在一个共享磁盘(NFS 共享)上创建 •DB2实例属主机器
db2基础培训[1]
数据库分区
存放在文件 default.env 中,该文件位于 /var 下的一个子目录中。对于每台机器,都存在该文件的一
个不同的本地副本。
/var/db2/v81/default.env
db2set –all :
[g]
•实例级概要注册表-分区共享
db2set –all :
[I]
db2set –lr
db2set DB2COMM=tcpip
对象管理 空间分配 管理方便 程度 使用限制
容器类型
性能
SMS
.操作系统 .需要时动态增长 .很少需要人工管理 .容器大小随文件系统增加 .数据和索引必须在同一表空间 .容器不能增加 .只有一种容器:目录
.动态扩展,略差于DMS
DMS
.数据库
.预分配
.需要人工指定一些参数,例如定义容器大小等 .可通过增加容器建立大容量的表空间
db2基础培训[1]
ACTIVE - Contains information for non-committed or non-externalized transactions
14
15
16
数据迁移工具
• EXPORT-将表中数据导出成文件 • IMPORT-将文件中数据导入表 • LOAD-将文件中数据导入表 • DB2MOVE-数据库迁移 • DB2LOOK-导出数据库对象
DB2培训讲义_DB2性能优化入门

DML性能问题:查询优化
同时还要考虑到 RUNSTATS/REORG 因素。 RUNSTATS 命令可以更 新表中的统计信息。当表中的数据经过频繁的增删改后其相应的统计 信息会发生变化,而优化器选择执行计划的时候是根据这种统计信息 来计算的,所以运行 RUNSTATS 此时显得尤为重要。 REORG 可以 整理数据存储的物理结构,也能减少数据扫描的时间,提高查询的性 能。 从存储方面应当注意的是选取裸设备的 DMS 要比 SMS 性能要好,因 为它少了一层文件系统的缓冲而直接访问缓冲池。
学会使用 optimize for n rows 子句,它可以提高前面 n 条记录的显示 速度。这样可以使用户能够先快速查看这 n 条记录,然后再看其他纪 录。减少了用户的等待时间。
DML性能问题:查询优化
针对复杂查询时可以将数据库配置参数 DFT_QUERYOPT( 缺省查询 优化类 ) 的值设得高一些(7 或 9),针对简单查询可以将它设得低一 些 (3 或 5),因为设置越高优化器所作的分析就越深入,耗费在生成计 划上的时间就越多。 针对 C/S 结构的查询可以将查询语句写在服务器端生成存储过程来减 少数据的网络传输以及客户端的压力。而经过编译的存储过程执行得 更加高效。
DB2培训讲义
性能优化入门
有关的概念
DB2 性能优化的三个方面
内存 CPU I/O
内存因素
在内存方面,主要是考虑缓冲池 (BUFFERPOOL) 的使用。缓冲池是 一片用来缓冲从磁盘上读取的数据和索引的内存区域,这些数据和索 引信息在缓冲池中进行运算后最终还要写回磁盘。缓冲池的页面大小 有四种 (4K,8K,16K,32K),分别对应四种不同页面大小的表空间。缓冲 池的大小决定了能够从磁盘上缓冲数据的容量大小。当然缓冲池也不 是越大越好,缓冲池过大可能会导致连接数据库的时间过长,因为在 连接数据库时要为数据库的缓冲池分配内存空间。可以通过计算缓冲 池的命中率来评估缓冲池的使用效率:缓冲池命中率 =(1-(( 数据物理 读 + 索引物理读 )/( 数据逻辑读 + 索引逻辑读 ))) *100%,缓冲池命中 率越大说明缓冲池的使用效率高。缓冲池命中率太小说明缓冲池太小 应当调大。其中的数据物理读,索引物理读以及数据逻辑读和索引逻 辑读都可以从缓冲池的快照中获取。
DB2-培训内容

2024/9/22
8
DB2 旳总体构造
2024/9/22
9
DB2 旳总体构造
DB2 Environment
DB2 Instance
DB2 DataBase
DB2 DataBase
DB2 Instance
DB2 DataBase
DB2 Environment (db2set)
DB2 Instance (db2i…)
DB2 培训内容纲要
DB2简介
DB2 产品简介 DB2 旳总体构造 DB2 连接
DB2 SQL
数据库对象操作(DDL+) 数据操作(DML) 高级SQL
DB2 管理
数据存储 系统维护 监控和优化
附录
2024/9/22
1
DB2 产品简介
2024/9/22
2
DB2 产品简介
2024/9/22
2024/9/22
19
DB2 SQL
RETRIEVING DATA(查询)
Retrieving the Entire Table Projecting Columns from a Table Changing the Order of the Columns Restricting Rows from a Table Limiting Result Table Size Selecting Columns from Multiple Tables Using Correlation Names DB2 Functions(Row、Column) Subquery(子查询)
DB2 DataBase(db)
2024/9/22
10
DB2 连接
2024/9/22
DB2数据库培训教材

Copyright © 2006 Sihitech Co. - All Rights Reserved
北京宇信鸿泰软件技术有限公司
DB2 安装
选择“下一步”。
Copyright © 2006 Sihitech Co. - All Rights Reserved
北京宇信鸿泰软件技术有限公司
DB2 安装
Copyright © 2006 Sihitech Co. - All Rights Reserved
北京宇信鸿泰软件技术有限公司
恢复数据库到本地
从开始菜单上选择“开始->IBM DB2->命令行工具->命令窗 口”,并切换到E:\crmdb目录下。 执行“db2 -tf crmcs_rr2.sql”。
北京宇信鸿泰软件技术有限公司
DB2 概述
DB2是IBM公司的一个关系型数据库产品。 DB2可以运行在AS400、S390、UNIX、Windows等平台上。 DB2的手册、参考等文档可以从IBM的官方网站下载。 在建行OCRM项目中,因为该项目所使用工作流软件S1的原 因,数据库产品选择了DB2。
北京宇信鸿泰软件技术有限公司
DB2 安装
接受默认值。选择“下一步”。
Copyright © 2006 Sihitech Co. - All Rights Reserved
北京宇信鸿泰软件技术有限公司
DB2 安装
接受默认值。选择“下一步”。
Copyright © 2006 Sihitech Co. - All Rights Reserved
北京宇信鸿泰软件技术有限公司
DB2 安装
DB2数据库培训教材(常用命令)

Copyright © 2006 Sihitech Co. - All Rights Reserved
北京宇信鸿泰软件技术有限公司
常用命令( DB2 常用命令(三)
13.创建视图: 13.创建视图: 创建视图 db2 create view viewname as select id from tbname 14.查询视图 查询视图: 14.查询视图: db2 select * from viewname 15. 查看视图 db2 select viewname from views where viewname=‘tbname'; viewname= tbname'; 16.节点编目 16.节点编目 db2 catalog tcp node node_name remote server_ip server server_port 17.节点反编目 17.节点反编目 db2 uncatalog node node_name
DB2 数据库培训(修订版)
中国建设银行北京开发中心 2008年1月
北京宇信鸿泰软件技术有限公司
目录
一、DB2概述 DB2概述 二、DB2常用命令 DB2常用命令 三、参考资料
Copyright © 2006 Sihitech Co. - All Rights Reserved
北京宇信鸿泰软件技术有限公司
Copyright © 2006 Sihitech Co. -源自All Rights Reserved
北京宇信鸿泰软件技术有限公司
常用命令( DB2 常用命令(六)
28. 建立别名 create alias db2admin.tables for sysstat.tables; create alias db2admin.views for syscat.views create alias db2admin.columns for syscat.columns; create alias guest.columns for syscat.columns; 29. 建立表 create table zjt_tables as (select * from tables) definition only; create table zjt_views as (select * from views) definition only;
第01章 DB2入门-2

§1.3 安装DB2 Express-c V9.1 for Windows
§1.3 安装DB2 Express-c V9.1 for Windows
§1.3 安装DB2 Express-c V9.1 for Windows
§1.3 安装DB2 Express-c V9.1 for Windows
§1.1 DB2 family of products简介
§1.2 DB2 软件版本
§1.2 DB2 软件版本
§1.2 DB2 软件版本
企业服务器版(DB2 Enterprise Server Edition (ESE)) 企业服务器版(ESE)是 DB2 的多用户版本,它允许用户创建和 管理单一分区数据库环境或分区数据库环境。分区数据库系统可以管 理大量数据,并提供诸如增强的性能和高可用性的优点。 · 构建大规模部门级应用和大型企业级数据仓库 · 能与异构平台上的DB2及第三方数据库共享资源 工作组服务器版(DB2 Workgroup Server Edition (WSE)) 工作组服务器版(WSE)是一个精选的关系数据库服务器,用于在 部门或工作组或者具有相当数量的内部用户的中型企业中进行部署。 · 小规模部门级应用,定位于局域网环境 · 不能存取OS/390和OS/400平台上的数据库 个人版(DB2 Personal Edition) · 个人单机使用,提供功能完整的数据库 · 提供了数据库存储设施并能够连接到远程DB2服务器,但不能响 应 远程请求 EveryPlace · 专为移动办公用户设计的微型数据库系统 · 用于PDA,HPC和嵌入式设备
§1.6 DB2工具 - SQL助手
§1.6 DB2工具 - 命令编辑器
§1.6 DB2工具 - 命令编辑器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11
db2pd常用方法
用途一 抓取锁信息,进行分析 db2pd –d dbname –app –tran –agent –dyn –locks wait>db2pd.out 分析db2pd.out
第一步 --sts列 W表示等待 G代表被授权获得锁
12
第二步 由第一步输出中的TranHdl对应到应用的AppHandl。 得到TranHdl 2和6 分别对应到应用的AppHandl 30和34
第三步获得应用程序的更多信息
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'
29
崩溃恢复
从数据库日志控制文件中获取不一致起点信息,并根据日志内容对所有在 不一致起点后成功提交事务进行再应用,而对其他未完成的事务进行回滚,从 而把数据库带回可用、一致状态。
1.自动 - 数据库参数AUTORESTART=ON(缺省) 2.手动 - 数据库参数AUTORESTART=OFF。使用db2 restart database
2. 当前APP锁等待的APP
显示当前APP正在哪个APP执行,信息包括被等待的APP的所名称及级 别,持有锁的AGENT ID,根据AGENT ID可以得到被等待锁的APP所 对应的SQL,考虑进行SQL优化或表优化等相关操作
以上功能为较为常用及实用的监控功能,该工具在管
理及维护方便也较为方便安全。
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
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 当读有效性值较高时,表示可能在发生表扫描,可通过索引等手段进行优化
26
3
备份与恢复
3.1 目的 3.2 基本概念 3.3 备份恢复 3.4 适用场景
27
3.1 目的
数据库备份和恢复的目的
从故障中恢复数据库系统,有效保护数据。
故障场景
系统崩溃(掉电、硬件故障、OS失败、数据库实例失败等) 事务失败(语句失败、进程失败等) 人为错误(误操作等) 存储媒介故障(存储器物理损坏等) 灾难(自然灾害等)
db2pd
不需要建立与数据库的连接,基本不会对系统造成影响 常用参数,以下参数常组合使用,导出文件进行分析 -appl 应用程序 -bufferpool 缓冲池信息 -logs 日志信息 -tablespaces 表空间信息 -locks 锁信息 -agents 代理信息 -dynamic 动态sql信息 -tcbstats 表状态信息
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') 只需用一个事件监控器就可捕获死锁、锁超时、锁等的语句
述了各个对象在
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
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
DB2数据库管理
浪潮软件
2018/10/19
母版题样式
2
目录
1 2
3 4
基本概念
监控与维护 备份与恢复 性能优化 常见问题处理
5
3
1
基本概念
1.1 DB2数据库对象 1.2 对象层次关系
4
1.1 DB2数据库对象
DB2数据库体系
系统
实例
数据库
数据库对象
表、视图、索引、模式、存储过程、程序包等 缓冲池、日志文件、表空间 物理存储、表空间容器、目录、文件系统或裸设备
28
3.2 基本概念
事务
(事务=工作单元) 事务是组合在一起的一个或多个 SQL 操作序列,也被称为一个工作单 元,用来保证数据的完整性和一致性。
特性如下:
A 原子性–操作序列不可分割,或全部成功或全部失败。
C 一致性–事务执行前后数据库都处于一致性状态。 I 隔离性–并发事务相互隔离,互不影响。 D 持久性–事务被成功提交后,对数据库的更新被持久化,不会丢失。
找到性能较差的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;
31
前滚恢复
前滚恢复=时间点恢复,恢复数据到一个指定的时间点。
归档日志模式下执行,有数据库完整备份,必须保留备份后到特定时间点之间所有的日志文件。 数据库前滚恢复必须离线进行。 在执行不带without rolling forward选项的DB2命令restore后,执行前滚恢复命令rollforward 将使数据库恢复至备份后的某一特定时间点或者日志末尾。
14
用途二 查看表重组进度 db2pd –d dbname –reorg
用途四 查看HADR同步状态
15
db2top
db2top 监视实用程序快速高效地监视复杂的DB2环境。它结合来自所有数 据库分区的 DB2 快照信息,使用基于文本的用户界面提供正在运行的 DB2 系统的动态实时视图。
db2top不支持上下滚屏,一般用于了解表空间状态,缓冲池命中率,app执 行 sql,了解处于锁等待状态的应用。进而用db2pd等工具分析 示例:db2top –d dbname
21
2.3 第三方监控工具
常用第三方监控工具QuestCentral.exe
22
常用第三方监控工具QuestCentral.exe
23
1. APP状态:
UOW EXECUTING:正在执行 Wait for uow:等待执行 Wait for lock:锁等待
2.执行成本:
该sql执行成本,数值越大,成本越高,执行越慢。如有多条成本较高的相同
32
部分恢复
部分恢复,恢复数据库一部分数据和结构,工作原理同前滚恢复,区别是
备份和恢复的对象是表空间 。
主要特点
相对数据库备份,表空间备份和恢复在时间上占有优势,并且方法灵活。
系统编目表空间的备份和恢复必须离线进行,并且必须前滚至日志的末尾。而其他的表空间都 可在线进行,并且可以前滚至某个特定时间点。 通过设定注册表变量DB2_COLLECT_TS_REC_INFO=ON,前滚命令将跳过不需要的日志