SQL Server

後述のコマンドを実行するため、下記のようにSQLCMDコマンドプロンプトに入ります。

sqlcmd -U sa -P SA-PASSWORD -S localhost\SQLEXPRESS

バックアップモデル

単純復旧モデル : ログ領域は自動的に削除される。バックアップは必要無い(リストアに利用できない)。

1> ALTER DATABASE testdb SET RECOVERY SIMPLE
2> GO

完全復旧モデル : ログ領域はバックアップを取るまで削除されない。

1> ALTER DATABASE testdb SET RECOVERY FULL
2> GO

バックアップ(フル)

1> BACKUP DATABASE testdb TO DISK = 'D:\backup\testdb_full.bak' WITH INIT
2> GO

バックアップ(差分 : 前回フルバックアップ以降の更新分)

1> BACKUP DATABASE testdb TO DISK = 'D:\backup\testdb_diff.bak' WITH INIT,DIFFERENTIAL
2> GO

バックアップ(トランザクションログ)

1> BACKUP LOG testdb TO DISK = 'D:\backup\testdb_log.bak'
2> GO

バックアップ計画

  • 毎月の第一営業日の業務終了後に「バックアップ(フル)」を実行。
  • 毎月の第二営業日~月末営業日の業務終了後に「バックアップ(差分)」を実行。
  • 一日の営業時間中に適当な間隔で「バックアップ(トランザクションログ)」を実行。

リストア(フル+差分+ログ)

障害が発生した時点で、アクティブなログ(=ログの末端)のバックアップを試みる

1> BACKUP LOG testdb TO DISK = 'D:\backup\testdb_log.bak' WITH NORECOVERY
2> GO

上記ではバックアップできない場合は下記のいずれかの方法でバックアップを試みる

方法一:

1> BACKUP LOG testdb TO DISK = 'D:\backup\testdb_log.bak' WITH CONTINUE_AFTER_ERROR
2> GO

方法二:

1> BACKUP LOG testdb TO DISK = 'D:\backup\testdb_log.bak' WITH NO_TRUNCATE
2> GO

その後、リストアを行う

1> RESTORE DATABASE testdb FROM DISK = 'D:\backup\testdb_full.bak' WITH NORECOVERY
2> RESTORE DATABASE testdb FROM DISK = 'D:\backup\testdb_diff.bak' WITH NORECOVERY
3> RESTORE DATABASE testdb FROM DISK = 'D:\backup\testdb_log.bak' WITH RECOVERY
4> GO


★月額105円~/容量最大30GB/機能満載! ロリポップ!レンタルサーバー ★

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:42:06 (1627d)

e[NȂECir Yahoo yV LINEf[^[Ōz500~`I
z[y[W ̃NWbgJ[h COiq@COsیI COze