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

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

編輯:DB2教程

  使用自動存儲管理

  接下來我們通過例子來具體看一下如何使用自動存儲管理,具體步驟如下:

  1. 創建一個使用自動存儲器的數據庫DB2TEST1修改其數據庫配置參數,使其使用歸檔日志,然後對數據庫做一次全備。

  2. 分別創建使用自動存儲器功能的常規表空間TABLESPACE1和不使用自動存儲器功能的大型表空間TABLESPACE2。

  3. 對測試數據庫DB2TEST1做一次全備,以便將來可以恢復到此時的狀態。

  4. 創建示例表 "DB2INST1"."EMPLOYEE"。

  5. 對測試數據庫DB2TEST1再做一次全備,以便將來可以恢復到此時的狀態。

  6. 利用全量備份還原測試數據庫DB2TEST1。

  7. 非增量定向還原測試數據庫DB2TEST1。

  創建測試數據庫

  我們首先創建使用自動存儲功能的測試數據庫DB2TEST1,打開 DB2 命令窗口,發出CREATE DATABASE語句,創建數據庫,如 清單 1所示:

  --清單 1. 創建自動存儲器DB2數據庫

  CREATE DATABASE DB2TEST1 on /db2/databases/db2test1/auto_storage

  DBPATH ON /db2/databases/db2test1

  這樣我們創建了一個自動存儲器數據庫DB2TEST1,其數據庫路徑是/db2/databases/db2test1,自動存儲路徑是/db2/databases/db2test1/auto_storage,默認創建了3個表空間:SYSCATSPACE、TEMPSPACE1、USERSPACE1,都是使用自動存儲管理。創建好數據庫後,連接數據庫DB2TEST1,我們需要把數據庫的日志管理模式改為歸檔,具體如清單2所示。

  --清單 2. 更改數據庫參數

  UPDATE DATABASE CONFIGURATION USING LOGARCHMETH1 LOGRETAIN IMMEDIATE

  建議大家使用LOGARCHMETH1,此參數指定已歸檔日志的主要目標的介質類型,不要繼續使用LOGRETAIN或USEREXIT參數。LOGARCHMETH1參數缺省值為OFF,取值范圍可以是 LOGRETAIN、 USEREXIT、 DISK、TSM或VENDOR,各自的含義如下:

  l OFF

  指定不使用日志歸檔方法。如果 logarchmeth1 和 logarchmeth2 都設置為 OFF,那麼認為數據庫正在使用循環日志記錄,且不可前滾恢復。這是缺省值。

  l LOGRETAIN

  此值僅可用於 logarchmeth1,且等價於將 logretain 配置參數設置為 RECOVERY。 如果指定此值,將自動更新 logretain 配置參數。
l USEREXIT

  此值僅對 logarchmeth1 有效,且等價於將 userexit 配置參數設置為 ON。如果指定此值,將自動更新 userexit 配置參數。

  l DISK

  此值後必須緊跟冒號(:),然後是現有標准路徑名,日志文件將在其中歸檔。例如,如果將 logarchmeth1 設置為 DISK:/u/dbuser/archived_logs,那麼將歸檔日志文件放入名為 /u/dbuser/archived_logs 的目錄。

  注: 如果正在歸檔至磁帶,可以使用 db2tapemgr 實用程序來存儲和檢索日志文件。

  l TSM

  如果指定不帶任何附加配置參數,此值指示應該使用缺省管理類,將日志文件歸檔在本地 TSM 服務器上。如果此值後緊跟冒號(:)和 TSM 管理類,那麼使用指定的管理類來歸檔日志文件。

  l VENDOR

  指定將使用供應商庫來歸檔日志文件。此值後必須緊跟冒號(:)和庫的名稱。庫中提供的 API 必須使用備份並復原供應商產品的 API。

  注: 如果將 logarchmeth1 或 logarchmeth2 設置為 OFF 以外的值,那麼必須配置數據庫以進行前滾恢復。

  如果更新 userexit 或 logretain 配置參數,將自動更新 logarchmeth1,反之亦然。然而,如果您要使用 userexit 或 logretain, 必須將 logarchmeth2 設置為 OFF。

  更改成功後,此時你執行如下命令:

  FORCE APPLICATIONS ALL

  命令成功後,用LIST APPLICATIONS看所有應用程序是否都斷開了,如果沒有斷開,再重復執行FORCE APPLICATIONS ALL,保證斷開後,把數據庫做一次全備,如清單3所示。

  --清單 3.備份數據庫

  BACKUP DATABASE DB2TEST1 TO /db2/databases/backup/

  完全備份成功後,連接上數據庫,現在您可以創建示例表空間了。這樣我們就創建了一個測試庫DB2TEST1,其使用歸檔日志,不允許增量備份。

  創建示例表空間

  創建表空間既可以在服務器或本地執行命令創建,也可以在本地Windows環境上使用圖形化界面的方式創建,為了使用圖形化界面,我們首先來編目遠程的數據庫服務器,如清單4所示。

  --清單 4. 編目遠程數據庫

  CATALOG ADMIN TCPIP NODE 192.168.0.1 REMOTE 192.168.0.1

  CATALOG TCPIP NODE db2inst1 REMOTE 192.168.0.1 SERVER 50000

  CATALOG DATABASE DB2TEST1 AS MYDB AT NODE db2inst1

  把IP地址是192.168.0.1,端口號是50000的數據庫服務器在本地編目為節點db2inst1,並把數據庫DB2TEST1在本地編目為MYDB。

  接下來我們創建使用自動存儲器功能的表空間TABLESPACE1,連接上數據庫DB2TEST1後,發出CREATE TABLESPACE命令,如清單5所示。
