您正在使用IPV4(35.153.166.111)访问本站 您本次共访问本站 1 次
 用户名: 密 码: 验证码:     用QQ登录本站
首页 软件 编程 笑话 知识 公告 台风 日历 计算器 行情 简化版
文明驾车我带头,文明行路我带头,礼貌让座我带头      

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年74元       [公益] 节省一分零钱 献出一份爱心 温暖世间真情      
虚位以待
2021年 冬至节 14
2021年 圣诞节 18
2022年 元 旦 25
2022年 春 节 56
 
  • 本类新增
    本类热门文章
    您现在的位置:首页 >> 数据库 >> 内容
    SQL Server2019数据库备份与还原脚本,数据库可批量备份
    内容摘要: 数据库单个备份数据库批量备份数据库还原数据库还原报错问题记录总结1.数据库单个备份图形化界面备份这里就不展示了,可以自行百度,下面直接贴代码USEMASTERIFEXISTS(SELECT*FROMsysobjectsWHEREid=OBJECT_ID(N'[BackupDataProc]')ANDOBJECTPROPERTY(id,N'IsProcedur......
    数据库单个备份

    数据库批量备份

    数据库还原

    数据库还原报错问题记录

    总结

    1.数据库单个备份图形化界面备份这里就不展示了,可以自行百度,下面直接贴代码

    USEMASTER

    IFEXISTS(SELECT*FROMsysobjectsWHEREid=OBJECT_ID(N'[BackupDataProc]')ANDOBJECTPROPERTY(id,N'IsProcedure')=1)

    DROPPROCEDUREBackupDataProc

    go

    createprocBackupDataProc

    @FullNameVarchar(200)--入参(数据库名)

    as

    begin

    [email protected](50)

    [email protected]='C:\myfile\database\[email protected]+'.bak'--备份到哪个路径(C:\myfile\database\)根据自己需求来定

    [email protected]=@FileFlagwithinit--核心代码

    end

    execBackupDataProcxxx

    执行成功后便会生成一个.bak文件到指定文件夹中,如图

    2.数据库批量备份(时间有点长,请等待)

    USEMASTER

    ifexists(SELECT*FROMsys.typesWHEREname='AllDatabasesNameType')

    droptypeAllDatabasesNameType

    go

    createtypeAllDatabasesNameTypeastable--自定义表类型用于存储数据库名称

    (

    rowNumint,

    namenvarchar(60),

    filenamenvarchar(300)

    )

    go

    IFEXISTS(SELECT*FROMsysobjectsWHEREid=OBJECT_ID(N'[BachBackupDataProc]')ANDOBJECTPROPERTY(id,N'IsProcedure')=1)

    DROPPROCEDUREBachBackupDataProc

    go

    createprocBachBackupDataProc

    @filePathnvarchar(300)--入参,备份时的目标路径

    as

    begin

    Declare@AllDatabasesNameasAllDatabasesNameType--用于存储系统中的数据库名

    [email protected]环变量

    [email protected](name,filename,rowNum)selectname,filename,ROW_NUMBER()over(orderbyname)asrowNumfromsysdatabaseswherenamenotin('master','tempdb','model','msdb')--赋值

    [email protected]=1

    --循环备份数据库

    [email protected]<=(selectCOUNT(*)[email protected])

    begin

    [email protected](500)

    [email protected](50)

    [email protected][email protected][email protected]

    [email protected][email protected][email protected]+'.bak'

    [email protected][email protected]

    [email protected][email protected]+1

    end

    end

    execBachBackupDataProc'C:\myfile\database\'

    执行结果效果如下图:

    3.数据库还原

    IFEXISTS(SELECT*FROMsysobjectsWHEREid=OBJECT_ID(N'[ReductionProc]')ANDOBJECTPROPERTY(id,N'IsProcedure')=1)

    DROPPROCEDUREReductionProc

    go

    createprocReductionProc

    @Namenvarchar(200)--入参数据库名称

    as

    begin

    [email protected](500)

    [email protected](100)

    [email protected](500)

    [email protected](500)

    [email protected][email protected]+'_log'

    [email protected]='C:\myfile\database\[email protected]+'.bak'---(源)备份文件路径

    [email protected]='C:\ProgramFiles\MicrosoftSQLServer\MSSQL15.MSSQLSERVER\MSSQL\DATA\[email protected]+'.mdf'---(目标)指定数据文件路径

    [email protected]='C:\ProgramFiles\MicrosoftSQLServer\MSSQL15.MSSQLSERVER\MSSQL\DATA\[email protected]+'.ldf'---目标)指定日志文件路径

    [email protected]待还原库名

    FROMDISK=@DiskName---备份文件名

    [email protected]@FileFlagData,---指定数据文件路径

    [email protected]@FileFlagLog,---指定日志文件路径

    STATS=10,REPLACE

    end

    go

    execReductionProcxxx

    执行后便能还原库(我是拿这三个库做测试,截的图可能没什么变化,你们可以尝试下)

    4.数据库还原报错问题记录

    当然还原的过程可能会遇到一些问题,比如:

    1.版本不一样

    2.SQLSql逻辑文件'XXXXX'不是数据库'YYY'的一部分。请使用RESTOREFILELISTONLY来列出逻辑文件名。

    版本的话我试过了,高版本可以向下兼容,但是低版本不能向上兼容,可以统一版本来解决(如有更好的解决方案欢迎打扰)

    第二个问题呢就是脚本中‘MOVE'他只能跟逻辑名,而有些数据库的逻辑名并不是数据库名称,所以需要替换一下,

    下面是查询数据库逻辑名的sql语句:

    USEMASTER

    restorefilelistonlyfromdisk='D:\sql201database\Sence.bak'--根据自己的需求要变更路径

    对于这些逻辑名与数据库名称不一致的情况可以单独拿出来重新执行一下即可:

    USEMASTER--这里注意要使用MASTER,以免出现待还原库被占用的情况

    RESTOREDATABASESence--为待还原库名

    FROMDISK='D:\sql201database\Sence.bak'---备份文件名

    WITHMOVE'Sence_Guangxi'TO'D:\Database\Data\Sence.mdf',---指定数据文件路径

    MOVE'Sence_Guangxi_log'TO'D:\Database\Data\Sence_log.ldf',---指定日志文件路径

    STATS=10,REPLACE

    GO

    上一篇:查询数据库大小的代码 下一篇:sql server 2008数据库连接字符串大全
    发布日期:2021/11/18
    手机扫二维码直达本页
    发布时间:16:06:51
    点击:205
    录入:齐天大圣
    相关文章
    Baidu
    YiJiaCMS 6.0.9.10888 Build 21.11.30(MSSQL) 闽ICP备05000814号-1
    本空间由腾讯云(轻量应用服务器)提供,百度云加速提供加速防护
    ©2000-2021