Date: Mon, 12 Apr 2004 17:20:45 +0900
 From: "Akira Horikawa" <who@example.ne.jp>
 
 
堀川です、こんにちは
-----Original Message-----
From: Michio Taniguchi [mailto:who@example.co.jp] 
Sent: Monday, April 12, 2004 1:54 PM
To: who@example.ne.jp
Subject: [ml-msde-beg:01166] Re: ログ切捨て時の bcp コマンド
>(完全バックアップですと、Accessを一度終了しなければならない為)
>重要なデータほどログを生かすべきなのは十分に承知しているのですが
>このまま運用していても大丈夫でしょうか?
MSDEにも、SQL Server エージェントサービスがありますので、ジョブの自動実行
を行うことができます。
指定された時刻に、指定されたデータベースを完全バックアップするような作業は、
ジョブとして登録しましょう。
SQLServerであれば、Enterprise Manager上で、ジョブ管理を行いますが、
MSDEではジョブ管理は、SQL文で行います。
以下のSQL文は、
         SAMPLEデータベースを
          午前8時から午後8時まで
          2時間間隔で
          C:\DB\SAMPLE.BAKファイルに
          完全バックアップを行なう
ジョブを登録します。
このようなジョブを上手く活用して、データベースのバックアップ等を自動化して下さい
--
--ジョブカテゴリーの登録
--
 DECLARE @JOB_CATEGORY SYSNAME
 SELECT @JOB_CATEGORY = 'SAMPLE-DB JOB'
 IF ( (SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name = @JOB_CATEGORY) < 1 )
   BEGIN
     EXECUTE msdb.dbo.sp_add_category @name = @JOB_CATEGORY
   END
--
--ジョブの名前を登録する
--同じ名前のジョブがあれば、それは削除します
--
 DECLARE @JOB_NAME  SYSNAME
 DECLARE @JOB_ID    UNIQUEIDENTIFIER
 SELECT @JOB_NAME = 'SAMPLEデータベースのバックアップ'
 IF EXISTS ( 
    SELECT * FROM msdb.dbo.sysjobs 
       WHERE (name = @JOB_NAME )
 )
 BEGIN
     --ジョブの削除
     EXECUTE msdb.dbo.sp_delete_job @job_name = @JOB_NAME      
 END 
--
--ジョブを登録します
--
  EXECUTE msdb.dbo.sp_add_job
           @job_name = @JOB_NAME ,
           @category_name = @JOB_CATEGORY,
           @owner_login_name = 'sa',
           @enabled = 1 ,
           @notify_level_email = 0,
           @notify_level_page = 0,
           @notify_level_netsend = 0,
           @notify_level_eventlog = 2,
           @delete_level= 0 ,
           @description='毎日2時間間隔でバックアップを実行します',
           @job_id   = @JOB_ID OUTPUT
--
--ジョブ ステップの追加
--
  DECLARE @BACKUP_FN VARCHAR(80)
  DECLARE @TSQL  VARCHAR(256)
  SELECT @BACKUP_FN='C:\DB\SAMPLE.BAK'
  SELECT @TSQL = 'BACKUP DATABASE SAMPLE TO DISK=''' + @BACKUP_FN + ''''
  EXECUTE msdb.dbo.sp_add_jobstep
            @job_id  = @Job_ID,
            @step_id = 1,
            @step_name = 'Sampleバックアップ',
            @command   = @TSQL,
            @database_name = 'SAMPLE',
            @server = '',
            @database_user_name = 'dbo',
            @subsystem = 'TSQL',
            @cmdexec_success_code = 0,
            @flags = 0,
            @retry_attempts = 0,
            @retry_interval = 1,
            @output_file_name = '',
            @on_success_step_id = 0,
            @on_success_action = 1,
            @on_fail_step_id = 0,
            @on_fail_action = 2
  --属性変更の実施
  EXECUTE msdb.dbo.sp_update_job
            @job_id = @Job_ID,
            @start_step_id = 1 
--
--ジョブ スケジュールの追加
--
  EXECUTE  msdb.dbo.sp_add_jobschedule
          @job_id   = @Job_ID,
          @name     = '毎日2時間',
          @enabled  = 1,
          @freq_type = 4,
          @active_start_date = 20040412,
          @active_start_time = 80000, --午前8時
          @freq_interval = 1,
          @freq_subday_type = 8,
          @freq_subday_interval = 2,
          @freq_relative_interval = 0,
          @freq_recurrence_factor = 0,
          @active_end_date = 99991231,
          @active_end_time = 200000   --午後8時
--SQLServerAgentにジョブの登録完了を通知する
--SQLServerAgentサービスを起動しておくこと
  EXECUTE  msdb.dbo.sp_add_jobserver @job_id = @Job_ID, @server_name = '(local)'
------------------------------------
(株)日本技術ソフト開発
        堀川 明  (Akira Horikawa)
    04月12日(月曜日) 17時20分記
        mailto:who@example.ne.jp
        http://www.horikawa.ne.jp/msde/
 
  
| [MSDE/SQLServerに関して、今、どんなことにお困りですか?] |  
| よろしければお困りの内容を、電子メールで教えて下さい。 |  
| 
質問を電子メールで作成する
 |  
 
  [ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧] 
                                 
                        |