標籤(空格分隔): db2例項 db2授權 資料庫
# 資料庫名稱
database_name=lqr
# 使用者名稱
user_name=lqr
# 檢視表空間名稱
# db2 "list tablespaces show detail"
# 表空間名稱 需要大寫
tablesapce_name=userspace1
# 例項或者資料庫管理員使用者登入,不然許可權不足
instance_name=db2inst1
instance_passwd=qwe123
db2 connect to $database_name user $instance_name using $instance_passwd
# 資料庫授權
db2 "grant connect on database to user $user_name"
# 表空間授權
db2 "grant use of tablespace $tablesapce_name to user $user_name"
# 需要先db2 connect to $database_name user $instance_name using $instance_passwd(用資料庫管理員許可權)
db2 "grant dbadm, createtab, bindadd, connect, create_not_fenced_routine, implicit_schema, load, create_external_routine, quiesce_connect, quiesce_connect, secadm on database to user $user_name"
echo
"$user_name
$database_name 授權成功"
time:2017-02-18
echo
"---- 資料庫資料匯入&匯出指令碼 -----"
# 一次性匯出資料庫中所有表,並生成對應的ex.sh匯出指令碼和lo.sh匯入指令碼
# 操作:1.修改引數 2.執行指令碼export.sh得到ex.sh和lo.sh以及columns.txt
# 3.執行ex.sh匯出資料得到大量del檔案 4.使用lo.sh匯入del資料到資料庫
#引數db_name=dwdb #資料庫名稱
user_name=lqr #使用者名稱
user_passwd=qwe123 #使用者密碼
tabschema_name=lqr #使用者名稱 #必須大寫
#db2 "select schemaname,owner,create_time from syscat.schemata" 檢視當前存在的schema
#db2 connect to lqr user lqr using qwe123;
db2 connect to $db_name user $user_name using $user_passwd;
rm -rf columns.txt
rm -rf ex.sh
rm -rf lo.sh
#db2 -x "select tabname,colname,row_number() over(partition by tabname order by colno desc) from syscat.columns where tabschema = 'lqr' and left(tabname,2) = 'fb' order by tabname,colno with ur" > columns.txt
db2 -x "select tabname,colname,row_number() over(partition by tabname order by colno desc) from syscat.columns where tabschema = '$tabschema_name' order by tabname,colno with ur" > columns.txt
#echo "db2 connect to lqr user lqr using qwe123;" >> ex.sh
echo
"db2 connect to $db_name user $user_name using $user_passwd;" >> ex.sh
echo
"db2 connect to $db_name user $user_name using $user_passwd;" >> lo.sh
sql=""
cat columns.txt|while
read tabname colname num
doif [ $num == 1 ]
then
echo
"db2 \"export to $tabname.del of del select $sql
$colname from $tabname\"">> ex.sh
echo
"db2 \"load from $tabname.del of del insert into $tabname ($sql
$colname)\"">> lo.sh
sql=""
else
sql="$sql
$colname,"
fidone
備註:匯出的資料,用txt檔案檢視中文正常,xshell檢視亂碼,匯入亂碼,由於linux預設的讀取編碼問題導致的,在使用者目錄下的.vimrc中加入set encoding=utf-8 fileencodings=ucs-bom,utf-8,gbk,cp936
設定讀取的編碼格式
執行後的結果:
—– 未測試
1、檢視資料庫頁大小
db2 get db cfg
2、收集表狀態資訊
db2 runstats on table schema.table_name
3、查詢資料表占用頁的數量
select tabname, npages from syscat.tables where tabname = 『table_name』
4、計算表占用磁碟空間大小
表占用磁碟空間大小 = 資料頁大小 * 頁數量
檢視表佔磁碟空間大小:select tabname, npages*16384/(1024*1024) from syscat.tables where tabname = 『******』
db2 v9以上檢視表佔磁碟邏輯空間大小:select sum(x.data_object_p_size+x.index_object_p_size+x.lob_object_p_size+x.long_object_p_size+x.xml_object_p_size) from sysibmadm.admintabinfo x where tabname=』******x』;
select tabname,sum(x.data_object_p_size+x.index_object_p_size+x.lob_object_p_size+x.long_object_p_size+x.xml_object_p_size) from sysibmadm.admintabinfo x group by tabname;
db2 v9以上檢視資料庫占用空間大小:db2 「call sysproc.get_dbsize_info(?,?,?,10)」
DB2資料庫相關操作
自增字段的建立 start with 1 increment by 1 cache 20 no cycle no order 設定自增序列從20001開始 alter sequence linkage seq restart with 20001 使用自增字段 插入一條資料insert into l...
全新db2資料庫操作
前提 乙個全新的資料庫沒有任何庫。1 通過遠端桌面連線到資料庫所在的電腦,2 執行db2cmd administartor.由於使用的是administrator登入的遠端桌面,在登入進去的時候就administrator就是db2的超級管理員。首先要明白乙個道理,資料庫的超級管理員才能給使用者授權...
DB2操作樣例資料庫
在linux終端輸入db2fs,系統開啟db2 first step 工具。然後選擇database creation create sample database 即可以建立樣例資料庫。然後在命令列執行 db2 connect to sample 可以連線上資料庫,再執行 db2 select f...