e股脑电脑教程网
  • 首 页
  • 操作系统
  • 应用软件
  • 下载工具
  • 影音视频
  • 办公软件
  • 媒体制作
  • 网站建设
  • 平面设计
  • 数据库
  • 程序开发
  • 视频教程
编辑推荐: | 文章搜索:
您现在的位置: e股脑 >> 数据库 >> DB2教程 >> UNIX、Linux 和 Windows 的生动简介 >> 教程正文
 
教程搜索
 
 
相关教程
  • 数据挖掘器: 警告 — 及时采取行动
  • UNIX、Linux 和 Windows 的生动简介
  • “总览图”: IBM DB2 通用数据库和信息
  • DB2 大事记
  • 数据管理部门副总裁兼 CTO:Don Hader
  • IBM 联邦数据库技术
  • 唐纳德.海德勒(Donald J. Haderle)
  • 数据库未来展望
  • 哪一个分布式 DB2 UDB V8 版本适合您?
  • 从数据管理到信息集成: 自然的演变
  • 联邦 - 数据库互操作性(第 1 部分)
  • 成功是必然的(中)
  • 成功是必然的(上)
  • 成功是必然的(下)
  • DB2 信息集成: 总览图
  • IBM 杰出工程师兼信息集成主管 Nelson
 
 

图文教程


  • Windows抢了谁的饭碗 非主流操作系统To

  • 地球还是火星 平常心看“非主流”

  • 综合运用Office 2007批量制作奖状

  • 没有系统盘如何才能修复受损系统?

  • 巧妙运用Excel中边界的附加功能!
 
 
赞 助 商
 
 
UNIX、Linux 和 Windows 的生动简介
  • 来源:e股脑
  • 点击次数:
  • 更新时间:2007-8-9

db2 catalog dcs db as db1g

请参考 DB2 V8 连通性快捷表以获取本节中所描述的那些命令的摘要。

数据库是与实例相关的封闭且独立的单元。由于这个独立性,所以两个或更多的数据库的对象可以有相同的名称。例如, 图 1显示了一个名为“MyTablespace1”的表空间,它位于与实例“DB2”相关的数据库“MYDB1”内部。还有一个同名的表空间,它位于也与实例“DB2”相关的数据库“MYDB2”内部。

由于数据库是封闭单元,所以您不能执行涉及了两个不同数据库表的查询(除非您使用 Information Integrator(II)/ Relational Connect,这已经超出本文的讨论范畴)。例如,涉及数据库“MYDB1”中的“Table1”和数据库“MYDB2”中的“TableZ”的查询是不允许的。

数据库是用命令 create database 创建的。请注意,这被认为是一个命令,而非 SQL 语句。

当您创建数据库、表空间、日志和缓冲池时,会自动地创建配置文件,这就是完成该命令需要花费几秒钟的原因。

表空间是用作逻辑表和物理容器之间中间层的逻辑对象。创建表空间时,您可以将它与特定的缓冲池(数据库高速缓存)以及特定的容器进行关联。容器是物理存储数据的地方,可以分成文件、目录和原始设备等几类。

Catalog(SYSCATSPACE)、系统临时空间(TEMPSPACE1)和用户空间(USERSPACE1)都是表空间,并且都会在创建数据库时自动创建。Catalog 和系统临时空间都可以看作是系统结构,因为它们是数据库的正常操作所必需的。Catalog 包含了元数据(有关数据的数据)。一些其它 RDBMS 把这个结构称作“数据字典”。不要把这一节的术语“Catalog”和早先提到的 catalog 命令混淆起来;它们毫无关系。

系统临时表空间是数据库管理器执行操作(比如连接和排序)的工作区。至少必须有一个系统临时表空间。

缺省情况下会创建 USERSPACE1 表空间,但是可以删除它。它是用来存储用户表的缺省位置。

图 1用与本节标题颜色一样的桃褐色显示了用 create tablespace 命令显式创建的其它表空间。请参考“DB2 V8 SQL 参考大全(DB2 V8 SQL Reference)”以获取更多详细信息。

表是由行和列组成的无序的数据记录集。索引是与表相关的有序指针集,用于性能目的并确保唯一性。视频、音频和扫描文档等可以作为大对象(LOB)存储在数据库中。表、索引和 LOB 驻留在表空间中。

日志是用于恢复目的的文件。日志记录了对数据库进行的每个操作。万一发生故障,在将数据库恢复到某个一致的点方面,日志就显得至关重要了。

缓冲池是一块内存区域,所有索引和数据页(除了 LOB)都必须有序地经过该区域,从而进行处理。它是数据库管理器所使用的主要高速缓存。在数据库性能问题方面,缓冲池是进行调优的最重要的对象。


案例研究

既然您已经熟悉了 DB2 环境,那么让我们通过简单的案例研究来回顾一下本文中提到的所有概念:

