下面是详细讲解“MSSQL 2008 自动备份数据库的设置方法”的完整攻略:
1. 查看当前数据库的备份类型
在开始设置自动备份之前,需要先查看当前数据库的备份类型,以便确定需要设置的备份方式。可以通过以下代码在 SQL Server Management Studio 的查询窗口中执行来查看:
USE master
GO
SELECT [name], recovery_model_desc FROM sys.databases
执行后,会返回所有数据库的名称和恢复模式,如下所示:
name | recovery_model_desc
-------------- | -------------------
master | SIMPLE
tempdb | SIMPLE
model | FULL
msdb | SIMPLE
AdventureWorks | SIMPLE
其中recovery_model_desc列显示的是恢复模式,分别有SIMPLE、FULL和BULK_LOGGED三种。如果当前数据库的恢复模式为SIMPLE,则只能使用完全备份和差异备份;如果为FULL或BULK_LOGGED,则还可以使用事务日志备份。
2. 设置自动备份
2.1 完全备份
完全备份备份了整个数据库,包括数据、索引、存储过程等。设置自动完全备份的步骤如下:
- 在 SQL Server Management Studio 中右键点击需要备份的数据库,选择“属性”。
- 在弹出窗口中选择“选项”选项卡,找到“备份”选项,将“备份类型”设置为“完全备份”,设置“备份目录”。
- 点击“确定”保存设置。
2.2 差异备份
差异备份只备份上次完成完全备份或差异备份后发生的更改。如果没有完成过完全备份,则差异备份会失效。设置自动差异备份的步骤如下:
- 在 SQL Server Management Studio 中右键点击需要备份的数据库,选择“属性”。
- 在弹出窗口中选择“选项”选项卡,找到“备份”选项,将“备份类型”设置为“差异备份”,设置“备份目录”。
- 点击“确定”保存设置。
2.3 完全备份 + 差异备份
如果需要同时设置自动完全备份和差异备份,可以按照上述步骤设置即可。
2.4 事务日志备份
事务日志备份只备份数据库日志,可以用于恢复到某个时间点。设置自动事务日志备份的步骤如下:
- 在 SQL Server Management Studio 中右键点击需要备份的数据库,选择“属性”。
- 在弹出窗口中选择“选项”选项卡,找到“备份”选项,将“备份类型”设置为“事务日志备份”,设置“备份目录”。
- 点击“确定”保存设置。
示例说明
示例一:设置每天自动完全备份和差异备份
可以使用以下代码在 SQL Server Management Studio 的查询窗口中执行,设置每天在下午5点进行完全备份,每天在下午6点进行差异备份:
USE master
GO
EXEC sp_add_schedule @schedule_name = 'DailyBackup_Full',
@freq_type = 4,
@freq_interval = 1,
@freq_subday_type = 1,
@freq_subday_interval = 0,
@freq_relative_interval = 0,
@freq_recurrence_factor = 1,
@active_start_time = 170000;
EXEC sp_add_job @job_name = 'FullBackup',
@enabled = 1;
EXEC sp_add_jobstep @job_name = 'FullBackup',
@step_name = 'Backup',
@subsystem = 'TSQL',
@command = 'BACKUP DATABASE AdventureWorks TO DISK = ''E:\Backup\AdventureWorks_Full.BAK''',
@flags = 1;
EXEC sp_attach_schedule @job_name = 'FullBackup',
@schedule_name = 'DailyBackup_Full';
EXEC sp_add_schedule @schedule_name = 'DailyBackup_Diff',
@freq_type = 4,
@freq_interval = 1,
@freq_subday_type = 1,
@freq_subday_interval = 0,
@freq_relative_interval = 0,
@freq_recurrence_factor = 1,
@active_start_time = 180000;
EXEC sp_add_job @job_name = 'DiffBackup',
@enabled = 1;
EXEC sp_add_jobstep @job_name = 'DiffBackup',
@step_name = 'Backup',
@subsystem = 'TSQL',
@command = 'BACKUP DATABASE AdventureWorks TO DISK = ''E:\Backup\AdventureWorks_Diff.BAK'' WITH DIFFERENTIAL',
@flags = 1;
EXEC sp_attach_schedule @job_name = 'DiffBackup',
@schedule_name = 'DailyBackup_Diff';
执行之后,每天下午5点会自动进行完全备份,每天下午6点会自动进行差异备份。备份文件存储在E:\Backup目录下。
示例二:设置每小时自动事务日志备份
可以使用以下代码在 SQL Server Management Studio 的查询窗口中执行,设置每小时自动进行事务日志备份,备份文件存储在E:\Backup目录下:
USE master
GO
EXEC sp_add_schedule @schedule_name = 'LogBackup',
@freq_type = 4,
@freq_interval = 1,
@freq_subday_type = 4,
@freq_subday_interval = 1,
@freq_relative_interval = 0,
@freq_recurrence_factor = 1,
@active_start_time = 0;
EXEC sp_add_job @job_name = 'LogBackup',
@enabled = 1;
EXEC sp_add_jobstep @job_name = 'LogBackup',
@step_name = 'Backup',
@subsystem = 'TSQL',
@command = 'BACKUP LOG AdventureWorks TO DISK = ''E:\Backup\AdventureWorks_Log.trn''',
@flags = 1;
EXEC sp_attach_schedule @job_name = 'LogBackup',
@schedule_name = 'LogBackup';
执行之后,每小时会自动进行事务日志备份,备份文件存储在E:\Backup目录下。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MSSQL 2008 自动备份数据库的设置方法 - Python技术站