快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

和记娱乐在线官网:利用 Oracle 10g 技能学习 DB2 9.1 for Linux UNIX and Windows



简介

我们谈到了若何使用 MS SQL Server 2000 方面的技能进修 DB2。您对 Oracle 背景常识的认识程度更跨越 SQL Server 吗?假如是这样,那么请继承涉猎。在本文中,我们将展示若何应用您现有的 Oracle 10g 常识来快速掌握 DB2 9 方面的技能。

在 2006 年 7 月 28 日,IBM 宣布了 DB2 9 for Linux, UNIX, and Windows,这是一种真正的混杂型数据办事器,可满意当今苛刻的营业需求。 DB2 9 是当今惟一采纳 pureXML™ 技巧的数据办事器,这种技巧容许以原生的形式存储 XML,也便是说,以分层款式存储 XML。 DB2 9 的其他特点包括行压缩、基于标签的造访节制(label based access control,LBAC)安然性以及自调优内存治理器(Self-tuning Memory Manager,STMM)等自治特点。本文首先对 DB2 与 Oracle 作一个对照,然后着重先容 DB2 9 中的新特点。

留意:在本文后面的内容中,我们将应用术语 “Oracle” 来表示 Oracle 10g Release 2,而用 “DB2” 表示 DB2 9 for Linux, UNIX, and Windows。

系统布局概述

首先,我们必要理解 Oracle 应用的架构,并理解它与 DB2 的不合之处。图 1 展示了 Oracle 的系统布局。将该图与 图 2 进行对照,后者显示了 DB2 的系统布局。在涉猎本文的时刻,为便于理解,可以参照这两个图。

图 1. Oracle on Linux, UNIX, and Windows Version 10.2 的系统布局

图 2. DB2 on Linux, UNIX, and Windows 系统布局

实例

在 Oracle 和 DB2 中,实例 的观点是类似的。在这两者之中,实例都是指后台进程与共享内存的组合。两者之间的主要区别在于,在 Oracle 中每个实例只能有一个数据库,而在 DB2 中多个数据库可以共享一个实例。

在 Oracle 中,因为数据库与实例是一对一的关系,是以用 CREATE DATABASE 敕令创建一个数据库的同时便隐式地创建了一个实例。或者,为了在谋略机上创建一个 Oracle 实例,也可以应用 Database Configuration Assistant,或者应用 ORADIM 实用法度榜样,后者是 Oracle 9i 经由过程 NEW 选项供给的。别的还必须供给某些信息,包括系统标识符(System Identifier,SID)或一个办事名称、实例密码、最大年夜用户数、启动模式等等。类似地,为了删除实例,可以应用 ORADIM 实用法度榜样加 DELETE 选项。这里必要供给 SID 或办事名称。除非在安装历程中创建一个新的数据库,否则在以 fresh 要领安装 Oracle 的时刻,不会创建缺省的实例。

在 DB2 中,当在 Windows 平台上安装了该产品之后,便缺省地创建了一个实例 "DB2"。在 Linux 和 UNIX 中,缺省的实例名称为 "db2inst1"。若要在同一台谋略机上创建另一个实例,只需履行敕令 db2icrt 。

图 3 展示了缺省的 DB2 实例 “DB2”(在 Windows 中)和从 DB2 Control Center GUI 顶用 db2icrt 敕令创建的别的两个实例。

图 3. 显示 DB2 实例的 DB2 Control Center GUI

若要在敕令行接口中引用给定的 DB2 实例,可以应用情况变量 DB2INSTANCE。经由过程这个变量,可以指定当前活动实例,所有敕令将利用到此实例。例如,假如 DB2INSTANCE 被设置为 PROD,然后您履行了敕令 create database MYDB1,将创建一个与实例 PROD 关联的数据库。假如要在实例 DB2 上创建该数据库,那么必须首先将 DB2INSTANCE 变量的值改为 DB2。这类似于 ORACLE_SID (System Identifier),当用户想要在不合实例之间进行切换时,也是应用 ORACLE_SID。

还有一种标识要应用的实例的简单措施,那便是应用 DB2 Control Center GUI,如 图 3 所示。要在该对象中看到对应于新实例的条款,必要经由过程右击 Instances 并选择 Add 来将该实例添加到此对象中。要删除 DB2 中的一个实例,可以履行敕令 db2idrop 。

总之,在 Oracle 中,可以应用 Database Configuration Assistant 来创建、改动、启动、竣事和删除实例,而在 DB2 中则可以应用 Control Center GUI 做同样的工作。而且,Oracle 实例与数据库只能是一对一的关系,而在 DB2 中却不是这样。一个 DB2 实例中可以同时存在多个数据库,并且可以并发地应用这些数据库。

数据库

在 Oracle 中,可以用 CREATE DATABASE 敕令手动创建数据库,也可以用 Database Configuration Assistant 创建数据库。手动创建数据库时,在履行 CREATE DATABASE 敕令之前,必要履行一系列的步骤,包括设置 OS 变量,筹备参数文件,以及创建密码文件。

元数据信息在 Data Dictionary 中存储和治理,由基础表和响应的视图组成。基础表是在数据库创建历程中自动创建的,而视图则是经由过程运行 catalog.sql 和 catproc.sql 脚本构造的。

是以,Oracle 数据库可看作包孕 3 种类型的文件的一个聚拢:

数据文件(Data File):包孕实际的数据,数据库的物理实现。(类似于 DB2 中的容器。)

重做文件(Redo File):相称于 DB2 中的事务日志(Transaction Log)。

节制文件(Control File):包孕用于掩护和验证数据库完备性的信息。

在 DB2 中,一个实例可以包孕多个数据库,如 图 2 所示。每个数据库都是一个封闭的、真正自力的单元。每个数据库有其自己的编目表空间、临时表空间和用户表空间,这些表空间是在创建数据库时缺省创建的。DB2 包孕一个称为系统数据库目录(system database directory) 的二进制文件,此中包孕可从 DB2 机械上连接的所稀有据库的条款。这个目录保存在实例级。

当创建一个实例时,缺省环境下不会创建数据库,您必要应用 create database 敕令显式地创建一个数据库。此外还可以用 Control Center 创建数据库,如 图 4 和 图 5 所示。

图 4. 应用 Control Center GUI 创建 DB2 数据库

图 5. 应用 Control Center GUI 创建 DB2 数据库(续)

在 图 5 中,您也可以看看单击 Show Command 时会呈现什么环境。所有的 DB2 Control Center GUI 屏幕都邑显示实际上在后台履行的 SQL 语句或敕令。这些命 令可以保存在一个脚本中,以便在今后履行,或者也可以将它们复制到 Command Line Processor(CLP)或 Command Center GUI 对象中,在这些对象中履行。这些对象分手相称于 Oracle 的 SQL*Plus 和 iSQL *Plus。

