Как конвертировать файлы SQL trn в файл bak?

#sql #sql-server

Вопрос:

SQL создает резервную копию моей базы данных во многих .trn файлах (в папке резервного копирования).

Проблема в том, что среда Azure Data Studio не может восстановить базу данных из .trn файлов. Это работает только с .bak файлами.

Есть ли способ конвертировать .trn в .bak (один файл)?

Комментарии:

1. в sql management studio мне нужно выбрать все файлы для восстановления. итак, есть ли sql-команда, подобная этой: «sql-cli —convert *.trn», и вывод такой backup.bak ?

2. Я преобразовал свой комментарий в ответ, приняв во внимание ваш комментарий.

Ответ №1:

Вам нужен файл резервной копии базы данных (обычно bak с расширением), чтобы добавить файл резервной копии журнала транзакций (обычно с trn расширением). Резервная копия журнала транзакций сама по себе не может быть восстановлена.

Об этом вы можете прочитать в документации по резервным копиям журналов транзакций:

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

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

Резервные копии должны быть восстановлены в том порядке, в котором они были созданы. Прежде чем вы сможете восстановить определенную резервную копию журнала транзакций, необходимо сначала восстановить следующие предыдущие резервные копии без отката незафиксированных транзакций, то есть С ПОМОЩЬЮ NORECOVERY:

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

Если у вас есть файл резервной копии базы данных и несколько файлов резервной копии журнала транзакций, и вам действительно нужен только один файл резервной копии, вам придется восстановить его в месте, которое может принимать файлы резервной копии журнала транзакций (например, локально или в вашей среде программирования). Затем из восстановленной базы данных создайте резервную копию базы данных, которую затем можно использовать в качестве одного файла резервной копии.

Комментарии:

1. Да, проблема в том, что я просто получаю trn файлы от своего клиента. к сожалению, я не могу этого изменить. и мне нужно восстановить их на моем сервере базы данных. Поэтому я ищу решение для преобразования.

2. @JonSud: если вы не можете это изменить, вам придется сказать своему клиенту, что вы не можете восстановить. Вы не можете каким-то образом «конвертировать» резервные копии журналов транзакций в полные резервные копии, это принципиально разные типы резервных копий. Вы должны начать по крайней мере с одной полной резервной копии, прежде чем сможете приступить к восстановлению резервных копий журналов. Спросите своего клиента, где находится последняя полная резервная копия, если он не знает, что, скорее всего, что-то не так с его стратегией резервного копирования.

3. Как говорит Джерун, вы не можете восстановить только trn файлы, вам нужно будет запросить bak файл у своего клиента.