web-dev-qa-db-ja.com

サブディレクトリを作成する代わりに、定義されたディレクトリでバックアップを取る方法

Ola-Hallengrenスクリプトを使用していますが、DBごとにサブディレクトリを作成せずにバックアップを取る必要がある状況になっています。すべてのFULL、DIFF、およびLOGバックアップに対してC:\Backupsのような集中パスを定義する必要があります。

どんな助けでもいただければ幸いです。

1
Sourabh

OlaHellengrenスクリプトのDirectoryパラメータを変更する必要があります。ジョブに移動し、[ステップ]-> [編集]-> [@ Directory = 'C:\ Backup']をクリックします。

これで十分です。

あなたの特定の要件に加えて、私はストアプロシージャに入り、理解することができました。少し時間がかかりましたので、お詫び申し上げます。タスクを完了できたら、これを回答としてマークしてください。

以下は、必要なディレクトリを取得するための手順です。

  1. すべてのバックアップを1つの場所にのみ取得するには、ストアプロシージャ[dbo]。[DatabaseBackup]からいくつかのパラメータを削除する必要があります。変数を設定するこの部分があります(コメントを探してください)-変数を設定します

  2. 先に進んで、以下の部分を探してください:

SELECT ROW_NUMBER()OVER(ORDER BY ID)、DirectoryPath + CASE WHEN RIGHT(DirectoryPath、1)= @DirectorySeparator THEN '' ELSE @DirectorySeparator END + CASE WHEN @CurrentAvailabilityGroup IS NOT NULL THEN @ Cluster + '$' + @CurrentAvailabilityGroup ELSE REPLACE(CAST(SERVERPROPERTY( 'servername')AS nvarchar(max))、 '\'、 '$')END + @DirectorySeparator + @CurrentDatabaseNameFS + @DirectorySeparator + UPPER(@CurrentBackupType) + CASE WHEN @ReadWriteFileGroups = 'Y' THEN'_PARTIAL 'ELSE' 'END + CASE WHEN @CopyOnly =' Y 'THEN'_COPY_ONLY' ELSE '' END、Mirror、ROW_NUMBER()OVER(PARTITION BY Mirror ORDER BY ID ASC) 、0、0 FROM @Directories
IDASCで注文

  1. 次に、パラメーター@CurrentDatabaseNameFSおよびUPPER(@CurrentBackupType)を削除する必要があります。これにより、以下のようにすべてのバックアップが1つの場所に作成されます

C:\Backup\LAPTOP-8BATS2T5

Olahellengrenスクリプトで使用可能な各パラメーターを確認します。 Ola Hellengren

1

大まかに2285行目:

    -- JK 
    -- SET @CurrentDirectoryStructure = REPLACE(@CurrentDirectoryStructure,'{DatabaseName}',@CurrentDatabaseNameFS)
    -- SET @CurrentDirectoryStructure = REPLACE(@CurrentDirectoryStructure,'{BackupType}',@CurrentBackupType)
    SET @CurrentDirectoryStructure = REPLACE(@CurrentDirectoryStructure,'{DatabaseName}','')
    SET @CurrentDirectoryStructure = REPLACE(@CurrentDirectoryStructure,'{BackupType}','')
    SET @CurrentDirectoryStructure = REPLACE(@CurrentDirectoryStructure,'\\','\')
0
J Kelly