mysql自动执行bat_【最佳实践】bat实现自动化运行sql

本文介绍了如何通过bat脚本来实现MySQL数据库的自动化管理,包括数据库的备份、重命名、新建、权限分配、数据清理和迁移等操作。脚本详细记录了每个步骤的日志,以确保数据库操作的完整性和可追溯性。
摘要由CSDN通过智能技术生成

需求

(1)需要把现有test库备份,修改成test_当前日期,加入现在是 20200716,就改成 test_200716。

(2)然后重新创建数据库test,把原来的表结构和存储过程函数一类的全部构建到新建的 test 库上。

(3)把现有用户对新建的这个 test 库授权读写访问

(4)把 test_200716 的一些数据清理掉,并且把一部分数据比如某些表的三天内数据插入到新建的 test 库中

(5)然后以为有多个操作,每次我们新建一个 test_200716 这样的,我们就把最老的 比如 test_200602库 给删掉(删之前脚本里有操作先备份避免误删和无法找回)

(6)操作完之后对线上数据库备份,并且删除4个月前的备份文件

【0】bat架构结构

e9e85bc78b0bba87fbc3dce4f2716d61.png

【1】bat脚本

@echo off

set today=%date:~0,4%%date:~5,2%%date:~8,2%

set logfile=log_%today%.log

set errorfile=error_%today%.logecho--------------------- >>%logfile%

echo %date%%time%>>%logfile%echo 测试引擎服务是否启动......set /p="测试引擎服务是否启动......">%logfile%sqlcmd-S 127.0.0.1,1433 -Q "declare @i int;select @i=1;" 2>%errorfile%

IF ERRORLEVEL 1 echo fail>>%logfile%

IF ERRORLEVEL 0 echo ok>>%logfile%echo 开始重命名数据库/创建数据库......set /p="开始重命名数据库/创建数据库......">%logfile%sqlcmd-S 127.0.0.1,1433 -i 1_DB_renameAndCreate.sql -E -b 2>>%errorfile% 1>db_log_%today%.log

IF ERRORLEVEL 1 echo fail......请检查db_log_%today%.log 文件>>%logfile%

IF ERRORLEVEL 0 echo ok>>%logfile%echo 新建表和存储过程_修改存储过程......set /p="新建表和存储过程_修改存储过程......">%logfile%sqlcmd-S 127.0.0.1,1433 -i 2_新建表和存储过程_修改存储过程.sql -E -b 2>>%errorfile% 1>>db_log_%today%.log

IF ERRORLEVEL 1 echo fail......请检查db_log_%today%.log 文件>>%logfile%

IF ERRORLEVEL 0 echo ok>>%logfile%echo 授权_收缩日志......set /p="授权_收缩日志......">%logfile%sqlcmd-S 127.0.0.1,1433 -i 3_授权_收缩日志.sql -E -b 2>>%errorfile% 1>>db_log_%today%.log

IF ERRORLEVEL 1 echo fail......请检查db_log_%today%.log 文件>>%logfile%

IF ERRORLEVEL 0 echo ok>>%logfile%echo 维护......set /p="维护......">%logfile%sqlcmd-S 127.0.0.1,1433 -i 4_维护.sql -E -b 2>>%errorfile% 1>>db_log_%today%.log

IF ERRORLEVEL 1 echo fail......请检查db_log_%today%.log 文件>>%logfile%

IF ERRORLEVEL 0 echo ok>>%logfile%echo 删除最早的库_删除4个月前的备份文件......set /p="删除最早的库_删除4个月前的备份文件......">%logfile%sqlcmd-S 127.0.0.1,1433 -i 5_删除最早的库_删除4个月前的备份文件.sql -E -b 2>>%errorfile% 1>>db_log_%today%.log

IF ERRORLEVEL 1 echo fail......请检查db_log_%today%.log 文件>>%logfile%

IF ERRORLEVEL 0 echo ok>>%logfile%echo 启动sql server代理服务......set /p="启动sql server代理服务......">%logfile%net start "SQLSERVERAGENT"1>>%logfile%net start "SQLSERVERAGENT"2>>%logfile%echo 执行完毕,请查看%errorfile%与%logfile%!

timeout/t 100

【2】1_DB_renameAndCreate.sql(重命名与创建数据库)

修改老数据库  test为 test_当前日期,新建一个test

begintryusemaster;set nocount on;print '----------------------------------------------'

print '~~~~~~~~~~1_DB_renameAndCreate.sql~~~~~~~~~~~~'

print '-------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值