# backup (r/o s, recover)
# 上記のトランザクションとオプションでDBのバックアップ及び復帰作業を行う。

Begin;
Initialize;
InitializeSession "";
Command "create database TESTDB";
TerminateSession;

InitializeSession 1 "TESTDB";

Command 1 "create table T (C ntext array[no limit])";
Command 1 "create fulltext index I on T(C)";
Command 1 "insert into T values (?)" [["hoge"]];

Command 1 "start transaction read only, using snapshot, isolation level serializable";
# バックアップ開始;
Command 1 "start backup full ";
# バックアップできる状態になったDBの退避
System "..\\..\\switchcopy.bat d:\\dm\\data\\TESTDB d:\\dm\\alter_data_TESTDB";
System "..\\..\\switchcopy.bat d:\\dm\\system\\TESTDB d:\\dm\\alter_system_TESTDB";
# バックアップ終了
Command 1 "end backup";
Command 1 "commit";
TerminateSession 1;
Terminate;
Pause;

Initialize;
InitializeSession "";
Command "drop database TESTDB";
# バックアップしたDBの復帰
System "move /Y d:\\dm\\alter_data_TESTDB d:\\dm\\data\\TESTDB";
System "move /Y d:\\dm\\alter_system_TESTDB d:\\dm\\system\\TESTDB";
# バックアップしたDBのマウント
Command "mount TESTDB path 'd:\\dm\\data\\TESTDB'";
TerminateSession;

InitializeSession "TESTDB";
Command "start transaction read write";
Command "verify database TESTDB cascade continue";
Command "commit";
TerminateSession;

InitializeSession "";
Command "drop database TESTDB";
TerminateSession;
Terminate;
End;

