Как создать копию рабочей базы данных SQL? - PullRequest
3 голосов
/ 29 августа 2011

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

Размер базы данных около 20 ГБ с файлом журнала (режим полного восстановления).

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

1 Ответ

4 голосов
/ 29 августа 2011

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

На моем рабочем месте мы используем MS SQL Server, и мы также делаем это:
Наша основная база данных резервируется каждый вечер в 21:00 (полное резервное копирование).
Каждый день в 11пополудни, задание агента SQL Server на другом сервере берет новейшую резервную копию из папки резервных копий и восстанавливает ее как OurMainDatabase_Yesterday.

Вот пример сценария для MS SQL Server:

ALTER DATABASE OurMainDatabase_Yesterday SET SINGLE_USER WITH ROLLBACK IMMEDIATE

USE master

EXEC sp_detach_db 'OurMainDatabase_Yesterday', 'true'

-- use today's backup from the main server
declare @BackupPath as nvarchar(500)
set @BackupPath = '\\MainServer\backup\OurMainDatabase\OurMainDatabase_backup_' 
    + convert(varchar(10),getdate(),112) + '2100.BAK'

RESTORE DATABASE OurMainDatabase_Yesterday
   FROM DISK = @BackupPath
   WITH MOVE 'OurMainDatabase_Data' 
     TO 'F:\Data\OurMainDatabase_Yesterday_Data.mdf',
   MOVE 'OurMainDatabase_Log' 
     TO 'G:\Logs\OurMainDatabase_Yesterday_Log.ldf',
   REPLACE

ALTER DATABASE OurMainDatabase_Yesterday SET MULTI_USER
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...