db2怎樣設置數(shù)據(jù)庫列的缺省值

db2怎樣設置數(shù)據(jù)庫列的缺省值

您好,好像DB2不支持把函數(shù)值作為列的默認值,如果一定要LAST_MODIFIED的類型為varchar(20),可以default \’\’或者像下面兩個字段一樣沒有默認值;如果一定要有值的話,個人建議用一個觸發(fā)器來控制這個字段的默認值。

DB2備份時報內(nèi)存不足,怎么解決

你好,這是一種很常見的故障,運行DOS應用程序和Windows應用程序引起“內(nèi)存不足”的原因不完全相同。 一、DOS下的內(nèi)存不足 1、檢查系統(tǒng)是否提供對擴充內(nèi)存的支持,必須保證CONFIG.SYS文件中的EMM386.EXE命令中含有RAM參數(shù); 2、 如故障仍存在,檢查DOS內(nèi)核程序與其它運行的百科應用程序是否兼容,某些程序是否占用了大量的常規(guī)內(nèi)存,并作出相應的處理。

二、Windows中的內(nèi)存不足 1、應檢查Windows的資源使用情況,假如資源占用較多,可用資源較少,打開新文件時會出現(xiàn)“內(nèi)存不足\\\”的問題。

2、清除或保存Clipboard(剪貼板)的內(nèi)容,使用ControlPanel Desktop選項將墻紙(Wallpaper)設置為None; 3、可用PIF編輯器編輯PIF文件,增大PIF文件中定義的MemoryRequirements:KB Required的值;4、 重新開機進入Windows系統(tǒng),并且確保在“啟動\\\”圖標中沒有其它無關的應用軟件同時啟動運行,在WIN.INI文件中也沒有Run或Load命令加載的任何無關的應用程序。 三、平時一般辦法:1、退出那些不需要運行的應用程序后再檢查系統(tǒng)的可用資源為多少。如可用資源大于30%,一般可以運行新的程序。當有多個應用程序在系統(tǒng)中運行時,可以退出一個,檢查一次可用資源,假如某個應用程序在退出前后,可用資源的百分比沒有變化,說明這個應用程序沒有釋放它所占用的資源。

2、假如要收回這些沒有釋放的資源,只能退出Windows后,再重新進入Windows。一般說來,經(jīng)過這樣處理,就不會出現(xiàn)“內(nèi)存不足\\\”的問題了。

DB2導入表時發(fā)生錯誤:DEFAULT 值或 IDENTITY 屬性值對于表 表名 中的列 列名 無效 怎么解決

使用 alter table [tabname] alter column [column] …如增加缺省值alter table [table_name] alter column [column_test] set default \’value\’;修改數(shù)據(jù)類型alter table [table_name] alter column [column_test] set data type VARCHAR(3); 詳細可參見IBM信息中心http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0000888.html?resultof=%22%61%6c%74%65%72%22%20%22%74%61%62%6c%65%22%20

請教DB2 v9.5恢復問題

打IBM 800電話支持(8008101818)。 做生產(chǎn)運維要養(yǎng)成良好習慣,生產(chǎn)環(huán)境上寫Update語句,一定要先寫一個相同條件的select語句,確認條件無誤,才能把select改為Update。

db2是缺省auto commit,基本上你這種只能用備份恢復了。

db2 25000錯誤怎么解決

DB2相關問題及解決方法: 一、DB2中的代碼頁(codepage)問題。DB2備份時發(fā)生過代碼頁錯誤的問題,修改代碼頁后備份正常,但創(chuàng)建數(shù)據(jù)庫時又發(fā)生代碼頁的錯誤。

這是DB2服務器使用的代碼頁配置和客戶端使用的代碼頁配置不同造成的(注:DB2服務器的代碼頁配置是獨立的,用代碼頁不同的客戶端操作服務器就會產(chǎn)生錯誤。

本機操作服務器稱為本地客戶端,操作系統(tǒng)使用的代碼頁有可能和DB2服務器的配置不同,和遠程客戶端一樣會產(chǎn)生上面的問題)。代碼頁和系統(tǒng)使用的字符集有關,這也是windows下的數(shù)據(jù)庫備份和Linux下的數(shù)據(jù)庫備份不能相互恢復的原因(Windows的codepage為819,一般的國標庫/GBK為1386)??捎胐b2set命令對服務器的代碼頁進行設置。(具體設置見后文)locale命令查看本地字符集二、TIANJIN數(shù)據(jù)庫備份不能恢復的問題TIANJIN數(shù)據(jù)庫備份恢復時,在Linux系統(tǒng)下提示container被占用,這是由于TIANJIN數(shù)據(jù)庫采用了系統(tǒng)以外的表空間引起的,不能采用常規(guī)方法進行恢復。

