?
快捷搜索:  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 中存儲和治理,由基礎表和響應的視圖組成?;A表是在數據庫創建歷程中自動創建的,而視圖則是經由過程運行 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)。除非應用未提交讀隔離級別,否則用戶只能看到已提交的數據。行鎖是根據隔離級別隱式地得到的??涉i定的數據庫工具有表空間、表和行,然則,只有表和表空間可以顯式鎖定??蓱?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 開始就引入了索引壓縮??梢詨嚎s的索引有 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 支持以下幾種頁大年夜?。?k、8k、16k 和 32k。一個行必須能夠裝入此中一種數據頁內。它不能像在 Oracle 中那樣跨多個頁

盤區

盤區

數據文件

DMS 表空間容器

用于 DMS 表空間的容器可所以原始設備,也可所以文件

重做日志文件

事務日志文件

數據緩沖區

緩沖池

DB2 沒有一組預定義的緩沖池,然則可以根據必要創建足夠多的緩沖池。在創建具有給定頁大年夜小的表空間時,必須預先存在一個具有給定頁寬的緩沖池

SGA

數據庫治理器共享內存和數據庫共享內存

數據字典

編目

庫緩存

包緩存

大年夜型池

實用法度榜樣堆

數據字典緩存

編目緩存

SYSTEM 表空間

SYSCATSPACE 表空間

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

快三平台开户