Як запланувати і автоматизувати резервне копіювання баз даних SQL Server, в SQL Server Express

Переклади статей Переклади статей
Номер статті: 2019698
Розгорнути все | Згорнути все

ПІДСУМКИ

Видання , SQL Server Express не пропонують шлях графіком робіт або технічного обслуговування планів, тому що компонент агент SQL Server не включені в ці видання. Таким чином, ви повинні прийняти інший підхід до резервне копіювання баз даних, під час використання цих видань.   

В даний час користувачів SQL Server Express можна архівувати свої бази даних за допомогою одного з таких методів:

Використання SQL сервер керування студії Експрес. Це інсталюється разом з або SQL Server Express додаткові служби, або SQL Server Express Toolkit. Для отримання додаткових відомостей зверніться до веб-сайту Microsoft розробників (MSDN):

Створіть повну резервну копію бази даних (SQL Server)

  • Використовувати оператори Transact-SQL скрипт, який використовує сім'ї резервне КОПІЮВАННЯ бази даних команд. Для отримання додаткової інформації зверніться до наступних веб-сайті MSDN:

    Резервне КОПІЮВАННЯ (Transact-SQL)

    У цій статті поетапно описано використання оператори Transact-SQL скрипт разом з Windows планувальника завдань для автоматизації резервного копіювання, SQL Server Express баз даних розкладом.

  • ДОДАТКОВІ ВІДОМОСТІ

    Ви повинні дотримуватися ці три кроки для резервного копіювання ваших баз даних SQL Server, за допомогою планувальника завдань Windows:

    Крок A: використання SQL Server управління студії Express або Sqlcmd для створення Збережена процедура бази даних master:

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

    / / Цей код виходу на умовах на

    / / Громадська ліцензія Microsoft (MS-PL, http://opensource.org/licenses/ms-pl.html.)

    Використання [майстер]
    GO 
    / ****** Об'єкт: StoredProcedure [dbo].[sp_BackupDatabases] ****** /
    ВСТАНОВИТИ ANSI_NULLS на
    ЙТИ
    ВСТАНОВИТИ QUOTED_IDENTIFIER на
    ЙТИ
    -=============================================
    -Автор: Microsoft
    -Дата створення: 2010-02-06
    -Опис: Резервне копіювання баз даних для SQLExpress
    -Parameter1: databaseName
    -Parameter2: backupType F = повне, D = диференціальних, L = журналу
    -Parameter3: розташування файлу резервної копії
    -=============================================
    Створити ПРОЦЕДУРУ [dbo]. [sp_BackupDatabases]
    @ databaseName-sysname = null,
    @ backupType CHAR(1),
    @ backupLocation nvarchar(200)
    AS
    ВСТАНОВЛЕНИЙ на NOCOUNT; 
               
                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 де DBNAME В ('tempdb', 'Борей', 'пабів', 'AdventureWorks')
    кінці
    ще якщо @ backupType = мав '
    ПОЧАТИ
    DELETE @ DBs де DBNAME В ('tempdb', 'Борей', 'пабів', майстер', 'AdventureWorks')
    кінця
    ще якщо @ backupType = 'L'
    ПОЧАТИ
    DELETE @ DBs де DBNAME В ('tempdb', 'Борей', 'пабів', майстер', 'AdventureWorks')
    кінця
    ELSE
    ПОЧАТИ
    повернення
    кінець
    -оголосити змінні
    ЗАЯВИТИ @ BackupName varchar(100)
    ЗАЯВИТИ @ BackupFile varchar(100)
    ОГОЛОСИТИ @ DBNAME varchar(300)
    ЗАЯВИТИ @ sqlCommand NVARCHAR(1000)
    ЗАЯВИТИ @ dateTime NVARCHAR(20)
    ЗАЯВИТИ @ Loop int
    -Зациклювання баз даних
    виберіть @ петлю = min(ID) від @ DBs
    час @ Loop IS NOT NULL
    ПОЧАТИ
    - імена бази даних мають бути у форматі [dbname], оскільки деякі з них - або в їх ім'я _
          ВСТАНОВИТИ @ DBNAME = '[' +(SELECT DBNAME FROM @DBs WHERE ID = @Loop) +']'
    – установити на поточний формат дати й часу n yyyyhhmmss
    SET @ dateTime = ЗАМІНИТИ (перетворення (VARCHAR, GETDATE(),101),'/','') + "_" + ЗАМІНИТИ (перетворення (VARCHAR, GETDATE(),108),':','')
    – Створення резервної копії ім'я файлу у форматі path\filename.extension для повного, порівняння та журналу резервних копій
    якщо @ backupType = 'F'
    SET @ BackupFile = @ backupLocation + ЗАМІНИТИ (ЗАМІНИТИ (@ DBNAME, ' [', '),'] ', ') + '_FULL_' + @ dateTime + '.Бак '
    ІНШЕ якщо @ backupType = були '
    SET @ BackupFile = @ backupLocation + ЗАМІНИТИ (ЗАМІНИТИ (@ DBNAME, ' [', '),'] ', ') + '_DIFF_' + @ dateTime + '.Бак '
    ІНШЕ якщо @ backupType = 'L'
    SET @ BackupFile = @ backupLocation + ЗАМІНИТИ (ЗАМІНИТИ (@ DBNAME, ' [', '),'] ', ') + '_LOG_' + @ dateTime + '.TRN'
     
    -- Provide the backup a name for storing in the media
          IF @backupType = 'F'
                SET @BackupName = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' full backup for '+ @dateTime
          IF @backupType = 'D'
                SET @BackupName = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' differential backup for '+ @dateTime
          IF @backupType = 'L'
                SET @BackupName = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' log backup for '+ @dateTime
     
    -- Generate the dynamic SQL command to be executed
     
           IF @backupType = '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 > @ цикл
    кінці

    Крок B: В текстовий редактор, створіть пакетний файл, що називається Sqlbackup.bat і скопіювати текст з однієї з таких прикладів до цього файлу, залежно від вашої ситуації:

    Example1:Повні резервні копії всіх баз даних в місцевих іменованого екземплярів SQLEXPRESS за допомогою автентифікацію Windows

    / / Sqlbackup.bat

    sqlcmd -С. \EXPRESS –E -Q "EXEC sp_BackupDatabases @ backupLocation = мав: \SQLBackups\', @ backupType = 'F'" 

    Example2: диференціальне резервне копіювання усіх баз даних в місцевих іменованого екземплярів SQLEXPRESS за допомогою в SQLLogin та свого пароля

    / / Sqlbackup.bat

    sqlcmd - U SQLLogin -P пароль -С. \SQLEXPRESS -Q "EXEC sp_BackupDatabases @ backupLocation = 'D:\SQLBackups', @ BackupType = мав '"

    Примітка: The SQLLogin shouldhave в останню оператора архівації роль в SQL Server.


    Приклад 3:Журнал резервні копії всіх баз даних в місцевих іменованого екземплярів SQLEXPRESS за допомогою автентифікацію Windows

    / / Sqlbackup.bat

    sqlcmd -С. \SQLEXPRESS -Е -Q "EXEC sp_BackupDatabases @ backupLocation='D:\SQLBackups\',@backupType='L'"

    Приклад 4:Повні резервні копії бази даних USERDB в місцевих іменованого екземплярів SQLEXPRESS за допомогою автентифікацію Windows

    / / Sqlbackup.bat

    sqlcmd -С. \SQLEXPRESS -Е -Q "EXEC sp_BackupDatabases @ backupLocation = мав: \SQLBackups\', @ databaseName = 'USERDB', @ backupType = 'F'"

    Аналогічним чином, можна зробити диференціалу резервної копії з USERDB під час вставляння в б ' для параметра @ backupType та журналу резервну копію USERDB шляхом вставлення в "L" для параметра @ backupType .

    Крок с.-Розклад роботи за допомогою планувальника завдань Windows виконати пакетного файлу, створеного на кроці b. Для цього виконайте такі дії:

    1. На комп'ютері, який працює SQL Server Express, натисніть кнопку Пуск, виберіть пункт Усі програми, стандартні, Службовіта натисніть кнопку запланованих завдань. 
    2. Двічі клацніть Додати запланована завдання. 
    3. У майстер планування завдань натисніть кнопку " Далі". 
    4. натисніть кнопку Огляд, виберіть пакетного файлу, створеного на кроці b і натисніть кнопку Відкрити. 
    5. Введіть SQLBACKUP для ім'я завдання, клацніть щодняі натисніть кнопку Далі. 
    6. Вкажіть відомості для розклад для виконання завдання. (Ми рекомендуємо запускати завдання принаймні один час кожен день). Натисніть наступний.
    7. У полі Введіть ім'я користувача введіть ім'я користувача та введіть пароль у полі Введіть пароль .

      Примітка Цей користувач має принаймні присвоєно SQL Server рівні, роль BackupOperator Якщо використовується одна з пакетних файлів у приклад 1, 3 або 4.
    8. Натисніть кнопку Даліі натисніть кнопку Готово. 
    9. Виконання запланованого завдання по крайней мере один раз, щоб переконатися, що резервну копію створено успішно.

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

      Пам'ятайте про таке під час використання процедура, описана в цій статті:

      • Служба планувальника завдань Windows має працювати в той час, що заплановано виконання роботи. Ми рекомендуємо встановити тип запуску цієї служби як Автоматичне. Це гарантує, що послуга буде працювати навіть на перезавантаження.
      • Там повинно бути багато місця на диску, на яку писали резервні копії. Радимо, що ви очистити старі файли в папку архіву регулярно, щоб переконатися, що ви не бракує вільного простору. Скрипт не містить логіку для очищення старого файли.

      Додаткові посилання

    Властивості

    Номер статті: 2019698 - Востаннє переглянуто: 29 червня 2012 р. - Редакція: 1.0
    Ключові слова: 
    kbmt KB2019698 KbMtuk
    Машинний переклад
    УВАГА! Цю статтю переклала програма машинного перекладу Microsoft, а не людина. Корпорація Microsoft пропонує вам як машинні переклади, так і переклади фахівців, щоб Ви мали доступ до всіх статей бази знань рідною мовою. Проте стаття, яку переклав комп’ютер, не завжди бездоганна. Вона може містити лексичні, синтаксичні або граматичні помилки. Так само помиляється іноземець, спілкуючись вашою рідною мовою. Корпорація Microsoft не несе відповідальність за жодні неточності, помилки або шкоду, завдану неправильним перекладом змісту або його використанням з боку користувачів. Крім того, корпорація Microsoft часто оновлює програму машинного перекладу.
    Клацніть тут, щоб переглянути цю статтю англійською мовою: 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