管理员 发表于 2018-6-17 15:19:21

如何自动定时备份数据库

步骤1:创建用于执行备份的存储过程:
USE
GO   
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE .
       @databaseName sysname, @backupType CHAR(1)
AS
BEGIN
       SET NOCOUNT ON;

       DECLARE @sqlCommand NVARCHAR(1000)
       DECLARE @dateTime NVARCHAR(20)

       SELECT @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),111),'/','') +
       REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')

       IF @backupType = 'F'
               SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName +
               ' TO DISK = ''C:\Backup\' + @databaseName + '_Full_' + @dateTime + '.BAK'''
      
       IF @backupType = 'D'
               SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName +
               ' TO DISK = ''C:\Backup\' + @databaseName + '_Diff_' + @dateTime + '.BAK'' WITH DIFFERENTIAL'
      
       IF @backupType = 'L'
               SET @sqlCommand = 'BACKUP LOG ' + @databaseName +
               ' TO DISK = ''C:\Backup\' + @databaseName + '_Log_' + @dateTime + '.TRN'''
      
       EXECUTE sp_executesql @sqlCommand
END

您可以更改“C:\Backup\”到“你的目录”,您希望将备份存储在。

步骤2:
运行在你的SQL语句在Management Studio管理工具中。(打开的你的Management Studio库管工具,直接运行,无需再选择数据库运行了。)
步骤3:
建立你的备份脚本并保存为backup.sql。
你可以复制的行和编辑数据库名称:
sp_BackupDatabase 'Account_DBF', 'F'
GO
sp_BackupDatabase 'Character_DBF', 'F'
GO
sp_BackupDatabase 'Logging_DBF', 'F'
GO
sp_BackupDatabase 'Ranking_DBF', 'F'
GO
步骤4:现在的的难点。
你需要创建一个计划任务。
预定任务必须运行以下命令:
sqlcmd -S SQLINSTANCE -E -i PathToYourBackupSQL
像这个样子 sqlcmd -S .\FLYFF -E -i C:\Things\Backup.sql
步骤5:为您的预定任务创建一个触发器,并将其配置为在特定时间内的
步骤6:
确保在“创建任务”窗口的主选项卡中设置“以最高权限运行”。

页: [1]
查看完整版本: 如何自动定时备份数据库