可以应用 'DROP DATABASE' 敕令或者在 DB2 Control Center GUI 中删除一个 DB2 数据库。而在 Oracle 中却不是应用这样的敕令。数据库的删除是经由过程删除所有相关数据文件来完成的。

同一个实例中的数据库平日不会互相进行交互。然而,假如利用法度榜样必要与多个数据库交互,那么经由过程启用联邦(federation) 支持可以满意这一需求。

容器、表空间、缓冲池和页

在 Oracle 中,在物理上数据是存储在被称作数据文件(Data File)的文件中的。这类似于 DB2 的容器(container),DB2 的容器也是数据实际存储的地方。每个 Oracle 数据库包孕一个名为 SYSTEM 的表空间,这是在创建数据库时由 Oracle 自动创建的。其他用于用户数据、临时数据和索引数据的表空间则必要在创建数据库之后另行创建,并且在应用这些表空间之前,还必要为之指定一个用户。

在 DB2 中,表空间 是逻辑工具,作为逻辑表和物理容器之间的一层。当创建一个表空间时,可以将它与一个特定的缓冲池(数据库缓存)关联起来,并关联到特定的容器。这为机能治理带来了机动性。例如,假如有一个 "hot" 表,那么可以在一个零丁的表空间中定义它,而这个表空间又与一个自力的缓冲池相关联。这有助于确保此表中的数据继续地缓存在内存中。

在 DB2 中,应用 CREATE DATABASE 敕令及其缺省值创建数据库时,同时也会自动创建三个缺省的表空间。表 1 描述了缺省的 DB2 表空间:

表 1. 用缺省值创建数据库时,缺省创建的 DB2 表空间

表空间名称

描述

SYSCATSPACE

包孕元数据的编目表空间

TEMPSPACE1

用于履行连接和排序等操作的系统临时表空间。这个表空间的名称可以变动

USERSPACE1

这个表空间是可选的,假如在创建表的时刻没有显式地指定表空间,那么可以用这个表空间来存储用户表

在 DB2 中,因为数据库是自力的单元,是以表空间不能跨数据库共享。因为表空间只在一个数据库中是可知的,是以两个不合的数据库可以有具有相同名称的表空间。在 图 2 中可以看到这一点,此中数据库 MYDB1 有一个名为 MYTBLS 的表空间,而数据库 MYDB2 也有一个同名的表空间。

DB2 表空间可以分为 SMS(系统治理的表空间)与 DMS(数据库治理的表空间)两类。SMS 表空间由操作系统治理,它们只能是目录。SMS 表空间可根据必要自动增长,是以 SMS 可以供给很好的机能,并且必要的治理也很少。DMS 表空间由 DB2 治理,既可所以文件,也可所以原始设备。这种类型的表空间可以供给最佳机能,然则必要进行一些治理。例如,必要预先指定想要为这个表空间分配多大年夜的空间,由于这种表空间不能自动增长。

Oracle 的存储模型中没有 SMS 的观点,然则它的数据文件类似于 DB2 DMS 表空间。也便是说,可以经由过程增添数据文件的大年夜小,或为表空间添加数据文件,或者经由过程添加一个新的表空间,来增添数据库的大年夜小。

表 2 显示了 Oracle 数据库或表空间与 DB2 数据库或表空间的对应关系。

表 2. Oracle 数据库与 DB2 数据库和表空间的对应关系

Oracle 数据库或表空间

DB2 数据库或表空间

SYSTEM 是寄放编目(数据字典)信息的表空间

SYSCATSPACE(编目表空间);和在 Oracle 中一样,仅在数据库级保存该信息

Data Dictionary(包孕表和视图形式的元数据),驻留在 SYSTEM 表空间中

系统编目表(由 SYSIBM 模式标识),系统视图(由 SYSCAT 或 SYSSTAT 模式标识),驻留在 SYSCATSPACE 表空间中

SCOTT 数据库

SAMPLE 数据库

TEMP 表空间

System Temporary 表空间(缺省环境下名为 tempspace1)

UNDO 表空间

N/A

USER 表空间

用户表空间。缺省环境下,USERSPACE1 一样平常是在数据库创建之后才创建的

前面已指出,Oracle 的数据缓冲区观点相称于 DB2 的缓冲池。然则,DB2 允许多个缓冲池存在。在 DB2 中不必要预先定义可创建的缓冲池的数量,缓冲池的名称可所以随意率性的。

Oracle 中块(block) 的观点与 DB2 中的页最为相似。一个 DB2 页的大年夜小可以为 4k、8k、16k 或 32k。表中的一个行只能放在一个页中,而不能像 Oracle 中那样跨多个页。

工签字称

Oracle 中的工签字称形式如下:

[Schema_name.]object_name[@database]

在 DB2 中,工签字称也是由两部分组成的布局:

Schema_name.object_name

和在 Oracle 中一样,DB2 模式名称用于在逻辑上组织工具。然则两者之间一个紧张差异是,在 DB2 中,模式名称不必然与一个用户 id 相匹配。任何拥有 IMPLICIT_SCHEMA 权限的用户都可以用一个不存在的模式创建工具。例如,假设 “Peter” 具有 IMPLICIT_SCHEMA 权限,他履行以下敕令:

CREATE TABLE WORLD.TABLEA (lastname char(10))

该敕令创建表 WORLD.TABLEA,此中 WORLD 是新创建的模式。假如 Peter 没有显式地指定模式,那么该敕令就会创建表 PETER.TABLEA,由于缺省环境下是应用连接 ID。

在 DB2 中,在发出与数据库相关的敕令之前,老是要连接到数据库。是以,在这种架构下,工签字称不必要包括数据库名称。

表、视图和索引

在 Oracle 和 DB2 中,表、视图和索引基础上是一样的。

DB2 供给了一个名为 Design Advisor 的实用法度榜样,可以用它来为特定的查询或事情负载保举索引。Design Advisor 可以从 DB2 Control Center 中调用,也可以从 DB2 CLP 中应用 db2advis 敕令来调用。在 DB2 中,索引是直接与表定义绑定的。例如,当应用 DMS 表空间时,可以用下面的语句指定索引寄放在哪个表空间:

CREATE TABLE mytable (col1 integer, col2 char(10)) in tbls1 index in tbls2

上面的例子注解,表中的数据将存储在表空间 'tbls1' 中,而索引页将存储在表空间 'tbls2' 中。但在 Oracle 语法中,CREATE INDEX 语句有一个选项来指定索引寄放在哪个表空间。

