程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2通過備份創建數據庫

DB2通過備份創建數據庫

編輯:DB2教程

最近在使用DB2時遇到一個問題:如何把服務器上備份下來的數據庫在本地復原上呢?

在網上找啊找啊找啊好像沒有真正的恢復,通過自己的研究終於整明白了,和大家分享一下,希望對初學者有所幫助。

由於是通過別的機器備份出來的文件進行復原一個新數據庫所以不能通過控制中心復原。

首先將備份的數據庫文件放在E:\DB2BAK裡

然後打開命令行窗口執行

白金山:db2代碼  

db2 restore database 原數據庫名稱 from E:\DB2BAK taken at 20090909090909(時間戳) into 新數據庫名稱 redirect without rolling forward 

會出現如下錯誤信息

白金山:db2代碼   

SQL1277N 復原已檢測到一個或多個表空間容器是不可訪問的,或者已將它們的狀態設置為 
 
“必須定義存儲器”。 
DB20000I RESTORE DATABASE 命令成功完成。 

這說明在新機器中原來的表空間不存在

回到服務器上通過如下命令查看原來的表空間

白金山:db2代碼  

db2 connect to 數據庫名稱 
db2 list tablespaces 

這裡會看到

白金山:db2代碼  

      當前數據庫的表空間 
 
 表空間標識             = 0 
 名稱                = SYSCATSPACE 
 類型                = 系統管理空間 
 內容                = 任何數據 
 狀態                = 0x0000 
  詳細解釋: 
   正常 
 
 表空間標識             = 1 
 名稱                = TEMPSPACE1 
 類型                = 系統管理空間 
 內容                = 系統臨時數據 
 狀態                = 0x0000 
  詳細解釋: 
   正常 

等字樣把它記下來

回到自己的機器在D:\DB2DATA以上面表空間名稱為文件名創建文件夾

回到自己的機器命令行執行如下命令

白金山:db2代碼  

db2 set tablespace containers for 0 using (path "D:\DB2DATA\SYSCATSPACE") 
DB20000I SET TABLESPACE CONTAINERS 命令成功完成。 
db2 set tablespace containers for 1 using (path "D:\DB2DATA\TEMPSPACE1") 

D:\DB2DATA是新數據的位置記住這裡除了文件夾以外什麼都不能有哦。

OK執行下面最後一步

白金山:db2代碼   

RESTORE DATABASE 原數據庫名稱 CONTINUE 

至此新的數據庫就出來了

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