UJP - 技術情報

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

     

Sybaseのロード 〜いわゆるリストア〜

Sybaseのロード

〜いわゆるリストア〜


0.更新履歴

  • 2001.06.11 新規作成

1.はじめに

 このドキュメントでは,Sybaseでテーブルに割り当てられた領域の表示方法と,集計するためのVBScriptを掲載する.

2.手順

 ここでは,実際にデータベースのダンプから,データベースのロードまでを,データの復元内容も検証しながら実行してみる.

2.1.データをインサートしながらダンプしてみる

  • user_db内に,dump_testテーブルを作成する.
  • 作成した直後のテーブル内容を表示してみる.

1> use user_db
2> go
1> create table dump_test(dump_no integer)
2> go
1> select * from dump_test
2> go
 dump_no
 -----------
1>

  • テーブルに何も無いことがわかる.
  • データベース全体のダンプを行う.

1> dump database user_db to "e:\sybase_dev\dump\phase1.dmp"
2> go
Backup Server のセッション ID は、53 です。Backup Server
からの何らかのボリューム変更の要求を実行したあと、'sp_volchanged'システム・ストア
ド・プロシージャを実行する際に、この値を使用します。

Backup Server: 4.41.1.1: 新しいディスク・ファイル e:\sybase_dev\dump\phase1.dmp 
を作成します。

Backup Server: 6.28.1.1: ダンプ・ファイル名 'user_db011620CE4A' セクション番号 00
01 はディスク・ファイル 'e:\sybase_dev\dump\phase1.dmp' 上にマウントされています。

Backup Server: 4.58.1.1: データベース user_db:316 キロバイトが DUMP されました。

Backup Server: 4.58.1.1: データベース user_db:486 キロバイトが DUMP されました。

Backup Server: 4.58.1.1: データベース user_db:658 キロバイトが DUMP されました。

Backup Server: 4.58.1.1: データベース user_db:828 キロバイトが DUMP されました。

Backup Server: 4.58.1.1: データベース user_db:1000 キロバイトが DUMP されました。

Backup Server: 4.58.1.1: データベース user_db:1170 キロバイトが DUMP されました。

Backup Server: 4.58.1.1: データベース user_db:1342 キロバイトが DUMP されました。

Backup Server: 4.58.1.1: データベース user_db:1512 キロバイトが DUMP されました。

Backup Server: 4.58.1.1: データベース user_db:1684 キロバイトが DUMP されました。

Backup Server: 4.58.1.1: データベース user_db:1854 キロバイトが DUMP されました。

Backup Server: 4.58.1.1: データベース user_db:2038 キロバイトが DUMP されました。

Backup Server: 4.58.1.1: データベース user_db:2208 キロバイトが DUMP されました。

Backup Server: 4.58.1.1: データベース user_db:2380 キロバイトが DUMP されました。

Backup Server: 4.58.1.1: データベース user_db:2550 キロバイトが DUMP されました。

Backup Server: 4.58.1.1: データベース user_db:2698 キロバイトが DUMP されました。

Backup Server: 3.43.1.1: ダンプ・フェーズ番号 1 は完了しました。

Backup Server: 3.43.1.1: ダンプ・フェーズ番号 2 は完了しました。

Backup Server: 3.43.1.1: ダンプ・フェーズ番号 3 は完了しました。

Backup Server: 4.58.1.1: データベース user_db:2706 キロバイトが DUMP されました。

Backup Server: 3.42.1.1: DUMP は完了しました。(データベース user_db)
1>

  • 次に,先ほどのテーブルにデータを入れてみる.
  • 入れたデータを表示してみる.

1> insert into dump_test (dump_no) values(1)
2> go
1> select * from dump_test
2> go
 dump_no
 -----------
           1

  • トランザクションダンプを行う.

1> dump transaction user_db to "e:\sybase_dev\dump\phase2.dmp"
2> go
Backup Server のセッション ID は、57 です。Backup Server
からの何らかのボリューム変更の要求を実行したあと、'sp_volchanged'システム・ストア
ド・プロシージャを実行する際に、この値を使用します。

Backup Server: 4.41.1.1: 新しいディスク・ファイル e:\sybase_dev\dump\phase2.dmp 
を作成します。