此外,在 DB2 中,索引一旦创建好,便不能改动索引定义中的任何子句。为了进行变动,必要删除索引,然后从新创建索引。

和在 Oracle 中一样,不合数据库中的 DB2 表、视图和索引可以有相同的名称。相同数据库中的表和视图则必须应用不合的名称,然则容许应用与已有的表或视图相同的名称创建索引。

存储历程、触发器和用户定义函数(UDF)

在 Oracle 情况中,有很多措施来创建和造访存储历程、触发器和函数。PL/SQL 是 SQL 的面向工具(OO)历程扩展,支持数据操纵(DML)、流节制、变量和常量的声明、历程和函数定义以及 OO 数据类型,例如嵌套表和变长数组(varray)。Oracle 还将 JVM 并入到它的引擎中。在 Oracle 数据库中,可以应用 SQLJ 将存储历程、函数和触发器,作为类来创建、存储和履行。Oracle 还支持 Type 1 至 4 的 JDBC 驱动法度榜样。

DB2 存储历程可以用 DB2 预编译器支持的任何说话编写,包括 Java、C、C++、REXX、Fortran 和 COBOL。然则,我们保举您应用 SQL Procedural Language(SQL PL),这种说话异常类似于 Oracle 的 PL/SQL。在开拓 SQL PL 存储历程时,必要一个 C 编译器,由于这种存储历程首先要转换成 C。存储历程的 C 实现可以供给机能上风,由于代码只需编译一次(在 unfenced 模式下机能优点尤其显着)。然则,在开拓这种存储历程时,开拓系统上必要一个额外的 C 编译器。在 DB2 将来的版本中,有望呈现不需 C 编译器支持的 SQL PL 存储历程。DB2 存储历程开拓回使用 Type 1 至 4 的 JDBC 驱动法度榜样来支持 SQLJ 和 Java。

触发器和函数的开拓可以应用内联 SQL/PL,这种措施不必要 C 编译器。这种措施支持 SQL PL 语句的一个子集。别的还可以应用 DB2 Development Center Tool 来简化 DB2 存储历程和用户定义函数的创建、构建、调试和支配。

设置设置设备摆设摆设文件

传统上,Oracle 将所有与会话和系统相关的参数存储在一个文本文件中,这种文件平日被称做 initSID.ora。然则,因为这种文本文件不具有持久性,从 Oracle 9i 开和记娱乐在线官网始,Oracle 引入了 Server Parameter File(SPFILE),这是一种存储在办事器上的二进制参数文件。它在实例竣事之后到启动之前这个历程中是持久存在的。不过,当 SPFILE 弗成用的时刻,仍旧应用 initSID.ora 文件。引入 SPFILE 之前,任何对参数有影响的 ALTER SYSTEM 和 ALTER SESSION 敕令都只能在实例或会话活动时代持久。每当数据库实例必要回弹(rebound)时,DBA 都必须手动改动 initSID.ora 文本文件。对付侦听 器,收集造访设置设置设备摆设摆设平日存储在 listener.ora 中;对付客户机造访,收集造访设置设置设备摆设摆设平日存储在 tnsnames.ora 中。

在 DB2 中,设置设置设备摆设摆设参数也是存储在实例级和数据库级,在实例级是数据库治理器(database manager) 设置设置设备摆设摆设文件,在数据库级是数据库设置设置设备摆设摆设文件。这些参数大年夜多半都可以动态地变动,也便是说,不必要为了使对参数值的变动生效而竣事并重启实例或者重连所有连接。

假如想在 CLP 中手动变动特定的数据库治理器设置设置设备摆设摆设参数,可以应用敕令 UPDATE DBM CFG USING

假如想在 CLP 中手动变动特定的数据库参数,可以应用敕令 UPDATE DB CFG FORUSING

这两个敕令分手相称于 Oracle 的 ALTER SYSTEM 和 ALTER SESSION。或者,也可以应用 Control Center 查看和改动这些参数的值。假如右键单击一个给定的实例,并选择 Configure Parameters,那么可以看到 图 6 中显示的窗口。

图 6. DB2 Database Manager 设置设置设备摆设摆设参数(实例级)

在数据库级,右击一个给定的数据库,并选择 Configure Parameters,则可以看到 图 7 中显示的窗口。

图 7. 数据库设置设置设备摆设摆设参数(数据库级)

DB2 供给了很多用于设置设置设备摆设摆设系统的参数。然则,假如想经由过程一种轻易的措施自动设置设置设备摆设摆设系统,那么可以应用 autoconfigure 敕令(或者 Configuration Advisor GUI),它会根据您供给的一些信息将数据库治理器设置设置设备摆设摆设参数和数据库设置设置设备摆设摆设参数设置成最佳值。图 8 显示了 Configuration Advisor。

图 8. DB2 Configuration Advisor

除了设置设置设备摆设摆设文件外,DB2 平日还为与平台相关的设置设置设备摆设摆设应用 DB2 注册表变量。留意,DB2 注册表变量与 Windows 注册表没有任何关系。可以应用敕令 db2set 查看和变动这些变量。

连接(收集造访)信息存储在 System 数据库目录、本地数据库目录和节点目录中。这些都是二进制文件,只能用 CATALOG 和 UNCATALOG 敕令改动。

内存架构和后台进程

接下来,我们来看看内存架构和后台进程,并且对照一下 Oracle 和 DB2 中内存架构和后台进程的不合之处。

图 9. Oracle 内存架构和后台进程

Oracle 中的 System Global Area(SGA)是一组共享内存块,用于存储与实例有关的信息。此中包括语句缓存、重做日志缓冲区和数据缓冲区缓存。Program Global Area(PGA)和 User Global Area(UGA)共享内存块,包孕用于办事器进程和用户会话的数据和节制信息。

Oracle 支持在同一台谋略机上存在多个实例,但不容许共享后台进程。例如,同一台谋略机上的三个实例就必要三组后台进程。是以建议在一台谋略机上包孕一个数据库、一个实例和多个模式。

图 10. DB2 内存架构和后台进程

DB2 和 Oracle 都应用共享内存块,然则 DB2 与 Oracle 内存架构的实现要领略有不合。因为 DB2 实例可以包孕多个数据库,是以存在两个级其余设置设置设备摆设摆设。在前一节已经提到,实例级的设置设置设备摆设摆设可以在 DBM CFG 文件中完成,而数据库级的设置设置设备摆设摆设则可以在 DB CFG 文件中完成。这两个级别上的设置设置设备摆设摆设参数都可以进行调剂,以调优内存应用环境。后文将更具体地阐述 DB2 的内存布局和不合的后台进程。

