创建Job是数据库管理员和开发人员必须掌握的技能之一,下面我将详细讲解如何在SQL Server和Oracle中创建Job。
在SQL Server中创建Job
步骤1:打开SQL Server Management Studio
首先,打开SQL Server Management Studio并连接到需要创建Job的数据库实例。
步骤2:新建Job
在SQL Server Management Studio的对象资源管理器中,右键单击SQL Server代理,选择新建Job。
步骤3:配置Job属性
在新建的Job属性对话框中,输入Job名称、描述、类别和拥有者等信息。
步骤4:添加步骤
在新建Job属性对话框中,点击步骤页签,添加需要执行的步骤。
步骤5:设置调度计划
在新建Job属性对话框中,点击调度页签,设置Job的调度计划。
示例1:在SQL Server中创建备份Job
下面是一个示例演示如何创建SQL Server的备份Job:
USE [master]
GO
EXEC msdb.dbo.sp_add_job @job_name = N'BackupJob', @enabled = 1,
@description = N'This job will backup all databases',
@owner_login_name = N'sa', @category_name = N'database_maintenance'
GO
EXEC msdb.dbo.sp_add_jobstep @job_name='BackupJob', @step_name = N'BackupStep1', @subsystem = N'SQLSERVER',
@command = N'BACKUP DATABASE [AdventureWorks] TO DISK=''C:\Backup\AdventureWorks.bak'';',
@retry_attempts = 5, @retry_interval = 5
GO
EXEC msdb.dbo.sp_add_schedule @schedule_name=N'BackupSchedule', @freq_type=4, @freq_interval=1,
@freq_subday_type=4, @freq_subday_interval=1, @active_start_time=113000, @active_end_time=235959
GO
EXEC msdb.dbo.sp_attach_schedule @job_name=N'BackupJob', @schedule_name=N'BackupSchedule'
GO
EXEC msdb.dbo.sp_add_jobserver @job_name=N'BackupJob', @server_name = N'(local)'
GO
这个示例将创建一个名为“BackupJob”的Job,它会执行对“AdventureWorks”数据库的完全备份。它还添加了一个名为“BackupSchedule”的调度计划,该计划将Job每天早上11:30执行。
示例2:在SQL Server中创建邮件通知Job
下面是一个示例演示如何创建SQL Server的邮件通知Job:
USE [msdb]
GO
EXEC msdb.dbo.sp_add_job @job_name='EmailJob', @enabled=1,
@description='This job will send email notification upon job completion',
@owner_login_name = N'sa', @category_name = N'database_maintenance'
GO
EXEC msdb.dbo.sp_add_jobstep @job_name='EmailJob', @step_name=N'EmailStep1', @command=N'select * from [AdventureWorks].[Sales].[vSalesPerson];',
@subsystem=N'SQL',@output_file_name=N'C:\Output\Result.txt',@database_name=N'AdventureWorks',@retry_attempts=5,@retry_interval=5
GO
EXEC msdb.dbo.sp_add_jobstep @job_name='EmailJob', @step_name=N'EmailStep2', @command=N'EXEC msdb.dbo.sp_send_dbmail
@profile_name=''AdventureWorksDBMail'',
@recipients=''user@domain.com'',
@subject=''Job Execution Completed'',
@query_result_separator = ''|'',
@query_result_width = 1000,
@query = ''select * from [AdventureWorks].[Sales].[vSalesPerson] where SalesPersonID = 1'';',
@retry_attempts=5, @retry_interval=5
GO
EXEC msdb.dbo.sp_add_jobserver @job_name='EmailJob', @server_name=N'(local)'
GO
这个示例将创建一个名为“EmailJob”的Job它执行查询语句并将结果输出到文件中,然后通过电子邮件向特定用户发送结果文件。在这个示例中,调用的是sp_send_dbmail存储过程。
在Oracle中创建Job
步骤1:打开Oracle SQL Developer
首先,打开Oracle SQL Developer,并连接到需要创建Job的数据库实例。
步骤2:新建Job
在Oracle SQL Developer的对象导航器中,找到DBMS_SCHEDULER,并在其下面的Jobs文件夹中右键单击,选择新建Job。
步骤3:配置Job属性
在新建的Job属性对话框中,输入Job名称、描述、拥有者和可见度等信息。
步骤4:添加步骤
在新建Job属性对话框中,点击步骤页签,添加需要执行的步骤。
步骤5:设置调度计划
在新建Job属性对话框中,点击调度页签,设置Job的调度计划。
示例1:在Oracle中创建备份Job
下面是一个示例演示如何创建Oracle的备份Job:
BEGIN
dbms_scheduler.create_job (
job_name => 'BackupJob',
job_type => 'STORED_PROCEDURE',
job_action => 'BEGIN
rman_backup.backup_database;
END;',
start_date => sysdate,
repeat_interval => 'FREQ=DAILY; BYHOUR=3; BYMINUTE=0;',
enabled => TRUE,
comments => 'This job will backup all databases');
END;
/
这个示例将创建一个名为“BackupJob”的Job,它将执行存储过程“rman_backup.backup_database”,该过程将备份所有数据库。它还指定了一个每天凌晨3点启动的调度计划。
示例2:在Oracle中创建邮件通知Job
下面是一个示例演示如何创建Oracle的邮件通知Job:
BEGIN
dbms_scheduler.create_job (
job_name => 'EmailJob',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN
SELECT * FROM employees WHERE employee_id = 100;
utl_mail.send(sender => ''sender@domain.com'',
recipients => ''user@domain.com'',
subject => ''Job Execution Completed'',
message => ''The job has executed successfully.'');
END;',
start_date => sysdate,
repeat_interval => 'FREQ=DAILY; BYHOUR=12; BYMINUTE=0;',
enabled => TRUE,
comments => 'This job will send email notification upon job completion');
END;
/
这个示例将创建一个名为“EmailJob”的Job,它执行一个PL/SQL块并选择employees表中employee_id为100的行。然后,它将发送一封电子邮件,通知指定的用户执行完成。它还指定了一个每天中午12点启动的调度计划。
以上就是在SQL Server和Oracle中创建Job的完整攻略,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在SQL Server和Oracle中创建job - Python技术站