程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 使用DB2 V9進行非增量重定向還原

使用DB2 V9進行非增量重定向還原

編輯:DB2教程

IBM的DB2 V9引入了自動存儲器管理,使用自動存儲功能可以幫助您簡化表空間的存儲管理,新創建的使用自動存儲功能的表空間,其容器和空間分配完全由 DB2數據庫管理器確定。本文重點介紹使用DB2 V9自動存儲功能的數據庫如何進行非增量重定向還原。

簡介

數據庫可能會因為軟件或硬件故障而不可用,可能會遇到存儲問題、斷電、應用程序故障或誤操作等各種需要采取不同恢復措施的故障情況。本文重點介紹使用了DB2® V9 的自動存儲功能,不允許增量備份的數據庫如何進行重定向還原。由於使用自動存儲器功能的數據庫在還原方面和以往有了很大區別,客戶在實際使用的過程中容易出現各種問題,所以本文對自動存儲功能會有詳細的闡述。

自動存儲特性最初是在DB2 V8.2.2中引入的,DB2 V9擴展了這一特性,使用自動存儲功能可以幫助您簡化表空間的存儲管理,新創建的使用自動存儲功能的表空間,其容器和空間分配完全由 DB2數據庫管理器確定。

自動存儲管理

自動存儲器跨磁盤和文件系統自動增大數據庫大小。因此,在保持數據庫管理的存儲器性能和靈活性的同時,不再需要管理存儲器容器。在DB2 V9.1中,已對多分區數據庫增加了自動存儲器支持。如果您使用的是帶DPF(Data Partitioning Feature,數據庫分區功能)的企業服務器版,那您可以使用支持自動存儲器功能的多分區數據庫。在DB2 V9中創建新數據庫的時候,默認啟用自動存儲功能,主要目的是簡化表空間的存儲管理,使用自動存儲功能的數據庫有一個或多個相關聯的存儲器路徑,在創建表空間的時候不用指定存儲的路徑等特性。對使用自動存儲器功能的數據庫,其表空間可以使用自動存儲管理,也可以不使用自動存儲管理。對於不使用自動存儲器功能的數據庫,則其表空間不能使用自動存儲管理。

自動存儲器簡化了存儲管理,它使您能夠指定用於數據庫管理器存放表空間數據以及為各種用途分配空間的存儲路徑。另外,在創建和填充表空間時,DB2 將管理這些表空間的容器和空間分配。如果不需要使用自動存儲器,則必須通過運行 create DATABASE 命令並將 AUTOMATIC STORAGE 選項設置為NO,或通過使用 sqlecrea API 並將 SQLEDBDESCEXT 參數設置為 SQL_AUTOMATIC_STORAGE_NO 來創建數據庫。

自動存儲器功能只能在創建數據庫時指定,不能對已經創建的未使用自動存儲器功能的數據庫啟用自動存儲器;同樣,對創建數據庫時啟用自動存儲器的數據庫也不能禁用自動存儲器,變通的方法就是在創建表空間的時候可以指定是否使用自動存儲器,即雖然數據庫啟用了自動存儲器功能,但可以創建不使用自動存儲器功能的表空間。

由於對多分區配置引入了自動存儲器數據庫,所以更改了 db2look 命令。現在在發出 db2look 命令之前,必須確保所有數據庫分區都是活動的。如果有任何數據庫分區處於不活動狀態,則會發出警告消息,該消息說明無法生成表空間的DDL。此 db2look 命令更改會影響所有表空間類型。

接下來,我們將通過示例的方式分別解釋如何在創建數據庫的時候使用自動存儲器功能。

示例1:創建不使用自動存儲器的DB2數據庫DB2TEST1

createDATABASEDB2TEST1AUTOMATICSTORAGENOON/db2/databases/db2test1

如果在實際過程中不需要使用自動存儲功能,則必須在創建數據庫時將 AUTOMATIC STORAGE 選項設置為 NO,否則,將創建使用自動存儲器功能的數據庫。

示例2:創建使用自動存儲器的DB2數據庫DB2TEST2

createDATABASEDB2TEST2

因為在DB2 V9中創建新數據庫的時候,默認啟用自動存儲功能,我們在創建數據庫的時候沒有顯式將指定AUTOMATIC STORAGE 選項設置為NO,所以新創建的數據庫DB2TEST2 將自動啟用自動存儲功能,其數據庫路徑是使用 dftdbpath 數據庫管理器配置參數來確定,其存儲器路徑也是使用 dftdbpath 數據庫管理器配置參數來確定。

默認創建了3個表空間:SYSCATSPACE、TEMPSPACE1和USERSPACE1,都是使用自動存儲管理。需要注意的是,對USERSPACE1表空間,和其在DB2 V8相比其表空間類型由常規變成了大型。

因為在DB2 V9中創建新數據庫的時候,默認啟用自動存儲功能,我們在創建數據庫的時候沒有顯式將指定AUTOMATIC STORAGE 選項設置為NO,所以新創建的數據庫DB2TEST3 將自動啟用自動存儲功能,其數據庫路徑是:/db2/databases/db2test3,其存儲器路徑也是:/db2/databases/db2test3。

示例4:創建使用自動存儲器的DB2數據庫DB2TEST4

createDATABASEDB2TEST4AUTOMATICSTORAGEYES

也可以在創建數據庫的時候顯式將指定AUTOMATIC STORAGE 選項設置為YES,效果和默認時相同,創建的數據庫DB2TEST4也使用自動存儲,其數據庫路徑和存儲器路徑由dftdbpath 數據庫管理器配置參數確定。