Oracle 是在实例和数据库启动时将内存分配给它们的,而 DB2 则是在不合级别上分配内存。这主如果由于 DB2 实例可以包孕多个数据库。DB2 中主要有三种内存布局:

实例共享内存:这是数据库治理器全局共享内存,是在应用 db2start 敕令启动实例时分配给实例的,并且在发出 db2stop 敕令竣事实例之前,不停处于已分配状态。

数据库共享内存:这是数据库全局内存,是在激活数据库或者第一次连接到数据库时分配的。分配的内存包括缓冲池、锁列表、数据库堆、实用法度榜样堆、包缓存和编目缓存。

利用法度榜样共享内存:这是在利用法度榜样连接到一个数据库时分配的内存,由处置惩罚连接到数据库的客户机所哀求的事情的代理应用。每个连接到数据库的利用法度榜样都邑被分配内存;是以,对会影响利用法度榜样共享内存的参数的精确设置设置设备摆设摆设就异常紧张。

在 DB2 for Windows 中,办事器活动因此线程的形式进行的,而在 Linux 和 UNIX 情况中,这些活动是今后台进程的形式来实现的。DB2 有以下几种级其余进程:

实例级:这些进程是在实例启动时初始化的:

DB2 Daemon Spawner(db2gds):全局守护处置惩罚法度榜样,每个实例都对应一个这样的进程(仅在 UNIX 中)

DB2 System Controller(db2sysc):DB2 主进程。

DB2 Watchdog(db2wdog):所有其他进程的父进程。

DB2 Format Log(db2fmtlg):类似于 Oracle 中的 ARCn 进程,为日志路径中的日志文件预先分配空间。

数据库级:这些进程是在建立到数据库的连接时初始化的:

DB2 Log Reader(db2loggr):类似于 Oracle 的 PMON 进程的一个子集。该进程在回滚、重启规复和前滚时代读取日志文件。

DB2 Log Writer(db2logw):将日志从日志缓冲区刷新到磁盘上的事务日志文件中。相称于 Oracle 中的 LGWR 进程。

DB2 Page Cleaner(db2pclnr):相称于 Oracle 中的 DBWR 进程,该进程在将页从磁盘上转移到 BP 中之前,清理缓冲池。

DB2 Prefetcher(db2pfchr):将必要用到的页预先从磁盘掏出到缓冲池和记娱乐在线官网中。

DB2 Deadlock Detector(db2dlock):逝世锁检测器进程。

利用法度榜样级:每个连接到数据库的利用法度榜样,都具有属于它自己的利用法度榜样级后台进程与之相关联。这些进程有:

DB2 Communication Manager(db2ipccm):进程间通信进程,用于每个本地连接的客户机。

DB2 TCP Manager(db2tcpcm):TCP 通信治理器进程,用于应用 TCP/IP 连接数据库的远程客户机。

DB2 Coordinating Agent(db2agent):代表利用法度榜样处置惩罚所有哀求的进程。

DB2 Subagent(db2agnta):余暇子代理。

Active Subagent(db2agntp):在启用了 SMP 并行的环境下应用的活动子代理,它使一个义务可以应用多个进程。

锁机制

Oracle 中的锁可所以手动的,也可所以自动的。Oracle Lock Manager 可以在行级隐式地锁定表数据,此外也可以应用以下 SQL 语句在事务或会话级覆盖缺省的锁:

1. SET TRANSACTION ISOLATION LEVEL

2. LOCK TABLE

3. SELECT FOR UPDATE

Oracle 支持一种称为 Multi-Version Read Consistency 的机制,这是用 undo 段中的 undo 数据实现的。

DB2 实现 ANSI 标准隔离(Isolation)级别,例如未提交读(Uncommitted Read)、游标稳定性(Cursor stability)、读稳定性(Read stability)和可重复读(Repeatable Read)。除非应用未提交读隔离级别,否则用户只能看到已提交的数据。行锁是根据隔离级别隐式地得到的。可锁定的数据库工具有表空间、表和行,然则,只有表和表空间可以显式锁定。可应用 LOCK TABLE 敕令来锁定一个表,而不是应用缺省的行锁定。

与 Oracle 不合,在 DB2 中,锁是存储在内存中的,而不是存储在数据页中。可以应用 LOCKLIST 数据库设置设置设备摆设摆设参数来设置设置设备摆设摆设锁可用的内存,而 MAXLOCKS 设置设置设备摆设摆设参数则定义用于一个特定利用法度榜样的锁的最大年夜内存。

安然性

Oracle 和 DB2 都是具有基础的和高档的安然特点的安然数据库。Oracle 中有 4 种不合的用户身份验证措施:

数据库:数据库履行对用户的识别和身份验证。

外部:操作系统或收集办事履行身份验证。

全局身份验证和授权:由 SSL 对用户进行全局身份验证。

代理身份验证和授权:中心层办事器履行身份验证。

身份验证措施是在应用 CREATE USER 敕令创建用户时指定的。Oracle 中有一些 Data Dictionary 视图,此中包孕了关于这些用户的信息。

在 DB2 中,用户不是存在于数据库中,而是由操作系统来治理。没稀有据库登录信息寄放在数据库表中。任何操作系统用户都有可能造访 DB2;然则,除非他们被赋予了给定的 DB2 权限或特权,否则他们能做的工作不多。经由过程 Control Center GUI 很轻易赋予和撤销权限和特权。不过首先必要将可用操作系统用户或组中的一个用户或组添加到 Control Center。

在 DB2 中没有 “角色(role)” 这个术语。相反,DB2 应用术语 “权限(authority)”,它类似于 Oracle 的数据库角色,DB2 经由过程权限将特权赋予某些组或用户。DB2 支持的权限有:SYSADM、SYSCTRL、SYSMAINT、DBADM 和 LOAD。

不能应用 GRANT SQL 语句赋予 SYSADM、SYSCTRL 和 SYSMAINT 权限。这些特殊的权限只能在数据库治理器设置设置设备摆设摆设文件中设置。

DB2 还应用术语 “特权(privilege)”,它类似于 Oracle 的系统和模式工具特权。DB2 中稀有据库特权(连接、创建表等)和数据库工具特权(模式、表、视图等)。图 11 显示了从 Control Center GUI 得到的 DB2 安然性信息。Change User 窗口中显示的大年夜部分选项卡对应了 DB2 所支持的特权。

图 11. DB2 安然性

Oracle 10g 的安然性大年夜体上没有变更,只有部分增强。下面是 Oracle 10g 中的增强的列表:

FGA 的 DML 支持 —— 细粒度审计(fine-grained auditing,FGA)的 SQL 支持获得了增强,现在支持查询和 UPDATE、INSERT 和 DELETE 操作这些粒度上的审计。

