小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Linux 下的 DB2數(shù)據(jù)庫的遷移

 好9不見 2011-05-20
Linux 下的 DB2數(shù)據(jù)庫的遷移

前言:

DB2 Universal Database™(DB2 UDB) 有一對非常有用的工具,可以幫助您實(shí)現(xiàn)這種跨平臺的備份與恢復(fù)功能。 db2move 工具利用了 DB2 的數(shù)據(jù)移動工具(export 和 import 或 load)來移動數(shù)據(jù)庫表。然而,由于數(shù)據(jù)庫的內(nèi)容遠(yuǎn)遠(yuǎn)不止于用戶表,因此您需要使用其他方法在不同的數(shù)據(jù)庫之間遷移其他數(shù)據(jù)庫對象,例如約束、觸發(fā)器、索引、序列、表空間、緩沖池等。這就是 db2look工具出現(xiàn)的原因。使用這個工具,您可以在源數(shù)據(jù)庫中捕獲到定義這些對象使用的數(shù)據(jù)定義語言(DDL),并在目標(biāo)數(shù)據(jù)庫中使用這些數(shù)據(jù)定義語言重新創(chuàng)建這些對象。



1、 環(huán)境說明:

遷移的DB2 數(shù)據(jù)庫的名字叫 sample , SCHEMA也是oatest ,用戶名是 oatest


2、 導(dǎo)出步驟:

1) 建立新目錄,如果是在 linux 下要注意目錄的權(quán)限問題,目錄應(yīng)該可以被 db2inst1 用戶寫訪問

[db2inst1@devsvr2 db2inst1]$ pwd

/home/db2inst1

[db2inst1@devsvr2 db2inst1]$ mkdir oatest0303

[db2inst1@devsvr2 db2inst1]$ ls

db2inst1 db2test Desktop oatest0303 sqllib



2) 進(jìn)入該目錄

[db2inst1@devsvr2 db2inst1]$ cd oatest0303/

[db2inst1@devsvr2 oatest0303]$





3) 用數(shù)據(jù)庫抽取工具 db2look 導(dǎo)出數(shù)據(jù)庫結(jié)構(gòu)

主要命令

db2look -d sample -e -z oatest -l -o oatest.sql

[db2inst1@devsvr2 oatest0303]$ db2look -d sample -e -z oatest -l -o oatest.sql

-- 未指定用戶標(biāo)識,db2look 試圖使用環(huán)境變量 USER

-- USER 是: DB2INST1

-- 指定的模式為: OATEST

-- 創(chuàng)建表的 DDL


-- 聯(lián)合部分的模式名被忽略

-- 輸出被發(fā)送到文件: oatest.sql



腳本中包括建立 bufferpool 以及tablespace的 DDL 語句


4) 用 db2move 工具導(dǎo)出數(shù)據(jù)庫數(shù)據(jù)

主要命令

db2move sample export

[db2inst1@devsvr2 oatest0303]$ db2move sample export


***** DB2MOVE *****


Action: EXPORT


Start time: Sun Mar 5 11:00:52 2006



Connecting to database SAMPLE ... successful! Server: DB2 Common Server V8.2.0


EXPORT: 0 rows from table "OATEST "."ATTACHFILE"

EXPORT: 0 rows from table "OATEST "."BASE"

……





5) 打包壓縮該目錄 oatest0303/

主要命令:

tar zcvf oatest0303.tar.gz oatest0303/

[db2inst1@devsvr2 oatest0303]$ cd ..

[db2inst1@devsvr2 db2inst1]$ tar zcvf oatest0303.tar.gz oatest0303/


oatest0303/

oatest0303/oatest.sql

oatest0303/EXPORT.out

oatest0303/db2move.lst

oatest0303/tab1.msg

oatest0303/tab1.ixf

……





3、 導(dǎo)入步驟

1) 解壓

主要命令:

tar zxfv oatest0303.tar.gz

[db2inst1@devsvr2 db2inst1]$ tar zxfv oatest0303.tar.gz

oatest0303/

oatest0303/oatest.sql

oatest0303/EXPORT.out

oatest0303/db2move.lst

……





2) 建立新數(shù)據(jù)庫 db2 create db sample

主要命令:

db2 create db sample

[db2inst1@devsvr2 db2inst1]$ db2 create db sample

DB20000I CREATE DATABASE 命令成功完成。





3) 執(zhí)行 oatest.sql 腳本建立數(shù)據(jù)庫

主要命令:

db2 -tvf oatest.sql

[db2inst1@devsvr2 db2inst1]$ cd oatest0303

[db2inst1@devsvr2 oatest0303]$ db2 -tvf oatest.sql

……





4) 執(zhí)行 db2move 導(dǎo)入數(shù)據(jù)

主要命令:

db2move sample load

[db2inst1@devsvr2 oatest0303]$ db2move sample load

……

* LOAD: table "OATEST "."UM_USER"

-Rows read: 1529

-Loaded: 1529

-Rejected: 0

-Deleted: 0

-Committed: 1529



Disconnecting from database ... successful!


End time: Sun Mar 5 10:24:22 2006




5) 檢查一致性

主要命令:

db2 set integrity for oatest.UM_USER immediate checked

[db2inst1@devsvr2 oatest0303]$ db2 connect to sample


數(shù)據(jù)庫連接信息


數(shù)據(jù)庫服務(wù)器 = DB2/LINUX 8.2.0

SQL 授權(quán)標(biāo)識 = DB2INST1

本地?cái)?shù)據(jù)庫別名 = SAMPLE


[db2inst1@devsvr2 oatest0303]$ db2 "select count(*) from
oatest.um_user"


1

-----------

SQL0668N 由于表 "OATEST.UM_USER" 上的原因碼 "1",所以不允許操作。

SQLSTATE=57016

[db2inst1@devsvr2 oatest0303]$ db2 set integrity for oatest.UM_USER
immediate checked

DB20000I SQL 命令成功完成。

[db2inst1@devsvr2 oatest0303]$ db2 "select count(*) from
oatest.um_user"


1

-----------

1529


1 條記錄已選擇。






利用 sql 語句得到要檢查的表的執(zhí)行語句

主要命令:

db2 "select 'db2 set integrity for oatest.'||TABNAME||' immediate checked' from syscat.tables where TABSCHEMA='OATEST' and STATUS='C'"

[db2inst1@devsvr2 oatest0303]$ db2 "select 'db2 set
integrity for oatest.'||TABNAME||' immediate checked'
from syscat.tables where TABSCHEMA='OATEST' and STATUS='C'"

1

-----------------------------------------------------------------
db2 set integrity for oatest.CAL_AUTH immediate checked

……

db2 set integrity for oatest.UM_USER immediate checked


81 條記錄已選擇。



執(zhí)行這 81 條語句,語句有可能報錯

主要命令:

db2 set integrity for oatest. CAL_AUTH immediate checked

[db2inst1@devsvr2 oatest0303]$ db2 set integrity for oatest.CAL_AUTH immediate checked

DB20000I SQL 命令成功完成。

[db2inst1@devsvr2 oatest0303]$ db2 set integrity for oatest.UM_USER immediate checked

DB20000I SQL 命令成功完成。

…………




如果報錯,再反復(fù)執(zhí)行這些語句直到下面的語句結(jié)果返回 0 條記錄




[db2inst1@devsvr2 oatest0303]$ db2 "select 'db2 set integrity
for oatest.'||TABNAME||' immediate checked' from syscat.tables
where TABSCHEMA='OATEST' and STATUS='C'"


1

---------------------------------------------------------------

0 條記錄已選擇。




6) 在操作系統(tǒng)中建立用戶


[root@devsvr2 root]# useradd oatest

[root@devsvr2 root]# passwd oatest

Changing password for user oatest.

New password:

BAD PASSWORD: it is too short

Retype new password:

passwd: all authentication tokens updated successfully.



7) 給 oatest 用戶授權(quán)

主要命令:

db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT,CREATE_NOT_FENCED_ROUTINE,IMPLICIT_SCHEMA,LOAD,CREATE_EXTERNAL_ROUTINE,QUIESCE_CONNECT ON DATABASE TO USER OATEST


db2 GRANT CREATEIN,DROPIN,ALTERIN ON SCHEMA OATEST TO USER OATEST

[db2inst1@devsvr2 db2inst1]$ db2 connect to sample


數(shù)據(jù)庫連接信息


數(shù)據(jù)庫服務(wù)器 = DB2/LINUX 8.2.0

SQL 授權(quán)標(biāo)識 = DB2INST1

本地?cái)?shù)據(jù)庫別名 = SAMPLE


[db2inst1@devsvr2 db2inst1]$ db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT,CREATE_NOT_FENCED_ROUTINE,
IMPLICIT_SCHEMA,LOAD,CREATE_EXTERNAL_ROUTINE,QUIESCE_CONNECT ON DATABASE TO USER OATEST;

DB20000I SQL 命令成功完成。

[db2inst1@devsvr2 db2inst1]$ db2 GRANT CREATEIN,DROPIN,ALTERIN ON SCHEMA OATEST TO USER OATEST

DB20000I SQL 命令成功完成。

[db2inst1@devsvr2 db2inst1]$ db2 connect to sample user oatest using oatest


數(shù)據(jù)庫連接信息


數(shù)據(jù)庫服務(wù)器 = DB2/LINUX 8.2.0

SQL 授權(quán)標(biāo)識 =OATSET

本地?cái)?shù)據(jù)庫別名 = SAMPLE


[db2inst1@devsvr2 db2inst1]$ db2 "select count(*) from um_user"


1

-----------

1529


1 條記錄已選擇。




4、 重要說明

1)在 db2 中的 bufferpool 是和內(nèi)存有關(guān)系的,所以你應(yīng)該根據(jù)你的機(jī)器內(nèi)存情況來建立 bufferpool

2) tablespace 的路徑也是和你的應(yīng)用有關(guān),如果是雙機(jī)環(huán)境應(yīng)該把表空間建立在共享存儲中,你可以根據(jù)實(shí)際情況來修改上文所說到的 oatest.sql 中的建立 bufferpool 以及 tablespace 的語句。




http://macrozeng./post/71/58248
 

__________________
The More You Know  The More You're Worth
http://macrozeng.
macrozeng#

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多