H2 Databaseメモ
データ型
自動採番
フィールドを自動採番にするには、identity型としておく。これはJava側ではLong型になる。
このフィールドは1から採番が行われるが、途中に値が強制されて挿入されたレコードが存在する場合、その値は飛ばされ、エラーになることはない。
create table sample (ide identity, value integer);
insert into sample (value) values (1); // id=1になる。
insert into sample (id,value) values(2, 2);
insert into sample (value) values (3); // id=3になる。
バックアップ
- http://www.h2database.com/html/tutorial.html?highlight=backup&search=backup#upgrade_backup_restore
- http://www.h2database.com/html/grammar.html#backup
上記ONLINE BACKUPの訳
SQL文「BACKUP」とバックアップツールは共にデータベースファイルが格納されたzipファイルを生成する。この中身はヒューマンリーダブルではない(バイナリということ)。
得られるバックアップはトランザクション一貫性がある、つまり一貫性ルールとアトミックルールが適用されている。
BACKUP TO 'backup.zip'
バックアップツール(org.h2.tools.Backup)はオンラインバックアップの作成には使用できない。このプログラムを起動する際には、データベースが使用中であってはならない。
データベースが使用状態でのデータベースファイルコピーによるバックアップはサポートされていない。ただし、ファイルシステム自体がスナップショット生成をサポートしている場合を除く。それ以外のファイルシステム上では、データが正しい順序でコピーされることを保証はできない。
上記BACKUP文の訳
データベースファイルを.zipファイルにバックアップする。「オブジェクト」のロックはされないが、トランザクションログもコピーされるため、バックアップはトランザクション一貫性がある。このコマンドを実行するにはadmin権限が必要である。
例:
BACKUP TO 'backup.zip'
サーバモード
一つのVMにてデータベースサーバを起動し、複数のクライアントVMからそのサーバに接続してデータベースを操作する形になる。
以下はバージョン3.171にて、tcpサーバのみを起動し、サーバへの接続はローカルホストからしか許さない場合。
java -cp h2-1.3.171.jar org.h2.tools.Server -tcp
Javaプログラムから、F:ドライブの\foo\bar\database.h2.dbに接続するためのURLは、
jdbc:h2:tcp://localhost/f:/foo/bar/database
もし、先のサーバがFドライブにて起動したのであれば、f:の指定は省略できる。
jdbc:h2:tcp://localhost//foo/bar/database
参考
- http://www.h2database.com/html/main.html
- http://homepage2.nifty.com/yoks/TechNote/H2/H2_MnFrm.htm
- http://www.gs.sjts.co.jp/v3/tec/about_h2db.html
- http://blog.mwsoft.jp/article/46492053.html
- http://d.hatena.ne.jp/sekom/20081201/p1
ディスカッション
コメント一覧
まだ、コメントがありません