Backup Server: 6.28.1.1: ダンプ・ファイル名 'user_db011620CF6F' セクション番号 
0001 はディスク・ファイル 'e:\sybase_dev\dump\phase2.dmp' 上にマウントされています。

Backup Server: 4.58.1.1: データベース user_db:10 キロバイトが DUMP されました。

Backup Server: 4.58.1.1: データベース user_db:16 キロバイトが DUMP されました。

Backup Server: 3.43.1.1: ダンプ・フェーズ番号 3 は完了しました。

Backup Server: 4.58.1.1: データベース user_db:20 キロバイトが DUMP されました。

Backup Server: 3.42.1.1: DUMP は完了しました。(データベース user_db)
1>

  • 同じように,もう1回データをINSERTして中身を確認する.

1> insert into dump_test (dump_no) values(2)
2> go
1> select * from dump_test
2> go
 dump_no
 -----------
           1
           2

  • トランザクションダンプを行う.

1> dump transaction user_db to "e:\sybase_dev\dump\phase3.dmp"
2> go
Backup Server のセッション ID は、60 です。Backup Server
からの何らかのボリューム変更の要求を実行したあと、'sp_volchanged'システム・ストアド・プ

ロシージャを実行する際に、この値を使用します。

Backup Server: 4.41.1.1: 新しいディスク・ファイル e:\sybase_dev\dump\phase3.dmp を作成し

ます。

Backup Server: 6.28.1.1: ダンプ・ファイル名 'user_db011620D007' セクション番号 0001 は
ディスク・ファイル 'e:\sybase_dev\dump\phase3.dmp' 上にマウントされています。

Backup Server: 4.58.1.1: データベース user_db:6 キロバイトが DUMP されました。

Backup Server: 4.58.1.1: データベース user_db:10 キロバイトが DUMP されました。

Backup Server: 3.43.1.1: ダンプ・フェーズ番号 3 は完了しました。

Backup Server: 4.58.1.1: データベース user_db:14 キロバイトが DUMP されました。

Backup Server: 3.42.1.1: DUMP は完了しました。(データベース user_db)
1>

2.2.おさらい

  • ここまでのデータベース内のデータ遷移と,ダンプファイル名を図式化したのが次のとおりである.

  • つまり,ダンプデータをロード(リカバリ)すると,データは次のようになる.
    • Phase1.dmpをロードすると,データ無しのdump_testテーブルが復元.
    • Phase2.dmpをロードすると,データ1が含まれるテーブルが復元.
    • Phase3.dmpをロードすると,データ1とデータ2が含まれるテーブルが復元.

2.3.データをロードしながら確認する

  • データベースのロードを行う.

1> load database user_db from "e:\sybase_dev\dump\phase1.dmp"
2> go
Msg 3101, Level 16, State 1:
Line 1:
データベースが使用中です。システム管理者 (SA)
権限を持つユーザは、データベースをロードする際に、データベースの使用を
制限させなければなりません。
1>

  • シングルユーザに設定しないとロードが実行できない.
  • シングルユーザに設定する.

1> sp_dboption "user_db","single user",true
2> go
Msg 17428, Level 16, State 1:
Procedure 'sp_dboption', Line 356:
データベース・オプションを変更するためには、‘master’データベースの中にいなければなりません。
(return status = 1)
1> use master
2> go
1> sp_dboption "user_db","single user",true
2> go
'user_db' データベースに対してデータベース・オプション 'single user' が ON になりました。

変更されたデータベースで CHECKPOINT コマンドを実行してください。

(return status = 0)
1> checkpoint
2> go
1>

  • データのロードを実行する.

1> load database user_db from "e:\sybase_dev\dump\phase1.dmp"
2> go
Backup Server のセッション ID は、64 です。Backup Server
からの何らかのボリューム変更の要求を実行したあと、'sp_volchanged'システム・ストアド・プロ
シージャを実行する際に、この値を使用します。

Backup Server: 6.28.1.1: ダンプ・ファイル名 'user_db011620CE4A' セクション番号 0001 は
ディスク・ファイル 'e:\sybase_dev\dump\phase1.dmp' 上にマウントされています。

