使用T_SQL脚本创建SQLServer2000后台计划作业任务

 更新时间:2016年11月25日 16:44  点击:1664
作者:蒋勇 http://idoorsoft.51.net
  在数据库的应用系统中,充分的利用数据库的后台服务端的功能可以可以简化客户端前台的工作,更可以降低网络的负荷,同时使整个系统设计更合理,便于维护移植和升级,后台计划任务作业在很多数据库应用中经常会用到,当然是配合存储过程使用。
  在SQL Server2000中,可以手动一步一步的在企业管理器中建立后台计划任务作业,但这样既麻烦也不便于发布,因此本文给出使用T-SQL脚本创建作业的方法。
  需要下面三个SQL Server2000 msdb系统库中的存储过程来完成作业的建立,在此之前请先开启数据库实例的SQLServerAgent服务,SQL Server安装后默认是没有启动该服务的。
  顺便说一句,SQL Server在2000版本中才有了明显的“实例”的概念,在7.0版中没有明确的实例,因此在SQL Server2000默认安装时创建了一个默认实例,这是为了和SQl Server 7.0兼容,如果你是默认方式创建的实例,则实例名为空。啥子?你不晓得啥子是“实例”?个人去找点资料看看,oracel、sybase都有实例和表空间,所以我叫SQL Server2000之前的SQL Server为桌面数据库。
  进入正题,步骤是“作业”-〉“作业调度”-〉“作业步骤”,具体如下:
1、使用sp_add_job 添加由 SQLServerAgent 服务执行的新作业。
2、使用sp_add_jobschedule创建作业调度。
3、使用sp_add_jobstep将一个步骤(操作)添加到作业中
  下面以在汽车客运站票务系统中的脚本为例给出实际例子,在看例子之前,请先看一下上面三个系统存储过程的帮助。在例子中使用了一个自定义的存储过程“tksp_bakdata”,它的功能是处理当日之前售票数据(只需知道是一个自定义存储过程就行了)。
例子1:每日0点30分处理售票数据
www.111cn.net
use msdb
EXEC sp_add_job @job_name = 'tk_bakdata',
@enabled = 1,
@description = '每日00:30处理售票数据',
@start_step_id = 1,
@owner_login_name = 'tkuser'
exec sp_add_jobserver @job_name = 'tk_bakdata'
go
EXEC sp_add_jobschedule @job_name = 'tk_bakdata',
@name = 'Bakdata003000',
@freq_type = 4,
@freq_interval = 1,
@active_start_time = 003000
go
EXEC sp_add_jobstep @job_name = 'tk_bakdata',
@step_name = 'bakdata',
1. 下载并安装 Oracle 8i for linux.
完全安装,不要只安装客户端
下载地点:chat.hn.cninfo.net/soft的hot下载
2. 下载PHP3或PHP4源码
下载地点:www.php.net www.phpuser.com chat.hn.cninfo.net/soft
3. 配置PHP的安装参数
for php 4:
./configure --with-apxs=/usr/sbin/apxs
--prefix=/usr
--with-gd
--enable-versioning
--with-mysql=/usr
--with-oracle=/usr/local/oracle/8i/u01/app/oracle/product/8.1.5
--with-oci8=/usr/local/oracle/8i/u01/app/oracle/product/8.1.5
--with-zlib
--with-dbase
--with-filepro
--with-config-file-path=/etc/httpd/conf
--with-fdftk=no
--enable-debug=no
--enable-magic-quotes
--enable-debugger
--enable-bcmath
--enable-track-vars
--enable-safe-mode
--with-exec-dir=/usr/bin
--with-system-regex
--no-create
--no-recursion
--with-oracle 选项让php可以通过ORA_函数访问 Oracle 7.x 或8.x
--with-oci8 选项让php可以使用更多更好的 oci8函数
4. make
5. make install
6. cp ./php.ini-dist /wherever/your/conf/files/are/php.ini
将php.ini拷贝到适当的位置
7. 修改httpd.conf
修改如下这一行
LoadModule php4_module lib/apache/libphp4.so
改为:
LoadModule php4_module /usr/lib/apache/libphp4.so
8. 重新启动APACHE
9. 测试PHP4的安装是否成功
创建一个test.php3内容为:
<? phpinfo(); ?>
在浏览器中访问它,看是否有ORACLE和ORACLE8的信息。
 
如果有的话,那么就恭喜你了!
10. 现在开始使用ORACLE的函数吧
<?
// 设置ORACLE环境变量
putenv("ORACLE_SID=PROD");
putenv("ORACLE_HOME=/usr/local/oracle/8i/u01/app/oracle/product/8.1.5");
// 建立连接
// 修改现在的user_id,password,db以适应你的配置
if( = OCILogon("user_id","password","db"))
{
// 取得数据库的信息
printf("%s</P>", OCIServerVersion());
}
else
{
printf("Conncetion Failed");
}
?>
这段程序会显示出你所连接到的ORACLE的一些信息
12. 其它
如果你需要连接到远程的ORACLE服务器,你就还需要设置你的sqlnet.ora 和 tnsnames.ora 来指定远程数据库的位置。
 
向数据库管理员要求,拷贝一些文件放到
/network/admin/ 目录下
数据库服务器每天凌晨两点进行数据库备份,同时对5天前的数据库备份文件进行删除,不然的话就会把硬盘给撑爆的
windows的日志里给出信息:
SQL Server Scheduled Job 'DB 维护计划“数据库维护计划1”的 DB 备份作业。' (0x2DA54A5BBEFC2B4A874428B91602C52A) - Status: 失败 - Invoked on: 2005-09-09 01:00:00 - Message: 作业失败。
  调度 28 (第 1 调度) 唤醒调用了该作业。最后运行的步骤是第 1 步(第 1 步)。
sql server里给出的日志:
sqlmaint.exe failed [SQLSTATE 42000]
相关的微软给出的kb
http://support.microsoft.com/?kbid=288577
http://support.microsoft.com/kb/303292/EN-US/
好像讲得一头雾水。
后来才发现是原来那些要备份的数据库中,其中有一个是脱机的,结果导致不能把它备份,也不能把它过期的删除掉,没办法,只好把它重新朕机上了。


-- =============================================
-- Create scalar function (NWGetPYFirst)
-- =============================================
IF EXISTS (SELECT *
FROM sysobjects
WHERE name = N'NWGetPYFirst')
DROP FUNCTION NWGetPYFirst
GO
CREATE FUNCTION NWGetPYFirst
(@str varchar(500) = '')
RETURNS varchar(500)
AS
BEGIN
Declare @strlen int,
@return varchar(500),
@ii int,
@c char(1),
@chn nchar(1)
--//初始化变量
Declare @pytable table(
chn char(2) COLLATE Chinese_PRC_CS_AS NOT NULL,
py char(1) COLLATE Chinese_PRC_CS_AS NULL,
PRIMARY KEY (chn)
)
insert into @pytable values('吖', 'A')
insert into @pytable values('八', 'B')
insert into @pytable values('嚓', 'C')
insert into @pytable values(' sql server 2000以前的版本,例如7.0一般不存在多个版本,只有标准版跟桌面版,用户如果不清楚该装什么版本的话,可按安装上的安装先决条件指示安装,一般在WIN2000 服务器版上装标准版,其他的系统装桌面版的就可以;而SQL Server 2000安装问题就比较大,时常见问题有如下:
(1)配置服务器时中断.
(2)注册 ActiveX 时中断.
(3)显示到100%的时候中断.
(4)提示:command line option syntax error, type command /? for help,继续安装,最后在配置服务器的时候出现:无法找到动态链接SQLUNIRL.DLL于指定的路径……
(5)以前进行的程序创建了挂起的文件操作,运行安装程序前,必须重新启动
(1)(2)(3)的解决办法:
提醒:为避免误操作,先备份注册表和数据库进不了SQL Server 2000,可以备份 Program FilesMicrosoft SQL ServerMSSQLData 文件夹的文件.
1、先把SQL Server卸载(卸载不掉也没有关系,继续下面的操作)
2、把Microsoft SQL Server文件夹整个删掉。
3、运行注册表,删除如下项:
HKEY_CURRENT_USERSoftwareMicrosoftMicrosoft SQL Server
HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server
HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServer
4、需要的话就重新启动系统
5、重新安装
另外也可尝试单步运行安装 SQL Server 2000的方法:
1:放入 SQL Server 2000 光盘.
2:在"开始"--"运行"键入 "F:x86setup.exe k=dbg" (F是光盘)
注意:
一、不同的操作系统支持的SQL Server 2000版本以及对硬件的要求。
Windows 2000 Server可以安装SQL Server 2000的任何版本.
Windows 2000 Professional只能安装SQL Server 2000的个人版、开发版、评估版、MCDE
二、
SQL Server 2000各版本以及对硬件的要求。
(4)的解决办法
因为安装文件的路径(完整路径)里有中文.
比如 c:SQLSERVER中文企业版
改成 c:SQLSERVER
(5)的解决办法
a、重启机器,再进行安装,如果发现还有该错误,请按下面步骤
b、在开始->运行中输入regedit
c、到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager 位置
d、选择文件->倒出,保存
e、在右边窗口右击PendingFileRenameOperations,选择删除,然后确认
f、重启安装,问题解决
-------------------------------------------------------
[!--infotagslink--]

相关文章

  • 图解PHP使用Zend Guard 6.0加密方法教程

    有时为了网站安全和版权问题,会对自己写的php源码进行加密,在php加密技术上最常用的是zend公司的zend guard 加密软件,现在我们来图文讲解一下。 下面就简单说说如何...2016-11-25
  • ps怎么使用HSL面板

    ps软件是现在很多人都会使用到的,HSL面板在ps软件中又有着非常独特的作用。这次文章就给大家介绍下ps怎么使用HSL面板,还不知道使用方法的下面一起来看看。 &#8195;...2017-07-06
  • Plesk控制面板新手使用手册总结

    许多的朋友对于Plesk控制面板应用不是非常的了解特别是英文版的Plesk控制面板,在这里小编整理了一些关于Plesk控制面板常用的使用方案整理,具体如下。 本文基于Linu...2016-10-10
  • 使用insertAfter()方法在现有元素后添加一个新元素

    复制代码 代码如下: //在现有元素后添加一个新元素 function insertAfter(newElement, targetElement){ var parent = targetElement.parentNode; if (parent.lastChild == targetElement){ parent.appendChild(newEl...2014-05-31
  • 使用GruntJS构建Web程序之构建篇

    大概有如下步骤 新建项目Bejs 新建文件package.json 新建文件Gruntfile.js 命令行执行grunt任务 一、新建项目Bejs源码放在src下,该目录有两个js文件,selector.js和ajax.js。编译后代码放在dest,这个grunt会...2014-06-07
  • 使用percona-toolkit操作MySQL的实用命令小结

    1.pt-archiver 功能介绍: 将mysql数据库中表的记录归档到另外一个表或者文件 用法介绍: pt-archiver [OPTION...] --source DSN --where WHERE 这个工具只是归档旧的数据,不会对线上数据的OLTP查询造成太大影响,你可以将...2015-11-24
  • 如何使用php脚本给html中引用的js和css路径打上版本号

    在搜索引擎中搜索关键字.htaccess 缓存,你可以搜索到很多关于设置网站文件缓存的教程,通过设置可以将css、js等不太经常更新的文件缓存在浏览器端,这样访客每次访问你的网站的时候,浏览器就可以从浏览器的缓存中获取css、...2015-11-24
  • 安装和使用percona-toolkit来辅助操作MySQL的基本教程

    一、percona-toolkit简介 percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: 检查master和slave数据的一致性 有效地对记录进行归档 查找重复的索...2015-11-24
  • jQuery 1.9使用$.support替代$.browser的使用方法

    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 。 在更新的 2.0 版本中,将不再支持 IE 6/7/8。 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9。 如果要全面支持 IE,并混合...2014-05-31
  • MySQL日志分析软件mysqlsla的安装和使用教程

    一、下载 mysqlsla [root@localhost tmp]# wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz--19:45:45-- http://hackmysql.com/scripts/mysqlsla-2.03.tar.gzResolving hackmysql.com... 64.13.232.157Conn...2015-11-24
  • php语言中使用json的技巧及json的实现代码详解

    目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。我写过一篇《数据类型和JSON格式》,探讨它的设计思想。今天,我想总结一下PHP语言对它的支持,这是开发互联网应用程序(特别是编写API)必须了解的知识...2015-10-30
  • PHP实现无限级分类(不使用递归)

    无限级分类在开发中经常使用,例如:部门结构、文章分类。无限级分类的难点在于“输出”和“查询”,例如 将文章分类输出为<ul>列表形式; 查找分类A下面所有分类包含的文章。1.实现原理 几种常见的实现方法,各有利弊。其中...2015-10-23
  • C#注释的一些使用方法浅谈

    C#注释的一些使用方法浅谈,需要的朋友可以参考一下...2020-06-25
  • php类的使用实例教程

    php类的使用实例教程 <?php /** * Class program for yinghua05-2 * designer :songsong */ class Template { var $tpl_vars; var $tpl_path; var $_deb...2016-11-25
  • SQL Server中row_number函数的常见用法示例详解

    这篇文章主要给大家介绍了关于SQL Server中row_number函数的常见用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08
  • JavaScript动态创建div属性和样式示例代码

    1.创建div元素: Javascript代码 复制代码 代码如下: <scripttypescripttype="text/javascript"> functioncreateElement(){ varcreateDiv=document.createElement("div"); createDiv.innerHTML="Testcreateadiveleme...2013-10-13
  • 双冒号 ::在PHP中的使用情况

    前几天在百度知道里面看到有人问PHP中双冒号::的用法,当时给他的回答比较简洁因为手机打字不大方便!今天突然想起来,所以在这里总结一下我遇到的双冒号::在PHP中使用的情况!双冒号操作符即作用域限定操作符Scope Resoluti...2015-11-08
  • C#查询SqlServer数据库并返回单个值的方法

    这篇文章主要介绍了C#查询SqlServer数据库并返回单个值的方法,涉及C#操作SQLServer数据库查询的相关技巧,需要的朋友可以参考下...2020-06-25
  • PHP mysql与mysqli事务使用说明 分享

    mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。应用比较多的地方是 mysqli的事务。...2013-10-02
  • Postman安装与使用详细教程 附postman离线安装包

    这篇文章主要介绍了Postman安装与使用详细教程 附postman离线安装包,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-05