示例5:創建使用自動存儲器的DB2數據庫DB2TEST5

createDATABASEDB2TEST5ON/db2/databases/db2test5/autostorageDBPATHON/db2/databases/db2test5

因為在DB2 V9中創建新數據庫的時候,默認啟用自動存儲功能,我們在創建數據庫的時候沒有顯式將指定AUTOMATIC STORAGE 選項設置為NO,所以新創建的數據庫DB2TEST5 將自動啟用自動存儲功能,數據庫路徑由DBPATH ON directory參數指定,在當前示例中數據庫路徑是:/db2/databases/db2test5,存儲器路徑由ON directory 參數指定,在當前示例中存儲器路徑是 /db2/databases/db2test5/autostorage。

對於前面顯示的示例,下表總結了所使用的存儲器路徑:

表 1. 自動存儲器數據庫路徑和存儲器路徑

使用DB2 V9進行非增量重定向還原

表空間所使用的存儲器類型

表空間用來存儲表,抽象物理存儲,由一個或多個容器組成,也就是說表空間可以分布在一個或多個物理設備上。有4k、8k、16k、32k的四種頁面大小的表空間。為了提高性能,可以將一個表的索引存儲到另一個表空間,將大對象存儲到第三個表空間,任何表的數據都循環存儲在表空間的所有容器中;默認的表空間有:SYSCATSPACE(4K,存儲系統目錄和表)、TEMPSPACE1(4K,臨時表空間)、USERSPACE1(4K,用戶表空間)。

表空間的類型有四種:REGULAR(如USERSPACE1)、SYSTEM TEMPORARY(如TEMPSPACE1)、LARGE(用來存儲LOB數據)、USER TEMPORARY(用來存儲用戶臨時表)。

表空間按管理方式分為系統管理表空間(SMS:system manage space)和數據庫管理表空間(DMS)。對於SMS表空間,每個容器都是操作系統的文件空間中的一個目錄,由操作系統的文件管理器控制存儲空間。對於DMS 表空間,每個容器或者是固定大小的預分配文件,或者是物理設備(例如,磁盤),由數據庫管理器控制存儲空間。

SMS表空間,其容器是文件系統的目錄,是非預分配的,大小的限制為文件目錄的大小,容器的個數在創建的時候決定,不能修改;如果使用SMS表空間,用戶數據不能分開存儲,也就是不能把用戶數據分別存儲在數據、索引、大數據表空間中。DMS表空間,其容器可是是file或raw devices ,其容器可以增加,修改,或改變大小;如果使用DMS表空間,用戶數據可以分開存儲,也就是可以把用戶數據分別存儲在INDEX,TABLE和LOB表空間中。

緩沖池是指從磁盤讀取高速緩存表和索引數據頁時或修改它們時分配給它們的主存儲器。緩沖池的目的是改進系統性能。從內存訪問數據要比從磁盤訪問數據快得多,因此,數據庫管理器需要讀寫磁盤(I/O)的次數越少,性能也越好。可以創建多個緩沖池,雖然在大多數情況下只需要一個,建議對每一種頁大小的表空間分別建一個緩沖池。

緩沖池用來進行表或索引的緩存,一個數據庫至少要有一個緩沖池 ,緩沖池的頁大小可以是4k,8k,16k或32k; 表空間的頁面大小要和緩沖池保持一致,緩沖池的目的是用來減少直接的I/O訪問,提高I/O訪問速度。默認的緩沖池為IBMDEFAULTBP(4K)。

在DB2 V9中如果想讓數據庫管理器自動調整緩沖池,首先數據庫參數SELF_TUNING_MEM需要設置為ON,其次,緩沖池在創建的時候需要指定AUTOMATIC屬性,比如創建緩沖池BP1,可以使用如下命令創建:

createBUFFERPOOL"BP1"IMMEDIATESIZE250AUTOMATICPAGESIZE4K;

對已經創建好的緩沖池如果也想讓數據庫管理器自動調整,可以用alter BUFFERPOOL命令修改,比如修改IBMDEFAULTBP緩沖池: 

alterBUFFERPOOLIBMDEFAULTBPIMMEDIATESIZE250AUTOMATIC;

容器是物理存儲設備。可以用目錄名、設備名或文件名來標識它。

可以為表空間分配容器,單個表空間可以橫跨多個容器,但每個容器只能屬於一個表空間。

對自動存儲器數據庫,創建表空間時,有兩種存儲器類型可以選擇:

(1)DB2管理存儲器(自動存儲器)

(2)手工管理存儲器

如果新建的表空間使用DB2管理存儲器(自動存儲器),根據要創建的表空間類型不同,其空間管理會有所區別,當其表空間類型是常規或者大型時,將自動創建成數據庫管理空間(DMS), 當其表空間類型是系統臨時或者用戶臨時時,將自動創建成系統管理空間(SMS)。使用自動存儲,就不再需要擔心如何添加容器以及監控容器的增長等,自動存儲會自動增加表空間在磁盤和文件系統上的大小。

如果新建的表空間是使用手工管理存儲器,其空間管理又分系統管理空間(SMS)和數據庫管理空間(DMS)兩種方式。對於使用自動存儲功能的表空間,其容器和空間管理完全由DB2數據庫管理器確定,因此,系統管理空間(SMS)和數據庫管理空間(DMS)只在使用手工管理存儲器的表空間中會直接用到,在使用自動存儲器功能的表空間中不會直接用到。同樣,容器的定義和管理也只在使用手工管理存儲器的表空間中會直接用到,在使用自動存儲器功能的表空間其容器完全由DB2數據庫管理器確定。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved