#author("2022-11-28T16:35:01+08:00","default:Admin","Admin") #author("2022-11-28T16:38:05+08:00","default:Admin","Admin") [[SQL Server]] #contents * 备份命令 [#g8c402ea] ** 创建完整的 SQL Server 备份到磁盘 [#gdb45da2] 该命令是 BACKUP DATABASE 数据库名称。“TO DISK”选项指定应将备份写入磁盘,并指定创建备份的位置和文件名。 #codeprettify{{ BACKUP DATABASE AdventureWorks TO DISK = 'C:\AdventureWorks.BAK' GO }} ** 创建差异 SQL Server 备份 [#qb88eada] 此命令添加“WITH DIFFERENTIAL”选项。 #codeprettify{{ BACKUP DATABASE AdventureWorks TO DISK = 'C:\AdventureWorks.BAK' WITH DIFFERENTIAL GO }} ** 恢复 [#s314bd1c] RESTORE DATABASE [SnPrintZC] FROM DISK = N'F:\sqlbackup\sp2' WITH FILE = 1, NOUNLOAD, STATS = 5 * 批处理备份脚本 [#k4d14c01] backup.sql #codeprettify{{ GO DECLARE @backupTime VARCHAR(20) DECLARE @fileName VARCHAR(1000) SELECT @backupTime =( CONVERT(VARCHAR(8), GETDATE(), 112) + REPLACE(CONVERT(VARCHAR(5), GETDATE(), 114), ':', '') ) SELECT @fileName = 'D:\Database_Backup\DB_' + @backupTime + '.bak' backup database 数据库名称 to disk = @fileName }} Backup.bat #codeprettify{{ sqlcmd -S . -i F:\Database_Backup\backup.sql }} * 批处理备份数据库文件 [#ee0144af] - DB_DOCUMENT表示原始数据库文件所在的目录 - DB_DOC_BAK表示数据库需要备份到的目录 #codeprettify{{ @ECHO OFF COLOR F2 ECHO. ::请设置SQL Server 数据库存放的文件夹目录 SET DB_DOCUMENT=F:\DataBase_1\*.* ::请设置SQL Server 数据库备份的文件夹目录 SET DB_DOC_BAK=F:\DB_BAK\ ECHO... ECHO --- 停止SQL Server服务 NET STOP MSSQLSERVER ECHO --- 拷贝数据库文件到备份目录 XCOPY %DB_DOCUMENT% %DB_DOC_BAK% /S /E /Y ECHO ... ECHO --- 启动SQL Server服务 NET START MSSQLSERVER EXIT }} * 恢复 [#f243214a] MS SQL Server的恢复: 简单恢复模型: ALTER DATABASE AdventureWorks SET RECOVERY SIMPLE(无需备份日志,最新备份之后的更改不受保护 ) 完整恢复模型: ALTER DATABASE AdventureWorks SET RECOVERY FULL(需要日志备份,可以恢复到任意时间点) 批量日志恢复模型: ALTER DATABASE AdventureWorks SET RECOVERY BULK_LOGGED(需要日志备份。是完整恢复模式的附加模式,允许执行高性能的大容量复制操作。) 还原数据库语句: RESTORE DATABASE 数据库FROM DISK=\\\'备份位置\\\' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10 #hr(); Comment: #comment_kcaptcha