2016-10-31 3 views
0

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

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

В настоящее время мне нужно дистанционно со своим ИТ-отделом или консультантом и восстановить из резервной копии LIVE в TEST. Я бы предпочел, чтобы в моем приложении была кнопка, которая говорит RESTORE TEST, и она сделает это для меня.

Любые предложения о том, как я мог это сделать? Возможно ли это в SQL? Есть ли инструмент в .NET, который может помочь?

Благодаря

+2

Ну, вы можете создать сценарий процесса резервного копирования и восстановления, который позволит вам сделать это с помощью кода. –

+0

Вы можете использовать команды 'BACKUP' и' RESTORE' на SQL Server для выполнения этого, как и любые другие команды SQL. Большой вопрос: разрешено ли вам это делать. Я бы пообщался с их ИТ-отделом и посмотрел, что с ними будет в порядке. Наивно глупым решением было бы вручную удалить все таблицы, вручную воссоздать все таблицы и вручную скопировать данные, затем вручную добавить все внешние ключи и т. Д. Это потребует только доступа к манипулированию структурами таблиц в базе данных, но намного больше работать, чтобы получить право. –

ответ

0

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

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

Лучше было бы отправить резервную копию, а затем периодически или вручную запустить задание для восстановления из локальной резервной копии. Это займет бремя вашей заявки. Тогда вам нужно будет просто просто запустить работу sql из вашего приложения по мере необходимости.

Смежные вопросы