在SQL Server和Oracle中创建job

创建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技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • Redis数据库的安装和配置教程详解

    Redis数据库的安装和配置教程 Redis是一款基于内存的开源的NoSQL数据库,它可以用作缓存、消息中间件、分布式锁等多种场景。在这里,我们将分享Redis数据库的安装和配置教程,以便您能够轻松地将其集成到您的应用程序中。 安装 Redis Windows 系统 在Windows系统上安装Redis可以通过以下步骤完成: 下载Redis的安装包。Redi…

    database 2023年5月22日
    00
  • PHP ADODB实现事务处理功能示例

    PHP ADODB是一个为PHP程序开发人员提供高级数据库抽象类库的工具集。其中之一就是实现事务处理功能的类库。以下是实现事务处理的完整攻略: 1. 安装ADODB类库 首先,我们需要安装ADODB类库。可以通过Composer进行安装,Composer是PHP的一个包管理器,可以通过它方便地安装第三方类库。在运行Composer之前,需要先安装Compos…

    database 2023年5月21日
    00
  • Redis是什么?能用来做什么?

    Redis是一种高性能的基于内存的数据存储系统,它支持多种数据结构,包括字符串、列表、散列、集合、排序集合等。与其他键值存储系统相比,Redis在速度、可扩展性、稳定性和数据安全方面都有很大优势。 Redis的全称是 Remote Dictionary Server(远程字典服务),它是一个基于内存实现的键值型非关系(NoSQL)数据库,由意大利人 Salv…

    2023年3月17日
    00
  • Redis持久化-fork操作

    1.fork操作 用于同步操作,   虽然fork同步操作非常快,同步大数据量时,fork就会阻塞主进程 与内存量息息相关,使用的内存越大,耗时越长 info:latest_fork_usec    查看持久化花费的时间,如果持久时间过长,就会造成卡顿 ,假如QPS上万,此时redis正在持久化,持久化时间长,就会造成卡顿   2 改善fork 优先使用物理…

    Redis 2023年4月12日
    00
  • centos 7安装mysql5.5的方法

    以下是“CentOS 7安装MySQL 5.5的方法”详细攻略。 1. 安装MySQL 5.5 1.1 首先,需要安装MySQL 5.5的官方源,执行以下命令: sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 1.2 安装MySQL 5.5版本: …

    database 2023年5月22日
    00
  • mysql的启动

    1。直接用mysqld手工启动 [root@ora11g bin]# ./mysqld –defaults-file=../my.cnf 140328 10:04:37 [ERROR] Fatal error: Please read “Security” section of the manual to find out how to run mysql…

    MySQL 2023年4月12日
    00
  • DBMS 中的超键

    超键是指在一个关系模式中,能够唯一区分每个元组记录的属性集合。在DBMS中,超键是关系模式的一种重要的概念。 一个关系模式中的属性可以被视为关系模式的一个列,多个属性构成的属性集合可以被看作是一行元组的一个组,关系模式中的所有属性集合构成了一个属性域。而超键则是在属性域内起唯一区分行的作用的属性集合。也就是说,如果存在两个元组记录,它们在超键的属性集上具有相…

    database 2023年3月27日
    00
  • 一次排查某某云上的redis读超时经历

    一次排查某某云上的redis读超时经历 服务监控系列文章 服务监控系列视频 问题背景 最近一两天线上老是偶现的redis读超时报警,我嗅到了一丝不正常的味道,但由于业务繁忙,只是暂时将超时时间从200ms调制500ms,超时情况减少了,不过还是有发生。趁业务空闲期,于是开始着手排查。 排查思路 查阅 redis 慢查询日志 redis的慢查询阀值是10ms,…

    Redis 2023年4月10日
    00
合作推广
合作推广
分享本页
返回顶部