Как планировать и автоматизировать резервное копирование баз данных SQL Server в SQL Server, экспресс-выпусков

Переводы статьи Переводы статьи
Код статьи: 2019698 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Аннотация

Выпуски SQL Server Express не предусмотрена возможность задания расписания или планы обслуживания так как компонент агента SQL Server не входит в состав этих выпусков. Поэтому необходимо сделать другой подход, чтобы создать резервную копию базы данных в этих выпусках.   

В настоящее время пользователям SQL Server Express можно сделать резервную копию своих баз данных с помощью одного из следующих способов:

Использования SQL Server Management Studio Express, устанавливаются вместе с SQL Server Express дополнительные службы или набора средств управления SQL Server Express. Для получения дополнительных сведений обратитесь к как: резервной копии базы данных (среда SQL Server Management Studio) раздел в электронной документации по SQL Server.

  • Используйте Резервную КОПИЮ базы данных семейства команды в сценарии T-SQL.

    В этой статье объясняется, как автоматизировать резервное копирование баз данных на SQL Server, экспресс-выпуск по расписанию можно с помощью сценария T-SQL в сочетании с планировщиком заданий Windows.

  • Дополнительная информация

    Необходимо выполнить следующие три шага для создания резервной копии базы данных SQL с помощью планировщика заданий Windows

    Шаг 1: в главной базе данных с помощью SQL Server Management Studio express или Sqlcmd создать следующую хранимую процедуру:

    / / © Корпорация Майкрософт.  Все права защищены.

    / / Этот код в производство условия

    / / Microsoft общественной лицензии (MS-PL http://opensource.org/licenses/ms-pl.html .)

    Использование [Основной]
    GO 
    / ****** Объект: хранимая процедура [dbo].[sp_BackupDatabases] ****** /
    SET ansi_nulls ON
    Перейти
    QUOTED_IDENTIFIER в значение ON
    Перейти
    --=============================================
    --Автор: Microsoft
    --Дата создания: 2010-02-06
    --Описание: резервного копирования баз данных для SQLExpress
    --параметр1: имя базы данных
    --параметр2: Тип_архива F = Полный, D = разностная резервная копия, L = журнал
    --параметр3: расположение файла резервной копии
    --=============================================
    Создать ПРОЦЕДУРУ [dbo]. [sp_BackupDatabases]
    @ имя базы данных sysname = null,
    @ Тип_архива CHAR(1), nvarchar(200)
    @ расположение
    AS
    SET NOCOUNT ON;  
               
                DECLARE @DBs TABLE
                (
                      ID int IDENTITY PRIMARY KEY,
                      DBNAME nvarchar(500)
                )
               
                 -- Pick out only databases which are online in case ALL databases are chosen to be backed up
                 -- If specific database is chosen to be backed up only pick that out from @DBs
                INSERT INTO @DBs (DBNAME)
                SELECT Name FROM master.sys.databases
                where state=0
                AND name=@DatabaseName
                OR @DatabaseName IS NULL
                ORDER BY Name
               
                -- Filter out databases which do not need to backed up
                IF @backupType='F'
                      BEGIN
                      DELETE @DBs where DBNAME IN ('tempdb','Northwind','pubs','AdventureWorks')
                      END
                ELSE IF @backupType='D'
                      BEGIN
                      DELETE @DBs where DBNAME IN ('tempdb','Northwind','pubs','master','AdventureWorks')
                      END
                ELSE IF @backupType='L'
                      BEGIN
                      DELETE @DBs where DBNAME IN ('tempdb','Northwind','pubs','master','AdventureWorks')
                      END
                ELSE
                      BEGIN
                      RETURN
                      END
               
                -- Declare variables
                DECLARE @BackupName varchar(100)
                DECLARE @BackupFile varchar(100)
                DECLARE @DBNAME varchar(300)
                DECLARE @sqlCommand NVARCHAR(1000) 
            DECLARE @dateTime NVARCHAR(20)
                DECLARE @Loop int                  
                           
                -- Loop through the databases one by one
                SELECT @Loop = min(ID) FROM @DBs
     
          WHILE @Loop IS NOT NULL
          BEGIN
     
    -- Database Names have to be in [dbname] formate since some have - or _ in their name
          SET @DBNAME = '['+(SELECT DBNAME FROM @DBs WHERE ID = @Loop)+']'
     
    -- Set the current date and time n yyyyhhmmss format
          SET @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),101),'/','') + '_' +  REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')  
     
    -- Create backup filename in path\filename.extension format for full,diff and log backups
          IF @backupType = 'F'
                SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, '[',''),']','')+ '_FULL_'+ @dateTime+ '.BAK "
    ELSE Если @ Тип_архива = было"
    SET @ BackupFile = @ расположение + REPLACE (заменить (@ DBNAME, "[",''), "]",'') "_DIFF_" + @ dateTime + ".BAK "
    ELSE Если @ Тип_архива = 'L'
    SET @ BackupFile = @ расположение + REPLACE (заменить (@ DBNAME," [",''),"] ",'')"_LOG_"+ @ dateTime +".TRN "
    --имя резервной копии для хранения в СМИ
    @ Тип_архива = 'F'
    значение @ Имя_резервной_копии = REPLACE(REPLACE(@DBNAME,'[',''),']','') +" полной резервной копии для "+ @ dateTime
    @ Тип_архива = было"
    SET @ Имя_резервной_копии = REPLACE(REPLACE(@DBNAME,'[',''),']','') + "разностная резервная копия для" + @ dateTime
    @ Тип_архива = 'L'
    SET @ Имя_резервной_копии = REPLACE(REPLACE(@DBNAME,'[',''),']','') + "резервная копия журнала для" + @ dateTime
    --создавать динамические команды SQL для выполнения
    @ Тип_архива = 'F'
                      BEGIN
                   SET @sqlCommand = 'BACKUP DATABASE ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'
                      END
           IF @backupType = 'D'
                      BEGIN
                   SET @sqlCommand = 'BACKUP DATABASE ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH DIFFERENTIAL, INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'        
                      END
           IF @backupType = 'L' 
                      BEGIN
                   SET @sqlCommand = 'BACKUP LOG ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'        
                      END
     
    -- Execute the generated SQL command
           EXEC(@sqlCommand)
     
    -- Goto the next database
    SELECT @Loop = min(ID) FROM @DBs where ID>@Loop
     
    END

    Шаг 2: В текстовом редакторе создайте пакетный файл с именем sqlbackup.bat и скопируйте текст из одного из приведенных ниже в зависимости от конкретного сценария в файл:

    Example1.Полные резервные копии всех баз данных в локальном именованный экземпляр SQLEXPRESS, используя проверку подлинности Windows

    / / sqlbackup.bat

    sqlcmd -S. \EXPRESS –E -Q "EXEC sp_BackupDatabases @ расположение = было: \SQLBackups\', @ Тип_архива = «F»" 

    Example2: разностные резервные копии всех баз данных в локальном именованный экземпляр SQLEXPRESS, с помощью SQLLogin и пароль

    / / sqlbackup.bat

    Программа sqlcmd - U SQLLogin -P пароль -S. \SQLEXPRESS -Q "EXEC sp_BackupDatabases @ расположение = 'D:\SQLBackups', @ Тип_архива = бы" "

    Примечание: SQLLogin следует по крайней мере, роль оператора архива в SQL Server.


    Example3:Журнал резервные копии всех баз данных в локальной именованный экземпляр SQLEXPRESS, используя проверку подлинности Windows

    / / sqlbackup.bat

    Программа sqlcmd -S. \SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @ backupLocation='D:\SQLBackups\',@backupType='L" "

    Example4:Полные резервные копии базы данных USERDB в локальном именованный экземпляр SQLEXPRESS, используя проверку подлинности Windows

    / / sqlbackup.bat

    Программа sqlcmd -S. \SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @ расположение = было: \SQLBackups\", @ databaseName = "userdb", @ Тип_архива = «F» "

    Аналогичным образом можно воспользоваться разностной и бы резервной копии журналов из USERDB, передав ' и «L» соответственно для параметра @ Тип_архива.

    Шаг 3:Расписания задания с помощью планировщика заданий Windows для выполнения пакетного файла созданный на шаге 2. Для этого используйте следующую процедуру:

    1. На компьютере, на котором выполняется Microsoft SQL Server Express нажмите кнопку Пуск, выберите пункт Все программы, Стандартные, Служебные и выберите назначенные задачи. 
    2. Дважды щелкните значок новое назначенное задание. 
    3. В мастере планирования заданий нажмите кнопку "Далее". 
    4. Нажмите кнопку Обзор, выберите файл sqlbackup.bat, созданный на шаге 2 и нажмите кнопку Открыть. 
    5. Поле имя задачи введите SQLBACKUP и нажмите кнопку ежедневно. Нажмите кнопку Далее. 
    6. Укажите сведения для расписания выполнения задания. Рекомендуется, чтобы это выполнить хотя бы один раз в день. Нажмите кнопку Далее.
    7. В ввод пользователем поле «имя» и введите в поле Пароль введите имя пользователя и пароль. Нажмите кнопку Далее. Учтите, что этот пользователь по меньшей мере будут назначаться BackupOperator роли на уровне SQL Server при использовании одного из пакетных файлов, в примере 1, 3 и 4.
    8. Нажмите кнопку Готово. 
    9. Выполнение назначенного задания по крайней мере один раз для обеспечения успешного создания резервной копии.

      Примечание: папки для исполняемого файла программы SQLCMD обычно находится в переменной Path для сервера после установки SQL Server, но в случаях, где переменной Path не содержит эту папку, его можно найти в разделе < место установки > \90\Tools\Binn (например: C:\Program Files\Microsoft SQL Server\90\Tools\Binn).

      При помощи процедуры, описанной в этой статье Имейте в виду следующее:

      • В то время, когда запланировано выполнение должна быть запущена служба планировщика заданий Windows. Рекомендуется установить тип запуска для этой службы, как Автоматическое. Это гарантирует, что служба выполняется даже перезагрузить компьютер.
      • Существует должно быть достаточно места на диске, где записываются резервных копий. Рекомендуется удалить старые файлы в папку резервного копирования на регулярной основе, чтобы убедиться, что не нехватке места на диске. Сценарий содержит логику для очистки старых файлов.

      Дополнительные ссылки:

    Примечание. Это ЭКСПРЕСС-ПУБЛИКАЦИЯ, подготовленная непосредственно службой технической поддержки Майкрософт . Сведения, содержащиеся в данном документе, предоставлены в качестве отклика на возникшие проблемы. Из-за срочности в материалах могут быть опечатки, и в любое время и без уведомления в них могут быть внесены изменения. Чтобы получить дополнительные сведения, см. Условия использования.

    Свойства

    Код статьи: 2019698 - Последний отзыв: 4 февраля 2011 г. - Revision: 6.0
    Информация в данной статье относится к следующим продуктам.
    • Microsoft SQL Server 2008 Express
    • Microsoft SQL Server 2008 Express with Advanced Services
    • Microsoft SQL Server 2005 Express Edition
    • Microsoft SQL Server 2005 Express Edition with Advanced Services
    Ключевые слова: 
    kbmt KB2019698 KbMtru
    Переведено с помощью машинного перевода
    ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
    Эта статья на английском языке:2019698

    Отправить отзыв

     

    Contact us for more help

    Contact us for more help
    Connect with Answer Desk for expert help.
    Get more support from smallbusiness.support.microsoft.com