none
SQLServer2016差分BackUp

    質問

  • (はじめに)

    フォーラムの利用になれておらず、同じ質問を別カテゴリ(Windows Server  >  Windows Server 2016)でしており、二重投稿となってしまいます。申し訳ございません。

    ---

    (本題)

    ■概要
    SQLServerメンテナンスプランにて、【フルバックアップ】、【差分バックアップ】、【ログバックアップ】を行っておりますが、【差分バックアップ】に失敗します。


    ■詳細
    エラー番号:-1073548784
    クエリ "BACKUP DATABASE [xxxxxxxx] TO  DISK = N'x:\\DBBackUp..." の実行が次のエラーで失敗しました: 

    データベース "xxxxxxxx" の差分バックアップを実行できません。
    現在のデータベース バックアップが存在しません。
    WITH DIFFERENTIAL オプションを削除して BACKUP DATABASE ステートメントを再実行し、データベースの完全バックアップを実行してください。
    BACKUP DATABASE が異常終了しています。

    考えられるエラーの理由: 

    クエリに問題がある、"ResultSet" プロパティが正しく設定されていない、パラメーターが正しく設定されていない、または接続が正しく確立されていない。

    ■設定内容の概要
    SQLServer2016 ManagementStidioのメンテナンスプランにて

    ★JOB1:毎日1回 am2:00:(フルバックアップ)
    (1)整合性確認
    (2)完全バックアップ
    (3)クリーンアップ(10日経過の*.*)

    ★JOB2:毎日am6:00~22:00(4時間ごとの差分バックアップ)
    (1)整合性確認
    (2)完全バックアップ

    ★JOB3:毎日am2:15~am1:50(15分ごとのログバックアップ)
    (1)トランザクションログバックアップ


    ■設定内容の詳細(T-SQL)
    ★JOB1:毎日1回 am2:00:(フルバックアップ部分のSQL)
    EXECUTE master.dbo.xp_create_subdir N'x:\DBBackUp\FULL\xxxxxxA'
    GO
    EXECUTE master.dbo.xp_create_subdir N'x:\DBBackUp\FULL\xxxxxxB'
    GO
    BACKUP DATABASE [xxxxxxA] TO  DISK = N'x:\DBBackUp\FULL\xxxxxxA\xxxxxxA_backup_yyyy_mm_dd_hhmmss_xxxxxxx.bak' 
    WITH NOFORMAT, NOINIT,  
    NAME = N'xxxxxxA_backup_yyyy_mm_dd_hhmmss_xxxxxxx', SKIP, REWIND, NOUNLOAD,  STATS = 10
    GO
    BACKUP DATABASE [xxxxxxB] TO  DISK = N'x:\DBBackUp\FULL\xxxxxxB\xxxxxxB_backup_yyyy_mm_dd_hhmmss_xxxxxxx.bak' 
    WITH NOFORMAT, NOINIT,  
    NAME = N'xxxxxxB_backup_yyyy_mm_dd_hhmmss_xxxxxxx', SKIP, REWIND, NOUNLOAD,  STATS = 10
    GO

    ★JOB2:毎日am6:00~22:00(4時間ごとの差分バックアップ部分のSQL)
    EXECUTE master.dbo.xp_create_subdir N'x:\DBBackUp\SABUN\xxxxxxxA'
    GO
    EXECUTE master.dbo.xp_create_subdir N'x:\DBBackUp\SABUN\xxxxxxxB'
    GO
    BACKUP DATABASE [xxxxxxxA] TO  DISK = N'x:\DBBackUp\SABUN\xxxxxxxA\xxxxxxxA_backup_yyyy_mm_dd_hhmmss_xxxxxxx.bak' 
    WITH  DIFFERENTIAL , NOFORMAT, NOINIT,  
    NAME = N'xxxxxxxA_backup_yyyy_mm_dd_hhmmss_xxxxxxx', SKIP, REWIND, NOUNLOAD,  STATS = 10
    GO
    BACKUP DATABASE [xxxxxxxB] TO  DISK = N'x:\DBBackUp\SABUN\xxxxxxxB\xxxxxxxB_backup_yyyy_mm_dd_hhmmss_xxxxxxx.bak' 
    WITH  DIFFERENTIAL , NOFORMAT, NOINIT,  
    NAME = N'xxxxxxxB_backup_yyyy_mm_dd_hhmmss_xxxxxxx', SKIP, REWIND, NOUNLOAD,  STATS = 10

    ■現象の詳細
    ・フルバックアップ及びトランザクションバックアップは毎回正常
    ・差分は手動で行う場合は毎回正常するが、メンテナンスプランで行うと失敗
    ・MDF、LDFの配置ドライブとは別のドライブにバックアップ設定

    https://social.msdn.microsoft.com/Forums/sqlserver/ja-JP/a1a60986-f20e-42cf-94ab-1e2ffd240705/sqlserver20051239112473124651247212517125401252212531124641237512383?forum=sqlserverja
    を参考にしたが、解決に至らず。

    という状況です。

    アドバイス頂ければ幸いです。

    2019年5月10日 5:33

すべての返信

  • 鯱さん、こんにちは。フォーラムオペレーターのHarukaです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    SQLデータベースは、最後のSQLフルデータベースバックアップが実行された時点以降にSQLデータベースに加えられた変更を追跡する一連のログを保持します。 
    ログチェーンが破損していると、ログチェーン内のデータが不足しているため、その後の差分バックアップを完了できません。 
    しかし、エラーメッセージはあいまいです。 
    差分バックアップを実行してエラーログで詳細なメッセージをご確認いただけますでしょうか。

    データベースのバックアップメンテナンスジョブについて、Ola Hallengrenからこのバックアップスクリプトを使用したいと思います。

    どうぞよろしくお願いします。


    MSDN/ TechNet Community Support Haruka

    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、
    ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2019年5月13日 6:57
    モデレータ