sql >> データベース >  >> RDS >> Sqlserver

SQLServerExpressバックアップデータベース| SQLExpressバックアップの自動化とパージをスケジュールする方法

    この記事では、SQL ServerExpressBackupデータベースのスケジュールとSQLServerExpressBackupの自動化について説明します。

    SQLServerExpressバックアップ

    SQL Server Expressは無料版であり、いくつかの制限があります。例えば;データベースサイズは10GBを超えてはならず、SQL Serverエージェントが無効になっている、自動タスクが無効になっているなどの制限があります。 SQL Serverのエディションの詳細については、次の記事を参照してください。

    SQL Serverの最新バージョン、エディション、およびSQLServerの履歴

    SQLServerExpressバックアップのスケジュールと自動化

    SQL Server Agentは、自動バックアップジョブ、Enterprise、Standardなどのエディションのメンテナンスタスクを提供し、ジョブを実行します。 Expressでは使用できないため、Windowsスケジューラを使用して自動バックアップを提供できます。

    Windowsタスクスケジューラを開き、[新しいスケジューラタスク]をクリックして、タスク名と次のようなその他の設定を入力します。

    スケジューラーを指定し、このステップでいつトリガーされるかを指定します。

    この手順では、タスクスケジューラの実行内容を指定します。 BackupDB.batというファイルをトリガーし、BackupDB.batがDailyBackup.sqlを呼び出して実行します

    ジョブの実行中は、毎晩02:00にバックアップを取り、次のように4つのバックアップを保持し、4日より古いバックアップをパージします。

    BackupDB.batの内容は次のようになります。

    echo off
    
    sqlcmd -S "INSTANCE_NAME" -i "C:\Backup\DailyBackup.sql"
    forfiles -p "C:\Backup" -s -m *.bak* /D -4 /C "cmd /c del @path"

    DailyBackup.sqlの内容は次のようになります。

    DECLARE @pathName NVARCHAR(512) 
    SET @pathName = 'C:\Backup\DB_BACKUP_' + replace(convert(varchar, getdate(),111),'/','') + replace(convert(varchar, getdate(),108),':','') + '.bak' 
    BACKUP DATABASE DB_NAME TO DISK = @pathName WITH NOFORMAT, NOINIT, NAME = N'db_backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10

    タスクスケジューラは、夜02:00にBackupDB.batファイルをトリガーします。このファイルはDailyBackup.sqlも実行しています。 Jobはデータベースのバックアップを取り、SQLServerExpressエディションの古いバックアップを削除します。

    初心者向けのMicrosoftSQLServer DBAチュートリアルを学習し、次の記事をクリックして読んでください。

    1. デジタルトランスフォーメーション:すべてはデータ思考から始まります

    2. ここでは列は許可されていませんINSERTステートメントのエラー

    3. OracleのDATEDIFF関数

    4. 無向グラフのすべての接続されたサブグラフを見つける方法