SASL 上的通信 —— 该特点为 Oracle Internet Directory(OID)与数据库之间或者两个数据库之间的通信供给了一种安然通道。假如您的企业支配经由过程密码进行身份验证的用户,那么也就不再必要在公共密钥根基举措措施(PKI)方面投入资金和治理事情。SASL(Simple Authentication and Security Layer)通信供给了等价的安然通道。

统一用户模型 —— 目录中定义的单点登录(single sign)用户现在可以应用 Enterprise User Security 供给的特点。不必要为供应和凭据治理而履行附加的义务。此外,Enterprise User Security 的治理组现在可以指派一个所有者,这匆匆进了整体上更有力的安然性。

轻松的数据库注册 —— 该特点打消了对 RDBMS_SERVER_DN 参数的必要,使得企业用户的设置设置设备摆设摆设更为轻松。

扩展的、统一的审计跟踪 —— 该特点以标准的、细粒度的审计表的形式,为 RDBMS 审计供给了同等的审计跟踪,改进了安然性治理。事务和 SQL 信息也被添加到审计表中,以便进一步前进所有用户的可问责性(accountability)。

Oracle 标签安然性目录集成 —— 现在可以在一其中央 OID/LDAP 储存库中治理 Oracle Label Security 策略和用户标签授权。这节约了治理资源,同时也打消了多个治理点,从而增添了安然性。

DB2 中的身份验证不仅涉及对用户名和密码进行加密,还容许对客户机与办事器之间传输的数据进行加密。身份验证的位置由数据库治理器设置设置设备摆设摆设参数 AUTHENTICATION 的值抉择。

下面是用于启用 DB2 的身份验证的有效选项:

SERVER_ENCRYPT —— 这个值规定身份验证发生在办事器上。首先加密连接时代指定的用户 id 和密码,然后将它们发送到办事器,在办事器上将它们与办事器真个用户和密码进行对照。假如匹配成功,那么用户就被容许造访数据库。

KRB_SERVER_ENCRYPT —— 规定办事器吸收 KERBEROS 身份验证或加密的 SERVER 身份验证模式。

DATA_ENCRYPT —— 规定办事器容许 SERVER 身份验证,并且对客户机与办事器之间经由过程收集传输的数据进行加密。

DATA_ENCRYPT_CMP —— 规定办事器吸收加密的 SERVER 身份验证模式和用户数据的加密。 这种身份验证类型能与不支持 DATA_ENCRYPT 身份验证类型的下级产品兼容。

GSS_SERVER_ENCRYPT —— 规定办事器吸收基于 GSS API 的插件身份验证或加密的办事器身份验证模式。

若要更新 AUTHENTICATION 实例参数,例如将它的值设置为 DATA_ENCRYPT,可以应用以下敕令:

清单 1. 更新 AUTHENTICATION 实例参数

UPDATE DBM CFG USING AUTHENTICATION DATA_ENCRYPT

db2stop

db2start

DB2 供给了基于标签的造访节制(Label Based Access Control,LBAC)机制,从而进一步扩展了安然性。 LBAC 特点为节制对各行和各列的读写造访供给了更大年夜的粒度。 DB2 中供给了一种新的安然治理员角色(SECADM),用于操纵 LBAC 工具。

试图造访一个工具的用户必须被赋予该工具的安然标签。假如安然标签匹配,则容许造访;假如不匹配,则回绝造访。实现 DB2 中的 LBAC 安然性基础上有三个步骤:

创建安然策略。

安然策略描述用于抉择谁可以造访特定命据的凭据。任何一个表只能由一个安然策略来保护,然则不合表可以由不合的安然策略来保护。这是经由过程应用 CREATE SECURITY POLICY 语句来实现的。安然策略的所有治理都是经由过程应用 SQL 语句来完成的。

创建安然标签。

一共有三种类型的安然标签:

行安然标签。与数据库表中的一个数据行或记录相关联的安然标签。

列安然标签。与数据库表中一个列相关联的安然标签。

用户安然标签。为数据库用户赋予的安然标签。

安然标签由 SECADM 创建,作为策略的一部分。 创建好一个安然标签之后,可以将其与表中各个列和行相关联,以保护寄放在那里的数据。

为用户赋予安然标签,使他们可以造访数据。 安然治理员经由过程为用户赋予安然标签来容许他们造访受保护的数据。 当一个用户试图造访受保护的数据时,DB2 将那个用户的安然标签与保护数据的安然标签进行对照。

除了特权和权限外,数据库安然性还包孕其他方面。简单地说,Oracle 与 DB2 之间既有不合点,也有相同点:

用户身份验证和授权

Oracle 在创建用户之后,应用存储在目录中的加密密码。DB2 支持用于用户身份验证的密码,并应用底层的操感化户进行身份验证。Oracle 和 DB2 都支持 LDAP (Oracle Internet Directory 与 IBM Directory Server)。Oracle 和 DB2 都支持单点登录(SSO)。

数据加密

Oracle 支持数据加密,它可以对敏感数据,例如信用卡号和一些高度敏感的商业数据进行加密。DB2 容许列级的数据加密。

收集加密

Oracle 经由过程它的 Oracle Advanced Security 供给收集加密。Oracle 应用 DES、3DES 和 RC4 业界标准加密。DB2 本身不进行收集加密。但可以应用附带的 Tivoli SecureWay 实现收集加密。

审计跟踪

Oracle 容许审计跟踪用户和工具。还可以应用日志掘客法度榜样查询造访和阐发有疑问的查询。DB2 也供给了类似的审计举措措施。在 DB2 中,可以应用 db2audit 实用法度榜样进行审计跟踪。

DB2 9 pureXML 特点

在本节中,我们将 Oracle 对 XML 的支持与 DB2 对 XML 的支持进行对照。 Oracle XML DB 特点随 Oracle 9i Release 2 一路宣布,借助该特点,经由过程定义 XMLTYPE 表和列,将它们存储为 CLOB 或拆分(分化)到关系表中,可以实现对 XML 存储、检索和模式的治理。 Oracle 10g 为治理 XML 文档供给了一些增强。例如,经由过程映射已有的数据,可以动态地反应模式的变动,而不必从新导入。Oracle 10g 包括一些对象包,例如:

XML-SQL Util(XSU) —— 为 PL/SQL 和 Java 供给的接口。

XML Developer's kits(XDK) —— 用于受支持的说话,例如 PL/SQL、C++ 和 Java。

