なんでTO DISK = N’NUL’
?
あなたが使用している理由がわかりませんTO DISK = N’NUL’
:
BACKUP
DATABASE [test0916aj8CJ] TO DISK = N’NUL’
その場合、バックアップはに保存されNUL
(= = nowhere / nothing)、ファイルが存在しないため使用できません。
ながらNUL
もLOGバックアップ先として使用することができ、それはログが失われてしまうので、特に製品版のサーバー上で、いずれかを使用すべきではないとバックアップチェーンが切断されます。(〜に似ていますSHRINKFILE
)
ログのバックアップ
グループにDBを追加する前に、それを準備する必要があります。セカンダリDBを準備する場合、少なくとも1つのトランザクションログバックアップを作成して復元する必要があります。ミラーはこれを使用して、セカンダリデータベースで既に同期されているトランザクションと、プライマリデータベースとまだ同期されていないトランザクションを特定します。
したがって、プライマリDBでトランザクションログをバックアップする必要があります。
BACKUP LOG [test0916aj8CJ] TO DISK = N'....bak'
WITH COPY_ONLY, FORMAT, INIT, NAME = N'test0916aj8CJ-Transaction Log Backup', STATS = 10
COPY_ONLY
オプションを使用する必要があります。LOGバックアップの最後にログが切り捨てられないようにします。
プライマリDBバックアップチェーン
ただし、ログバックアップだけを復元することはできません。つまり、バックアップチェーンがない場合は復元できません(Kinの回答も参照)。つまり、完全なデータベースバックアップ(および必要に応じてオプションの差分)が作成された後に、トランザクションログのバックアップを作成する必要があります。
このCOPY_ONLY
オプションはバックアップチェーンを壊さないため、バックアップチェーンも作成されません。このCOPY_ONLY
オプションは、データベースのバックアップには使用できません。
順番にバックアップ:
COPY_ONLY
オプションなしのフルデータベースバックアップ
- オプションの差分バックアップ
COPY_ONLY
オプション付きの1ログバックアップ
- 必要に応じて別の(またはそれ以上の)LOGバックアップ...
セカンダリDBを復元する
次に、データベースバックアップをセカンダリで復元(+差分)する必要があります。
NORECOVERY
フルバックアップが復元されたら、ログバックアップも復元するため、オプションで復元する必要があります。
最後に、LOGバックアップを復元します。NORECOVERY
ミラーはトランザクションを所定の場所に一度復元し続けるため、このオプションを使用する必要があります。
NORECOVERY
オプションで完全バックアップを復元します
NORECOVERY
オプションでDIFFバックアップを復元する
NORECOVERY
オプションを使用してすべてのLOGバックアップを順番に復元する
まとめてみましょう(環境に合わせてください)
プライマリサーバーで次を実行します。
USE master
Go
BACKUP DATABASE [test0916aj8CJ] TO DISK = N'....bak'
WITH FORMAT, INIT, NAME = N'test0916aj8CJ-Full Database Backup', STATS = 10
GO
BACKUP LOG [test0916aj8CJ] TO DISK = N'....bak'
WITH COPY_ONLY, FORMAT, INIT, NAME = N'test0916aj8CJ-Transaction Log Backup', STATS = 10
GO
セカンダリサーバーで次を実行します。
USE master
Go
RESTORE DATABASE [test0916aj8CJ] FROM DISK = N'....bak'
WITH FILE = 1, NORECOVERY, NOUNLOAD, REPLACE, STATS = 10
GO
RESTORE LOG [test0916aj8CJ] FROM DISK = N'....bak'
WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10
次に、新しいセカンダリDBを可用性グループに追加します...
オプションのアクション
- DISKオプションは、プライマリサーバーとセカンダリサーバーの両方から利用できる共有フォルダーに設定することをお勧めします。
- また、プライマリサーバーとセカンダリサーバーの両方で、同様のディスクと場所にDBファイルを保存することをお勧めします。