【标签】MS SQL
1、备份
备份整个数据库,或者,指定文件或文件组。
语法:
BACKUP DATABASE { <数据库名> | @database_name_var }
{<file_or_filegroup> [ ,...f ] }
TO < backup_device > [ ,...n ]
[ [ MIRROR TO < backup_device > [ ,...n ] ] [ ...next-mirror ] ]
[ WITH
[ BLOCKSIZE = { blocksize | @blocksize_variable } ]
[ [ , ] { CHECKSUM | NO_CHECKSUM } ]
[ [ , ] { STOP_ON_ERROR | CONTINUE_AFTER_ERROR } ]
[ [ , ] DESCRIPTION = { 'text' | @text_variable } ]
[ [ , ] DIFFERENTIAL ]
[ [ , ] EXPIREDATE = { date | @date_var }
| RETAINDAYS = { days | @days_var } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] { FORMAT | NOFORMAT } ]
[ [ , ] { INIT | NOINIT } ]
[ [ , ] { NOSKIP | SKIP } ]
[ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
[ [ , ] COPY_ONLY ]
]
常用参数
backup_device |
指定用于备份操作的逻辑备份设备或物理备份设备。 备份设备可以是下列一种或多种形式:
- { logical_backup_device_name | @logical_backup_device_name_var }
- { DISK | TAPE } = { 'physical_backup_device_name' | @physical_backup_device_name_var }
|
file_or_filegroup |
指定包含在数据库备份中的文件或文件组的逻辑名。可以指定多个文件或文件组。
|
MIRROR TO |
表示伴随的备份设备组是包含二至四个镜像服务器的镜像媒体集中的一个镜像。若要指定镜像媒体集,请针对第一个镜像服务器设备使用 TO 子句,后跟最多三个 MIRROR TO 子句。
备份设备必须在类型和数量上等同于 TO 子句中指定的设备。在镜像媒体集中,所有的备份设备必须具有相同的属性。例如,使用同一制造商生产的同一型号的类似的磁带机设备。
每个镜像服务器都包括一个用于每个媒体簇的卷。若要备份到镜像媒体集,则所有的镜像服务器必须存在。当备份到现有媒体集时,TO 子句和每个 MIRROR TO 子句必须准确地按照创建媒体集时指定的那样来指定每个设备。
|
BLOCKSIZE |
= { blocksize | @blocksize_variable } 用字节数来指定物理块的大小。通常,无需使用该选项,因为 BACKUP 会自动选择适于磁盘或磁带设备的块大小。显式声明块大小将覆盖自动选择块大小。65,536 (64 KB) 是 SQL Server 支持的最大块大小。
如果您要执行计划存储在 CD-ROM 上的备份,则该选项很有用。若要将结果备份集传输到 CD-ROM,请将 BLOCKSIZE 设置为 2048。
|
DESCRIPTION |
= { 'text' | @text_variable } 指定说明备份集的自由格式文本。该字符串最长可以有 255 个字符。 |
DIFFERENTIAL |
指定数据库备份或文件备份应该只包含上次完整备份后更改的数据库或文件部分。差异备份一般会比完整备份占用更少的空间。对于上一次完整备份后备份的全部单个日志,使用该选项可以不必再进行备份。
|
EXPIREDATE |
= { date | @date_var } 指定备份集到期和允许被覆盖的日期。如果作为变量 (@date_var) 提供,则该日期必须采用已配置系统 datetime 的格式 |
RETAINDAYS |
= { days | @days_var } 指定必须经过多少天才可以覆盖该备份媒体集。如果作为变量 (@days_var) 提供,则必须指定为整数。 |
PASSWORD |
= { password | @password_variable } 为备份集设置密码。PASSWORD 是一个字符串。如果为备份集定义了密码,则必须提供此密码才能对该备份集执行任何的 SQL Server 还原操作。但是,备份集密码不能防止覆盖备份文件。若要防止覆盖备份文件,请改用媒体集密码 |
MEDIAPASSWORD |
= { mediapassword | @mediapassword_variable } 为媒体集设置密码。MEDIAPASSWORD 是一个字符串。如果为媒体集定义了密码,则在该媒体集上创建备份集之前必须提供此密码。另外,从该媒体集执行任何还原操作时也必须提供媒体密码。只有通过重新格式化才能覆盖受密码保护的媒体
|
NAME |
= { backup_set_name | @backup_set_var } 指定备份集的名称。名称最长可达 128 个字符。如果未指定 NAME,它将为空。
|
例1:备份整个数据库AdventureWorks 到局域网内
BACKUP DATABASE AdventureWorks TO DISK = '\\FILESERVER\Shared\Backup\AdvWorks.bak'
BACKUP DATABASE AdventureWorks TO DISK = 'D:\Backup\AdvWorks.bak' /* 备份到本机D盘 */
例2:备份数据库日志
BACKUP LOG AdventureWorks TO DISK = 'D:\Backup\AdvWorksLog.bak'
例3:使用MEDIAPASSWORD选项和PASSWORD选项
/* (1)仅用媒体密码 */
/* 备份 */
Backup DATABASE AdventureWorks To disk='D:\Backup\AdvWks.bak' WITH mediapassword='123456'
/ * 还原 */
RESTORE DATABASE AdventureWorks FROM DISK='D:\Backup\AdvWks.bak' WITH MEDIAPASSWORD='123456',REPLACE
/* (2)仅用密码 */
/* 备份 */
Backup DATABASE AdventureWorks To disk='D:\Backup\AdvWks.bak' WITH password='123456'
/* 还原 */
RESTORE DATABASE AdventureWorks FROM DISK='D:\Backup\AdvWks.bak' WITH password='123456', REPLACE
/* (3)同时使用2种密码 */
/* 备份 */
Backup DATABASE AdventureWorks To disk='D:\Backup\AdvWks.bak' WITH mediapassword='123456' ,PASSWORD='123456'
/* 还原 */
RESTORE DATABASE AdventureWorks FROM DISK='D:\Backup\AdvWks.bak' WITH PASSWORD='123456',MEDIAPASSWORD='123456',REPLACE
2、还原
从备件资源恢复到整个数据库。
语法:
RESTORE DATABASE { database_name | @database_name_var }
[ FROM < backup_device > [ ,...n ] ]
[ WITH
[ RESTRICTED_USER ]
[ [ , ] FILE = { file_number | @file_number } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ]
[ ,...n ]
[ [ , ] KEEP_REPLICATION ]
[ [ , ] { NORECOVERY | RECOVERY | STANDBY = undo_file_name } ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] REPLACE ]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
]