Oracle 10g 仍旧是一种 支持 XML 的 数据库。它供给的所有接口、API 和包,都是为了减轻 XML 与关系表之间的互相转换和映射所带来的包袱、繁杂性和掩护。支持 XML 的数据库,不管是应用 CLOB 照样分化措施,都不能供给优越的机能。例如,在应用 CLOB 的环境下,XML 文档作为镜像文件存储在数据库中。您可能已经知道,镜像文件的治理是很麻烦的。分化措施在机能方面也不如人意。将一个 XML 文档分化成小块并存储在多个表中之后,当必要将 XML 文档组合成原样时,就不得不应用一个 SQL JOIN 操作。SQL 中的 JOIN 是开销很大年夜的,分外是表的数量较多时这一点尤其显着。维持数字署名的保真度同样也是一个寻衅。

另一方面,DB2 9 pureXML 技巧则是原生计储 XML 文档,也便是说,在内部以树型款式存储 XML 文档。它还容许同时应用 SQL 和 XML 扩展,即 Xquery 和 Xpath 来造访关系数据和 XML 数据。原生计储 XML 文档是一种更好的措施,IBM 的钻研注解,应用该措施在 XML 文档的搜索和检索方面可以取得更好的机能,并且能削减某些法度榜样中代码的行数。

要在数据库中应用 pureXML 特点,在创建数据库时要应用 UNICODE(例如应用编码集 UTF-8)。在创建一个表之前,假如没能创建一个 UNICODE 数据库,则会孕育发生如下所示的差错:

SQL1239N XML features can only be used in a Unicode database with a single database partition. SQLSTATE=42997

DB2 与之前版本一样存储关系数据。然则,XML 数据因此分层款式存储的(作为应用 Xquery 数据模型的一棵树)。XML 与关系办事之间是慎密集成的。为了存储 XML 文档,用户必要创建一个表,并指定一个列应用一种新的数据类型,即 XML,如下面的例子所示。

清单 2. 用 XML 数据类型创建表

create table T (i int, doc xml)

下图展示了这两列的显示效果:

图 12. DB2 存储模型

因为 XML 文档因此解析的分层款式存储在 XQuery Data Model (XDM) 中的,是以不必要进行转换或映射。用于存储 XML 文档的款式便是用于处置惩罚 XML 文档的款式。这样可以供给更好的机能。

备份、规复、导入等实用法度榜样对含 XML 列的表的感化与其他表是一样的。可以应用 INSERT 语句或 IMPORT 实用法度榜样(留意:DB2 LOAD 实用法度榜样还不支持 XML)将 XML 数据插入 XML 列。在导入来自第三方的 XML 文档之前,最好根据一个预定义的 XML 模式验证这些文档。为了注册一个 XML 模式,DBA 必要履行 REGISTER XML SCHEMA 敕令,并以 COMPLETE XML SCHEMA 停止,以完成注册历程。 DB2 9 还支持在一个 XML 文档的子集或全部文档上创建索引。在创建索引时,必要指定 XPATH,它将指向被建索引的特定元素/属性。

在 DB2 9 中,有四种措施来造访关系数据和 XML 数据,如 图 13 所示:

纯 SQL(不涉及 XQuery)

SQL/XML,也便是说嵌入在 SQL 中的 XQuery

XQuery 作为自力的说话(不涉及 SQL)

带嵌入式 SQL 的 Xquery

图 13. 可能的 PureXML 查询

表 3 对照了 DB2 9 与 Oracle 10g 的 XML 功能。 表 3. XML 特点对照

XML 功能

Oracle 10g

IBM DB2 9 for Linux, Unix and Windows

支持 XML 的存储

不适用

XML 原生计储

×

大年夜情况的易掩护性

×

高度可伸缩性

×

将 XML 文档存储为 CLOB

√。然则从长远看,鼓励应用 XML 原生计储

分化

√。然则从长远看,鼓励应用 XML 原生计储

表分区

DB2 的表分区(即区域分区)类似于 Oracle 的分区。它基础上容许将一个逻辑表拆分成跨一个或多个表空间的多个物理存储工具。每个工具对应于一个 “分区”,容许每个表空间包孕必然范围的、很轻易造访的数据。

在 DB2 中,有多种措施对数据进行分区,您可以同时将这些措施利用于相同的数据。为了避免读者认为利诱,下面简单地解释一下供给这种分区的各类不合措施:

DATABASE PARTITIONING —— 按照键散列将数据散播在数据库的多个逻辑节点上(DPF)。

RANGE/TABLE PARTITIONING(DB2 9 供给) —— 根据键区域将数据划分到一个逻辑数据库分区中的多个物理工具上。

MULTI DIMENSIONAL CLUSTERING(MDC) —— 根据多个键值组织表(或一个表中的区域)中的数据。

使用 DB2 9 中新引入的表分区特点,可以根据一个或多个表列中的特定值将表数据划分到不合的表空间。 这些分区可以自力地进行备份和规复,可以前进某些查询的机能,由于 DB2 优化器知道这些分区的存在,并且可以避免对查询中不必要的分区进行扫描。例如,假如按一年的四个季度对表进行分区,并且查询只必要第 4 季度的数据,那么 DB2 将不解析前三个季度,而是直接找到第 4 个季度并解析之。这被称作分区扫除(partition elimination)。

如前所述,在 DB2 9 中,数据组织的三种措施,即数据库分区(Database Partitioning)、表分区(Table Partitioning)和多维集群(Multi Dimensional Clustering)可同时应用。

下面的例子创建一个 customer 表,此中 l_shipdate >= '01/01/2006' 且 l_shipdate = '04/01/2006' 且 l_shipdate    CREATE TABLE customer (l_shipdate, l_name CHAR(30))

IN ts1, ts2, ts3, ts4, ts5

PARTITION BY RANGE(l_shipdate)

(STARTING FROM ('01/01/2006')

ENDING AT ('12/31/2006')

EVERY (3 MONTHS))

行压缩特点

Oracle 供给了两种压缩特点:一种是索引级压缩,另一种是表级压缩。假如对这些特点没有适当的筹划,就会对机能孕育发生不良影响。

Oracle 从版本 8i 开始就引入了索引压缩。可以压缩的索引有 bitmap、btree 和索引组织的表。索引压缩应用起来很简单。例如,要用压缩特点创建一个索引,可和记娱乐在线官网以应用如下代码:

清单 4. 用压缩特点创建索引

CREATE INDEX ord_customer_ix_demo

ON orders (customer_id, sales_rep_id)

COMPRESS 1;

对付不是在内部用压缩特点创建的索引,可以经由过程改动它们将它们转换成压缩索引。下面显示了一个示例,这个示例展示了若何改动索引,以使其变成压缩索引。

清单 5. 用压缩特点改动索引

alter index ord_customer_ix_demo rebuild compress

今朝,Oracle 没有供给任何自动化的建议者法度榜样来指出哪些索引应该被压缩。大年夜多半经由过程索引压缩得到的好处,都必要拥有娴熟的 Oracle CBO 常识的资深 DBA 颠末适当筹划才能得到。

