SSブログ

SQL Server 2008 データベースのバックアップ job


2つの方法についての備忘録
   SQL Server エージェント job で実行
   .bat を Windowsタスクスケジューラで実行
(メンテナンスプランでの設定は割愛)


SQL Server エージェント job の作成

  "SQL Server Management Studio" を開く > 
  "オブジェクトエクスプローラ" で "SQL Server エージェント" を右クリック > 新規作成 > ジョブ
  "新しいジョブ" ダイアログが開く
    "全般" ページで、
      名前 : 任意の名前を指定
      有効 : チェックする
    "ステップ" ページで、
       [新規作成] > "新しいジョブステップ" ダイアログが開く
         "全般" ページで
           ステップ名 : 任意の名前を指定
           種類 : オペレーティングシステム(CmdExec)
           コマンド : 以下のコマンドを入力
           
     sqlcmd -S [ServerName\MSSQLSERVER] -U [UserName] -P [Password] 
     -Q "BACKUP DATABASE [DatabaseName] TO DISK='[D:\BackupPath\DatabaseName.bak]' WITH INIT"
           
         "詳細設定" ページで
           "成功した場合のアクション" : "成功を報告してジョブを終了する"
           "失敗した場合のアクション" : "失敗を報告してジョブを終了する"
           "履歴にステップ出力を含める" : チェックする
       [OK] > [OK]
    "スケジュール" ページで
       [新規作成] > ジョブを実行するスケジュールを設定する
       [OK]

  作成された job を右クリック > ステップでジョブを開始  として動作を確認する


  上記コマンドで .sql ファイル を外だしにする場合
     以下の内容の script.sql ファイルを作成する

     BACKUP DATABASE [DatabaseName] TO DISK='[D:\BackupPath\DatabaseName.bak]' WITH INIT
     Go

     上記コマンドでは、以下のように .sql ファイルを指定

     sqlcmd -S [ServerName\MSSQLSERVER] -U [UserName] -P [Password] 
     -i '[D:\ScriptPath\]script.sql'



.bat を作成し Windowsタスクスケジューラを設定

  以下の内容で BackupSQL.bat ファイルを作成する

     sqlcmd -S [ServerName\MSSQLSERVER] -U [UserName] -P [Password] 
     -Q "BACKUP DATABASE [DatabaseName] TO DISK='D:\BackupSQL\[DatabaseName.bak]' WITH INIT" > D:\BkupSQL\result.log

  Windowsタスクスケジューラで、ジョブを実行するスケジュールを設定する
 
 
(Windows 2008 R2, SQL Server 2008 R2)
 

SQL server 2008 デタッチ、アタッチでデータベースを移行


移行元のサーバにて "SQL Server Management Studio" を開く > 

  "オブジェクトエクスプローラ" で 移行したいデータベースを右クリック > プロパティ >
  "プロパティ" ダイアログが開く
     "ファイル" ページで、.mdf ファイルのあるパスを確認して [キャンセル]
  移行したいデータベースを右クリック > タスク > デタッチ 

  Windows Explorerで、確認したパスにある

     データファイル(mdf、ndf)、ログ ファイル (ldf) を

  移行先のサーバへコピー

  通常は、移行元、移行先とも以下のような SQL server インスタンス配下になる
     D:\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA


移行先のサーバにて "SQL Server Management Studio" を開く > 

  "オブジェクトエクスプローラ" で "データベース" を右クリック > アタッチ 
  "データベースのアタッチ" ダイアログが開く
     [追加] として、コピーしたファイルを選択して [OK]


デタッチした移行元のデータベースも再びタッチしておく
 
(Windows 2008 R2, SQL Server 2008 R2)
 


SQL server 2008 データベースへのアクセスを制限する(シングルユーザモードに移行)

 
  "SQL Server Management Studio" を開く > 

  "オブジェクトエクスプローラ" で データベースを右クリック > プロパティ >
  "プロパティ" ダイアログが開く
  
  "オプション" ページで、
  状態 > アクセスの制限 で、SINGLE_USER を選択し [OK] とする
 
(Windows Server 2008 R2, SQL Server 2008 R2)
 

SQL Server 2008 バックアップと復元(データベースのサーバ間移動)


データベースの完全バックアップ
  "SQL Server Management Studio" を開く > 

  "オブジェクトエクスプローラ" で データベースを右クリック > タスク > バックアップ >
  "データベースのバックアップ" が開く

  "全般" ページで、
    ソース
      データベース : バックアップ対象データベースを選択
      バックアップの種類 : "完全"
      バックアップコンポーネント : "データベース"
    バックアップセット
      名前/説明 : 任意の名前/説明
      バックアップセットの有効期限 : "期間指定" をチェックし、0 日とする
    バックアップ先
      "ディスク" を選択し、[追加] > (任意の)出力先ファイルを指定 > [OK]
  "オプション" ページで、
    メディアに上書きします
      "既存のメディアセットにバックアップする" を選択し、以下の何れかを選択
        "既存のバックアップセットに追加する"
          -> 1つのファイルにバックアップが追記されていく
             ファイルサイズがバックアップごとに大きくなる
             復元時に、バックアップの復元ポイントを指定できる
        "既存のすべてのバックアップセットを上書きする"
          -> バックアップファイルが上書される
          ※ 手動時は、バックアプ先を明示的に指定するので、
             こちらの選択がよい

  [OK] でバックアップを実行する


データベースの復元
  "オブジェクトエクスプローラ" で データベースを右クリック > タスク > 復元 > データベース >
  "データベースの復元" が開く

  "全般" ページで、
    復元先
      復元先データベース : 復元する先のデータベースを選択
          ※データベースのサーバ間移動などの目的で、既存データベースがなければ、
            あらかじめ新規に作成しておく
    復元用のソース
      "デバイスから" を選択し、バックアップしたファイルを選択
  "オプション" ページで、
    復元オプション : "既存のデータベースを上書きする" をチェック
    復旧状態 : "コミットされていないトランザクションをロールバックして、
                 データベースを使用可能な状態にする" をチェック

  [OK] で復元を実行する

(Windows Server  2008 R2, SQL Server 2008 R2)
 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。