Резервное копирование Azure DevOps Server вручную

Azure DevOps Server 2022 г. | Azure DevOps Server 2020 г. | Azure DevOps Server 2019 г.

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

Чтобы вручную создать резервную копию Azure DevOps, создайте резервную копию всех баз данных, которые использует развертывание, а также синхронизируйте резервные копии в тот же момент времени. Для наиболее эффективного управления синхронизацией можно использовать помеченные транзакции. Если вы регулярно помечаете связанные транзакции в каждой базе данных, которую использует Azure DevOps, вы устанавливаете ряд общих точек восстановления в этих базах данных. Если регулярно создавать резервные копии этих баз данных, можно снизить риск потери данных или производительности из-за сбоя оборудования или других непредвиденных событий.

Предупреждение

Не следует вручную изменять базы данных Azure DevOps Server, если вы не получите инструкции служба поддержки Майкрософт или не выполняете процедуры, описанные в этом документе. Все остальные изменения могут сделать соглашение об обслуживании недействительным.

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

Примечание

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

Предварительные требования

Вы должны быть членом всех следующих групп:

  • Группа безопасности "Администраторы" на сервере, на котором запущена консоль администрирования для Azure DevOps Server.
  • Группа безопасности SQL Server системного администратора. Кроме того, разрешения на выполнение резервного копирования и создание плана обслуживания SQL Server должны иметь значение Разрешить для каждого экземпляра SQL Server, на котором размещаются базы данных, для которых требуется создать резервную копию. 

Резервное копирование ключа шифрования Reporting Services

Если в развертывании используется SQL Server Reporting Services, необходимо создать резервную копию не только баз данных, но и ключа шифрования.

Для развертывания Azure DevOps Server на одном сервере можно создать резервную копию ключа шифрования для SQL Server Reporting Services одним из двух способов. Можно использовать средство настройки Reporting Services или программу командной строки RSKEYMGMT, предоставляемую SQL Server. Для развертывания с несколькими серверами или кластеризованными развертываниями необходимо использовать RSKEYMGMT. Дополнительные сведения о программе RSKEYMGMT см. в разделе служебная программа RSKEYMGMT.

Дополнительные сведения о резервном копировании ключа шифрования см. в разделе Администрирование (Reporting Services). Дополнительные сведения о восстановлении ключа шифрования см. в статье Восстановление ключа шифрования (конфигурация Reporting Services).

Предварительные требования

Для выполнения этой процедуры необходимо быть членом группы локальных администраторов, которая имеет роль диспетчера содержимого в Reporting Services, или для разрешения на управление сервером отчетов должно быть задано значение Разрешить.

Резервное копирование ключа шифрования.

Чтобы создать резервную копию ключа шифрования с помощью средства настройки Reporting Services:

  1. На сервере, на котором выполняется Reporting Services, выберите Пуск, Все программы, Microsoft SQL Server, Средства настройки и Reporting Services Configuration Manager.

    Откроется диалоговое окно Выбор экземпляра установки сервера отчетов .

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

  3. На панели навигации слева выберите Ключи шифрования, а затем — Резервное копирование.

    Откроется диалоговое окно Сведения о ключе шифрования .

  4. В поле Расположение файла укажите расположение, в котором будет храниться копия этого ключа.

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

  5. В поле Пароль введите пароль для файла.

  6. В разделе Подтверждение пароля повторно введите пароль для файла.

  7. Щелкните ОК.

Определение баз данных

Прежде чем приступить к работе, определите все базы данных, которые потребуются для резервного копирования для полного восстановления развертывания. Сюда входят базы данных для SQL Server Reporting Services. Они могут находиться на одном сервере или на нескольких серверах. Полную таблицу и описание Azure DevOps Server баз данных, включая имена баз данных по умолчанию, см. в статье Общие сведения о базах данных Azure DevOps Server, топологиях развертывания и резервном копировании.

