• 1. DB2数据库的使用主讲:安徽和润信息科技有限公司
  • 2. 议程安装 存储
  • 3. DB2安装与硬件在硬件方面 DB2 Express-C 能够安装在任意CPU 核心和内存的系统上。 但必须注意免费版本的DB2 Express-C 只能够利用最大2 核的CPU 和2G 的内存, 付费版本则能够使用最大4 核的CPU 和4G 的内存。 DB2 能够安装在实际的系统中,或者是虚拟机上。 当然,您也可以在更少资源的系统上运行它,比如在单CPU 和1G 内存的机器上运行。
  • 4. 手动安装 DB2安装步骤注意事项: 您可以输入一个存在的用户,这个用户将会使用DB2 的实例和其它服务。这个用户必须是windows 中本地管理员(Local Administrator)组的一员。 如果您输入的用户ID 不存在,这个用户ID 就会被创建,并成为一个本地管理员。如果用户不属于任何的一个域,请将域(domain)留空。 Windows 中,默认创建的用户名是db2admin(推荐使用)
  • 5. 自动安装DB2有时, 您需要将DB2 客户端安装到多台机器上, 又或者您需要将DB2 数据库服务器嵌入到您的应用程序,并在安装这个应用程序同时安装DB2 数据库服务器。 这些情况下,DB2 的自动安装是一个理想的方法。 DB2 利用响应文件来进行自动安装, 响应文件是一个文本文件,它保存了安装所需的信息。 有许多方法创建响应文件: 在安装 DB2 Express-C 过程中,第一步允许您选择将安装信息保存到响应文件中, 在 Windows 中,您还可以使用相应文件生成器来生成响应文件: db2rspgn –d 有了响应文件后,可以用响应文件来自动安装DB2, 在Windows 中,您运行下面的命令来执行安装: setup -u
  • 6. 实例
  • 7. 表空间可以把表空间看成是 处于逻辑表和物理资源之间(如类似硬盘、内存等)的逻辑层。 SYSCATSPACE 表空间包含目录表(Catalog)。这个目录也以数据字典的形式存在于其他关系数据库管理系统中。它包含不可更改和不可删除的系统信息,否则数据库无法正常工作。 当DB2实现一些类似排序等需要额外空间的操作时,就会用到表空间TEMPSPACE1。 如果创建一个表的时候没有指定空间,系统通常会使用USERSPACE1 来存储您的数据库表。
  • 8. 缓冲池缓冲池是数据库使用的高速缓冲存储器。 您可以创建多个缓冲池,但是至少应该有一个缓冲池,它的大小与现存的表空间页的大小相同。 您在创建表空间时需要指定所用的硬盘和内存(缓冲池)。 因此,如果您的某个表使用频繁,那么您可以将此表定位在具有最快的硬盘和最大内存的表空间上。
  • 9. 容器容器是存储表空间的磁盘或磁盘文件。 即对应的是表空间的物理存储。
  • 10. 日志文件日志文件用于恢复操作。 数据库运行过程中,不仅仅是数据库信息被存储在硬盘上,而且日志文件会存储所有针对数据的操作。可以把日志文件看成是一个在“autosave”操作产生的临时文件。
  • 11. DB2内存模型DB2 内存模型由内存的不同区域构成,这里的内存是指存在于实例层、数据库层、应用程序和代理层中的内存
  • 12. DB2内存模型数据库共享的内存 当一个实例启动后,系统就为数据库管理器分配共享的内存。这不需要花费很大的空间。 数据库全局内存 当您第一次连接数据库时,就会分配Database Global Memory(数据库全局内存)。 在此区域(内存块) 内,缓冲池是最重要的部分之一,尤其体现在改善系统查询的操作时。缓冲池的大小将决定整个Database Global Memory(数据库全局内存)的大小。
  • 13. DB2内存模型代理私有内存 每个 DB2 代理都使用一个代理私有内存。 在没有连接集中器的情况下,每一个连接都需要一个代理。 典型的一个代理可以使用大约3-5MB 内存。 在有连接集中器的情况下,几个链接可以使用一个代理,因此减少了对物理内存的需求。
  • 14. DB2 存储模型数据页和扩展数据块 页是在 DB2 中的最小存储单元。允许的数据页大小为:4K、8K、16K 和32K。扩展数据块是一组数据页。DB2 中,每次处理一页会影响数据库的性能,所以DB2 以扩展数据块为单位进行处理。页大小和扩展数据块大小在使用缓冲池和表空间的时候定义。 缓冲池 缓冲池是表和索引数据在内存中的缓存。它减少持续直接的IO 存取,提供异步读取(预取)和写入来提高系统的性能。 也就是说,DB2 预测那些所要用到的数据页,然后在使用它们之前预先将它们读取到缓冲池中。 缓冲池在内存中以4K、8K、16K、32K 的页面大小为单位。每一个数据库至少需要一个缓冲池,而且对于每个表空间,至少必须存在一个符合制定大小的缓冲池。
  • 15. DB2 存储模型表空间 表空间是处于逻辑的数据表和系统物理内存(缓冲池)以及容器(硬盘)之间的逻辑接口。 用CREATE TABLESPACE 语句来创建一个表空间。创建时您能够制定如下的参数: 表空间的页大小 (4KB, 8KB, 16KB, or 32KB)。页大小必须与其关联的缓冲池的大小相同。 分配给这个表空间的缓冲池名字。 扩展的大小。 预取的大小。
  • 16. DB2 存储模型表空间是处于逻辑的数据表和系统物理内存(缓冲池)以及容器(硬盘,确切地说是:在硬盘上存储数据库内容的文件)之间的逻辑接口。 用CREATE TABLESPACE 语句来创建一个表空间。创建时您能够制定如下的参数: 表空间的页大小 (4KB, 8KB, 16KB, or 32KB)。页大小必须与其关联的缓冲池的大小相同。 分配给这个表空间的缓冲池名字。 扩展的大小。 预取的大小。 设计容器 创建表空间时使用“手工管理存储器”
  • 17. 表空间类型表空间类型 目录表空间 每个数据库只有一个目录表空间,它是在发出 CREATE DATABASE 命令时创建的。目录表空间被 DB2 命名为 SYSCATSPACE,它保存了系统目录表。每当创建数据库时,都会创建这个表空间。 常规表空间 常规表空间保存所有永久的数据,包括常规的表和索引。它还可以保存诸如 LOB(Large Object)之类的长数据,除非这些数据显式地存储在长表空间中。如果某些表空间是用于非分区表的数据库管理的空间(Database Managed Space,DMS)或者用于分区表的系统管理的空间,则可以将表及其索引分别放到单独的常规表空间中。我们将在 表空间管理 小节描述 DMS 和 SMS。目录表空间是常规表空间的一个例子。缺省情况下,目录表空间是数据库创建期间所创建的唯一一个常规表空间
  • 18. 表空间类型表空间类型 长表空间 长表空间像常规表空间一样存储永久数据,包括 LOB。这种表空间必须是 DMS,这也是默认类型。长表空间中创建的表比常规表空间中的表大。大型表可支持每个数据页超过 255 行,从而提高数据页上的空间利用率。当创建数据库时,DB2 创建一个名为 USERSPACE1 的长表空间。 系统临时表空间 系统临时表空间用于存储 SQL 操作(比如排序、重组表、创建索引和连接表)期间所需的内部临时数据。每个数据库必须至少有一个系统临时表空间。随数据库创建的缺省系统临时表空间名为 TEMPSPACE1。 用户临时表空间 用户临时表空间存储已声明的全局临时表。创建数据库时不存在用户临时表空间。至少应当创建一个用户临时表空间,以允许定义已声明的临时表。用户临时表空间是可选的,缺省情况下不创建。
  • 19. 表空间管理由系统管理 这种类型的表空间也称为系统管理存储(System Managed Storage,SMS)表空间。这意味着由操作系统来管理表空间的存储。这种方式的表空间是很容易管理的,表空间的容器就是OS 文件系统的文件夹。存储空间不是预先分配的,但是表空间文件能够动态增长。当您指定容器后,它就会在创建表空间时固定,以后不能再添加其它的表空间容器,除非使用转向存储。当使用SMS 表空间,表中的数据、索引、LOB 数据不能够跨越不同的表空间。 由数据库管理 这种类型的表空间也称为数据库管理存储(Database Managed Storage,DMS)表空间。这意味着由DB2 管理表空间的存储。这种表空间的管理需要数据库管理员(DBA)的人工干预,能够预先分配容器或者裸设备。使用裸设备时,数据是直接写入到设备中而没有使用I/O 缓存。这种管理方式能够增加、删除容器,也能够改变容器大小。DMS 表空间能够提高性能表现,数据表的数据、索引、LOB 数据能够分割到不同的表空间中,这样能够提高性能。
  • 20. 表空间管理由自动存储管理 这种管理方式由自动存储来管理,它具有SMS 表空间类似的自主管理性,又具有DMS 数据表空间的灵活性和高性能表现。所以,从DB2 V9.5 开始,这是默认的表空间类型。使用这种表空间时,用户首先指明一个逻辑存储设备组,不需指明其容器。容器会在存储路径里自动创建。容器的增长和新建都是有DB2 来管理的。为了使用自动存储管理,您在创建一个数据库时必须允许自动存储管理(这是默认的行为),然后为其分配一个存储路径集合。这个数据库创建之后,如果您需要,可以重新定义存储的路径,这只需使用RESTORE 操作即可。然后,您就可以创建自动存储管理的表空间(同样,这也是默认的行为)。
  • 21. 数据库、表空间、容器、缓冲池的关系 数据库是父母,表空间是孩子 表空间(孩子)不可能有多个父母,而数据库(父母)可以有多个孩子。 数据库中的表可以属于多个表空间,但表空间不能用于多个数据库。 表空间是父母,容器是孩子 数据库是父母,缓冲池是孩子 缓冲池与表空间是一对多的关系,像一夫多妻时代。 一个表空间只能使用一个缓冲池 一个缓冲池可以用在多个表空间中 前提是他们页大小必须为一致,如:8K 缓冲池可以让工作在内存中完成,以提高效率。
  • 22. 数据库对象模式 模式是一组数据库对象的命名空间。它主要用于: 提供对象所有权的标识或某个应用的关系, 合理地将相关对象组合在一起。 所有的 DB 数据库对象标识名都有可以一分为二,模式就是此名字的前半部分。 <模式名>.<对象名> 一个标识名称必须是独一无二的。在没有指定模式的情况下连接数据库并创建或引用数据库对象时,DB2 使用用户ID 作为模式名称来连接数据库。例如,使用db2admin用户名连接SAMPLE 数据库,然后用CREATE TABLE 语句创建表: CREATE TABLE artists … 所建的数据库的标识名称即为db2admin.artists。
  • 23. 数据备份与恢复BACKUP DATABASE [ TO ] BACKUP DB [ TO ] Backup db sample to f:/x RESTORE DATABASE [from ] [taken at ] RESTORE DB sample FROM TAKEN AT 20100810125819
  • 24. Catalog就把它当成是一个 db2 的命令,作用嘛,就是将你在 server 端有关数据库的相关信息加载到本地。
  • 25. 创建DB2用户创建用户 我的电脑-管理-用户和用户组 增加一个用户,并隶属于db2admns组 设置为数据库用户 数据库-用户和组对象-数据库用户-添加