Backup Server: 4.58.1.1: データベース user_db:14854 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:58374 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:101386 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:144906 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:187918 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:231438 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:274450 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:317970 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:360982 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:404502 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:447002 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:490522 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:533534 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:577054 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:614432 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:614440 キロバイトが LOAD されました。

Backup Server: 3.42.1.1: LOAD は完了しました。(データベース user_db)
ONLINE DATABASE コマンドを使用して、このデータベースをオンラインにしてください。SQL Server
はデータベースを自動的にオンラインにはしません。

1>

  • データベースをオンラインにする.

1> online database user_db
2> go
データベース 'user_db' はオンラインになりました。
1>

  • dump_testテーブルの中身を確認する.

1> use user_db
2> go
1> select * from dump_test
2> go
 dump_no
 -----------
1>

  • テーブルが作成された時点に戻っていることがわかる.
  • 次に,1つ目のトランザクションログをロードする.

1> load transaction user_db from "e:\sybase_dev\dump\phase2.dmp"
2> go
Msg 4301, Level 16, State 2:
Line 1:
データベースが使用中です。システム管理者 (SA) 権限を持つユーザは、

データベースを排他的に使用してLOAD TRANSACTION を実行しなければな
りません。

1>

  • 先ほどデータベースをオンラインにしたので,再度シングルユーザモードに変更する.

1> use master
2> go
1> sp_dboption "user_db","single user",true
2> go
'user_db' データベースに対してデータベース・オプション 'single user' が ON になりま
した。 変更されたデータベースで CHECKPOINT コマンドを実行してください。

(return status = 0)
1> checkpoint
2> go
1> load transaction user_db from "e:\sybase_dev\dump\phase2.dmp"
2> go
Backup Server のセッション ID は、69 です。Backup Server
からの何らかのボリューム変更の要求を実行したあと、'sp_volchanged'システム・ストアド

・プロシージャを実行する際に、この値を使用します。

Backup Server: 6.28.1.1: ダンプ・ファイル名 'user_db011620CF6F' セクション番号 0001
 はディスク・ファイル 'e:\sybase_dev\dump\phase2.dmp' 上にマウントされています。

Msg 4306, Level 16, State 1:
Line 1:
最後のロード以来、データベースに変更があったため、ロードはできません。続行するには 
LOAD DATABASEでロード処理をもう一度開始する必要があります。

1>

  • 先ほどデータベースをオンラインにしてしまったため,フルダンプをロードした時点と異なるとエラーがでている.
  • よって,Phase1.dmpとPhase2.dmpを続けてロードする.

1> load database user_db from "e:\sybase_dev\dump\phase1.dmp"
2> go
Backup Server のセッション ID は、72 です。Backup Server
からの何らかのボリューム変更の要求を実行したあと、'sp_volchanged'システム・ストアド・
プロシージャを実行する際に、この値を使用します。

Backup Server: 6.28.1.1: ダンプ・ファイル名 'user_db011620CE4A' セクション番号 0001 
はディスク・ファイル 'e:\sybase_dev\dump\phase1.dmp' 上にマウントされています。

Backup Server: 4.58.1.1: データベース user_db:14854 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:58374 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:101386 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:144906 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:187918 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:231438 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:274450 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:317970 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:360982 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:404502 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:447002 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:490522 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:533534 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:577054 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:614432 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:614440 キロバイトが LOAD されました。

Backup Server: 3.42.1.1: LOAD は完了しました。(データベース user_db)
ONLINE DATABASE コマンドを使用して、このデータベースをオンラインにしてください。SQL 
Serverはデータベースを自動的にオンラインにはしません。

1> load transaction user_db from "e:\sybase_dev\dump\phase2.dmp"
2> go
Backup Server のセッション ID は、75 です。Backup Server
からの何らかのボリューム変更の要求を実行したあと、'sp_volchanged'システム・ストアド・
プロシージャを実行する際に、この値を使用します。

Backup Server: 6.28.1.1: ダンプ・ファイル名 'user_db011620CF6F' セクション番号 0001
 はディスク・ファイル 'e:\sybase_dev\dump\phase2.dmp' 上にマウントされています。

Backup Server: 4.58.1.1: データベース user_db:20 キロバイトが LOAD されました。