Определение баз данных

  1. Откройте SQL Server Management Studio и подключитесь к ядру СУБД.

  2. В SQL Server Management Studio в обозреватель объектов разверните имя сервера, а затем узел Базы данных.

  3. Просмотрите список баз данных и определите базы данных, используемые вашим развертыванием.

    Например, развертывание Azure DevOps Server Fabrikam, Inc. представляет собой конфигурацию с одним сервером и использует следующие базы данных:

    • база данных конфигурации (Tfs_Configuration);
    • база данных коллекции (Tfs_DefaultCollection);
    • база данных для хранилища данных (Tfs_Warehouse);
    • базы данных отчетов (ReportServer и ReportServerTempDB);

Создание таблиц в базах данных

Чтобы все базы данных восстанавливались до одной и той же точки, можно в каждой базе данных создать таблицу для пометки транзакций. Используйте функцию Query в SQL Server Management Studio, чтобы создать соответствующую таблицу в каждой базе данных.

  1. Откройте SQL Server Management Studio и подключитесь к ядру СУБД.

  2. В SQL Server Management Studio выделите имя сервера, откройте подменю и выберите Создать запрос.

    Будет открыто окно редактора запросов к ядру СУБД.

  3. В меню Запрос выберите Режим SQLCMD.

    Редактор запросов выполняет инструкции sqlcmd в контексте редактора запросов. Если меню Запрос не отображается, выберите в любом месте нового запроса в окне Редактор запросов ядра СУБД.

  4. На панели инструментов SQL Редактор откройте список Доступные базы данных и выберите TFS_Configuration.

    Примечание

    TFS_Configuration — это имя по умолчанию для базы данных конфигурации. Это имя можно изменять.

  5. В окне редактора запросов введите следующий скрипт, чтобы создать в базе данных конфигурации таблицу:

        Use Tfs_Configuration
    Create Table Tbl_TransactionLogMark
    (
    logmark int
    )
    GO
    Insert into Tbl_TransactionLogMark (logmark) Values (1)
    GO
    
  6. Нажмите клавишу F5 для запуска скрипта.

    Если сценарий правильный, в Редактор запросов появляется сообщение "(1 затронутая строка).)".

  7. (Необязательно.) Сохраните скрипт.

  8. Повторите шаги 4–7 для каждой базы данных в развертывании Azure DevOps Server. В примере развертывания Fabrikam, Inc. этот процесс повторяется для всех следующих баз данных:

    • Tfs_Warehouse
    • Tfs_DefaultCollection
    • ReportServer
    • ReportServerTempDB

Создание хранимой процедуры для пометки таблиц

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

  1. В SQL Server Management Studio откройте окно запроса и убедитесь, что включен режим SQLCMD.

  2. На панели инструментов SQL Редактор откройте список Доступные базы данных и выберите TFS_Configuration.

  3. В окне редактора запросов введите следующий скрипт, чтобы создать хранимую процедуру для пометки транзакций в базе данных конфигурации:

        Create PROCEDURE sp_SetTransactionLogMark
    @name nvarchar (128)
    AS
    BEGIN TRANSACTION @name WITH MARK
    UPDATE Tfs_Configuration.dbo.Tbl_TransactionLogMark SET logmark = 1
    COMMIT TRANSACTION
    GO
    
  4. Нажмите клавишу F5 , чтобы выполнить процедуру.

    Если процедура выполнена правильно, в Редактор запросов появится сообщение "Команды успешно завершены".

  5. (Необязательно.) Сохраните процедуру.

  6. Повторите шаги 2–5 для каждой базы данных Azure DevOps Server.  В развертывании Fabrikam, Inc. этот процесс будет повторяться для всех следующих баз данных:

    • Tfs_Warehouse
    • Tfs_DefaultCollection
    • ReportServer
    • ReportServerTempDB

    Совет

    Перед созданием процедуры выберите имя связанной базы данных из списка Доступные базы данных в обозреватель объектов. В противном случае при выполнении скрипта вы увидите сообщение об ошибке о том, что хранимая процедура уже существует.

