如何备份文件和文件组 (Transact-SQL)
当数据库大小和性能要求使完整数据库备份显得不切实际,则可以创建文件备份。“文件备份”**包含一个或多个文件(或文件组)中的所有数据。有关文件备份的详细信息,请参阅完整文件备份和差异文件备份。
重要提示: |
---|
在简单恢复模式下,读/写文件必须一同备份。这将确保数据库可以还原到一致的时间点。不要逐个指定读/写文件或文件组,而应使用 READ_WRITE_FILEGROUPS 选项。此选项将所有读/写文件组备份到数据库中。通过指定 READ_WRITE_FILEGROUPS 创建的备份称为“部分备份”。有关详细信息,请参阅部分备份。 |
备份文件和文件组
若要创建文件或文件组备份,请使用 BACKUP DATABASE <file_or_filegroup> 语句。此语句至少必须指定以下各项:
- 数据库名称。
- FILE 或 FILEGROUP 子句(为每个文件或文件组分别指定)。
- 将写入完整备份的备份设备。
用于文件备份的基本 Transact-SQL 语法如下:
BACKUP DATABASE database
{ FILE **=**logical_file_name | FILEGROUP **=**logical_filegroup_name } [ ,...f ]
TO backup_device [ ,...n ]
[ WITH with_options [ ,...o ] ] ;
选项
在完整恢复模式下,还必须备份事务日志。若要使用一整套文件的完整备份来还原数据库,您还必须拥有足够的日志备份,以便涵盖从第一个文件备份开始的所有文件备份。有关详细信息,请参阅如何创建事务日志备份 (Transact-SQL)。
示例
下面的示例备份了 Sales
数据库的辅助文件组的一个或多个文件。此数据库使用完整恢复模式并且包含以下辅助文件组:
- 名为
SalesGroup1
的文件组,它包含文件SGrp1Fi1
和SGrp1Fi2
。 - 名为
SalesGroup2
的文件组,它包含文件SGrp2Fi1
和SGrp2Fi2
。
注意: |
---|
在完整恢复模式下,需要定期日志备份以截断日志,这样才能将数据库还原到特定时间点。 |
A. 为两个文件创建文件备份
下面的示例仅为 SalesGroup1
文件组的 SGrp1Fi2
文件和 SalesGroup2
文件组的 SGrp2Fi2
文件创建差异文件备份。
--Backup the files in the SalesGroup1 secondary filegroup.
BACKUP DATABASE Sales
FILE = 'SGrp1Fi2',
FILE = 'SGrp2Fi2'
TO DISK = 'G:\SQL Server Backups\Sales\SalesGroup1.bck'
GO
B. 为两个辅助文件组创建完整文件备份
下面的示例为两个辅助文件组中的所有文件创建完整文件备份。
--Back up the files in SalesGroup1.
BACKUP DATABASE Sales
FILEGROUP = 'SalesGroup1',
FILEGROUP = 'SalesGroup2'
TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck'
GO
C. 为两个辅助文件组创建差异文件备份
下面的示例为两个辅助文件组中的所有文件创建差异文件备份。
--Back up the files in SalesGroup1.
BACKUP DATABASE Sales
FILEGROUP = 'SalesGroup1',
FILEGROUP = 'SalesGroup2'
TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck'
GO
WITH
DIFFERENTIAL,
GO
请参阅
任务
如何备份数据库文件和文件组 (SQL Server Management Studio)
概念
查看有关备份的信息
完整文件备份
执行文件还原(完整恢复模式)
其他资源
BACKUP (Transact-SQL)
RESTORE (Transact-SQL)