在備份資料庫的時候,備份的表空間使用的所有表空間容器都將儲存在乙個記錄中。在復原過程中,備份中列出的所有表空間將被檢查是否可以訪問。如果因為其他的一些原因有乙個或多個容器不可使用,復原將失敗。解決辦法是在復原過程中重新定向表空間容器。包括了新增,修改,刪除表空間的容器。
另外一種情況是在備份中所選列的容器在系統中並不存在,但使用者仍然需要在這些容器中復原。比如在備份之外的地方進行恢復,新的系統中可能沒有定義所需的容器 。解決辦法:在復原時重定向表空間容器到另外乙個支援的容器。
db2 => create database product automatic storage no on 'd:\product' user tablesp
ace managed by database using (file 'd:\product\userdata.dat' 512)
sql1052n 資料庫路徑 "d:\product" 不存在。
sql1052n 資料庫路徑 "《路徑》" 不存在。--遇到的乙個錯誤
說明:該命令的 "" 引數中指定的路徑無效。不存在該名稱的路徑,或者在
db2_create_db_on_paths 登錄檔變數被禁用時,指定了路徑(僅限於 windows)。
在 windows 或 unix 環境下的分割槽資料庫環境中,分割槽資料庫組中的每個節點都
必須有相同的硬碟驅動器規範(路徑)可用並且具有可用空間,才能成功執行
create database 命令。硬碟驅動器路徑是在資料庫管理器配置中指定的。如果
dftdbpath 為空白,那麼預設值將是例項擁有的機器上安裝了 db2 的硬碟驅動器路徑(即,db2 安裝路徑)。
無法處理該命令。
使用者響應:
用正確的資料庫路徑重新提交該命令。
在 windows 或 unix 環境下的分割槽資料庫環境中,遵循下列步驟:
* 確定所需要的硬碟驅動器規範(路徑)。該路徑是在錯誤訊息中指定的。
* 確定資料庫分割槽的哪個節點遇到了問題。通常可以在例項擁有的節點的
db2diag.log 檔案中找到此資訊。
* 更正遇到問題的節點上的驅動器問題,或著更改資料庫管理器配置中的驅動器
規範,以使分割槽資料庫組的每個節點上都可以使用同一驅動器並且具有足夠的
空間。* 重新發出該命令。
* 在 windows 上,如果所有將訪問該資料庫的應用程式都基於版本 9 或更高版
本的外部 api,那麼可以啟用 db2_create_db_on_paths 環境變數以支援將路
徑作為資料庫路徑。
db2 => create database product
automatic storage no on 'd:\'
user tablespace managed by database
using (file 'd:\product\userdata.dat' 512)
db20000i create database命令成功完成。
db2 => backup database product to "d:\backup"
備份成功。此備份映像的時間戳記是:20100921111126
db2 => restore database product from d:\backup into newprod redirect without rolling forward
sql1277w 正在執行重定向復原操作。現在,可以檢視表空間配置,並且不使用自動儲存器
的表空間可以重新配置它們的容器。
db20000i restore database命令成功完成。
db2 => list tablespaces
當前資料庫的表空間
表空間標識 = 0
名稱 = syscatspace
型別 = 系統管理空間
內容 = 所有持久資料。常規表空間。
狀態 = 0x2001100
詳細解釋:
復原暫掛
必須定義儲存器
可以定義儲存器
表空間標識 = 1
名稱 = tempspace1
型別 = 系統管理空間
內容 = 系統臨時資料
狀態 = 0x2001100
詳細解釋:
復原暫掛
必須定義儲存器
可以定義儲存器
表空間標識 = 2
名稱 = userspace1
型別 = 資料庫管理空間
內容 = 所有持久資料。大型表空間。
狀態 = 0x2001100
詳細解釋:
復原暫掛
必須定義儲存器
可以定義儲存器
注意:上面提示所有的表空間都處於
必須定義儲存器
狀態。為了繼續進行,使用如下方式重定義容器。
db2 => set tablespace containers for 0 using (path "d:\newprod01")
db20000i set tablespace containers命令成功完成。
db2 => set tablespace containers for 1 using (path "d:\newprod02")
db20000i set tablespace containers命令成功完成。
db2 => set tablespace containers for 2 using (file "d:\newprod03\user.dat" 5120)
db20000i set tablespace containers命令成功完成。
完成了容器的重定義,進行重定向復原。
db2 => restore database product continue
db20000i restore database命令成功完成。
db2 => list tablespaces
當前資料庫的表空間
表空間標識 = 0
名稱 = syscatspace
型別 = 系統管理空間
內容 = 所有持久資料。常規表空間。
狀態 = 0x0000
詳細解釋:正常
表空間標識 = 1
名稱 = tempspace1
型別 = 系統管理空間
內容 = 系統臨時資料
狀態 = 0x0000
詳細解釋:正常
表空間標識 = 2
名稱 = userspace1
型別 = 資料庫管理空間
內容 = 所有持久資料。大型表空間。
狀態 = 0x0000
詳細解釋:正常
檢查表空間的狀態,重定向復原成功!
db2在儲存過程中使用快速刪除
在db2 清空表不記錄日誌會提高很高的效率 語法是alter table tablename activate not logged initially with empty table.但是這個語句只能單獨的執行,要想在儲存過程中執行 必需要定乙個個char行的變數,然後把這句話賦值給變數,然後 ...
db2在頁面刪除一條資料 db2刪除表中資料
db2資料庫系統建表後,難免會有將表中資料清空的需求,本文將為您介紹db2資料庫中四種資料刪除的方法,供您參考,您可以根據實際情況來進行選擇,希望能對有所幫助。1.使用 delete 語句,即 delete from 該語句將清除表中所有資料,但由於這一操作會記日誌,因此執行速度會相對慢一些,另外要...
db2在頁面刪除一條資料 db2刪除表中資料
db2資料庫系統建表後,難免會有將表中資料清空的需求,本文將為您介紹db2資料庫中四種資料刪除的方法,供您參考,您可以根據實際情況來進行選擇,希望能對有所幫助。1.使用 delete 語句,即 delete from 該語句將清除表中所有資料,但由於這一操作會記日誌,因此執行速度會相對慢一些,另外要...