Мы находимся в ситуации, когда нам необходимо восстановить некоторые данные из резервных копий. Нам удалось восстановить базы данных 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.
После того как мы извлекли необходимые нам данные, мы планируем уничтожить эти восстановленные базы данных.
Если вы хотите восстановить на новый сервер только частичные коллекции, достаточно просто восстановить базы данных Tfs_DefaultCollection.
Прежде чем перемещать коллекцию, сначала отсоедините ее от развертывания сервера Azure DevOps, на котором она работает.
После отсоединения коллекции создайте резервную копию ее базы данных, чтобы переместить ее на другой сервер. Для выполнения этой задачи используйте инструменты, поставляемые с SQL Server.
В рамках перемещения коллекции вы должны восстановить, скопировать или иным образом переместить базу данных коллекции в экземпляр SQL Server, настроенный для поддержки развертывания Azure DevOps Server, на который вы перемещаете коллекцию.
После восстановления базы данных коллекции вы можете прикрепить ее к предпочтительному развертыванию Azure DevOps Server.
Вы можете пропустить эту процедуру, если вы переместили коллекцию в тот же домен и собираетесь использовать то же веб-приложение, которое ранее поддерживало коллекцию, и вы хотите разрешить администраторам этой коллекции доступ к этому развертыванию Azure DevOps Server.
Эту процедуру можно пропустить, если вы переместили коллекцию в тот же домен и хотите предоставить пользователям проектов в этой коллекции доступ к этому развертыванию Azure DevOps Server.
Подробную информацию смотрите в разделе Переместить коллекцию проектов.
Вы можете начать с шага 3. Просто восстановите базу данных Tfs_DefaultCollection и переместите ее на целевой сервер. Затем прикрепите коллекцию к своему тестовому серверу.
Мы попробовали это, восстановленная база данных не отображается в диалоговом окне «Присоединить коллекцию». Что нам нужно сделать, чтобы она появилась здесь?
Кроме того, при попытке использовать коллекции TFSConfig /attach мы сталкиваемся с той же проблемой, что и здесь Developercommunity.visualstudio.com/t/… Вы уверены, что этот метод поддерживается?
То есть вы имеете в виду, что не отсоединили коллекцию перед резервным копированием? Если это так, вы не можете просто восстановить базу данных Tfs_DefaultCollection. При ошибке «TF246064: не найдена база данных для следующего хоста...» попробуйте добавить флаг /Continue
в команду TfsConfig remapDBs
и проверьте, помогает ли это.
спасибо, мы попробуем это. Мы просто выбрали резервные копии из еженедельных резервных копий TFS, которые были созданы с помощью консоли администратора TFS.
мы заставили его работать, см. мой пост о решении выше
Спасибо за ваши подробные обновления. Это было бы полезно для других, у кого может возникнуть такая же проблема.
Основываясь на комментариях Цзыяна Лю-MSFT ниже, мы смогли решить нашу проблему с восстановлением подмножества баз данных Azure DevOps Server.
В нашем сценарии мы не смогли отсоединить базу данных перед резервным копированием, нам пришлось использовать резервную копию из еженедельной ротации резервных копий. Похоже, эту комбинацию невозможно получить онлайн, вместо этого нам пришлось использовать опцию OfflineDetach, чтобы настроить базу данных коллекции в правильном состоянии.
Действия, которые мы предприняли, чтобы разместить коллекцию проектов онлайн на тестовом сервере
tfsconfig remapDBs /DatabaseName:TESTHOSTSQL;AzureDevOps_Configuration /SQLInstances:TESTHOSTSQL /continue
tfsconfig offlineDetach /configurationDb:TESTHOSTSQL;AzureDevOps_Configuration /collectionDB:TESTHOSTSQL;AzureDevOps_DefaultCollection
Спасибо за ваш ответ. В нашем случае мы восстанавливаемся из резервной копии, поэтому у меня нет возможности сначала отсоединить коллекцию. Есть ли работоспособное решение вместо восстановления всех коллекций?