DB2 数据库管理员(DBA)由于突发的个人原因离开了公司,经理要您负责所有 DB2 系统。这是您担任新 DB2 DBA 的第一天,因而您想熟悉系统。您登录到安装了 DB2 的开发机器(Windows 2000),并打开 CLP 窗口。下面是您要进行的步骤:

  1. 首先,您想要知道该机器中有多少实例: db2ilist
  2. 然后,您想要知道当前哪个实例是活动的: db2 get instance

    用 db2ilist 命令,您发现该机器上定义了两个实例 - 实例“DB2”和实例“MyInst”。用 db2 get instance 命令,您发现“DB2”实例是当前的活动实例。

  3. 现在您想要列出“MyInst”实例中的数据库。由于这个实例不是当前的活动实例,所以您首先得在当前 CLP 窗口中临时切换到该实例: set DB2INSTANCE=MyInst
  4. 您再次发出 db2 get instance ,以查看 MyInst 现在是否是当前实例,然后为列出该实例中定义的数据库,请发出以下命令: db2 list db directory

    该命令显示出该实例中只有一个数据库(MYDB2)。您想试着创建一个新的数据库(您随后将删除它),为此您执行:

    db2 create database temporal

    数据库的创建需要花些时间,因为在缺省情况下会在数据库内部创建几个对象。发出另一个 db2 list db directory 命令将会显示两个数据库:“MYDB2”和“temporal”。

  5. 连接至“MYDB2”数据库(db2 connect to mydb2),并查看该数据库中有多少表( db2 list tables )。您还可以查看定义了多少表空间( db2 list tablespaces )。

午餐时间到了,因此您决定把某些东西复原。首先,您决定删除临时数据库。当三秒钟掉电引起机器自动重新引导时,您正处于输入命令的过程中。您并不担心 DB2 数据库状态,因为您知道 DB2 崩溃恢复会确保其前后一致;因此您在重新引导之后打开新的 CLP 窗口,接下来删除该数据库。


db2idrop MyInst

啊呀!出错了,您使用了错误的命令并删除了整个 MyInst 实例而不只是删除了数据库“temporal”。您是否因此丢失了与实例“MyInst”相关的数据库“MYDB2”和“temporal”?

查看 图 1,您可能会觉得是丢失了;但是,情况并非如此。删除实例时,您并未删除与之相关的数据库。实例为您提供了链接 DB2 代码的环境,以便这些代码依据用户数据使用实例。数据库被“关联”到实例。但是安装 DB2 新版本时,您通常会将实例“升级”成新的代码版本;而数据库保持不变。

既然您已经镇定下来,知道并未丢失数据库,那么该开始思考 db2idrop 命令的工作原理。通常,如果您的实例是活动的,那么该命令会给您一个警告。然后您意识到重新引导机器后,实例“MyInst”并未自动启动,而“DB2”实例已经被配置成在引导机器后自动启动。还有,打开新的 CLP 窗口时, db2instance 环境变量的值被设置成“DB2”而不是“MyInst”,假设“DB2”是在机器的控制面板中为该环境变量指定的值。

既然您意识到了这一点,那么您该继续努力使一切恢复原样:

  1. 首先,您需要再次创建实例 MyInst: db2icrt MyInst
  2. 现在,切换到该实例(set DB2INSTANCE=MyInst)。如果发出 list db directory 命令,您会得到一个指出系统 db 目录不存在的错误。如果看一下 图 1,您会明白:第一次删除实例时,所有实例范围内的配置文件和目录也都被删掉了。因此,实例级概要注册表、dbm cfg、系统 db 目录、节点目录和 dcs 目录都不见了。创建实例时,也创建了带有缺省值的 dbm cfg 和实例级注册表。庆幸的是,前任 DBA 存储了所有这些文件的内容备份。他发出类似于下面这样的命令: db2 get dbm cfg > dbmcfg.bk db2set -all > db2set.bk db2 list db directory > systemdbdir.bk db2 list node directory > nodedir.bk db2 list dcs directory > dcsdir.bk
  3. 您必须使用适当的命令来手工恢复基于这些文件内容的值。对于您创建的“temporal”数据库,它是需要再次编目的本地数据库。发出命令“ db2 catalog db temporal on <drive/path> ”将足以在系统 db 目录中创建一个项,它将指向现有的本地 db 目录,因为您用缺省值创建了该数据库。本地 db 目录属于数据库;因此,当您删除实例时,并未将其删掉。
  4. 既然一切都恢复了,那么现在您可以删除数据库 temporal 了: db2 drop database temporal
  5. 将

    上一页  1 2 3 4 下一页
  • 上一篇教程: “总览图”: IBM DB2 通用数据库和信息管理
  • 下一篇教程: 数据挖掘器: 警告 — 及时采取行动
  •  

    关于本站 | 广告联系 | 版权声明 | 使用帮助

    Copyright © 2004-2008 www.egunao.com All rights reserved.