Создание хранимой процедуры для одновременной пометки всех таблиц

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

  1. В SQL Server Management Studio откройте окно запроса и убедитесь, что включен режим SQLCMD.

  2. На панели инструментов SQL Редактор откройте список Доступные базы данных и выберите TFS_Configuration.

  3. В окне запроса создайте хранимую процедуру, которая выполняет хранимые процедуры, созданные в каждой базе данных, которую Azure DevOps Server использует. Замените ServerName именем сервера, на котором выполняется SQL Server, а вместо Tfs_CollectionName — именем базы данных для каждой коллекции проектов.

    В примере развертывания имя сервера — FABRIKAMPRIME, и в развертывании есть только одна коллекция проектов, созданная по умолчанию при установке Azure DevOps Server (DefaultCollection). Учитывая эти обстоятельства, следует написать следующий скрипт:

        CREATE PROCEDURE sp_SetTransactionLogMarkAll
    @name nvarchar (128)
    AS
    BEGIN TRANSACTION
    EXEC [FABRIKAMPRIME].Tfs_Configuration.dbo.sp_SetTransactionLogMark @name
    EXEC [FABRIKAMPRIME].ReportServer.dbo.sp_SetTransactionLogMark @name
    EXEC [FABRIKAMPRIME].ReportServerTempDB.dbo.sp_SetTransactionLogMark @name
    EXEC [FABRIKAMPRIME].Tfs_DefaultCollection.dbo.sp_SetTransactionLogMark @name
    EXEC [FABRIKAMPRIME].Tfs_Warehouse.dbo.sp_SetTransactionLogMark @name
    COMMIT TRANSACTION
    GO
    
  4. Нажмите клавишу F5 , чтобы выполнить процедуру.

    Примечание

    Если вы не перезапустили SQL Server Management Studio с момента создания хранимых процедур для маркировки транзакций, одна или несколько красных волнистых линий могут подчеркнуть имя сервера и имена баз данных. Однако эти процедуры все равно должны работать.

    Если процедура верна, в Редактор запросов появится сообщение "Команды успешно завершены".

  5. (Необязательно.) Сохраните процедуру.

Создание хранимой процедуры для автоматической пометки таблиц

После создания процедуры, которая будет выполнять все хранимые процедуры для маркировки таблиц, можно создать процедуру, которая будет помечать все таблицы одинаковым маркером транзакции. Этот маркер будет использоваться для восстановления всех баз данных до одной точки.

  1. В SQL Server Management Studio откройте окно запроса и убедитесь, что включен режим SQLCMD.

  2. На панели инструментов SQL Редактор откройте список Доступные базы данных и выберите TFS_Configuration.

  3. В окне запросов введите следующий скрипт, чтобы пометить таблицы меткой TFSMark:

    EXEC sp_SetTransactionLogMarkAll 'TFSMark'
    GO
    

    Примечание

    TFSMark — это пример метки. В качестве метки можно использовать любую последовательность поддерживаемых букв и цифр. Если в базах данных имеется более одной помеченной таблицы, запишите метку, которая будет использоваться для восстановления баз данных. Дополнительные сведения см. в разделе Использование помеченных транзакций.

  4. Нажмите клавишу F5 , чтобы выполнить процедуру.

    Если процедура является правильной, в Редактор запросов появится сообщение "(затронутые строки)". Параметр WITH MARK применяется только к первой инструкции BEGIN TRAN WITH MARK для каждой помеченной таблицы.

  5. Сохраните процедуру.

Создание запланированного задания для запуска процедуры пометки таблиц

