Locked History Actions

Diff for "H2"

Differences between revisions 11 and 12
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
== 参考 ==

 * [[http://www.h2database.com/html/main.html|H2 Database Engine]]
 * [[http://homepage2.nifty.com/yoks/TechNote/H2/H2_MnFrm.htm]]
 * [[http://www.gs.sjts.co.jp/v3/tec/about_h2db.html|H2 Database Engineに関する技術・製品の概要]]
 * [[http://blog.mwsoft.jp/article/46492053.html|H2 Databaseを組込みモードで使ってみたメモ]]
 * [[http://d.hatena.ne.jp/sekom/20081201/p1|H2のデータ型とJavaのデータ型の対応]]
Line 74: Line 67:

== 参考 ==

 * [[http://www.h2database.com/html/main.html|H2 Database Engine]]
 * [[http://homepage2.nifty.com/yoks/TechNote/H2/H2_MnFrm.htm]]
 * [[http://www.gs.sjts.co.jp/v3/tec/about_h2db.html|H2 Database Engineに関する技術・製品の概要]]
 * [[http://blog.mwsoft.jp/article/46492053.html|H2 Databaseを組込みモードで使ってみたメモ]]
 * [[http://d.hatena.ne.jp/sekom/20081201/p1|H2のデータ型とJavaのデータ型の対応]]

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になる。

バックアップ

上記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

参考