#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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS