DB2 基礎: 使用重定向恢復克隆 DB2 數據庫
Roman B. Melnyk, DB2 信息開發(fā), IBM 多倫多實驗室
簡介: 本文講述了克隆 DB2 for Linux、UNIX 或 Windows 數據庫的基礎知識。
發(fā)布日期: 2002 年 12 月 01 日
級別: 初級
訪問情況 : 6139 次瀏覽
評論: 0 (
查看 |
添加評論 - 登錄)
平均分 (10個評分)
為本文評分本文適用于 IBM? DB2? Universal Database? for Linux、UNIX? 和 Windows?
數據庫恢復操作使用數據庫備份映象來重新創(chuàng)建數據庫。如果要將數據庫從一臺機器克隆到另一臺,最簡單的方法就是從備份映象恢復數據庫。數據庫使用的文件系統路徑也包含在備份映象中。因此,除非源系統上的數據庫引用的文件系統和物理設備與目標系統的設置方法完全相同,否則就需要執(zhí)行 重定向恢復操作。
提示:如果有 DB2 V8,就可以從任何高位優(yōu)先服務器獲取備份,并將它恢復到任何其它高位優(yōu)先服務器。例如,您可以將備份映象從 DB2 for HP-UX 恢復到 DB2 for AIX? 或 Sun Solaris。但是,這并不適用于 Windows 和 Linux。重定向恢復操作包括兩步數據庫恢復過程,并且中間有一個表空間容器定義步驟:
帶 REDIRECT 選項發(fā)出 RESTORE DATABASE 命令。
使用 SET TABLESPACE CONTAINERS 命令來定義被恢復的數據庫的表空間容器(DB2 需要知道您想要讓表空間駐留在目標系統上的什么位置)。
再次發(fā)出 RESTORE DATABASE 命令,這次指定 CONTINUE 選項。
整個重定向恢復操作必須在同一個會話中調用;否則,將返回 SQL0900N,恢復操作會失敗,記住這一點很重要。確保不會發(fā)生這種情況的一個方法是創(chuàng)建并運行包含重定向恢復過程中全部三部分的腳本。
以下(Windows)示例顯示了如何成功地執(zhí)行重定向恢復操作。我將演示如何從不同的 實例恢復備份映象,而不是從另一臺 服務器恢復備份映象。原理相同,細節(jié)也一樣。
本示例中的源實例名為 PROD。目標實例名為 MYINST。將要在 MYINST 上被恢復(創(chuàng)建)的 PROD 上的現有數據庫名為 MOVIES。MOVIES 數據庫在 D 盤上。
創(chuàng)建 PROD 上的 MOVIES 數據庫的完整數據庫備份映象:set DB2INSTANCE=PRODdb2startdb2 backup db movies
這個映象的時間戳記是 20021006213640 ,該映象在 D:\MOVIES.0\PROD\NODE0000\CATN0000\20021006 中。DB2 在發(fā)出 BACKUP DATABASE 命令的目錄中創(chuàng)建這個子目錄樹。子目錄名稱表示以下含義:
<database_alias.backup_type>\<instance_name>\<node_number>\<catalog_node_number>\<date>
在這個子目錄樹中,將會有一個表示實際備份映象的文件(213640.0)。文件名表示獲取備份的時間。
創(chuàng)建相似的路徑(使用 MYINST 代替 PROD):
md MOVIES.0\MYINST\NODE0000\CATN0000\20021006
這是關鍵步驟:如果沒有正確創(chuàng)建這個路徑,后續(xù)的數據庫恢復操作就會失敗。如果正在將備份映象重新定位到另一臺機器,那么在目標機器上創(chuàng)建上述路徑(用適當的目標實例名代替 MYINST),并且將備份映象(在此案例中是 213640.0)復制到該目錄。在為傳送維護目錄樹時,也可以使用壓縮工具將備份映象打包。
啟動 MYINST,然后調用重定向恢復操作的第一步。
set DB2INSTANCE=MYINSTdb2startdb2 restore db movies from d taken at 20021006213640 to d redirect
如果從不包含備份映象的目錄中調用 DATABASE RESTORE 命令,則必須指定 FROM 參數。TO 參數指定了目標數據庫目錄(只有在 Windows 操作系統上要指定盤符)。
為與所恢復的數據庫相關的三個缺省表空間(SYSCATSPACE、TEMPSPACE1 和 USERSPACE1)定義新的表空間容器:
db2 set tablespace containers for 0 using (path 'd:\ts0con1')db2 set tablespace containers for 1 using (path 'd:\ts1con1')db2 set tablespace containers for 2 using (path 'd:\ts2con1')
可以使用 LIST TABLESPACES SHOW DETAIL 命令來獲取關于源數據庫中所有表空間的信息;這將幫助您確保已經為目標數據庫中的所有表空間設置了容器。
完成重定向恢復操作:
db2 restore db movies continue
驗證是否正確地為所恢復的數據庫建立了目錄,以及為它定義的表空間容器是否真正與所恢復的數據庫相關:
db2 list db directorydb2 connect to moviesdb2 list tablespace containers for 0db2 list tablespace containers for 1db2 list tablespace containers for 2db2 connect resetdb2 terminatedb2stopset DB2INSTANCE=PRODdb2stop
有關 DB2 備份和恢復操作的更多信息,請參閱 David Kline 的文章
生產到開發(fā):轉移數據庫。