2017年09月22日

拡張行サイズ

これで4Kだ8Kだ16Kだのページ制限から開放されて、クッソ大量のカラムをもつリレーショナルなんて糞食らえな
テーブルが作成できるぜ!ィヤッホゥ!☆-(ノ゚Д゚)八(゚Д゚ )ノイエーイ

んなわけあるか。ヽ(`Д´)ノウワァァァン!! やめてくれ。
こんな機能はマイグレーション時やシステム移行時の一時的な救済措置にだけ使え。
はみ出たデータは内部的にはblobやclobだ、Reorg時にもペナルティ食らうぞ。
金貰ってるんだからちゃんと設計しろ!

(;´Д`)ハァハァ よし、愚痴言い切った!

詳しくはここ

今北産業用
  • 拡張可能なものはvarchar/vargraphic (またはそれに準ずるもの)だけ(要は可変長だけ)
  • 一定サイズ以下の場合は拡張されずに行内に保存(varcharは24 vargraphicは12)
  • 拡張が適用されてもメタ情報が埋め込まれるので、そのカラムのバイトは1でも0でもない、24だ

行サイズはこのへんを見ながらちまちま計算するよろし。
posted by koteitan at 10:16| Comment(0) | DB2 | このブログの読者になる | 更新情報をチェックする

2017年02月27日

[DB2]DB2の構成パラメータをSQLから参照するには

どんな状況下で、こんな技が必要なのかはよくわからないが、
SYSIBMADM経由でアクセスできるようだ。

DBCFG 管理ビューおよび DB_GET_CFG 表関数 - データベース構成パラメーター情報の取得


こちらのblogにも詳しく説明があります。

DB2勉強する 〜 DB2の構成パラメータの確認・設定方法

posted by koteitan at 14:33| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

2017年02月20日

[DB2] INDEXREC

索引のリビルドを自動でやってくれたりする素敵なパラメータだが、
設定値の挙動はややこしいので、ここにメモしておこう。

https://www.ibm.com/support/knowledgecenter/en/SSEPGG_10.1.0/com.ibm.db2.luw.admin.config.doc/doc/r0000258.html
http://www-01.ibm.com/support/docview.wss?uid=swg21600652

この注意点がキモやね。

When a database terminates abnormally while applications are connected to it, and the autorestart parameter is enabled, a RESTART DATABASE command is implicitly issued when an application connects to a database. If the database terminates normally, then the RESTART DATABASE command must be issued before any connections are made to the database, otherwise index recreation does not take place. If the command is not issued, the invalid indexes are rebuilt the next time the underlying table is accessed.
posted by koteitan at 16:43| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

2013年03月27日

[DB2]導入されているエディション、バージョンの確認方法

以前に書いたかもしれないんだけど、新しめのバージョンから(V8ぐらいだったかな)
db2lsというコマンドがあります。
導入メディアのrootディレクトリにもあったような気がしまする。

確認手順
(1)db2lsを実行して導入場所をしらべる
 db2lsは通常の場合、/usr/local/binにエイリアスがあるので、普通にdb2lsとやればOKです。
 rootユーザーで実施。

(2)実行すると、導入パスがわかるので、db2lsにいくつかオプションをつけて実行する
db2ls -q -p -b <導入パス>

db2licm -l とかでライセンス状態を見てもよいかもしれないけど、こっちのが簡単だと思う。

詳しくはInfocenterで。
http://pic.dhe.ibm.com/infocenter/db2luw/v10r1/index.jsp

posted by koteitan at 17:17| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

2012年11月26日

[DB2]即戦力!

simさんの本を遂にゲットやで。
あまりの情報量の多さにビックリする。
ipad miniに入れて通勤快読中。

下手な研修行くより、これを読みながら小さなインスタンスとDBでもこさえて
一つずつ確認していくような、そういうやり方もいいじゃない。
高い高い研修行くより、そのお金でいっぱい本を買うのさ。
研修は研修で体系立った学習ができるし、受動的学習だからそれはそれで
メリットあるんやと思う。まぁ、人それぞれってやつ。

紙が薄すぎて、scansnap様でもちょっと手こずったのは内緒な。



posted by koteitan at 09:25| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

2012年02月07日

[DB2]こまごま

コマンド覚えられないのでメモしとく

ID列の値はinsert毎に更新されていってしまうので、追加しまくるとどんどん
連番がかけ離れてずれてくる。
そこで、loadとimportの間にID値を調整する。調整するのは以下のコマンド

ALTER TABLE テーブル名
ALTER COLUMN 自動生成するカラム名
RESTART WITH 設定したいID値


愚痴
 データの文字列に指数表記っぽい文字があったのを
 なんも考えずにExcelに貼ったら指数と解釈されて酷い目にあったこと
 
 なんも考えずにimportしたらデータ部に改行があり、ズレまくってエラい目にあったこと

気をつけるんやでヽ(`Д´)ノ
posted by koteitan at 11:22| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

[DB2]カラムの拡大

昔だとexport-drop-create-loadやんね (´-ω-`)

ALTER TABLEの ALTER COLUMNでこちょこちょやれば出来てしまう。
こういう便利なのがあるから、テーブル設計がおざなりでもなんとかなってしまい、
結果品質の低下したアプリケーションと形骸化した設計書ができあがり、引き継いだ作業者が
混乱し、さらなるデスマー(以下略

本当は知らなくても問題無いように設計したいね。
でも真田イズムの如く、「こんなこともあろうかと」は大事。

db2 "ALTER TABLE HOGEMASTER ALTER COLUMN HOGENAME SET DATA TYPE VARCHAR(128)"



http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=%2Fcom.ibm.db2.luw.sql.ref.doc%2Fdoc%2Fr0000888.html
posted by koteitan at 11:17| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

[DB2]ID列へのLoad

db2 ID列を含むものの自動生成させてLoadするには、該当の列にもダミーのデータ
を入れたCSVで。

$ db2 "import from hoge.csv of del modified by identityignore insert into
HOGEMASTER "

こんなん

ID列を無視して、実データで入れるとき(Load用)は

$ db2 "load from tab5.ixf of ixf modified by identityoverride REPLACE into
HOGEMASTER NONRECOVERABLE"

もちろん、そのあとには
$ db2 "set integrity for HOGEMASTER immediate checked"

して、整合性をとらないとだめ。
posted by koteitan at 11:09| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

2011年12月05日

[DB2]レッツ、お引っ越し

共用リソースのはずなのに何故か再起動されまくって
所有権を主張されて、間借り扱いになってやっとれんヽ(`Д´)ノウワァァァン

こんなDB、出て行ってやる!!


続きを読む
posted by koteitan at 16:04| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

2011年07月12日

SQL1005N 既に(以下略

自分のDBが消されていて、且つリストアしたらSQL1005Nな状態になっていて
萎えまくったりした皆さんのために対策をメモっておく。

これはシステムカタログとローカルカタログがズレたとかそんなので出るみたいで、
事例ではコントロールセンターから消したら出たとかそんなのを見かけた。

db2 list db directory (システムカタログ)
db2 list db directory on インストール先 (ローカルカタログ)

直し方(くわしくはSQLメッセージリファレンスを見てね)
 db2 catalog db かわいそうなDB名
db2 drop db かわいそうなDB名
db2 restore db かわいそうなDB名 from (以下略

リダイレクト restoreの構文がわからんちんな場合、V9.1以降だと
自動ジェネレート機能があるので、InfocenterにGo。
キーワードは 「redirect generate script」

⊂⌒~⊃。Д。)⊃プシュー。
posted by koteitan at 17:15| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

2011年06月08日

[DB2]備忘録

折角しらべたので、アドレスだけでもメモっておこうとおもう。
DB2以外もあるけど、(・ε・)キニシナイ!!


DB2pd 分析

http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.pd.doc/pd/t0011983.htm
http://www.eternaldesign.jp/blog/db2tool_db2pd_002
http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.pd.doc/pd/c0020775.htm
http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.pd.doc/pd/c0020705.htm
http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.pd.doc/pd/t0020807.htm
http://www-06.ibm.com/jp/domino01/mkt/dminfo.nsf/doc/001AD442


トレース

http://www-01.ibm.com/support/docview.wss?uid=std384b1abe2e46416af4925758a0012c5e3
http://www-06.ibm.com/jp/services/its/support/svcdoc/db2/jdbc_legacy_u_v8.html
http://www.ibm.com/developerworks/jp/data/library/ds/techdoc/db2traces.html
http://www-06.ibm.com/jp/services/its/support/svcdoc/db2/cli_unix.html

db2support
http://www-06.ibm.com/jp/services/its/support/svcdoc/db2/db2supportv8_u.html

locktimeout must gather

https://www-304.ibm.com/support/docview.wss?uid=swg21322231

deadlock must gather
https://www-304.ibm.com/support/docview.wss?uid=swg21321787

client connectivity  must gather
https://www-304.ibm.com/support/docview.wss?uid=swg21286651

CLI application must gather
https://www-304.ibm.com/support/docview.wss?uid=swg21284894

mustgatherが集められている記事(感謝!)
http://clubdb2.blogspot.com/2009/06/mustgather.html



java
javacore の読み方
http://www21.atwiki.jp/waspd/pages/37.html

linuxにはpgrep(pidをgrepしてくれる)やpkill pgrep+killなコマンドがある
http://d.hatena.ne.jp/lurker/20061102/1162427170

posted by koteitan at 15:43| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

2010年03月09日

[DB2]FixPackについて

各種言語をインストールしている場合は、

UnversalPackageとNational Language packageの両方が必要

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.qb.server.doc/doc/c0025286.html

GA レベルの製品をインストールした後、必要なレベルのフィックスパックを適用するという、2 ステップのプロセスが使用できます。

という記述があるのだが、よく読み進めると

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.qb.server.doc/doc/t0024956.html
各国語をインストールした既存の DB2 データベース製品を更新する場合、個々のフィックスパックまたは Universal フィックスパックに加えて、各国語フィックスパックも入手する必要があります。各国語フィックスパックを単独で使用することはできません。

例えば、英語以外のサポートがインストールされている DB2 バージョン 9.5 データベース製品にフィックスパックをインストールするには、DB2 データベース製品別のフィックスパック・イメージ (または Universal フィックスパック・イメージ) と各国語フィックスパックをダウンロードします。次に、DB2 データベース製品別のフィックスパック・イメージ (または Universal フィックスパック・イメージ) から、installFixPack を実行します。


Ω<つまり、v9.7fp*_***_nlpack.tar.gz も要るということなんだよっ!!

ΩΩΩ<ナンダッテー


最初の方に書くべきだと思う。まる。
posted by koteitan at 16:41| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

2010年03月05日

[DB2]接続禁止

障害やメンテナンスなどの対応で、deactivateしたいときってありますよねぇ。

で、
db2 force applications allと・・
  ( _, ,_)
_(__つ/ ̄ ̄ ̄/_  <このコマンドは非同期なのでうんたらかんたら
  \/    ./
はいはい、わかってますよ。

3分後
db2 list applications | wc -l と・・
  ( _, ,_)
_(__つ/ ̄ ̄ ̄/_  <43
  \/    ./


         /\
        ../  ./|
      ∴\/./
     _, ,_゚∵ |/
   (ノ゚Д゚)ノ     フォルァ(゚Д゚#)!
  /  /
 ̄ ̄ ̄ ̄ ̄ ̄
という経験はございませんか。切っても切っても繋いでくる
クライアント。環境占有調整できてないのか周知徹底できてないのか
やってないのか、もうどうでもいいですがね。

そういうときは強権発動させるコマンドがあります。

QUIESCE コマンド

管理者権限以下のユーザーの接続を蹴ります。
アプリケーションユーザーにDB2ADMを与えるわけないので、
これでよ・・・本当に与えてないよな・・?

そういうときは syscatを見ればおk

select grantee, DBADMAUTH from syscat.dbauth

接続禁止状態から元に戻すには

UNQUIESCE コマンド

参考
Unofficial DB2 BLOG QUIESCEコマンド
http://db2.jugem.cc/?eid=1028

DB2 逆引きリファレンス
http://db2watch.com/wiki/index.php/%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%81%B8%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%82%92%E7%A6%81%E6%AD%A2%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF

posted by koteitan at 14:41| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

2010年02月04日

[DB2]Not Null制約の後付

V9.1以降ではAlter tabeleで普通にできるが、

【DB2】既存表の列へのNOT NULL制約の付与・削除
http://mklabo.jp/blog/doctor-k/2009/04/db2not-null.html

それ以前ではできない。
(Drop、create、loadという恐怖の作業になる)
http://oshiete1.goo.ne.jp/qa1430301.html
posted by koteitan at 19:16| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

2009年12月04日

[DB2]アンインストール

DB2の削除はアンインストーラを実行するだけでよいが、
一つ注意が必要だ。
IBM® Tivoli® System Automation for Multiplatforms を入れていた場合、普通のコマンドでは消せない。

/opt/IBM/db2/V9.7/install/db2_deinstall -F TSAMP -a

これで、db2の全ファイルセットならびに TSAMPが消える。
TSAMPはデフォルト(TYPECAL)では導入されるし、
CUSTOMにしても明示的にOFFを指定しなければ導入される
(rsctファイルセットの前提が必要)

この削除方法が曲者過ぎる。

db2_deinstall を実行するとき、デフォルトでは DB2 インストーラーは SA MP をアンインストールしません。

だから、
db2_deinstall -a では TSAMPが残る

で、
uninstallSam ユーティリティーを使用して SA MPをアンインストールするときには、これらの HADR スクリプトを手動でアンインストールする必要があります。HADR スクリプトの手動によるアンインストールについて詳しくは、IBM Tivoli System Automation for Multiplatforms (SA MP) の DB2 高可用性災害時リカバリー (HADR) スクリプトのインストール、更新、およびアンインストールを参照してください。

となり、HADRが残る
で、
db2cptsa -r 

次々に地雷を踏まされるので、最初の手順で一気に消そう。


posted by koteitan at 11:23| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

[DB2]障害モニターの停止

killしてもinitから再起動されるのでダメ。
respawn指定入ってるからね。

停止手順は
http://www-06.ibm.com/jp/services/its/support/svcdoc/db2/f_monitor.html

db2fmcu -d
su - instowner
db2fm -i instance name  -D
※全インスタンス、管理サーバーに行う

再始動は
install path/bin/db2fmcu -u -p install path/bin/db2fmcd (★)

su - instowner
db2fm -i instance name -f on
db2fm -i instance name -U

自動起動が既に設定されている場合は、(★)のみでもよく、
勝手に起動する模様

PTFやFix充てるときによく使う。
ちゃんとFixのreadme読んでいれば書いてあるんだがね。
posted by koteitan at 11:11| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

2009年11月17日

[DB2]IOCP

国際警察(ICPO)でも国際オリンピック委員会(IOC)でもねーぞ。

v9.7からの並列なんたらとかいう高速化機能を使うには有効にしておくほうがいいんだってよ。

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=/com.ibm.db2.luw.admin.perf.doc/doc/t0054518.html
posted by koteitan at 22:22| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

2009年11月06日

[DB2]エバリュエーションガイド

evaluate 評価する evalとかシェルで使うじゃろ。あれだあれ。



発音聞く限りではイバリュエーションガイドだよな。
V9.7の新機能を中心に解説、とあるな。
posted by koteitan at 16:03| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

[DB2]db2level出来ないとき

インスタンスが無い、又は要らないなどでdb2levelできないときに
バージョンを確認する苦肉の策

(1)db2licm -v
ライセンス情報から確認する。
→ これは大まかなバージョンしかわからない

(2)JDBCドライバから
cd <your_db2_installed>
cd java

jdk/jre/bin/java -cp db2jcc.jar com.ibm.db2.jcc.DB2Jcc -version

で、でたJDBCドライバのバージョンシグネチャと

http://www-01.ibm.com/support/docview.wss?rs=71&dc=DB560&dc=DB520&uid=swg21363866&loc=en_US&cs=utf-8&lang=en

をくらべる。
JDBC4.0を使っているのならdb2jcc.jarをdb2jcc4.jar
しかしこの場合、JDKを付随もものではなく、JDK6を用意せねばならない(WebSphereV7など)
さらに、4.0だとシグネチャが代わり、さっぱりわからん

C:\Program Files\IBM\WebSphere\AppServer\java\jre\bin>java -cp c:\db2jcc4.jar co
m.ibm.db2.jcc.DB2Jcc -version
IBM Data Server Driver for JDBC and SQLJ 4.2.73

ハーッハッハ、詰んだ。 → 追記 20100127

11/17追記
Unix環境においてはこんな面倒なことしなくても確認可能
db2ls
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.qb.server.doc/doc/t0023264.html

2010/01/27 追記
どうやらJDBC4.0のバージョン番号も表記されるようになっている模様
posted by koteitan at 15:54| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする