# backup (r/w r/u, discard snapshot, 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) hint 'inverted=(nolocation=true)'";
Command 1 "insert into T values (?)" [["hoge"]];

Command 1 "start transaction read write, isolation level read uncommitted";
# バックアップ開始;
Command 1 "start backup full discard snapshot";
# バックアップできる状態になった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;

