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 技術サポート情報一覧]
|