另一方面,表压缩是在 Oracle 9i release 2 中引入的。它可以用于压缩全部表、表分区和详细视图。压缩可利用于所有分区或部分分区。虽然表压缩也可以用于未分区的表,然则在 OLTP 事情负载中将表压缩利用于未分区的表并弗成取,由于插入和更新机能会受到影响。在 Oracle 表压缩中,数据库块中重复的值将被去除,信息将被存储起来,以便在块中从新创建未压缩的数据。 下面的例子展示了若何用压缩特点创建分区表。

清单 6. 用压缩特点创建表

CREATE TABLE costs_demo (

prod_id NUMBER(6), time_id DATE,

unit_cost NUMBER(10,2), unit_price NUMBER(10,2))

PARTITION BY RANGE (time_id)

(PARTITION costs_old

VALUES LESS THAN (TO_DATE('01-JAN-2003', 'DD-MON-YYYY')) COMPRESS,

PARTITION costs_q1_2003

VALUES LESS THAN (TO_DATE('01-APR-2003', 'DD-MON-YYYY')),

PARTITION costs_q2_2003

VALUES LESS THAN (TO_DATE('01-JUN-2003', 'DD-MON-YYYY')),

PARTITION costs_recent VALUES LESS THAN (MAXVALUE));

为了将一个表转换成压缩表,可以应用 alter tablemove compress。然则,压缩表不容许添加或删除列。

至于 DB2,在 DB2 9 之前就有一些压缩措施,然则,行压缩是在 DB2 9 中才引入的。行压缩要求创建一个目录,用于存储重复模式或条款以及数字键。压缩算法足够智能,不会压缩那些对节省磁盘空间赞助不大年夜的行。

DB2 的行压缩不像 Oracle 的键压缩,它不必要指定键。

可以经由过程 CREATE TABLE 或 ALTER TABLE 敕令在表级进行压缩。例如:

清单 7. 用 COMPRESSION YES 创建/改动表

CREATE TABLE Sales COMPRESS YES

ALTER TABLE Sales COMPRESS YES

为了在 DB2 Control Center 中取得相同的效果,在列定义历程中(表创建领导中的第二步),应确保选中面板底真个复选框 Store table data in a compressed format(如下图所示)。

图 14. DB2 Control Center —— 以压缩款式创建表

只有在履行 REORG 的时刻才构建表字典,之后便可以压缩表中的数据。在随后的每次 REORG 操作中,表字典随之更新。被压缩的数据同时寄放在磁盘上和内存中,DB2 还压缩存储在日志文件中的用户数据,以便削减日志文件大年夜小。

留意,分区表的每个分区可以有不合的压缩字典,在 DPF 中的一个表的每个分区也可以有不合的压缩字典。

除了数据行压缩,DB2 9 供给的其他压缩机制还包括:

NULL 值和缺省值压缩(V8 GA):对变长列中的零长度空数据和系统缺省值进行压缩。

多维集群(V8 GA):应用块索引,数千个记录共用一个索引条款,实现索引压缩。

数据库备份压缩(V8 FP4):经由过程压缩孕育发生较小的备份镜像。

XML 解析

自治特点

从 Oracle 9i 到 10g,Oracle 在调优方面作了一些改进。Oracle 将以下方面的调优进行了自动化:

Redo Logfile Sizing Advisor —— 该特点就重做日志文件的最佳大年夜小给出建议,以避免因频繁呈现的反省点而导致过多的磁盘 I/O。

Automatic Checkpoint Tuning —— Oracle 数据库现在可以自调优反省点,以取得优越的规复速率,同时削减对正常吞吐率的影响。 这样便不再必要设置任何与反省点相关的参数。

Automatic Shared Memory Tuning —— Automatic Shared Memory Tuning 经由过程自调优算法将 System Global Area (SGA) 内存相关参数(缓冲区缓存、共享池)的设置设置设备摆设摆设自动化。它简化了数据库的设置设置设备摆设摆设,确保可用内存获得最有效的使用,并前进了机能。

Transaction Rollback and Recovery Monitoring —— 该特点便于预计回滚一个事务要花若干光阴。还可以监控被规复的事务的进程,并预计事务规复的匀称速率。

Oracle 还供给了一些 advisor,例如 segment advisor 和 u和记娱乐在线官网ndo advisor。segment advisor 根据工具内的空间拆分程度给出是否可以对一个工具履行新的在线压缩操作的建议。而且,这个 advisor 还给出关于段的历史增长趋势的申报,分外是能为容量筹划供给有效的信息。 另一方面,Undo Advisor 则赞助治理员在调剂 flashback 和非 flashback 中的表空间的大年夜小时作出精确的判断。它为治理员适当地设置 UNDO_RETENTION 供给建议,以避免快照过于迂腐的问题。

DB2 9 引入了一些新的自治增强。例如,DB2 9 引入一种新的自调优内存特点(应用 self_tuning_mem 数据库设置设置设备摆设摆设参数),该特点自动地设置一些内存设置设置设备摆设摆设参数的值,从而简化了内存设置设置设备摆设摆设义务。自动调优器充当调整器的角色,它算出可用的内存资本,动态地将它们分发给数据库的一些内存破费者。

除了自调优内存,DB2 9 还引入了下面提到的其他一些增强。这份列表并不完备,然则此中列出的都是紧张的增强。

自动设置设置设备摆设摆设

DB2 8 引入了 Configuration Advisor,它可以检测系统和数据库的特性 —— CPU、内存、数据库大年夜小、表的数量等,并为设置设置设备摆设摆设参数给出建议的值。DB2 9 则更进一步 —— 它在数据库创建之后自动运行 configuration advisor,并缺省地做出一些基础的调优抉择。例如,它设置设置设备摆设摆设缺省缓冲池的大年夜小、I/O 清理法度榜样和 I/O 办事器等。 这种初始的自动调优意味着,同应用之前缺省的数据库设置设置设备摆设摆设参数值创建的数据库比拟,现在的数据库将拥有更好的机能,并且有更好的即开即用性。

自动数据统计信息网络

缺省环境下,DB2 9 还容许对某些进行中的义务进行自动化。经由过程该特点,DB2 确定必要哪些统计信息,以及哪些统计信息必要更新,然后自动在后台履行 和记娱乐在线官网RUNSTATS 实用法度榜样。

自动存储治理

DB2 9 扩展了在 DB2 V8.2.2 中首次引入的自动存储特点。自动存储自动增长跨磁盘和文件系统的数据库的大年夜小,因为它是自动增长数据库大年夜小的,是以 DBA 不必要治理存储容器。当在 DB2 9 中创建数据库时,自动存储治理特点是缺省地启用的。

自动表和索引重组增强

自动重组是从 8.2 版开始引入的。然则,DB9 对其加以增强,从而容许做以下工作:

指定具有适当页宽的系统临时表空间,用于离线表重组。

可限定被重组的表的大年夜小。

指定自动索引重组应该在线运行,并且在在线掩护窗口中运行。

指定在重组时代是保留照样从新构建压缩目录。

对象

我们来看看不合领域的一些对象,例如数据库创建和掩护、收集、治理 GUI、机能调优、数据移动和备份规复对象。图 15 显示了这些 DB2 9 GUI 对象。

图 15. DB2 9 GUI 对象

让我们看看类似的义务在 Oracle 和 DB2 9 平分手是如何履行的。

数据库创建和掩护

Oracle 供给了 Database Configuration Assistant(dbca)作为创建数据库的 GUI 对象。对付数据库掩护,Oracle 供给了 Oracle Enterprise Manager。DB2 数据库则可以经由过程 DB2 Control Center 创建和掩护。

收集

Oracle 供给了 Network Configuration Assistant(netca)来进行收集设置设置设备摆设摆设。或者,也可以应用 Oracle Network Manager 来设置设置设备摆设摆设办事名、侦听 器、设置设置设备摆设摆设文件和 Oracle 名称办事器。DB2 则应用 CATALOG 敕令来编目节点和数据库。此外还可以应用 DB2 敕令行或 DB2 Configuration Assistant GUI 进行编目。

治理

Oracle Enterprise Manager 供给了针对治理员日常义务的广泛治理功能。DB2 Control Center 也供给了和 Oracle Enterprise Manager 类似的功能。除了 DB2 Control Center 外,还可以应用 DB2 敕令行处置惩罚器来发出 DDL 和 DML 语句。该实用法度榜样类似于 Oracle 的 SQLPLUS 实用法度榜样。图 16 显示了 DB2 敕令行处置惩罚器。

图 16. DB2 敕令行处置惩罚器

还可以在 Command Center 中发出敕令,如 图 17 所示。

图 17. Command Center GUI(DB2 敕令行处置惩罚器的 GUI 版本)

机能调优

Oracle Enterprise Manager 附带有 Change Management Pack、Tuning Pack 和 Diagnostic Pack。DB2 则供给了 Event Analyzer、Health Center、Indoubt Transaction Manager 和 Memory Visualizer 作为机能调优义务的 GUI 对象。

数据移动

Oracle 供给了 SQL Loader(sqlldr)用于以定界文本款式装载数据。Import(imp)和 export(exp)可用于履行逻辑导入和导出。DB2 供给了类似的导入、导出和装载实用法度榜样。对付跨平台的数据移动,DB2 供给了 db2move 实用法度榜样。

备份和规复

Oracle 供给了 Recovery Manager 作为热备份的选项。在 DB2 中,可以应用 backup 敕令或 DB2 Control Center 备份数据库。

Oracle 10g Enteprise Manager 附带了新的机能概要表。增强的 Oracle Enterprise Manager HTML 界面为所有与数据库机能相关的统计信息供给了一个集中的造访点,为周全的监控和诊断供给了方便。

除了随 DB2 UDB version 8 宣布的界面外,DB2 9 还引入了一种全新的免费利用法度榜样开拓对象,这个对象叫做 DB2 Developer Workbench(DWB),它是基于 Eclipse 框架的。这个对象可以零丁下载,也可经由过程光盘得到,它替代了 DB2 8 的 Development Center。 DWB 是用于创建、编辑、调试、支配和测试 DB2 存储历程和用户定义函数的一站式中间。此外,还可以应用 DWB 来开拓 SQLJ 利用法度榜样,以及创建、编辑和运行 SQL 语句和 XML 查询。

DWB 有一些用于开拓 DB2 营业工具的视图,例如:

Database Explorer 视图 —— 显示数据库中有什么工具(表、存储历程、用户定义函数、依附关系、远程办事器等),并容许在这些工具上履行动作。

Data Project Explorer 视图 —— 在该视图中,可以经由过程简单的操作,例如拖放、复制粘贴、领导、高低文敏感的完成选项等,进行历程、用户定义函数和 SQL 语句的开拓。

Data Output 视图 —— 在该视图中可以看到对数据库的数据开拓的申报。

除了 DB2 8 的 Development Center 的功能外,新的 Developer Workbench 还包括对迁移申报、对按例程、XML 函数和应用 XQuery Builder 构建 XQuery 查询等等的支持。

图 18 展示了若何应用 DWB 创建存储历程:

图 18. DB2 Developer WorkBench

停止语

在本文中,我们借助您当前已有的关于 Oracle 10g Release 2 的常识,对 DB2 9 for Linux, UNIX and Windows 进行了先容。我们简要地描述了 DB2 9 架构、后台进程、内存模型、安然性、对象等方面。Oracle 与 DB2 9 之间有很多类似之处,我们也指出了它们之间的一些不合之处,以便您能借助已有的常识,在 DB2 9 中得到成功。

表 3 总结了我们评论争论过的 Oracle 与 DB2 9 之间的相同点与不合点。

表 3 —— Oracle 与 DB2 9 观点总结

Oracle

DB2 9

评释

实例

实例

一个 DB2 实例可以包孕多个数据库

数据库

数据库

initSID.ora 或 SPFILE

DBM CFG 和 DB CFG

DB2 应用两个级其余设置设置设备摆设摆设:Database Manager Configuration(DBM CFG)(实例级)和 Database Configuration(DB CFG)(数据库级)。与 Oracle 一样,很多设置设置设备摆设摆设参数可以动态变动

表空间

表空间

DB2 支持 SMS 和 DMS 这两类表空间。DMS 表空间与 Oracle 的表空间类似

数据块

DB2 支持以下几种页大年夜小:4k、8k、16k 和 32k。一个行必须能够装入此中一种数据页内。它不能像在 Oracle 中那样跨多个页

盘区

盘区

数据文件

DMS 表空间容器

用于 DMS 表空间的容器可所以原始设备,也可所以文件

重做日志文件

事务日志文件

数据缓冲区

缓冲池

DB2 没有一组预定义的缓冲池,然则可以根据必要创建足够多的缓冲池。在创建具有给定页大年夜小的表空间时,必须预先存在一个具有给定页宽的缓冲池

SGA

数据库治理器共享内存和数据库共享内存

数据字典

编目

库缓存

包缓存

大年夜型池

实用法度榜样堆

数据字典缓存

编目缓存

SYSTEM 表空间

SYSCATSPACE 表空间

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: