有你在真好 的个人博客
自动创建SQLServer数据库相关操作
阅读:2173 添加日期:2021/3/27 23:16:19 原文链接:https://www.toutiao.com/item/6930489262651572739/

一、概述

在开发过程中,实施工程师经常要用到sqlserver数据库,如果让工程师实际中操作数据库的话,相对难度比较大,为了方便、快速的部署数据库特意开发了通过批处理来操作数据库的功能,特意编写了此设计文档,此功能采用批处理和SQL脚本和结合来实现上述功能,此功能主要包括以下几部分内容创建数据库、创建数据库表、创建数据库作业、自动配置、启动SQLAgent服务等内容

二、文件类型介绍


自动创建SQLServer数据库相关操作

1、 第一文件为批处理文件,第二个文件为创建数据库,第三个文件为创建数据库表,第四个文件创建删除时间大于某天的数据库数据的作业,第五个文件为创建收缩、压缩数据库日志文件。

2、 Bat文件中内容

@echo.创建数据库......

OSQL[T1] -U sa -P sa -S jld1\wincc [T2] -d master -i CreatReport.sql -o a.txt

@echo.创建表结构......

OSQL -U sa -P sa -S jld1\wincc [T3] -d report -i CreatTab.sql -o b.txt

@echo.启动服务......

@sc config [T4] SQLAgent$wincc start= auto

@sc start SQLAgent$wincc

@echo.创建作业......

OSQL -U sa -P sa -S jld1\wincc[T5] -d report -i DelTab_Job.sql -o c.txt

OSQL -U sa -P sa -S jld1\wincc [T6] -d report -i ShrinkTab_Job.sql -o d.txt

@echo off

@echo.完成创建!

@pause

3、CreatReport.sql文件中主要有一下几部分需要修改


自动创建SQLServer数据库相关操作


需注意:黑笔划的部分需要修改成我们实际安装报表的路径


三、手动设置作业部分

主要通过sql作业计划来实现定时删除大于某一天的数据,分别删除表RCD_Log、RCD_Log_Operation、RCD_Process、RCD_Process_Main中数据。具体步骤为

1、 在附件服务中启动sql server agent 服务程序内设为“自动“启动,如图


自动创建SQLServer数据库相关操作


2、 设定sqlserver2005,sql server agent 启动


自动创建SQLServer数据库相关操作


3、 右键选择New Jobs ,在General 中Name栏里输入名称

4、 在Steps栏里输入Steps Name和sql删除语句。如

Delete from rcd_log where (datediff(dd,d_date,getdate())>183)


自动创建SQLServer数据库相关操作


5、 设置作业的的启动时机

6、程序执行时间为:每隔12个月中的第1个星期一执行,执行频率为0点到24点每6小时执行一次。


自动创建SQLServer数据库相关操作


7、 特殊处理

由于考虑到没对数据库执行相关操作尤其对数据库做删除大量数据时如50G等数据时会产生很大的日志,日志文件急速增大,所以需要收缩日志文件(ldf),具体过程如下

DUMP TRANSACTION report WITH NO_LOG

BACKUP LOG report WITH NO_LOG

DBCC SHRINKDATABASE(report)


ICP备案号:苏ICP备14035786号-1 苏公网安备 32050502001014号