Теперь, когда вы создали и сохранили все эти процедуры, запланируйте выполнение процедуры маркировки таблиц непосредственно перед запланированными резервными копиями баз данных. Запланируйте выполнение этого задания примерно за одну минуту до выполнения плана обслуживания баз данных.

  1. В обозреватель объектов разверните агент SQL Server, откройте меню Задания и выберите Создать задание.

    Откроется окно Новое задание .

  2. В поле Имя укажите имя задания. Например, в качестве имени задания можно ввести MarkTableJob .

  3. (Необязательно) В поле Описание укажите описание задания.

  4. В окне Выбор страницы выберите Шаги , а затем — Создать.

    Откроется окно Новый шаг задания .

  5. В поле Имя шага укажите имя шага.

  6. В поле База данных выберите имя базы данных конфигурации. Например, если в развертывании используется имя по умолчанию для этой базы данных, TFS_Configuration выберите ее из раскрывающегося списка.

  7. Нажмите кнопку Открыть, перейдите к процедуре, созданной для маркировки таблиц, нажмите кнопку Открыть два раза и нажмите кнопку ОК.

    Примечание

    Созданная процедура пометки таблиц запускает следующий шаг:

    EXEC sp_SetTransactionLogMarkAll 'TFSMark'
    
  8. На странице Выбор страницы выберите Расписания, а затем — Создать.

    Откроется окно Новое расписание заданий .

  9. В поле Имя укажите имя расписания.

  10. В разделе Частота измените частоту в соответствии с планом, который будет создан для резервного копирования баз данных. Например, вы можете выполнять добавочное резервное копирование ежедневно в 2:00, а полное резервное копирование — в воскресенье в 4:00. Чтобы пометить базы данных для добавочных резервных копий, измените значение Выполняется на Ежедневно. При создании другого задания, чтобы пометить базы данных для еженедельной полной резервной копии, оставьте значение Выполняетсяв ежедневном и выберите поле Воскресенье проверка.

  11. В разделе Ежедневная частота измените вхождение таким образом, чтобы задание было запланировано на выполнение за одну минуту до резервного копирования баз данных, а затем нажмите кнопку ОК. В примере развертывания в задании для добавочных резервных копий необходимо указать 1:59. В задании полного резервного копирования необходимо указать 3:59.

  12. В разделе Новое задание нажмите кнопку ОК , чтобы завершить создание запланированного задания.

Создание плана обслуживания для полных резервных копий

После создания запланированного задания для пометки баз данных можно использовать мастер планов обслуживания, чтобы запланировать полное резервное копирование всех баз данных, которые использует развертывание Azure DevOps Server.

Важно!

Если в развертывании используется выпуск Enterprise или Datacenter SQL Server, но может потребоваться восстановить базы данных на сервере под управлением standard edition, необходимо использовать резервный набор данных, который был создан с отключенным сжатием SQL Server. Если вы не отключите сжатие данных, вы не сможете восстановить базы данных Выпуска Enterprise или Datacenter на сервере с выпуском Standard. Перед созданием планов обслуживания следует отключить сжатие. Чтобы отключить сжатие, выполните действия, описанные в этой статье базы знаний Майкрософт.

  1. В SQL Server Management Studio разверните узел Управление, откройте подменю Планы обслуживания и выберите Мастер планов обслуживания.

  2. На странице приветствия мастера планов обслуживания SQL Server нажмите кнопку Далее.

    Откроется страница Выбор свойств плана .

  3. В поле Имя укажите имя плана обслуживания.

    Например, можно создать план для полного резервного копирования с именем TfsFullDataBackup.

  4. Выберите Одно расписание для всего плана или без расписания, а затем щелкните Изменить.

  5. В разделе Частота и Ежедневная частота укажите параметры для вашего плана. Например, можно указать еженедельное резервное копирование в воскресенье в разделе Частота и указать 4:00. в ежедневной частоте.

    В разделе Длительность оставьте значение по умолчанию Нет даты окончания. Нажмите кнопку ОК, а затем кнопку Далее.

  6. На странице Выбор задач обслуживания выберите поля База данных резервного копирования (полная), Выполнить задание агент SQL Server и Резервное копирование базы данных (журнал транзакций) проверка, а затем нажмите кнопку Далее.

  7. На странице Выбор порядка задач обслуживания измените порядок, чтобы сначала выполнялось полное резервное копирование, затем задание агента, а затем резервная копия журнала транзакций, а затем нажмите кнопку Далее.

    Для получения дополнительных сведений об этом диалоговом окне нажмите клавишу F1, а также см. раздел Мастер планов обслуживания.

  8. На странице Определение задачи резервного копирования базы данных (полная) щелкните стрелку вниз, выберите Все базы данных, а затем нажмите кнопку ОК.

  9. Укажите параметры резервного копирования для сохранения файлов на диск или ленту в соответствии с развертыванием и ресурсами, а затем нажмите кнопку Далее.

  10. На странице Определение задачи выполнения задания агент SQL Server выберите поле проверка запланированного задания, созданного для маркировки таблицы, и нажмите кнопку Далее.

  11. На странице Задачи Определение резервной копии базы данных (журнал транзакций) щелкните стрелку вниз, выберите Все базы данных и нажмите кнопку ОК.

  12. Укажите параметры резервного копирования для сохранения файлов на диск или ленту в соответствии с развертыванием и ресурсами, а затем нажмите кнопку Далее.

  13. На странице Выбор параметров отчета укажите параметры распределения отчетов, а затем нажмите кнопку Далее два раза.

  14. На странице Завершение работы мастера нажмите кнопку Готово.

    SQL Server создает план обслуживания и создает резервную копию указанных баз данных на основе указанной частоты.

