スケジュールおよび SQL Server の高速 SQL Server のデータベースのバックアップを自動化する方法

文書翻訳 文書翻訳
文書番号: 2019698
すべて展開する | すべて折りたたむ

概要

SQL Server の Express エディション SQL Server エージェント コンポーネントは、これらのエディションに含まれていないため、ジョブやメンテナンス プランのスケジュールを設定する方法を提供しています。したがって、これらのエディションを使用すると、データベースをバックアップするには、別の方法を実行する必要があます  

現在 SQL Server の Express ユーザー、次の方法のいずれかを使用して、データベースをバックアップできます。

SQL Server Management Studio の高速を使用します。これは SQL Server エクスプレス サービス詳細または SQL Server Express Toolkit と共にインストールされます。詳細についてには、次のマイクロソフト開発ネットワーク (MSDN) web サイトを参照してください。

完全なデータベースのバックアップ (SQL Server) を作成します。

  • データベースのバックアップ ファミリのコマンドを使用する Transact SQL スクリプトを使用します。詳細についてには、次の MSDN web サイトを参照してください。

    バックアップ (Transact SQL)

    この資料では Windows タスク スケジューラと共に Transact SQL スクリプトを使用して、SQL Server の高速データベースを定期的にバックアップを自動化する方法について説明します。

  • 詳細

    Windows タスク スケジューラを使用して、SQL Server データベースをバックアップするには次の 3 つの手順を実行するとして必要。

    手順 A: 使用 SQL Server Management Studio Express または Sqlcmd を次のストアド プロシージャは、master データベースに作成します。

    //著作権 ? マイクロソフト コーポレーション。無断転載を禁止します。

    //このコードのリリースの契約下で、

    //Microsoft 公開ライセンス (MS の PL、 http://opensource.org/licenses/ms-pl.html.)

    [マスター] を使用して
    GO 
    /****** オブジェクト:ストアド プロシージャ [dbo です]。[sp_BackupDatabases] ******/
    SET ANSI_NULLS を
    移動
    SET QUOTED_IDENTIFIER を
    移動
    -=============================================
    : 著者: Microsoft
    : 作成日: 2010年-02-06
    : 説明: は SQLExpress データベースのバックアップ
    : パラメーター 1: databaseName
    : パラメーター 2: backupType F D を完全に、= 差分バックアップ、L = = ログ
    : パラメーター 3: バックアップ ファイルの場所
    : =============================================
    作成」の手順 [dbo]. [[sp_BackupDatabases]
    databaseName sysname @ = null の
    @ backupType CHAR(1)、
    @ backupLocation nvarchar(200)
    AS
    設定の NOCOUNT ON;
               
                DECLARE @DBs TABLE
                (
                      ID int IDENTITY PRIMARY KEY,
                      DBNAME nvarchar(500)
                )
               
                 -- Pick out only databases which are online in case ALL databases are chosen to be backed up
                 -- If specific database is chosen to be backed up only pick that out from @DBs
                INSERT INTO @DBs (DBNAME)
                SELECT Name FROM master.sys.databases
                where state=0
                AND name=@DatabaseName
                OR @DatabaseName IS NULL
                ORDER BY Name
               
                -- Filter out databases which do not need to backed up
                IF @backupType='F'
                      BEGIN
    削除 Db @ 場所 DBNAME で ('tempdb'、'Northwind'、'pubs'、'AdventureWorks')
    終了
    ELSE IF @ backupType = 必要がある '
    開始
    削除 Db @ 場所 DBNAME で ('tempdb'、'Northwind'、'pubs'、'マスター'、'AdventureWorks')
    終了
    ELSE IF @ backupType"L"=
    開始
    削除 Db @ 場所 DBNAME で ('tempdb'、'Northwind'、'pubs'、'マスター'、'AdventureWorks')
    終了
    ELSE
    開始
    戻る
    終了
    : 変数を宣言する
    宣言 @ BackupName varchar(100)
    宣言 @ バックアップファ varchar(100)
    宣言 @ DBNAME varchar(300)
    DECLARE @ sqlCommand 文字
    DECLARE @ 日時 NVARCHAR(20)
    @ ループが宣言の int
    : データベース全体を 1 つずつループ
    ループの選択 @ min(ID) FROM @ Db =
    WHILE ループ IS NOT NULL の @
    開始
    [dbname] 形式のいくつかを必要とするため、または _ 名にデータベース名をしなければ
    設定 @ DBNAME '['+(SELECT DBNAME FROM @DBs WHERE ID = @Loop) ']' = +
    --現在の日付と時刻の n yyyyhhmmss の形式を設定する
    セット @ dateTime 置換 = (変換 (varchar 型、GETDATE(),101),'/','') + _ +を交換してください (変換 (varchar 型、GETDATE(),108),':','')
    - バックアップ ・ ファイル名を path\filename.extension の形式では、フル、差分、およびログのバックアップを作成
    backupType @ の = 'F' と
    設定 @ バックアップファ = backupLocation + 置換 @ (を交換してください (@ DBNAME は ' ['、」)、']'、') '_FULL_' + @ dateTime +'。BAK'
    ELSE IF @ backupType = が '
    設定 @ バックアップファ = backupLocation + 置換 @ (を交換してください (@ DBNAME は '['、')、']'、') '_DIFF_' + @ dateTime +'。BAK'
    ELSE IF @ backupType"L"=
    設定 @ バックアップファ = backupLocation + 置換 @ (を交換してください (@ DBNAME、'['、')、']'、') '_LOG_' + @ dateTime +'。TRN'
    --バックアップ メディアを格納するための名前を指定
    backupType @ の = 'F' と
    設定 @ BackupName REPLACE(REPLACE(@DBNAME,'[',''),']','') = +' のフル ・ バックアップ ・ '+ @ dateTime
    backupType @ = のかどうかは必要がある '
    設定 @ BackupName REPLACE(REPLACE(@DBNAME,'[',''),']','') = +' の差分バックアップを ' + @ dateTime
    backupType @ が"L"= かどうか
    設定 @ BackupName REPLACE(REPLACE(@DBNAME,'[',''),']','') = +' ログのバックアップを ' + @ dateTime
    --実行する動的 SQL コマンドを生成
    backupType @ の = 'F' と
    開始
    セット @ sqlCommand ' バックアップ データベース ' +@DBNAME+ = ' ディスクへの =」' +@BackupFile+ '' WITH INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'
                      END
           IF @backupType = 'D'
                      BEGIN
                   SET @sqlCommand = 'BACKUP DATABASE ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH DIFFERENTIAL, INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'        
                      END
           IF @backupType = 'L' 
                      BEGIN
                   SET @sqlCommand = 'BACKUP LOG ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'        
                      END
     
    -- Execute the generated SQL command
           EXEC(@sqlCommand)
     
    -- Goto the next database
    SELECT @Loop = min(ID) FROM @DBs whereID > @ ループ
    終了

    手順 B: テキスト エディター、Sqlbackup.bat、という名前でバッチ ファイルを作成し、テキストを次の例のいずれかのシナリオに応じて、そのファイルをコピーします。

    例:Windows 認証を使用して、SQLEXPRESS のローカルの名前付きインスタンスでのすべてのデータベースの完全バックアップ

    //Sqlbackup.bat

    sqlcmd S します \EXPRESS ? e ・ Q"EXEC sp_BackupDatabases @ backupLocation = 必要がありました: \SQLBackups\'、backupType @ を 'F' =" 

    Example2: は SQLLogin とそのパスワードを使用して、SQLEXPRESS のローカルの名前付きインスタンス内のすべてのデータベースの差分バックアップ

    //Sqlbackup.bat

    sqlcmd-u SQLLogin-p パスワード -S します \SQLEXPRESS -Q"EXEC sp_BackupDatabases @ backupLocation 'D:\SQLBackups'、BackupType @ = いた '"。

    : パッケージが、SQLLogin/opt に最小限のバックアップ オペレーター ロールを SQL Server。


    例 3:Windows 認証を使用して、SQLEXPRESS のローカルの名前付きインスタンスでのすべてのデータベースのログ バックアップ

    //Sqlbackup.bat

    sqlcmd S します \SQLEXPRESS-e-q"EXEC sp_BackupDatabases @ backupLocation='D:\SQLBackups\',@backupType='L'"。

    例 4:データベースに Windows 認証を使用して、ローカルの名前付きインスタンスの SQLEXPRESS USERDB のフル ・ バックアップ

    //Sqlbackup.bat

    sqlcmd S \SQLEXPRESS-e-q"EXEC sp_BackupDatabases @ backupLocation = 必要がありました: \SQLBackups\'、databaseName @ を 'USERDB' =、backupType @ を 'F' ="。

    同様に、差分の貼り付けで USERDB のバックアップすることができます同じ ' の@ backupTypeパラメーターは、USERDB のログ バックアップが"L" @ backupTypeパラメーターを貼り付ける。

    手順 c:B. の手順で作成したバッチ ファイルを実行する Windows タスク スケジューラを使用してジョブのスケジュールをこれを行うには、次の手順を実行します:

    1. SQL Server を高速に実行しているコンピューターで、 [スタート] ボタン、[すべてのプログラム] をポイントアクセサリの順をポイントシステム ツールをポイントし、[ ] をクリックしてタスク 
    2. ダブルクリックして追加予定の作業 
    3. スケジュールされたタスク ウィザードで、次へをクリックします。 
    4. [参照] をクリックして、手順 B で作成したバッチ ファイルをクリックして、[開く] をクリックします。 
    5. SQLBACKUPタスクの名前を入力、毎日、] をクリックし、[次へ] をクリックします。 
    6. については、タスクを実行するスケジュールを指定します。(このタスクは、毎日少なくとも 1 回実行することを推奨します。)その後、次へをクリックします。
    7. [ユーザー名] フィールドで、ユーザー名を入力し、パスワードを入力してください] フィールドにパスワードを入力します。

      1、3、または 4 の例では、複数のファイルのいずれかを使用している場合は、このユーザーには、少なくとも、BackupOperator ロールは SQL Server レベル割り当てる必要があります。
    8. 次へ] をクリックし、[完了] をクリックします。 
    9. タスク、バックアップが正常に作成されているかどうかを確認するには、少なくとも 1 回を実行します。

      SQLCMD の実行可能ファイルのフォルダー通常パス変数、サーバー SQL Server をインストール後にこのフォルダーを Path 変数が表示されていない場合は、[ < インストール場所 > \90\Tools\Binn検索できますです (例: ファイル名指定して SQL Server\90\Tools\Binn).

      、この資料に記載されている手順を使用する場合に、以下の注意:

      • Windows タスク スケジューラ サービスがジョブの実行がスケジュールされているときに実行しなければなりません。このサービスのスタートアップの種類に自動的に設定をお勧めします。これは、再起動時にも、サービスを実行することになります。
      • は、多くの領域で、ドライブのバックアップに書き込まれる必要があります。定期的にディスクの空き領域が不足して実行しないことを確認するのには、バックアップ フォルダー内の古いファイルを削除することをお勧めします。スクリプトが古いファイルを削除するロジックはありません

      その他の参照

    プロパティ

    文書番号: 2019698 - 最終更新日: 2012年6月28日 - リビジョン: 1.0
    キーワード:?
    kbmt KB2019698 KbMtja
    機械翻訳の免責
    重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
    英語版 KB:2019698
    Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

    フィードバック

     

    Contact us for more help

    Contact us for more help
    Connect with Answer Desk for expert help.
    Get more support from smallbusiness.support.microsoft.com