• 1. DB2® Linux®, UNIX®, Windows® 基础和 Data StudioData Management Emerging Partnerships and Technologies IBM Toronto LabSummer/Fall 2009
  • 2. 课程内容DB2 简介 DB2 版本及其特点 DB2 结构和用户 实例 IBM 数据服务器客户端 表空间 缓存池 安全性 SAMPLE 数据库 数据输入/输出 IBM Data Studio
  • 3. DB2 9.7 Linux, Unix, Windows介绍2009年6月19号正式发布 多平台支持 Linux, UNIX (AIX, HP-UX) Windows 2000, XP, 2003, Vista, 2008 Solaris 共享同样的代码 “DB2 is DB2 is DB2” 不同平台见不需要迁移 新版本在所有平台上同时发布
  • 4. DB2 9.7版本及功能扩展包中小型企业, 独立软件开发商, 部门,测试及系统开发大型企业工作组 服务器 版本DB2 Everyplace 版本企业级 服务器版本Express 版本 Express-C 版本 企业级 数据库 开发版本包括多种功能扩展包(存储优化功能包, 性能优化功能包等), Informix, 客户端, 驱动程序, DB2 Connect, Extenders,及其它更多功能个人版
  • 5. DB2 企业级版本针对重型工作负载和大型数据仓库设计 没有内存使用限制 没有处理器限制 支持Linux, UNIX, Windows, zLinux平台 包括以下功能 pureXML, HADR, Online REORG, Homogenous Federation, DB2 Governor, MQT, MDC, Query Parallelism, Connection Concentrator, Table Partitioning. 提供以下可扩展的高级功能: 存储优化功能 (Storage Optimization Feature) 高级访问控制功能 (Advanced Access Control Feature) 性能优化功能 (Performance Optimization Feature) 同源复制功能 (Homogenous Replication Feature) 测量数据管理功能 (Geodetic Data Management Feature)
  • 6. DB2 9.7 企业级版本附加功能特点存储优化 行压缩,索引压缩,临时表压缩以及XML压缩 高级访问控制 基于标签访问控制提供的粒度控制能力 性能优化 提供工作负载管理服务和一系列用来优化 DB2 数据服务器性能的报告和工具 包括查询巡视器,工作负载管理,性能专家工具 (Express, Workgroup, Enterprise) 同源复制 使用Q-复制原理,来提供基于查询的高速复制功能来达到分散,组合及同步数据的目的 测量数据管理 Geodetic Extender:按照地理测量学的原理设计,将地面作为球体对待,从而消除投影和地球曲面等造成数据的不精确
  • 7. SQL 简介DB2支持查询关系型数据的SQL语言 同样也支持查询XML数据的XQUERY语言 SQL四种语句类型: 数据定义语言 (DDL) 定义数据对象的属性 例如. CREATE, ALTER, DROP, TRANSFER OWNERSHIP 数据管理语言 (DML) 用来返回,添加,编辑和删除数据 例如. SELECT, INSERT, UPDATE, DELETE
  • 8. SQL 简介数据控制语言 (DCL) 控制数据库和数据对象的访问 例如. GRANT, REVOKE 事务控制语言 (TCL) 将一组DML语句组合到事务中来集中地应用到一个数据库或者因为错误而处于未完成的状态 例如. COMMIT, ROLLBACK, SAVEPOINT
  • 9. DB2 处理机制DB2 引擎 (db2sysc) 在内存中,主引擎处理程序(db2sysc)以进程模式存在 引擎分派单元(Engine Dispatchable Units - EDU )负责执行各种任务 进程模型的优势: 增加数据库性能 节省内存资源 DB2 代理 (db2agent) EDU作为应用程序的代理,负责执行各种任务,包括处理数据库应用程序请求 DB2 engine保持多个代理存在来保证当有服务请求时能够及时响应 两种主要代理方式: 协调代理, 子代理
  • 10. DB2 实例独立的DB2环境 每个数据服务器可以有多个实例 所有实例共享同样的可执行二进制文件 每个实例有自己的配置参数文件 每个实例可以有不同的软件级别
  • 11. DB2 实例一些有关实例的命令 下面多数命令需要在控制中心中执行命令描述例子db2start 启动默认实例db2startdb2stop停止当前实例db2stop -fdb2icrt创建实例db2icrt –u db2fenc1 db2inst1db2idrop删除实例db2idrop –f db2inst1db2ilist列出所有实例db2ilistdb2imigr升级DB2后迁移一个实例db2imigr –u db2fenc1 db2inst1db2iupdt安装补丁后升级实例db2iupdt –u db2fenc1 db2inst1
  • 12. DB2 实例 : 实例和数据库配置文件查看和更改实例配置文件: 查看和更改数据库配置文件:描述例子查看数据库管理器配置db2 get dbm cfg show detail更改数据库管理器配置db2 update dbm cfg using health_mon off描述例子查看数据库配置db2 get db cfg for testdb db2 connect to testdb db2 get db cfg show detail更改一个数据库配置db2 update db cfg using logprimary 10
  • 13. DB2 日志通过DIAGLEVEL参数来控制日志的数量 db2diag.log日志 存放于$DB2INSTANCE_HOME/sqllib/db2dump/ 该日志包含DB2所有错误和警告日志信息 stmm.log日志 存放于$DB2INSTANCE_HOME/sqllib/db2dump/stmm 日志存放于多个文件中(最多5个) 该日志包含性能统计数据和DB2的优化结果
  • 14. IBM Data Server Client客户端允许客户端计算机连接远程服务器并且访问该服务器上的数据库. 通过三种方式: IBM Data Server Runtime Client 支持在JDBC, ADOODBC, DB2 CLI, .NET, ADO.NET, OLE DB, PHP和Ruby中运行和配置应用程序. 包含DB2 CLP命令行程序,但是没有图形化界面工具 目录保存连接信息(结点, 数据库) IBM Data Server Client 包括以上所有功能,另外对应用程序开发,数据库管理和配置服务器/客户观提供支持 包括图形化工具 IBM Data Server Drivers IBM ODBC和CLI数据服务器驱动程序 IBM JDBC和SQLJ数据服务器驱动程序 IBM数据服务器驱动程序包 ODBC, CLI, .NET, OLE DB, PHP, Ruby, JDBC和SQLJ CLPPlus为独立软件开发商 设计的小型解决方案
  • 15. 配置远程连接有些程序接口在使用数据库之前要求将其添加进目录中. 执行添加功能的工具: 配置助手 (图形化界面) 控制中心 (图形化界面) 命令行处理器 (CLP) 当连接远程服务器上数据库时,需要: 将远程系统 (结点) 添加到目录中 将远程结点上的数据库添加到目录中注意:当您创建一个数据库时,DB2会自动将其添加进本地目录中
  • 16. 手动添加一个远程目录作为实例用户来向目录中添加远程结点. 你也可以将DAS添加进远程结点: 将远程数据库添加进目录中: 完成以上操作后,可以开始正常使用远程数据库:db2 catalog tcpip node db2node remote SERVER1 server 50001 db2 catalog admin tcpip node db2das remote SERVER1aliashostname/IP addressport #db2 catalog db SAMPLE at node db2node authentication SERVERdb2 connect to SAMPLE user db2inst1 using password
  • 17. 显示本地目录信息使用以下命令来显示本地目录中的结点,DAS和数据库信息: db2 list database directory db2 list admin node directory db2 list node directory
  • 18. DB2 存储 : 表空间表空间由一个或多个容器组成的逻辑存储集合 所有的表,索引,和其它数据类型都存在表空间中 给表空间添加磁盘物理地址(容器)来控制表空间的数据存放在磁盘的什么位置.
  • 19. DB2 存储 : 表空间目录表空间 (一个) 包含数据库中所有的系统目录表 该表空间称为SYSCATSPACE并且不能被删除 用户表空间 (一个或多个) 包含所有用户定义的表 用户表空间USERSPACE1会被默认创建 系统临时表空间(一个) 存储数据库管理器执行排序和联接操作时所需要的数据 用户临时表空间 (一个或多个): 存储创建表时所需要的临时数据,使用以下命令来创建 CREATE/DECLARE GLOBAL TEMPORARY TABLE
  • 20. DB2 存储 : 表空间表空间可以由操作系统管理(SMS),或者由数据库管理(DMS),或者由DB2的自动存储功能管理 系统管理空间 (SMS) 数据存放在文件系统的文件中 使用操作系统的标准I/O函数来访问数据 除非需要,否则空间不会被额外分配 适用于小型,个人数据库以及存储空间变化频繁的数据库 对维护和监控要求较低 CREATE TABLESPACE tbsp1 MANAGED BY SYSTEM USING ('d:\acc_tbsp', 'e:\acc_tbsp', 'f:\acc_tbsp')
  • 21. DB2 存储 : 表空间数据库管理空间 (DMS) 数据存储在文件或者Raw设备中 能够绕过操作系统的I/O函数从而增加性能 适用于对数据库性能要求比较高的应用程序 需要较频繁的维护和监控 当容器空间不足时,可以通过设置参数来自动增加容器空间CREATE TABLESPACE tbsp1 PAGESIZE 8K MANAGED BY DATABASE USING (FILE 'd:\db2data\acc_tbsp' 5000, FILE 'e:\db2data\acc_tbsp' 5000)CREATE TABLESPACE tbsp2 PAGESIZE 8K MANAGED BY DATABASE USING (FILE ' /storage/dms1' 10 M) AUTORESIZE YES
  • 22. DB2 存储 : 表空间自动存储表空间 数据库允许使用自动存储时 数据库管理器能够自动分配容器 (物理存储地址) 自动调整表空间的大小 对普通/大型表空间来使用数据库管理 对用户或系统临时表空间使用系统管理 CREATE DATABASE mydb AUTOMATIC STORAGE YES CONNECT TO mydb CREATE TABLESPACE tbsp1 MANAGED BY AUTOMATIC STORAGE
  • 23. DB2 存储 : 缓冲池用来放置表和索引的缓存数据的内存区 能够有效的减少访问数据的时间 每个数据库至少需要一个缓冲池 通过内存自调优功能(STMM)来自动调价缓冲池达到优化目的
  • 24. DB2 存储 : 缓冲池每个表空间都有一个同样页面大小的缓冲池 根据表的用途设置多个缓冲池,能够通过缓冲不同数量的数据来达到增加数据库性能的目的,比如说: 给一个大型的随机访问表空间较小的缓冲池 给OLTP应用程序设置的表空间一个较大的缓冲池 如果创建表空间时,没有特别指定缓冲池,那么数据库会使用默认的 IBMDEFAULTBP缓冲池 CREATE BUFFERPOOL bp4k PAGESIZE 4K CREATE TABLESPACE tbsp1 PAGESIZE 4K BUFFERPOOL bp4k
  • 25. DB2 安全性 DB2中有三种授权方式: 权限 特权 LBAC基于标签访问 显式权限/特权: 通过GRANT语句来显式赋予权限或特权给用户 隐式权限/特权: 赋予用户所在的用户组,或用户所属的角色或其所继承的角色权限或特权来隐式的将该权限或特权赋予此用户
  • 26. DB2 SAMPLE数据库DB2自带的很多样本程序都是用SAMPLE数据库 如何创建支持XML和关系型数据的SAMPLE数据库: SAMPLE 数据库能够在任何时候被删除或者重建: 通过连接和查询SAMPLE数据库来验证数据库程序是否正确安装db2sampl –sql –xml db2 drop database SAMPLE
  • 27. 指定SQL或XQuery中访问数据的操作语句的顺序 同时显示被选择的表,索引或者列的统计信息,操作属性,以及如表空间,函数统计数据等全局信息和与优化相关的配置参数 可以用来优化查询 Visual Explain 工具可以图形化的查看语句的访问方案DB2 访问方案
  • 28. Import/Export/Load 功能Oracle 工具 输出数据: Oracle exp; SQL*Plus 输入数据: Oracle imp; SQL*Loader DB2 EXPORT 用来将表或者视图中数据输出到文件 DB2 IMPORT 使用SQL INSERT语句来向表中输入数据 DB2 LOAD 高速,低级的数据装载功能 装载处理的步骤 装载 创建 删除 拷贝索引DOC (XML)…ID…PR28…ACC…PR27
  • 29. DB2 工具DB2 包括了丰富的工具集来帮助设计,管理,监控和维护数据库及实例。 IBM Data Studio 2.2 将会用来代替以下不再使用的工具工具命令作用控制中心db2cc管理实例和数据库复制中心Db2rc管理不同服务期间的复制卫星管理中心db2cc管理不同DB2服务器命令行处理器db2 db2cmd执行DB2命令行指令健康中心db2hc查看解决健康警报等任务中心db2cc –tc执行定制任务及向相关人员发送提醒信息日志db2cc -j监控工作,恢复记录等配置助手db2ca配置实例及数据库不再使用不再使用不再使用不再使用不再使用不再使用不再使用
  • 30. DB2 数据库常用监控命令DB2 Snapshot DB2 Event Monitor db2expln, Visual Explain - DB2 Explain Tool db2top - IBM Single System View Monitor for DB2 db2pd db2advis - DB2 Design Advisor
  • 31. IBM Data Studio总览 项目和工作区 数据源浏览视图 创建数据库连接 添加、修改、删除数据和数据库对象 创建、执行和分析查询 项目浏览视图 创建数据项目 创建和部署内置程序
  • 32. IBM Data Studio 2.2总览用来开发和管理数据解决方案的免费开发环境(IDE) 专门针对开发和管理人员 支持DB2 for LUW, i5/OS and z/OS, Apache Derby, Informix IDS, 及其它软件 免费下载 http://www.ibm.com/software/data/studio 权益 整合之前由不同工具提供的功能 – 减少工具间的切换 基于Eclipse平台开发, 较容易学习 简化开发和管理 通过SQL builder来创建查询 XML文档和schema编辑器 通过图形化的点击操作方式来创建和修改数据对象
  • 33. Data Studio 家族其它产品收费版本: Optim Development Studio 2.2 (前身 IBM Data Studio Developer) 创建以及测试数据库和pureQuery应用程序 支持Oracle数据库 Optim Database Administrator 2.2 (前身 IBM Data Studio Administrator) 对复杂的数据库构架改变提供自动化及简化功能 内核共享 不同版本开发的函数允许在同程序下运行 IDE将函数当做插件来装载并使用
  • 34. Data Studio – 项目和工作区所有相关对象都在项目中 允许不同类型的程序项目存在, 包括 Java, C/C++等. Data Studio使用数据开发项目 用工作区来组织和管理项目 工作区是系统中包含一个或多个项目的目录
  • 35. Data Studio – 视图和透视视图可以完成所有工作 视图是用来显示和管理对象的任务窗口 每个视图显示一个指定的对象类型 透视用来组织管理视图 通过打开一个透视,所有相关联的视图都将自动打开 Data Studio提供Java和数据透视
  • 36. Data Studio总览透视选择器项目浏览器 视图数据源浏览器视图主视图大纲视图混合视图