Создание плана обслуживания для разностных резервных копий

Используйте мастер планов обслуживания, чтобы запланировать разностное резервное копирование для всех баз данных, которые использует развертывание Azure DevOps Server.

Важно!

SQL Server Express не включает мастер планов обслуживания. Необходимо вручную написать скрипт расписания разностного резервного копирования. Дополнительные сведения см. в статье Создание разностной резервной копии базы данных (Transact-SQL).

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

  2. Откройте SQL Server Management Studio.

    1. В списке Тип сервера выберите Компонент Компонент Database Engine.

    2. В списках Имя сервера и Проверка подлинности выберите соответствующий сервер и схему проверки подлинности.

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

    4. Выберите Подключиться.

  3. В SQL Server Management Studio разверните узел Управление, откройте подменю, выберите Планы обслуживания, а затем выберите Мастер планов обслуживания.

  4. На странице приветствия мастера планов обслуживания SQL Server нажмите кнопку Далее.

  5. На странице Выбор свойств плана в поле Имя укажите имя плана обслуживания.

    Например, можно назвать план для разностных резервных копий TfsDifferentialBackup.

  6. Выберите Одно расписание для всего плана или без расписания, а затем щелкните Изменить.

  7. В разделе Частота и Ежедневная частота укажите параметры для плана резервного копирования.

    В разделе Длительность оставьте значение по умолчанию Нет даты окончания. Нажмите кнопку ОК, а затем кнопку Далее.

  8. На странице Выбор задач обслуживания выберите проверка Резервное копирование базы данных (разностная) и нажмите кнопку Далее.

  9. На странице Определение задачи резервного копирования базы данных (разностная) щелкните стрелку вниз, выберите Все базы данных, а затем нажмите кнопку ОК.

  10. Укажите параметры резервного копирования для сохранения файлов на диск или ленту в соответствии с развертыванием и ресурсами, а затем нажмите кнопку Далее.

  11. На странице Выбор параметров отчета укажите параметры распределения отчетов, а затем нажмите кнопку Далее два раза.

  12. На странице Завершение работы мастера нажмите кнопку Готово.

    SQL Server создает план обслуживания и создает резервную копию указанных баз данных на основе указанной частоты.

Создание плана обслуживания для журналов транзакций

Мастер планов обслуживания можно использовать для планирования резервного копирования журналов транзакций для всех баз данных, которые использует развертывание Azure DevOps Server.

Важно!