Backup Server: 3.42.1.1: LOAD は完了しました。(データベース user_db)
Redo pass of recovery has processed 1 committed and 0 aborted transactions.
ONLINE DATABASE コマンドを使用して、このデータベースをオンラインにしてください。SQL
Serverはデータベースを自動的にオンラインにはしません。

1>

  • 再度データベースをオンラインにし,Phase2まで修復されているか確認する.

1> online database user_db
2> go
Undo pass of recovery has processed 1 incomplete transactions.
データベース 'user_db' はオンラインになりました。

1> use user_db
2> go
1> select * from dump_test
2> go
 dump_no
 -----------
           1
1>

  • テーブルの内容を見る限り,Phase2まで修復されている.
  • 続いてPhase3まで確認している.

1> use master
2> go
1> sp_dboption "user_db","single user",true
2> go
'user_db' データベースに対してデータベース・オプション 'single user' が ON になりました。

変更されたデータベースで CHECKPOINT コマンドを実行してください。

(return status = 0)
1> checkpoint
2> go
1> load database user_db from "e:\sybase_dev\dump\phase1.dmp"
2> go
Backup Server のセッション ID は、78 です。Backup Server
からの何らかのボリューム変更の要求を実行したあと、'sp_volchanged'システム・ストアド・プロ
シージャを実行する際に、この値を使用します。

Backup Server: 6.28.1.1: ダンプ・ファイル名 'user_db011620CE4A' セクション番号 0001 は
ディスク・ファイル 'e:\sybase_dev\dump\phase1.dmp' 上にマウントされています。

Backup Server: 4.58.1.1: データベース user_db:14854 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:58374 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:101386 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:144906 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:187918 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:231438 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:274450 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:317970 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:360982 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:404502 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:447002 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:490522 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:533534 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:577054 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:614432 キロバイトが LOAD されました。

Backup Server: 4.58.1.1: データベース user_db:614440 キロバイトが LOAD されました。

Backup Server: 3.42.1.1: LOAD は完了しました。(データベース user_db)
ONLINE DATABASE コマンドを使用して、このデータベースをオンラインにしてください。SQL Server
はデータベースを自動的にオンラインにはしません。

1> load transaction user_db from "e:\sybase_dev\dump\phase2.dmp"
2> go
Backup Server のセッション ID は、80 です。Backup Server
からの何らかのボリューム変更の要求を実行したあと、'sp_volchanged'システム・ストアド・プロ
シージャを実行する際に、この値を使用します。

Backup Server: 6.28.1.1: ダンプ・ファイル名 'user_db011620CF6F' セクション番号 0001 は
ディスク・ファイル 'e:\sybase_dev\dump\phase2.dmp' 上にマウントされています。

Backup Server: 4.58.1.1: データベース user_db:20 キロバイトが LOAD されました。

Backup Server: 3.42.1.1: LOAD は完了しました。(データベース user_db)
Redo pass of recovery has processed 1 committed and 0 aborted transactions.
ONLINE DATABASE コマンドを使用して、このデータベースをオンラインにしてください。SQL Server
はデータベースを自動的にオンラインにはしません。

1> load transaction user_db from "e:\sybase_dev\dump\phase3.dmp"
2> go
Backup Server のセッション ID は、82 です。Backup Server
からの何らかのボリューム変更の要求を実行したあと、'sp_volchanged'システム・ストアド・プロ
シージャを実行する際に、この値を使用します。

Backup Server: 6.28.1.1: ダンプ・ファイル名 'user_db011620D007' セクション番号 0001 は
ディスク・ファイル 'e:\sybase_dev\dump\phase3.dmp' 上にマウントされています。

Backup Server: 4.58.1.1: データベース user_db:14 キロバイトが LOAD されました。

Backup Server: 3.42.1.1: LOAD は完了しました。(データベース user_db)
Redo pass of recovery has processed 4 committed and 0 aborted transactions.
ONLINE DATABASE コマンドを使用して、このデータベースをオンラインにしてください。SQL Server
はデータベースを自動的にオンラインにはしません。

1> online database user_db
2> go
Undo pass of recovery has processed 1 incomplete transactions.
データベース 'user_db' はオンラインになりました。
1> use user_db
2> go
1> select * from dump_test
2> go
 dump_no
 -----------
           1
           2
1>

  • これで最後のダンプ時点までの修復ができたことが確認できた.



広告スペース
Google