Не удалось завершить частичное восстановление нашей базы данных Azure DevOps

Мы находимся в ситуации, когда нам необходимо восстановить некоторые данные из резервных копий. Нам удалось восстановить базы данных Tfs_Configuration и Tfs_DefaultCollection на тестовом SQL-сервере. В производственной среде гораздо больше коллекций, мы восстановили только Configuration и DefaultCollection. Я ожидал, что этого будет достаточно, чтобы вернуть его в сеть. Сейчас мы пытаемся разместить эти коллекции в сети с помощью тестового сервера, чтобы мы могли извлечь необходимые данные, а затем уничтожить эту тестовую установку.

При запуске команды tfsconfig remapdbs мы получаем жалобу, что не удается найти другие базы данных.

"TF246064: No database could be found for the following host: CollectionName2. The host has the following ID: [guid]. To fix this problem, use the TFSCOnfig RemapDBs command-line tool and make sure that you specify the SQL Server instance that contains this database."

Я попробовал коллекции tfsconfig /detach и /delete, но они также не были приняты, поскольку не удалось найти базу данных. Кроме того, offlineDetach пока не увенчался успехом.

Кажется, я не могу найти никакой документации о том, как восстановить часть коллекций.

Есть ли командная строка, которую я могу запустить, чтобы отменить регистрацию коллекций? Или даже внести изменения в базу данных в Tfs_Configuration, чтобы другие коллекции больше не учитывались? Я уже пытался удалить строки из Tbl_Database, но это приводило к другим ошибкам при запуске TfsConfig.

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

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
92
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Если вы хотите восстановить на новый сервер только частичные коллекции, достаточно просто восстановить базы данных Tfs_DefaultCollection.

1. Отсоедините коллекцию

Прежде чем перемещать коллекцию, сначала отсоедините ее от развертывания сервера Azure DevOps, на котором она работает.

2. Создайте резервную копию базы данных коллекции.

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

3. Переместите базу данных коллекции

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

4. Прикрепите коллекцию

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

5. Настройте перемещенную коллекцию проектов.

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

6. Настройте проекты

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

Подробную информацию смотрите в разделе Переместить коллекцию проектов.

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

Nico 03.07.2024 09:09

Вы можете начать с шага 3. Просто восстановите базу данных Tfs_DefaultCollection и переместите ее на целевой сервер. Затем прикрепите коллекцию к своему тестовому серверу.

Ziyang Liu-MSFT 03.07.2024 09:20

Мы попробовали это, восстановленная база данных не отображается в диалоговом окне «Присоединить коллекцию». Что нам нужно сделать, чтобы она появилась здесь?

Nico 03.07.2024 15:16

Кроме того, при попытке использовать коллекции TFSConfig /attach мы сталкиваемся с той же проблемой, что и здесь Developercommunity.visualstudio.com/t/… Вы уверены, что этот метод поддерживается?

Nico 03.07.2024 15:30

То есть вы имеете в виду, что не отсоединили коллекцию перед резервным копированием? Если это так, вы не можете просто восстановить базу данных Tfs_DefaultCollection. При ошибке «TF246064: не найдена база данных для следующего хоста...» попробуйте добавить флаг /Continue в команду TfsConfig remapDBs и проверьте, помогает ли это.

Ziyang Liu-MSFT 04.07.2024 10:55

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

Nico 04.07.2024 11:49

мы заставили его работать, см. мой пост о решении выше

Nico 04.07.2024 13:10

Спасибо за ваши подробные обновления. Это было бы полезно для других, у кого может возникнуть такая же проблема.

Ziyang Liu-MSFT 04.07.2024 13:16
Ответ принят как подходящий

Основываясь на комментариях Цзыяна Лю-MSFT ниже, мы смогли решить нашу проблему с восстановлением подмножества баз данных Azure DevOps Server.

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

Действия, которые мы предприняли, чтобы разместить коллекцию проектов онлайн на тестовом сервере

  1. Восстановите базы данных AzureDevOps_Configuration и AzureDevOps_Collection на тестовом сервере.
  2. Запустите команду tfsconfig remapDbs с флагом /continue: tfsconfig remapDBs /DatabaseName:TESTHOSTSQL;AzureDevOps_Configuration /SQLInstances:TESTHOSTSQL /continue
  3. Теперь, когда база данных конфигурации и сбора правильно сопоставлена ​​с новым экземпляром SQL, мы можем продолжить работу с OfflineDetach.
  4. Запустите команду tfsconfig OfflineDetach: tfsconfig offlineDetach /configurationDb:TESTHOSTSQL;AzureDevOps_Configuration /collectionDB:TESTHOSTSQL;AzureDevOps_DefaultCollection
  5. Теперь AzureDevOps_DefaultCollection отделена от исходной базы данных конфигурации, и теперь мы можем подключить базу данных DefaultCollection к любому другому развертыванию Azure DevOps.
  6. В нашем случае мы настраиваем новый сервер приложений Azure DevOps Server с новой базой данных AzureDevops_Collection.
  7. Присоедините отделенную коллекцию к среде Azure DevOps.
  8. Теперь он должен быть онлайн и доступен.

Другие вопросы по теме