SQL Server Express не включает мастер планов обслуживания. Необходимо вручную написать скрипт расписания резервного копирования журналов транзакций. Дополнительные сведения см. в статье Создание резервной копии журнала транзакций (Transact-SQL).

  1. Войдите на сервер, на котором выполняется экземпляр SQL Server, содержащий базы данных для резервного копирования.

  2. Откройте SQL Server Management Studio.

  3. В списке Тип сервера выберите Компонент Компонент Database Engine.

    1. В списках Имя сервера и Проверка подлинности выберите соответствующий сервер и схему проверки подлинности.

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

    3. Выберите Подключиться.

  4. В SQL Server Management Studio разверните узел Управление, откройте подменю, выберите Планы обслуживания, а затем выберите Мастер планов обслуживания.

  5. На странице приветствия мастера планов обслуживания SQL Server нажмите кнопку Далее.

    Откроется страница Выбор свойств плана .

  6. В поле Имя укажите имя плана обслуживания.

    Например, можно назвать план для резервного копирования журналов транзакций TfsTransactionLogBackup.

  7. Выберите Одно расписание для всего плана или без расписания, а затем щелкните Изменить.

  8. В разделе Частота и Ежедневная частота укажите параметры для вашего плана.

    В разделе Длительность оставьте значение по умолчанию Нет даты окончания.

  9. Нажмите кнопку ОК, а затем кнопку Далее.

  10. На странице Выбор задач обслуживания установите флажки Выполнение задания агент SQL Server и Резервное копирование базы данных (журнал транзакций) проверка, а затем нажмите кнопку Далее.

  11. На странице Выбор порядка задач обслуживания измените порядок, чтобы задание агента выполнялось до резервного копирования журнала транзакций, а затем нажмите кнопку Далее.

    Для получения дополнительных сведений об этом диалоговом окне нажмите клавишу F1, а также см. раздел Мастер планов обслуживания.

  12. На странице Определение задачи выполнения задания агент SQL Server выберите поле проверка запланированного задания, созданного для маркировки таблицы, и нажмите кнопку Далее.

  13. На странице Задачи Определение резервной копии базы данных (журнал транзакций) щелкните стрелку вниз, выберите Все базы данных и нажмите кнопку ОК.

  14. Укажите параметры резервного копирования для сохранения файлов на диск или ленту в соответствии с развертыванием и ресурсами, а затем нажмите кнопку Далее.

  15. На странице Выбор параметров отчета укажите параметры распределения отчетов, а затем нажмите кнопку Далее два раза.

  16. На странице Завершение работы мастера нажмите кнопку Готово.

    SQL Server создает план обслуживания и создает резервные копии журналов транзакций для указанных баз данных на основе выбранной частоты.

Резервное копирование ключа шифрования для Reporting Services

При резервном копировании системы необходимо создать резервную копию ключа шифрования для служб отчетов. Без этого ключа шифрования нельзя будет восстановить данные отчетов. Для односерверного развертывания Azure DevOps Server можно создать резервную копию ключа шифрования для SQL Server Reporting Services с помощью средства настройки Reporting Services. Вы также можете использовать программу командной строки RSKEYMGMT , но средство настройки проще. Дополнительные сведения см. в разделе служебная программа RSKEYMGMT.

  1. На сервере, на котором выполняется Reporting Services, откройте Reporting Services Configuration Manager.

    Откроется диалоговое окно Выбор экземпляра установки сервера отчетов .

  2. Укажите имя сервера уровня данных и экземпляра базы данных, а затем выберите Подключиться.

  3. На панели навигации слева выберите Ключи шифрования, а затем — Резервное копирование.

    Откроется диалоговое окно Сведения о ключе шифрования .

  4. В поле Расположение файла укажите расположение, в котором будет храниться копия этого ключа.

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

  5. В поле Пароль укажите пароль для файла.

  6. В разделе Подтверждение пароля укажите пароль для файла еще раз и нажмите кнопку ОК.