--清單 5. 創建常規表空間TABLESPACE1,使用自動存儲

  CREATE REGULAR TABLESPACE TABLESPACE1 PAGESIZE 4 K MANAGED BY AUTOMATIC STORAGE BUFFERPOOL IBMDEFAULTBP

  注意,我們在MANAGED BY後面跟的是AUTOMATIC STORAGE,表示新創建的表空間將使用自動存儲。查看表空間可以使用LIST TABLESPACES命令,在DB2 命令行中輸入下列命令,如清單6所示。

  --清單 6. 查看表空間

  LIST TABLESPACES SHOW DETAIL

  你可以看到TABLESPACE1已經創建成功,其空間管理類型是數據庫管理空間,具體如清單7所示。

  --清單 7. 查看表空間結果

  表空間標識 = 3

  名稱 = TABLESPACE1

  類型 = 數據庫管理空間

  內容 = 所有持久數據。常規表空間。

  狀態 = 0x0000

  詳細解釋:

  正常

  總計頁數 = 8192

  可用頁數 = 8160

  已用頁數 = 96

  可用頁數 = 8064

  高水位標記(頁) = 96

  頁大小(以字節計) = 4096

  擴展數據塊大小(頁) = 32

  預取大小(頁) = 32

  容器數 = 1

  最小恢復時間 = 2007-09-11-09.18.46.000000

  還可以通過在本地(Windows環境下)控制中心,對遠程實例和數據庫連接後,對MYDB數據庫進行操作,右鍵單擊“表空間”文件夾,選創建,打開創建表空間向導,如圖1所示。

\

  圖1:創建常規表空間TABLESPACE1,使用自動存儲

  在名稱中輸入表空間名TABLESPACE1,選中“讓DB2管理存儲器(自動存儲器)(L)”,這樣將創建使用自動存儲器的表空間,你一定注意到了,當你選中“讓DB2管理存儲器(自動存儲器)(L)”時向導比選中“我想手工管理存儲器(I)”,少了空間管理和容器兩部分功能,這是因為使用自動存儲的表空間容器和空間管理是自動完成的。

  接著我們要創建一個使用非自動存儲的大型表空間TABLESPACE2,其使用32K頁大小,因此在創建之前我們需要先創建一個32K頁大小的緩沖池,如清單8所示。

  --清單8. 創建緩沖池

  CREATE BUFFERPOOL BUFFERPOOL_32K IMMEDIATE SIZE 250 AUTOMATIC PAGESIZE 32 K

  注意,在DB2 V9中引入了自動自調整內存機制,默認情況下啟動,我們在創建緩沖池BUFFERPOOL_32K加了一個選項AUTOMATIC,表示可以對緩沖池的內存啟用自調整。

  命令成功完成後,我們接下來創建32K頁大小的使用非自動存儲的大型表空間TABLESPACE2,如清單9所示。

  --清單 9. 創建大型表空間

  CREATE LARGE TABLESPACE TABLESPACE2 PAGESIZE 32 K MANAGED BY DATABASE USING ( FILE /db2/databases/tablespaces/tablespace_32k 640 ) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL BUFFERPOOL_32K

  注意,此時我們在MANAGED BY後面跟的是DATABASE,表示空間管理是數據庫管理(DMS),此時容器也需要自己定義。IT168

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