备份所有sql server数据库的批处理脚本

我们已经讨论了如何从命令行备份SQLServer数据库,所以如果您想一次备份所有数据库呢?您可以创建一个批处理脚本,为每个数据库运行备份命令,但每次添加或删除数据库时都必须更新此脚本。此外,数据库备份都将附加到一个文件中,该文件每次运行时都会随着新备份的大小而增长。相反,在真正的“设置并忘记它”方式中,我们将创建一个批处理脚本,它将随着新数据库的添加和删除而适应您的SQL Server。...

我们已经讨论了如何从命令行备份SQLServer数据库,所以如果您想一次备份所有数据库呢?您可以创建一个批处理脚本,为每个数据库运行备份命令,但每次添加或删除数据库时都必须更新此脚本。此外,数据库备份都将附加到一个文件中,该文件每次运行时都会随着新备份的大小而增长。相反,在真正的“设置并忘记它”方式中,我们将创建一个批处理脚本,它将随着新数据库的添加和删除而适应您的SQL Server。

为了切中要害,下面是备份脚本:

@ECHO OFF SETLOCAL

REM Get date in format YYYY-MM-DD (assumes the locale is the United States) FOR /F “tokens=1,2,3,4 delims=/ ” %%A IN (‘Date /T’) DO SET NowDate=%%D-%%B-%%C

REM Build a list of databases to backup SET DBList=%SystemDrive%SQLDBList.txt SqlCmd -E -S MyServer -h-1 -W -Q “SET NoCount ON; SELECT Name FROM master.dbo.sysDatabases WHERE [Name] NOT IN (‘master’,’model’,’msdb’,’tempdb’)” > “%DBList%”

REM Backup each database, prepending the date to the filename FOR /F “tokens=*” %%I IN (%DBList%) DO ( ECHO Backing up database: %%I SqlCmd -E -S MyServer -Q “BACKUP DATABASE [%%I] TO Disk=’D:Backup%NowDate%_%%I.bak'” ECHO. )

REM Clean up the temp file IF EXIST “%DBList%” DEL /F /Q “%DBList%”

ENDLOCAL

假设日期是2009年1月13日,并且您有3个名为“MyDB”、“AnotherDB”和“DB Name with Spaces”的数据库,脚本将在指定的备份位置生成3个文件:

  • 2009-01-13_另一个数据库bak
  • 2009-01-13 \u DB名称Spacess.bak
  • 2009-01-13_我的数据库.bak

自定义和运行批处理脚本

当然,您需要根据您的环境自定义脚本,因此需要执行以下操作:

  • 如果您的计算机的区域设置未设置为美国,则命令'Date/T'可能不会返回格式为“2009年1月13日星期二”的日期。如果是这种情况,NowDate变量将不会产生所需的格式,应该进行调整。(1处)
  • 将“MyServer”更改为SQL Server的名称(如果适用,请添加实例名称)。(2处)
  • 名为“master”、“model”、“msdb”和“tempdb”的数据库是SQL Server附带的数据库。如果不希望备份其他数据库名称,可以将其添加到此列表中。(1处)
  • 将备份位置从“D:backup”更改为要存储数据库备份文件的位置。

自定义批处理脚本后,将其计划为以具有管理员权限的用户身份通过Windows任务计划程序运行,您就可以全部设置好了。

  • 发表于 2021-04-13 11:21
  • 阅读 ( 76 )
  • 分类:互联网

你可能感兴趣的文章

使用bginfo构建网络计算机的系统信息数据库

...具的一个鲜为人知的特性是能够将系统信息自动保存到SQL数据库或其他数据文件中。只需几分钟的设置工作,您就可以轻松地配置BGInfo,将所有网络计算机的系统信息记录在一个集中的存储位置。然后,您可以使用这些数据来监...

  • 发布于 2021-04-13 02:12
  • 阅读 ( 164 )

使sql server数据库维护简单的批处理脚本

...之外,SQL Server还提供了各种任务和功能,它们可以提高数据库的性能和可靠性。我们之前已经向您展示了如何使用简单的命令行脚本备份SQL Server数据库,因此我们将以同样的方式提供一个脚本,它将允许您轻松地执行常见的维...

  • 发布于 2021-04-13 07:02
  • 阅读 ( 192 )

如何将sql数据库备份到网络共享

必须定期备份SQL数据库。我们已经介绍了可以轻松地将所有SQL server数据库备份到本地硬盘驱动器的方法,但这并不能防止驱动器和/或系统故障。作为针对此类灾难的额外保护层,您可以在网络共享上复制或直接创建备份。 本...

  • 发布于 2021-04-13 10:39
  • 阅读 ( 213 )

使用sql server management studio还原sql数据库备份

我们之前介绍过使用命令行进行简单的SQL数据库还原,该命令行非常适合还原在同一个SQL Server安装上创建的备份文件,但是,如果您要还原在不同安装上创建的备份,或者只是喜欢点击式界面,使用SQLServerManagementStudio(或速成...

  • 发布于 2021-04-13 11:29
  • 阅读 ( 185 )

使用smtp在sql server中发送自动作业电子邮件通知

当在数据库服务器上运行自动备份作业时,有时甚至会忘记它们正在运行。然后忘记检查它们是否成功运行,直到数据库崩溃并且由于没有当前备份而无法恢复,才意识到这一点。 这就是电子邮件通知的来源,这样你每天早上...

  • 发布于 2021-04-14 15:47
  • 阅读 ( 162 )

ldf公司(ldf)和中密度纤维板(mdf)的区别

LDF与MDF 公司使用数据库来存储、检查和检索有价值的信息,如客户、市场调查、账目、市场趋势、供应清单、员工以及其他对公司及其日常运营至关重要的数据。大多数公司使用microsoftsql来创建数据库和存储信息,这使得它成...

  • 发布于 2021-06-23 22:08
  • 阅读 ( 316 )

铸造(cast)和转换(convert)的区别

铸造与转化 用于数据库和存储其他数学数据的各种软件的可用性极大地革新了许多工业企业的活动和标准操作程序。在所有这些计算机程序中,SQL server被证明是最简单和最实用的。 微软公司生产的sqlserver作为一种关系数据库...

  • 发布于 2021-06-23 23:54
  • 阅读 ( 215 )

ms sql服务器(ms sql server)和神谕(oracle)的区别

...赖互联网。这反过来又消除了旧日账本的使用,并导致了数据库的使用。渐渐地,我们开始使用关系数据库(RDB)来协同工作,使用更多的数据,而不必为不同的目的重新安排数据。为了处理RDB,数据库专家为这些关系数据库创...

  • 发布于 2021-06-24 23:32
  • 阅读 ( 226 )

xss公司(xss)和sql注入(sql injection)的区别

...,而不是输入实际的输入值。因此,该代码可以在网站的数据库上执行。同样,用户可以访问诸如用户名和密码之类的机密细节。因此,开发网站的程序员必须注意防止SQL注入攻击。 xss公司(xss)和sql注入(sql injection)的区别 定义 X...

  • 发布于 2021-07-02 01:23
  • 阅读 ( 410 )

数据传输系统(dts)和ssis公司(ssis)的区别

DTS是用于从源加载数据的原始服务。它用于SQL数据库。在SSIS进入市场之前,DTS用于从源加载数据。SSIS使用ETL工具。E代表提取,T代表变换,L代表加载。DTS能够与Microsoft分开使用,并使用其他一些数据库。数据传输系统(dts) vs. ssi...

  • 发布于 2021-07-11 16:47
  • 阅读 ( 345 )
onooj6332
onooj6332

0 篇文章

相关推荐