zoukankan      html  css  js  c++  java
  • SQLServer使用脚本执行数据库备份

     背景

    sql server express版无法使用作业,提供一种解决思路

    fullbak.sql 完整备份

    数据库实例级别的完整备份,备份路径为E:sqlbak数据库名,注意需要添加好当前数据库实例各数据库名的子目录

    EXEC sp_MSForEachDB 'USE [?];
    PRINT DB_NAME();
    DECLARE @databasename NVARCHAR(128) =DB_NAME();
    
    --恢复模式为完整 
    IF EXISTS (SELECT *
               FROM sys.databases
               WHERE name=DB_NAME()AND recovery_model_desc=''FULL'')BEGIN
        DECLARE @backupname NVARCHAR(128);
        SET @backupname=''E:sqlbak''+@databasename+''''+@databasename+''_fullbak_''+REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(50), GETDATE(), 120), ''-'', ''''), '':'', ''''), '' '', ''_'')+''.bak'';
        EXEC(''
    BACKUP DATABASE [''+@databasename+''] TO  DISK = N''''''+@backupname+''''''
    WITH  RETAINDAYS = 14, NOFORMAT, NOINIT,  NAME = N''''''+@databasename+''-完整 数据库 备份'''', 
    SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10
    ''   );
    END;
    '

    cleanbak.sql 清理脚本

    /*  ---   开启xp_cmdshell权限,可通过数据库操作文件  ---
    use master;
    go
    
    sp_configure 'show advanced options',1
    reconfigure
    go
    sp_configure 'xp_cmdshell',1
    reconfigure
    go
    */
    
    exec master.dbo.xp_cmdshell 'forfiles /p "E:sqlbak" /s /m *.bak /d -15 /c "cmd /c del @path"'

    SQLBak.bat 使用bat执行sql文件 

    @ECHO OFF?
    
    SET dbhost=127.0.0.1
    SET dbuser=sa
    SET dbpasswd=123456
    set dbName=master
    SET sqlpath=%~dp0
    set bakfile=fullbak.sql
    set cleanfile=cleanbak.sql
    
    ::执行SQL脚本
    osql -S %dbhost% -U %dbuser% -P %dbpasswd% -d %dbName% -i %sqlpath%%bakfile%
    ECHO 备份完成!
    
    ::执行清理脚本
    osql -S %dbhost% -U %dbuser% -P %dbpasswd% -d %dbName% -i %sqlpath%%cleanfile%
    ECHO 清理完成!
    
    PAUSE
    
    @ECHO Done!?

    配置windows计划任务,执行该bat文件

    【管理工具】-【任务计划程序】-【创建基本任务】

    选择每天2:00,执行SQLBak.bat 文件

  • 相关阅读:
    MyBatis框架Dao代理
    MyBatis对象分析及创建工具类
    搭建MyBatis开发环境及基本的CURD
    IDEA中配置Maven
    rpm 安装mysql8.0 ;安装deb
    SpringBoot 整合 xxl-job 指导手册
    设计模式(一) 单例设计模式
    SpringCloud (三) Eureka 注册中心
    SpringCloud (二) 注册中心理论
    SpringCloud (一) 微服务入门
  • 原文地址:https://www.cnblogs.com/Canyon/p/12060618.html
Copyright © 2011-2022 走看看