http://fujishinko.exblog.jp/7853530/ http://db2watch.com/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8 !!!基本的な概念と操作 !!概念 http://www.google.co.jp/imgres?imgurl=http://image.itmedia.co.jp/ait/articles/0408/04/r13fig02.gif&imgrefurl=http://www.atmarkit.co.jp/ait/articles/0408/04/news104.html&h=173&w=351&tbnid=tCmnSHm_-rqRZM:&zoom=1&docid=-7j-XM94izhApM&hl=ja&ei=XYd7VYyPEoa6mAX-loKwDw&tbm=isch&ved=0CBwQMygAMABqFQoTCMyx_bHCi8YCFQYdpgodfosA9g&biw=1641&bih=946 {{img ss01.gif}} !!CLP起動 #su - db2inst1 $db2 db2 => !!データベースへの接続 db2 => CONNECT TO database name !!データベースからの切断 db2 => CONNECT reset !!!ユーザの作成 OSのユーザを利用する。そのためOracleのように create userなどのコマンドは存在しない。ただし、データベースへの接続権限は付与する必要がある。 db2 => connect reset db2 => connect to データベース db2 => grant connect on database to user ユーザ名 !!!データベース管理 !!データベース操作 !データベースの一覧表示 db2 => LIST DB DIRECTORY もしくは db2 => LIST DATABASE DIRECTORY !データベースの作成 db2 => CREATE DATABASE sample 文字コードやデータ保存場所を指定することもできる。 db2 => CREATE DATABASE sample \ AUTOMATIC STORAGE YES ON '/home/db2inst1' \ DBPATH ON '/home/db2inst1' \ ALIAS sample_a \ USING CODESET UTF-8 \ TERRITORY JP \ COLLATE USING SYSTEM \ PAGESIZE 4096 WITH 'comment' !!スキーマ操作 !スキーマの一覧表示 SELECT SCHEMANAME,OWNER FROM SYSCAT.SCHEMATA !スキーマの作成 create schema スキーマ名 AUTHORIZATION ユーザ名 !スキーマの削除 DROP SCHEMA スキーマ名 RESTRICT !!テーブル操作 !テーブルの一覧表示 db2=> LIST TABLES !テーブルの作成 db2=> CREATE TABLE DB2INST1.XML_TEST \ (ID BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1, NO CACHE ), \ LASTMODIFIED TIMESTAMP NOT NULL , \ DOCUMENT XML) !テーブル定義表示 db2=> DESCRIBE TABLE table name !!その他の操作 !データベースのバックアップ db2=> BACKUP DB database name TO /backup !接続を強制切断 ※バックアップを取る際に使用 db2=> FORCE APPLICATION ALL !リストア db2=> RESTORE DB database name FROM /backup !エクスポート db2=> EXPORT TO /tmp/test.ixf OF IXF \ MESSAGES /tmp/test.log select * from xml_test DEL:CSV形式 ASC:区切り文字無し IXF:の型情報なども含むバイナリー形式 !インポート db2=> IMPORT FROM /tmp/test.csv OF IXF \ COMMITCOUNT 1000 \ MESSAGES /tmp/test.log INTO xml_test !!ロック状態の解除 !ロック情報の取得 $ db2 connect to データベース名 $ db2 "get snapshot for locks on データベース名" !DB2へ接続しているアプリケーションの把握 $ db2 list application アプリケーションのハンドルを取得したら、 $ db2 "force application(アプリケーションハンドル)" でアプリケーションを強制的に切断する。 もし、全てのプロセスを切断する場合は db2 "force application all" {{category2 データベース,DB2}}