恢復步驟為:db2 create db targetdb using codeset GBK territory zh_CN(創(chuàng)建數(shù)據(jù)庫供恢復)db2 connect to tianjin(連接到TIANJIN數(shù)據(jù)庫)db2 list tablespaces(查看TIANJIN數(shù)據(jù)庫使用的表空間)db2 list tablespace containers for 3(查看表空間3使用的容器)…………db2 list tablespace containers for 7(查看表空間7使用的容器。)(TIANJIN數(shù)據(jù)庫用到了7個表空間,其中1、2為系統(tǒng)默認,其他為自己創(chuàng)建,若已知道數(shù)據(jù)庫表空間,以上步驟可省略)mkdir [directory](創(chuàng)建表空間用到的容器所在目錄。需要多少容器,創(chuàng)建多少個目錄,這個目錄必須是DB2用戶有權限的目錄)db2 connect reset(釋放所有連接)db2 restore db sourcedb from /DB2Data/backupdata/ into targetdb redirect(恢復數(shù)據(jù)庫)db2 \”set tablespace containers for 3 using (path \’/home/db2inst1/tt/1\’)\”(設置表空間的容器,path后是容器存放的路徑)db2 \”set tablespace containers for 4 using (path \’/home/db2inst1/tt/2\’,path \’/home/db2inst1/tt/3\’)\”(表空間用了多個路徑的情況)…………db2 \”set tablespace containers for 7 using (path \’/home/db2inst1/tt/6\’)\”db2 restore db tianjin continue(完成數(shù)據(jù)庫恢復)連接數(shù)據(jù)庫驗證安裝即可三、不同操作系統(tǒng)中數(shù)據(jù)庫的移動(db2move)由于我們的系統(tǒng)中使用了多個用戶、多個表空間,不能直接用db2move進行恢復,必須先生成相關表空間和表,再插入數(shù)據(jù)。

1、 生成ddl文件db2look -d 數(shù)據(jù)庫別名 -e -p -l -o 目標文件的名字-i 用戶名 -w 密碼-d指定數(shù)據(jù)庫,-o指定目標文件,-l表示生成表空間,-i指定用戶名,-w指定密碼。如:db2look -d jsyrem -e -p -l -o jsyrem.ddl -i zgc3 -w zgc注意:源數(shù)據(jù)庫必須在本地客戶端編目,生成的文件存放在當前目錄下。2、 生成db2move的導出文件db2move數(shù)據(jù)庫別名export -l 大對象存放目錄(可省略) -u 用戶名 -p 密碼如:db2move jsyrem export -l lob -u zgc3 -p zgc注意:源數(shù)據(jù)庫必須在本地客戶端編目,大對象存放目錄可以不用事先建立,由系統(tǒng)自動生成,生成的文件存放在當前目錄下。

3、 新建目標數(shù)據(jù)庫4、 在目標數(shù)據(jù)庫里創(chuàng)建表空間和表db2 -tvf ddl文件名例如:db2 -tvf jsyrem.ddl注意:①兩個數(shù)據(jù)庫里的代碼頁必須設置為一致②執(zhí)行命令前必須先修改ddl文件,設置里面的connection連接至目標數(shù)據(jù)庫(文件里可能會有多處需要對連接進行設置)。③執(zhí)行命令前必須先修改ddl文件,設置表空間地址,為目標數(shù)據(jù)庫建立表空間指定存放位置。這些目錄可能需要事先建好。

(目錄1、2……n可以不用建,由系統(tǒng)自動生成)④執(zhí)行命令必須在生成的文件存放的目錄下進行。5、 導入數(shù)據(jù)db2move 數(shù)據(jù)庫名 import -io insert -l大對象存放目錄-io 指定導入方式,為create表示數(shù)據(jù)庫中不存在該表時自動生成表,為replace表示替換原有內(nèi)容,為insert表示僅僅插入數(shù)據(jù);-l指定大對象存放目錄。db2move jsy2 import –u 用戶名 –p 密碼注意:執(zhí)行命令必須在生成的文件存放的目錄下進行。6、 其他:由于數(shù)據(jù)庫表之間存在鍵關系,數(shù)據(jù)導入時可能會發(fā)生沖突,需要記下發(fā)生沖突的表,并修改db2move.lst文件,把這些表對應的行挪到文件的**生成。

7、 可通過EXPORT文件和IMPORT文件查看數(shù)據(jù)導入導出時的系統(tǒng)信息,通過tablennn.msg文件查看某個表導入導出時的系統(tǒng)信息。注意:以上操作針對的客戶端是windows操作系統(tǒng),linux系統(tǒng)下會發(fā)生錯誤。數(shù)據(jù)庫創(chuàng)建首先建立文件夾#mkdir /ecdsdbfs授權給db2inst1訪問ecdsdbfs文件夾的權限#chown db2inst1:db2adm1 /ecdsdbfs執(zhí)行建庫腳本:#su – db2inst1$db2 create database test on \’/opt/ibm/data\’ using codeset utf-8 territory cn注意:本數(shù)據(jù)庫采用utf-8格式1> 連接到DB2 Server,打開DB2 Command,創(chuàng)建一個名為cogsam83的數(shù)據(jù)庫,并為其建立緩存大小create db cogsam83 alias cogsam83 using codeset UTF-8 territory CAchange db cogsam83 comment with \’Sample Data for Cognos 8.3\’connect to cogsam83update db cfg using applheapsz 1024 deferredupdate db cfg using locktimeout 240 deferredconnect reset如果是在Linux上剛裝完DB2即刻建立database,可能會遇到錯誤DB21019E An error occurred while accessing the directory \”/root\”. 該錯誤原因為使用“su username”而非“su – username”在終端切換用戶,前者相當于簡單地同時登錄有用戶,而后者相當于注銷后重新登錄新用戶,所以不會維持之前用戶的ENV設置。2> 創(chuàng)建緩沖池和表空間connect to cogsam83create bufferpool cog04kbp immediate size 250 pagesize 4kcreate bufferpool cog08kbp immediate size 250 pagesize 8kcreate bufferpool cog16kbp immediate size 250 pagesize 16kcreate regular tablespace cogsample pagesize 16k managed by automatic storage extentsize 16 prefetchsize 16 overhead 10.5 transferrate 0.33 bufferpool cog16kbpcomment on tablespace cogsample is \’Cognos Sample Data\’grant use of tablespace cogsample to publicconnect reset3> 創(chuàng)建幾個數(shù)據(jù)庫模式(Database Schema)connect to cogsam83create schema goslcomment on schema gosl is \’GO Sales\’create schema gosldwcomment on schema gosldw is \’GO Sales Data Warehouse\’create schema gohrcomment on schema gohr is \’GO Sales Human Resources\’create schema gortcomment on schema gort is \’GO Retailers\’create schema gomrcomment on schema gomr is \’GO Multilingual Retailers\’create schema godmtcomment on schema godmt is \’GO Data Manager Target\’#授予用戶cognos數(shù)據(jù)庫管理權限grant dbadm on database to user cognosconnect reset4> 修改數(shù)據(jù)庫配置頁connect to cogsam83update dbm cfg using intra_parallel NOupdate dbm cfg using federated NOupdate dbm cfg using fed_noauth NOupdate db cfg for cogsam83 using maxlocks 22update db cfg for cogsam83 using locklist 50update db cfg for cogsam83 using dft_degree 1update db cfg for cogsam83 using avg_appls 1update db cfg for cogsam83 using stmtheap 2048update db cfg for cogsam83 using dft_queryopt 5connect reset5> 編目數(shù)據(jù)庫catalog tcpip node dbnode remote dbhost server 50000catalog database cogsam83 at node dbnode with \’Sample Data for Cogsam 8\’6> 導入Samples內(nèi)容到數(shù)據(jù)庫中適用于DB2的Samples文件在 Cognos安裝目錄/c8/webcontent/samples/datasources/db2 下,將GS_DB.tar解壓出來,用DB2管理員帳號登錄,使用DB2MOVE命令導入。

DB2MOVE dbname IMPORT -U username -P password在Linux下使用DB2MOVE命令可能會出現(xiàn)錯誤提示Error opening report file. Terminating,該錯誤原因為當前用戶對解壓出的文件權限不夠,設置所有解壓的文件Permission為可寫操作即可。導入數(shù)據(jù)庫后可以運行 Cognos安裝目錄/c8/webcontent/samples/datasources/db2下的gs_db_modify.bat(需要先更改gs_db_modify.sql**行中的dbname, user, password為你自己的配置),在Linux下可以先刪除gs_db_modify.log,然后在終端手動輸入以下命令運行gs_db_modify.sqlDB2 -f gs_db_modify.sql -z gs_db_modify.log四、聯(lián)合數(shù)據(jù)對象的建立聯(lián)合數(shù)據(jù)對象提供將一個數(shù)據(jù)庫里的用戶和表映射到另一個數(shù)據(jù)庫的功能。用戶可通過對后者的訪問達到訪問前者的目的。建立步驟:1、 前期工作1:配置數(shù)據(jù)庫實例名的參數(shù),設置“管理”下的FEDERATED為“”;是2、 前期工作2:源數(shù)據(jù)庫編碼到客戶端3、 在聯(lián)合數(shù)據(jù)庫對象中創(chuàng)建包裝器。

