最新のSQL Serverバックアップをターゲットサーバーにプログラムで復元するにはどうすればよいですか?最新のバックアップをプログラムによって復元するにはどうすればよいですか?
我々は混在環境、アズールとオンプレムを持っていると我々は、我々はレポートを実行するために使用上のプレムSQL Serverに復元するバックアップのAzureでSQLデータベースを必要としています。
Azureの環境では我々は生産のSQL Serverを持っていると我々はバックアップ1特定のデータベースには、Azureのブロブストレージに、これは深夜に毎日行われます。
バックアップファイル形式はdatabasename_year-month-day.bak
です。データベースの名前はscups
です。したがって、バックアップの名前はscups_2017-11-14.bak
,scups_2017-11-15.bak
などです。バックアップのサイズは約35GBで、数分で完了します。
オンプレム環境:
がオンプレムSQL ServerのReporting ServicesがAZcopy(アズールのPowerShell)とSQLのバックアップを実行する上、WindowsのタスクスケジューラがそのローカルディスクにAzureのブロブストレージからダウンロードされ、このプロセスは1から始まります:45 AM、データベースは1時間以内にダウンロードされます。 5:00で
は、当社のオンプレムレポートサーバー上でリストアジョブをSQL Serverエージェント経由で呼び出され、これは、レポートを実行する人々によって使用される準備ができて、データベースを復元しています。
このプロセスが動作しますが、問題は、現在、我々は、データベースのバックアップの正しい日付が復元されるように、毎晩SQL Serverジョブを変更する必要があり、です。
したがって、特定のファイルを含めるようにSQL Serverジョブを変更する必要があります。たとえば、scups_2017-11-15.bak
をscups_2017-11-16.bak
に置き換え、11/16からの最新のデータベースバックアップを復元する必要があります。
スクリプトを修正して、毎朝最新のバックアップを復元するにはどうすればよいですか? そして、このプロセスを自動化する良い方法がありますか?
私はどんな提案もありがとう。
これが私たちのSQL Serverジョブである:
USE MASTER
GO
ALTER DATABASE scups
SET multi_user WITH ROLLBACK IMMEDIATE
GO
-- Now put it into single user mode and drop it. Use Rollback Immediate to disconnect any -- sessions and rollback their transactions. Safe since you are about to drop the DB.
ALTER DATABASE scups
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
DROP DATABASE scups
GO
--pause sleep 2 minutes
USE master
RESTORE DATABASE [scups]
FILE = N'scups_Data',
FILE = N'ftrow_fulltext_catalog',
FILE = N'ftrow_CourseForumEntries'
FROM DISK = N'C:\download\ScupsFullBackup\scups_2017-11-14.bak'
WITH FILE = 1,
MOVE N'scups_Data' TO N'U:\data\scups.mdf',
MOVE N'ftrow_fulltext_catalog' TO N'U:\data\scups1.ndf',
MOVE N'ftrow_CourseForumEntries' TO N'U:\data\scups2.ndf',
MOVE N'scups_Log' TO N'L:\logs\scups_log.ldf',
RECOVERY, REPLACE, STATS = 10
一つの可能性は、 'mklink'のようなWindowsツールを使用して、最新のバックアップファイルに*シンボリックリンク*を作成することです。こうすることで、バックアップジョブの*ターゲット*は常に同じになります。 'scups_latest.bak'は実際の最新の' .bak'ファイルへのシンボリックリンクになります。 MKLINKを使用すると、シンボリックリンクのバッチファイルを作成することができます –