0

SQL Server 2008 Express Edition でデータベースを作成しました。VB.net Express でプログラムを作成して、指定した時刻に毎日バックアップを取ることはできますか? どのコードを書く必要がありますか?

4

1 に答える 1

2

このための VB.NET アプリケーションを作成するのは、おそらくやり過ぎです。無限ループで実行するには、Windows サービスなどを作成し、データベースのバックアップを取得するコードを理解する必要があります。

Express であるため、もちろん、スケジュールされたジョブを実行するための SQL Server エージェントはありません。ただし、オペレーティング システムからジョブをスケジュールすることで、同じことができます。これを達成する方法についての良い記事は次のとおりです: http://www.fmsinc.com/free/NewTips/SQL/SQLServerExpressDatabase/Automated_Backup.asp。記事からの引用:

  • ウィザードを使用して新しいバックアップ デバイスを作成します ([サーバー オブジェクト] => [新しいバックアップ デバイス] を展開します)。
  • 新しいバックアップ デバイスを右クリックし、バックアップするデータベースを選択します。
  • バックアップの種類を選択します (ほとんどの場合、これは「完全」です)。
  • ジョブの名前を選択します。必要に応じて説明を挿入します。
  • [追加] ボタンをクリックして、デバイスの保存先を追加します (これは、バックアップ .bak 出力ファイルを配置する場所です)。
  • [OK] をクリックします。これでバックアップ デバイスがセットアップされました。バックアップするデータベースごとに手順 3 ~ 7 を繰り返します。
  • 次の構文を使用してバッチ ファイルを作成します (これは、バックアップ デバイスの実行に使用されます)。構文の例を以下に示します (このファイルを「BAT」ファイル拡張子で保存することを忘れないでください)。
sqlcmd -S MYSERVER\OFFICESERVERS -E -Q "BACKUP DATABASE MASTER TO TEST"

..where “MYSERVER” is the name of the SQL Server machine.
..where “OFFICESERVERS” is the name of the SQL Server.
..where “Test” is the name of the backup job.
..where “MASTER” is the name of the database.
  • 最後に、Microsoft Windows スケジューラを開き、上記で作成したバッチ ファイルをスケジュールされたイベントに割り当てます。希望する時点でイベントを実行するように設定します。Microsoft Windows スケジューラとその便利な機能の詳細については、お好みの検索エンジンを使用して Web を検索するか、Microsoft Windows のドキュメントを参照してください。
于 2012-05-18T06:14:48.987 に答える