(DB2àDB2的映射包裝器名選擇DRDA,庫名使用缺省的缺省db2drda.dll即可)4、 創(chuàng)建服務器。(遠程數(shù)據(jù)源的名稱填寫數(shù)據(jù)庫編碼的別名,DB2àDB2的映射服務器類型選擇DB2/UDB,選擇正確的版本號,用戶標示和密碼填寫目標庫的用戶名密碼,其余內(nèi)容默認即可)5、 建立用戶映射。選擇遠程用戶和本地用戶進行映射。

6、 建立別名映射,即是表的映射。五、DB2中的常用命令1、 db2set命令db2set:查看db2的常用設置db2set –lr:查看db2的所有變量db2set 變量名 = 變量值:設置db2中的變量。如:db2set db2codepage = GBK;db2set db2country = zh_CN。

(這是最常用的兩個設置,設置codepage為GBK國標庫,country為zh_CN**。設置后可解決數(shù)據(jù)庫創(chuàng)建、備份時代碼頁錯誤的問題。設置完后用db2 terminate中止一下即可起作用)2、 查看數(shù)據(jù)庫配置查看Database Manager配置:db2 get dbm cfg查看某數(shù)據(jù)庫配置:兩種方法:**、 db2 get db cfg for 數(shù)據(jù)庫名。如db2 get db cfg for tianjin第二、 先用connect命令連接上數(shù)據(jù)庫,再用db2 get db cfg。

如:connect to tianjin(或:connect to tianjin user zgc3 using zgc)db2 get db cfg可以只查看其中某一項的配置,如查看territorydb2 get db cfg for tianjin|grep terr修改數(shù)據(jù)庫配置:db2 update db cfg using 參數(shù) 參數(shù)值3、 數(shù)據(jù)庫備份、數(shù)據(jù)庫創(chuàng)建、數(shù)據(jù)庫恢復數(shù)據(jù)庫備份:db2 backup database 數(shù)據(jù)庫名 to 備份位置(DB2用戶必須對備份位置有權限)。如:db2 backup database tianjin to /home/db2inst1/backup。注意: 備份數(shù)據(jù)庫時應用db2 connect reset將所有連接去掉。

數(shù)據(jù)庫創(chuàng)建:db2 create database數(shù)據(jù)庫名。如:db2 create database dbname用特定的字符集創(chuàng)建數(shù)據(jù)庫:db2 create database 數(shù)據(jù)庫名 using codeset [codeset] territory [terriroty]。如:db2 create database dbname using codeset GBK territory CN數(shù)據(jù)庫恢復幾點說明:若文件夾中只有一個備份文件,可以不用寫taken at。若數(shù)據(jù)庫恢復中產(chǎn)生錯誤,可用restore database dbname continue/abort來對恢復進行繼續(xù)和取消。

或者用控制臺創(chuàng)建數(shù)據(jù)庫時,第六步region處選擇PRC(People’s Republic Of China)4、 其他常用命令db2move:在不同操作系統(tǒng)中移植數(shù)據(jù)庫。但因存在外鍵約束,應對文件進行編輯。db2level;查看DB2的修訂版本db2look:導出ddl?db2 list table/tablespaces/db at……列出相應內(nèi)容(具體參看IBM紅皮書)5、 在客戶端增加、查看結點和數(shù)據(jù)庫編目增加結點編目:db2 catalog tcpip node 結點名字 remote 結點所在ip地址 server 50000查看結點編目:db2 list node directory刪除結點編目:db2 uncatalog node 結點別名增加數(shù)據(jù)庫編目:db2 catalog db 遠程數(shù)據(jù)庫名字 as 數(shù)據(jù)庫別名 at node 結點名字查看數(shù)據(jù)庫編目:db2 list db directory刪除數(shù)據(jù)庫編目:db2 uncatalog db數(shù)據(jù)庫別名6、 不同操作系統(tǒng)的倒庫(db2move):export:db2move dbname exportimport:db2move dbname import(-io replace/create -u username –p password)load:db2move dbname load注意:執(zhí)行export命令,生成的文件存放在當前目錄下,dbname是catalog上的別名。

import也是從當前目錄讀取文件。在將庫import入一個新庫時,應。