db2relocatedb 工具.doc_第1頁(yè)
db2relocatedb 工具.doc_第2頁(yè)
db2relocatedb 工具.doc_第3頁(yè)
db2relocatedb 工具.doc_第4頁(yè)
db2relocatedb 工具.doc_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

db2relocatedb 工具使移動(dòng)數(shù)據(jù)庫(kù)和表空間容器更容易的一款工具簡(jiǎn)介:db2relocatedb 工具允許 DB2 UDB for Linux、 UNIX 和 Windows 的 DBA 物理地移動(dòng)整個(gè)數(shù)據(jù)庫(kù)、一個(gè)或多個(gè)表空間容器的位置,而不必進(jìn)行任何備份和恢復(fù)。本文可以幫助您了解何時(shí)以及如何使用 db2relocatedb,并通過(guò)一個(gè)實(shí)際的生活示例,讓 DBA 自信能夠像使用 DB2 工具欄中的其他工具那樣熟練地使用該工具。隨 DB2 UDB V7 和 V8 一起提供的 db2relocatedb 工具,可以成為了解其功能和用法的 DBA 手中的一件利器。該工具可以幫助 DBA 物理地移動(dòng)整個(gè)數(shù)據(jù)庫(kù)、一個(gè)或多個(gè)表的空間容器的位置,而不必進(jìn)行任何備份和恢復(fù)操作(這些操作可能需要花費(fèi)很多時(shí)間和資源)。它還允許重新命名數(shù)據(jù)庫(kù)和轉(zhuǎn)換數(shù)據(jù)庫(kù)所屬的實(shí)例。雖然 DB2 手冊(cè)中提供了 db2relocatedb 工具的說(shuō)明,但人們通常是通過(guò)口頭傳播了解它的。他們非常希望嘗試一下這個(gè)工具,但因?yàn)樵摴ぞ咚龅氖歉淖儯热缧薷膬?nèi)部數(shù)據(jù)庫(kù)結(jié)構(gòu)、文件等,人們使用它的時(shí)候感到非常不安。本文將討論該工具,說(shuō)明什么時(shí)候使用它,以及如何使用它,并通過(guò)一些實(shí)際的生活示例,讓 DBA 自信能夠像使用 DB2 工具欄中的其他工具那樣熟練使用它。什么是 db2relocatedb?除了保存的用戶數(shù)據(jù)以外,DB2 數(shù)據(jù)庫(kù)還有大量的內(nèi)部元數(shù)據(jù),這些數(shù)據(jù)描述了用戶數(shù)據(jù)存放位置、用戶數(shù)據(jù)屬于誰(shuí),以及如何引用它們。元數(shù)據(jù)總是被 DB2 隱藏在“幕后”,用戶和 DBA 都不會(huì)直接接觸它。就最基本的層面而言, db2relocatedb 是這樣一種工具,即如果沒(méi)有其他的辦法,或者在數(shù)據(jù)庫(kù)內(nèi)完成這些操作造成的代價(jià)不可接受或者太繁瑣(和使用 db2relocatedb 相比),那么可以使用它來(lái)改變這些元數(shù)據(jù)。 比方說(shuō),修改和數(shù)據(jù)庫(kù)相關(guān)的名稱和路徑可以使用 DB2 的備份和恢復(fù)命令來(lái)完成。先備份數(shù)據(jù)庫(kù),然后用新的名稱和/或路徑恢復(fù)。備份操作可以在線完成,但恢復(fù)操作是離線的,而且其間數(shù)據(jù)庫(kù)不能用,如果有可用性要求,那么這種情況是不可接受的。 另外一個(gè)示例是改變表空間容器的位置,也可以通過(guò)備份和恢復(fù)(更具體地說(shuō)是重定向恢復(fù))完成。但是,如果表空間是 DMS,那么可以首先使用 ALTER TABLESPACE SQL 語(yǔ)句向新的位置添加容器,然后再?gòu)脑瓉?lái)位置刪除容器。這種方法的副作用是操作必須按順序進(jìn)行,每一步操作之后都可能出現(xiàn)表空間重新調(diào)整。 可以用 db2relocatedb 工具執(zhí)行相同的任務(wù),而且,在多數(shù)情況下,與在 DB2 “內(nèi)部”執(zhí)行相比,db2relocatedb 工具所需的時(shí)間(和工作量)更少。但是這些只是其功能的一部分,下面列出了該工具能夠于其中發(fā)揮重要作用的所有任務(wù): 修改數(shù)據(jù)庫(kù)名。 修改數(shù)據(jù)庫(kù)創(chuàng)建的路徑/驅(qū)動(dòng)器。 更改一個(gè)或多個(gè)表空間容器。 改變和數(shù)據(jù)庫(kù)有關(guān)的日志路徑 改變和數(shù)據(jù)庫(kù)有關(guān)的實(shí)例 將數(shù)據(jù)庫(kù)復(fù)制/移動(dòng)到同一臺(tái)(也可以不同)機(jī)器上,并進(jìn)行上述一項(xiàng)或多項(xiàng)修改。 現(xiàn)在必須明確一點(diǎn),因?yàn)橛袝r(shí)候人們常常會(huì)混淆(后面還將詳細(xì)說(shuō)明)。當(dāng)使用 db2relocatedb 改變數(shù)據(jù)庫(kù)或者其容器的位置時(shí), 您必須負(fù)責(zé)移動(dòng)或復(fù)制文件可以使用選擇的任何方法)。該工具本身不會(huì)物理地移動(dòng)任何東西,只能改變 DB2 的內(nèi)部元數(shù)據(jù),以反映您所作的修改。 在哪里可以找到 db2relocatedb 工具?db2relocatedb 工具最初在 DB2 UDB V7 Fixpak 4 中引入的。一開始只在 Release Notes 予以說(shuō)明,后來(lái)又被添加到產(chǎn)品文檔中。V8 的所有版本中也提供了 db2relocatedb。 db2relocatedb 是一種服務(wù)器端工具(也就是說(shuō)只在數(shù)據(jù)庫(kù)所在的系統(tǒng)上運(yùn)行),因此,所有的服務(wù)器安裝中都有該工具。您也可以在下面的目錄中找到,該目錄隨平臺(tái)不同而不同: UNIX:實(shí)例目錄/sqllib/bin/db2relocatedb Windows:安裝 DB2 的驅(qū)動(dòng)器sqllibbindb2relocatedb.exe 基礎(chǔ)知識(shí)可以在文檔中找到 db2relocatedb 工具的語(yǔ)法,但也可以通過(guò)命令行查看它。在 V7 中,只需輸入 db2relocatedb,不用指定任何選項(xiàng),就可以查看該語(yǔ)法,但在 V8 中,這樣做將返回 DBT1017N 錯(cuò)誤,指明語(yǔ)法不正確。不過(guò),運(yùn)行 db2 ? dbt1017n 可以顯示這一錯(cuò)誤消息的擴(kuò)展版本,其中顯示了該工具的完整語(yǔ)法: db2relocatedb 的語(yǔ)法DBT1017N The syntax of the DB2RELOCATEDB tool is incorrect.Explanation: The DB2RELOCATEDB tool has the following syntax: db2relocatedb -f : Name of file containing configuration information. File format is: DB_NAME=oldName,newName DB_PATH=oldPath,newPath INSTANCE=oldInst,newInst NODENUM=nodeNumber LOG_DIR=oldDirPath,newDirPath CONT_PATH=oldContPath1,newContPath1 CONT_PATH=oldContPath2,newContPath2 . Notes:o Database name, database path, and instance name are all required fields. If one of these fields is not changing then it is not necessary to list the old and new value for it, just give the old/current one.o Blank lines or lines beginning with a comment character (#) will be ignored.上述消息表明,運(yùn)行該工具需要指定一個(gè)配置文件。該文件由用戶創(chuàng)建,告訴該工具需要在內(nèi)部改變數(shù)據(jù)庫(kù)的哪些內(nèi)容(同樣,要記住,實(shí)際移動(dòng)需要移動(dòng)的文件是由用戶來(lái)移動(dòng)的)。下面是所有配置文件參數(shù)的詳細(xì)說(shuō)明: DB_NAME:必需參數(shù),表示數(shù)據(jù)庫(kù)名。如果沒(méi)有改變數(shù)據(jù)庫(kù)名,那么只需指定當(dāng)前的名稱即可(也就是說(shuō)不需要列出新的數(shù)據(jù)庫(kù)名)。但是,如果要改變數(shù)據(jù)庫(kù)名,那么就必須指定當(dāng)前名稱和新名稱,中間用逗號(hào)分開。 DB_PATH: 必需參數(shù),表示數(shù)據(jù)庫(kù)最初創(chuàng)建的路徑或驅(qū)動(dòng)器(Windows)。如果不改變數(shù)據(jù)庫(kù)路徑,那么只需指定當(dāng)前路徑即可。但是如果改變數(shù)據(jù)庫(kù)路徑,那么就必須指定當(dāng)前路徑和新路徑,中間用逗號(hào)分開。 INSTANCE: 必需參數(shù),表示 DB2 實(shí)例名。如果不改變實(shí)例名,則只需指定當(dāng)前實(shí)例名即可,否則需要指定當(dāng)前實(shí)例名和新實(shí)例名,中間用逗號(hào)分開。 NODENUM: 可選參數(shù),表示要操作的數(shù)據(jù)庫(kù)分區(qū)號(hào)。如果沒(méi)有指定該參數(shù),則默認(rèn)為 0。關(guān)于該參數(shù)用法的詳細(xì)說(shuō)明,請(qǐng)參閱“Multi-Partitioned Databases”一節(jié)。 LOG_DIR: 可選參數(shù),表示數(shù)據(jù)庫(kù)日志文件的位置。人們通常用 UPDATE DB CFG USING NEWLOGPATH 命令更改日志文件目錄,也可以選擇使用該工具改變其他某些路徑。 CONT_PATH: 可選參數(shù),用來(lái)更改一個(gè)或多個(gè)表空間容器的位置。可以多次指定該參數(shù)來(lái)表示需要完成的修改。其中每一項(xiàng)都要包含原來(lái)的容器名和新的容器名,中間用逗號(hào)分開。 如果要進(jìn)行多次修改,但修改的類型相同(比如都是從一個(gè)公共目錄移動(dòng)到其他目錄),那么您可以使用星號(hào)通配字符。比如: CONT_PATH=/oldLocation/*, /newLocation/* 提示:如果用相對(duì)路徑容器創(chuàng)建表空間(即沒(méi)有給出絕對(duì)文件和目錄名),那么會(huì)在數(shù)據(jù)庫(kù)目錄中自動(dòng)創(chuàng)建 DB2(詳情請(qǐng)參見(jiàn)下一節(jié))。如果要改變數(shù)據(jù)庫(kù)路徑(使用 DB_PATH),那么不需要在配置文件中列出所有這些容器。 db2relocatedb 工具會(huì)假定所有容器都位于正在移動(dòng)的數(shù)據(jù)庫(kù)目錄中。事實(shí)上,該工具將假定位于原數(shù)據(jù)庫(kù)目錄下的所有容器都移動(dòng)到了新的路徑下,因此也不需要列出新路徑。下面的 示例 #6 說(shuō)明了這一點(diǎn)。 數(shù)據(jù)庫(kù)目錄在創(chuàng)建數(shù)據(jù)庫(kù)時(shí),DB2 將創(chuàng)建一個(gè)目錄,保存默認(rèn)表空間以及與數(shù)據(jù)庫(kù)有關(guān)的各種控制文件(如 SQLSPCS.1/2、 SQLDBCON)。該目錄的位置取決于用戶提供的信息(數(shù)據(jù)庫(kù)路徑)和環(huán)境信息(實(shí)例名和分區(qū)/節(jié)點(diǎn)號(hào))。 注意,創(chuàng)建數(shù)據(jù)庫(kù)時(shí),如果沒(méi)有提供數(shù)據(jù)庫(kù)路徑,那么可以使用數(shù)據(jù)庫(kù)管理員配置參數(shù) DFTDBPATH 的值。默認(rèn)情況下,在UNIX 中,該參數(shù)值是實(shí)例所有者的主目錄,而在 Windows 中,它是 DB2 的安裝路徑。 關(guān)于 DB2 如何確定數(shù)據(jù)庫(kù)目錄的位置,讓我們看兩個(gè)簡(jiǎn)單的示例: 例 #1:?jiǎn)畏謪^(qū)數(shù)據(jù)庫(kù) 在實(shí)例 db2inst1 中執(zhí)行下面的語(yǔ)句: CREATE DATABASE TESTDB ON /db2/databasePath DB2 將在下面的目錄中創(chuàng)建數(shù)據(jù)庫(kù): /db2/databasePath /db2inst1 /NODE0000 /SQL00001 可以看出,DB2 從創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)句提供的數(shù)據(jù)庫(kù)路徑(該例中為 /db2/databasePath)開始。然后,DB2 擴(kuò)展了實(shí)例(/db2inst1)的名稱。接下來(lái),添加了一個(gè)指定數(shù)據(jù)庫(kù)分區(qū)的目錄(/NODE0000)。在該例中,分區(qū)號(hào)是 0,因?yàn)槲覀兲幚淼氖菃畏謪^(qū)數(shù)據(jù)庫(kù)。最后,DB2 添加了一個(gè)以 SQL# 形式出現(xiàn)的目錄(/SQL00001),而且,相對(duì)于同一路徑中創(chuàng)建的其他數(shù)據(jù)庫(kù),該目錄是惟一的。隨著創(chuàng)建的數(shù)據(jù)庫(kù)不斷增加,分別將該目錄命名為 SQL00001、 SQL00002、 SQL00003,依此類推。 例 #2: 多分區(qū)數(shù)據(jù)庫(kù) 實(shí)例 db2mpp 有三個(gè)分區(qū)(0、 10 和 20)。執(zhí)行下面的語(yǔ)句將創(chuàng)建一個(gè)三分區(qū)數(shù)據(jù)庫(kù): CREATE DATABASE MPPDB ON /database 在該例中, DB2 將為這三個(gè)數(shù)據(jù)庫(kù)分區(qū)(路徑僅有分區(qū)號(hào)不同)創(chuàng)建以下三個(gè)目錄。這些目錄可以在同一機(jī)器上,也可以在不同的機(jī)器上,這取決于分區(qū)是邏輯分區(qū)還是物理分區(qū)。 /database /db2mpp /NODE0000 /SQL00001 /database /db2mpp /NODE0010 /SQL00001 /database /db2mpp /NODE0020 /SQL00001 此外, DB2 還會(huì)在與 SQL# 目錄相同的位置上創(chuàng)建一個(gè) sqldbdir 目錄。對(duì)于上例而言,將會(huì)創(chuàng)建以下目錄: /db2/databasePath /db2inst1 /NODE0000 /sqldbdir /database /db2mpp /NODE0000 /sqldbdir /database /db2mpp /NODE0010 /sqldbdir /database /db2mpp /NODE0020 /sqldbdir 存儲(chǔ)在 sqldbdir 中的信息通稱為卷標(biāo)數(shù)據(jù)庫(kù)目錄或者本地?cái)?shù)據(jù)庫(kù)目錄。指明“可以在目錄 SQL00001 中找到數(shù)據(jù)庫(kù) TESTDB”的正是這些信息,執(zhí)行 LIST DB DIRECTORY ON 命令返回的也是這些信息。但重要的是要記住,為了能夠找到數(shù)據(jù)庫(kù),該目錄對(duì)于 DB2(或者像 db2relocatedb 這樣的任何工具)是絕對(duì)必需的。在下面的例子中可以看到,無(wú)論何時(shí)使用 db2relocatedb 移動(dòng)或復(fù)制數(shù)據(jù)庫(kù),都必須移動(dòng)或復(fù)制該目錄。 多分區(qū)數(shù)據(jù)庫(kù)如果需要修改多分區(qū)數(shù)據(jù)庫(kù)(對(duì) V7 使用 DB2 UDB EEE,或者對(duì) V8 使用帶數(shù)據(jù)分區(qū)特性的 DB2 UDB ESE),有一些問(wèn)題需要注意。 首先,每個(gè)分區(qū)都有自己的元數(shù)據(jù)子集。因此運(yùn)行該工具執(zhí)行的多數(shù)操作都要應(yīng)用于每個(gè)分區(qū)。無(wú)論修改實(shí)例名、數(shù)據(jù)庫(kù)名,還是修改數(shù)據(jù)庫(kù)路徑,都需要修改所有的分區(qū)。如果不這么做,數(shù)據(jù)庫(kù)就無(wú)法啟動(dòng),或者在以后會(huì)出現(xiàn)意想不到的結(jié)果。但是如果只想改變一個(gè)分區(qū)中特定表空間容器的位置,那么只需要對(duì)該分區(qū)運(yùn)行 db2relocatedb 即可。 其次,準(zhǔn)備運(yùn)行該工具的每個(gè)分區(qū)都要有自己的配置文件,原因在于必須指定 NODENUM 參數(shù),而該參數(shù)必須和所處理的數(shù)據(jù)庫(kù)分區(qū)號(hào)相匹配。 第三,不能使用該工具改變和數(shù)據(jù)庫(kù)分區(qū)有關(guān)的分區(qū)號(hào),比方說(shuō),不能將數(shù)據(jù)庫(kù)分區(qū) 10 改為數(shù)據(jù)庫(kù)分區(qū) 20。 最后,NODENUM 參數(shù)“不能”說(shuō)明該工具要處理的分區(qū)。換句話說(shuō),如果將配置文件中 NODENUM 設(shè)為 10,但該工具卻在數(shù)據(jù)庫(kù)分區(qū) 0(在不同的物理機(jī)器上)上運(yùn)行,那么它不會(huì)跑出去尋找分區(qū) 10 并在其上運(yùn)行。如前所述,即使不改變這些信息的值,也必須指定文件中的一些信息(比如多分區(qū)數(shù)據(jù)庫(kù)中的 NODENUM)。必須提供這些信息,以便該工具能夠找到需要的數(shù)據(jù)庫(kù)和文件,它們的位置和實(shí)例名、數(shù)據(jù)庫(kù)路徑和數(shù)據(jù)庫(kù)分區(qū)號(hào)等有關(guān)。 注意,運(yùn)行 db2relocatedb 工具之前必須關(guān)閉數(shù)據(jù)庫(kù)。 例 #1: 修改單分區(qū)數(shù)據(jù)庫(kù)的名稱數(shù)據(jù)庫(kù)名:TESTDB 數(shù)據(jù)庫(kù)路徑:/home/db2inst 實(shí)例名:db2inst 場(chǎng)景:希望將數(shù)據(jù)庫(kù)名從 TESTDB 改為 NEWNAME。 配置文件“example1.cfg” DB_NAME=TESTDB,NEWNAMEDB_PATH=/home/db2instINSTANCE=db2inst命令: db2relocatedb f example1.cfg 例 #2: 修改多分區(qū)數(shù)據(jù)庫(kù)的名稱數(shù)據(jù)庫(kù)名:PRODUCTS 數(shù)據(jù)庫(kù)路徑:/dbdir 實(shí)例名:db2mpp1 分區(qū):1, 2, 3 場(chǎng)景:希望將這個(gè)三分區(qū)數(shù)據(jù)庫(kù)的名稱從 PRODUCTS 改為 OLDPROD。 配置文件“example2-1.cfg” DB_NAME=PRODUCTS,OLDPRODDB_PATH=/db2dirINSTANCE=db2mpp1NODENUM=1配置文件“example2-2.cfg” DB_NAME=PRODUCTS,OLDPRODDB_PATH=/db2dirINSTANCE=db2mpp1NODENUM=2配置文件“example2-3.cfg” DB_NAME=PRODUCTS,OLDPRODDB_PATH=/db2dirINSTANCE=db2mpp1NODENUM=3命令: If on different physical machines, go to node 1 (else export DB2NODE=1) db2relocatedb f example2-1.cfg If on different physical machines, go to node 2 (else export DB2NODE=2) db2relocatedb f example2-2.cfg If on different physical machines, go to node 3 (else export DB2NODE=3) db2relocatedb f example2-3.cfg 如果您是一位有經(jīng)驗(yàn)的多分區(qū)數(shù)據(jù)庫(kù) DBA,那么您可能已經(jīng)想到了更好的辦法,避免必須切換到每個(gè)節(jié)點(diǎn)并分別執(zhí)行這些命令。比如可以將上述文件放在所有分區(qū)都能訪問(wèn)的地方,然后執(zhí)行下面的命令: db2_all db2relocatedb f common_location/example2-$DB2NODE.cfg 例 #3: 改變和數(shù)據(jù)庫(kù)有關(guān)的路徑數(shù)據(jù)庫(kù)名:SALES 數(shù)據(jù)庫(kù)路徑:/home/kschlamb 實(shí)例名:kschlamb 場(chǎng)景:您發(fā)現(xiàn)您已經(jīng)在實(shí)例主目錄中創(chuàng)建了數(shù)據(jù)庫(kù),而不是像期望的那樣,在一個(gè)更大的、專門的文件系統(tǒng)中創(chuàng)建該數(shù)據(jù)庫(kù)。新的數(shù)據(jù)庫(kù)路徑被稱為 /salesdb。 如前所述,最初創(chuàng)建數(shù)據(jù)庫(kù)時(shí)已經(jīng)建立了下面這兩個(gè)目錄: /home/kschlamb/kschlamb/NODE0000/SQL00001 /home/kschlamb/kschlamb/NODE0000/sqldbdir 首先,要將這兩個(gè)目錄手工移動(dòng)到下面位置。請(qǐng)記住,數(shù)據(jù)庫(kù)路徑只是 DB2 使用的目錄結(jié)構(gòu)的一部分,因此,在確定目標(biāo)位置時(shí),必須遵循同樣的規(guī)則。您可以使用選擇的任何 OS 命令移動(dòng)這些文件(如 cp/rm、 mv 和 tar)。 /salesdb/kschlamb/NODE0000/SQL00001 /salesdb/kschlamb/NODE0000/sqldbdir 然后創(chuàng)建配置文件并運(yùn)行 db2relocatedb。 配置文件“example3.cfg” DB_NAME=SALESDB_PATH=/home/kschlamb,/salesdbINSTANCE=kschlamb命令: db2relocatedb f example3.cfg 例 #4: 修改和表空間關(guān)聯(lián)的容器數(shù)據(jù)庫(kù)名:FINANCE 數(shù)據(jù)庫(kù)路徑:/finance/database 實(shí)例名:fin 場(chǎng)景:您有三個(gè)大文件系統(tǒng),分別是 /finance/fs1、/finance/fs2 和 /finance/fs3,并希望通過(guò)執(zhí)行下面的 SQL 語(yǔ)句創(chuàng)建跨越這三個(gè)文件系統(tǒng)的表空間: CREATE TABLESPACE BIGTS MANAGED BY SYSTEM USING (/financ/fs1/BIGTS, /financ/fs2/BIGTS, /financ/fs3/BIGTS) 但是您沒(méi)有發(fā)現(xiàn)所有的容器名都拼寫錯(cuò)了,容器沒(méi)有使用已經(jīng)創(chuàng)建的大文件系統(tǒng),而是出現(xiàn)在根文件系統(tǒng)(通常比較小,如果空間不足可能造成問(wèn)題)中。當(dāng)然,一個(gè)月后,當(dāng)發(fā)現(xiàn)空間不足時(shí),您認(rèn)識(shí)到了這一點(diǎn),必須盡快改正過(guò)來(lái)。 一種辦法是采用重定向恢復(fù),但是您可能擔(dān)心這樣做時(shí)間太長(zhǎng)。另外一種辦法就是使用 db2relocatedb。 無(wú)論使用什么方法,首先都要將下屬目錄從原來(lái)的位置移動(dòng)到新的地方(要記住,我們將表空間創(chuàng)建為 SMS,創(chuàng)建為 DMS 操作與此相同,只不過(guò)移動(dòng)的不是目錄,而是 DMS 文件)。 /financ/fs1/BIGTS=/financ e/fs1/BIGTS /financ/fs2/BIGTS=/financ e/fs2/BIGTS /financ/fs3/BIGTS=/financ e/fs3/BIGTS 下一步是創(chuàng)建配置文件并運(yùn)行 db2relocatedb。 配置文件“example4.cfg” DB_NAME=FINANCEDB_PATH=/finance/databaseINSTANCE=finCONT_PATH=/financ/fs1/BIGTS,/finance/fs1/BIGTSCONT_PATH=/financ/fs2/BIGTS,/finance/fs2/BIGTSCONT_PATH=/financ/fs3/BIGTS,/finance/fs3/BIGTS# 我們也可以在單個(gè)命令中使用通配符表示所有修改,下面三個(gè)語(yǔ)句中的任何一個(gè)都可以代替上面三個(gè)語(yǔ)句:# CONT_PATH=/financ/fs*,/finance/fs*# CONT_PATH=/financ/*,/finance/*# CONT_PATH=/financ*,/finance*命令: db2relocatedb f example4.cfg 例 #5: 將數(shù)據(jù)庫(kù)移動(dòng)到新的機(jī)器(更改實(shí)例名、數(shù)據(jù)庫(kù)路徑和數(shù)據(jù)庫(kù)名)數(shù)據(jù)庫(kù)名:TESTDB 數(shù)據(jù)庫(kù)路徑:/testinst_filesystem 實(shí)例名:testinst 場(chǎng)景:您已經(jīng)創(chuàng)建了一個(gè)測(cè)試數(shù)據(jù)庫(kù)系統(tǒng),現(xiàn)在希望將其移動(dòng)到位于不同機(jī)器上的產(chǎn)品系統(tǒng)中。目標(biāo)實(shí)例名為 prodinst,數(shù)據(jù)庫(kù)名為 PRODDB,數(shù)據(jù)庫(kù)路徑為 /proddb。 如前所述,最初創(chuàng)建數(shù)據(jù)庫(kù)時(shí)創(chuàng)建的目錄包括: /testinst_filesystem/testinst/NODE0000/SQL00001 /testinst_filesystem/testinst/NODE0000/sqldbdir 首先要將這兩個(gè)目錄手工移動(dòng)到產(chǎn)品服務(wù)器上的下列目錄中。請(qǐng)記住,數(shù)據(jù)庫(kù)路徑只是 DB2 使用的目錄結(jié)構(gòu)的一部分,因此,在確定目標(biāo)位置時(shí),必須遵循同樣的規(guī)則。只要能夠復(fù)制所有的目錄和文件,使用任何方法都可以。 /proddb/prodinst/NODE0000/SQL00001 /proddb/prodinst/NODE0000/sqldbdir 提示:該例中假設(shè)在數(shù)據(jù)庫(kù)目錄之外沒(méi)有表空間。如果存在這樣的表空間,那么必須將這些容器也復(fù)制到新的系統(tǒng)中(如果改變其路徑,也需要在配置文件中列出)。 根據(jù)文件復(fù)制方式的不同,這些文件有可能仍然屬于原來(lái)的實(shí)例。使用“chown”將這些文件的所有者更改為新實(shí)例的所有者。 然后,創(chuàng)建配置文件并運(yùn)行 db2relocatedb(必須在產(chǎn)品服務(wù)上的新建實(shí)例中執(zhí)行)。 配置文件“example5.cfg” DB_NAME=TESTDB,PRODDBDB_PATH=/testinst_filesystem,/proddbINSTANCE=testinst,prodinst命令: db2relocatedb f example5.cfg 例 #6: 復(fù)雜的示例數(shù)據(jù)庫(kù)名:TESTDB 數(shù)據(jù)庫(kù)路徑:/db2/Databases 實(shí)例名:db2inst 要?jiǎng)?chuàng)建表空間,需要?jiǎng)?chuàng)建下列目錄/文件: /db2/Databases/db2inst/NODE0000/SQL00001/* /db2/Databases/db2inst/NODE0000/sqldbdir/* /db2/Databases/DMS1 /db2/Databases/SMS1/* /largedir/DMS2 /largedir/SMS2/* /dev/rDMS3 場(chǎng)景: 移動(dòng)數(shù)據(jù)庫(kù),將數(shù)據(jù)庫(kù)名和路徑分別改為 NEWDB 和 /dbdirectory。此外,還要將 DMS2 和 SMS2 容器從 /largedir 移動(dòng)到 /dbdirectory。 DMS1 和 SMS1 的相對(duì)位置在數(shù)據(jù)庫(kù)路徑中保持不變。 關(guān)閉數(shù)據(jù)庫(kù)后,DBA 必須手工將上述文件從原來(lái)的位置移動(dòng)到以下位置: /dbdirectory/db2inst/NODE0000/SQL00001/* /dbdirectory/db2inst/NODE0000/sqldbdir/* /dbdirectory/DMS1 /dbdirectory/SMS1/* /dbdirectory/DMS2 /dbdirectory/SMS2/* /dev/rDMS3 no change 下一步是創(chuàng)建配置文件并運(yùn)行 db2relocatedb。請(qǐng)注意,因?yàn)?db2relocatedb 假定將原來(lái)路徑下的所有容器都移動(dòng)到新的路徑,所以 DMS1 和 SMS1 不需要任何 CONT_PATH 條目。因此,文件中只涉及 SMS2 和 DMS2。 配置文件“example6.cfg” DB_NAME=TESTDB,NEWDBDB_PATH=/db2/Databases,/dbdirectoryINSTANCE=db2instCONT_PATH=/largedir/DMS2,/dbdirectory/DMS2CONT_PATH=/largedir/SMS2,/dbdirectory/SMS2#或者使用下面的命令代替以上兩行:# CONT_PATH=/largedir/*,/dbdirectory/*命令: db2relocatedb f example6.cfg 提示、技巧和感悟 本文中的示例都是基于 UNIX 的,但也可以將它們用于基于 Windows 的數(shù)據(jù)庫(kù)(除了數(shù)據(jù)庫(kù)路徑支持的驅(qū)動(dòng)器符號(hào)外)。 db2relocatedb 是一種離線工具,絕不能在數(shù)據(jù)庫(kù)開啟時(shí)運(yùn)行它??梢栽跀?shù)據(jù)庫(kù)引擎之外運(yùn)行該工具,但這有可能對(duì)運(yùn)行中的系統(tǒng)造成嚴(yán)重破壞(可能導(dǎo)致數(shù)據(jù)錯(cuò)誤或者數(shù)據(jù)庫(kù)無(wú)法啟動(dòng))。 db2relocatedb 對(duì)數(shù)據(jù)庫(kù)文件和控制結(jié)構(gòu)的修改不記入日志,這些修改是不可修復(fù)的。因此,強(qiáng)烈建議您在對(duì)數(shù)據(jù)庫(kù)運(yùn)用該工具之后,進(jìn)行完整的備份(特別是使用保留的日志文件可以恢復(fù)該數(shù)據(jù)庫(kù)的時(shí)候)。 如果要進(jìn)行重要的修改或者進(jìn)行您認(rèn)為可能難以逆轉(zhuǎn)的修改,最好考慮在修改之前進(jìn)行備份。 如果

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論