Amazon RDS: резервное копирование и восстановление в новую базу данных на существующем экземпляре БД - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть база данных, размещенная на Amazon RDS, и мне нужно сделать резервную копию и создать из нее новую базу данных. Будучи новичком, не уверен, как это сделать. Пробовал делать из SSMS, но это не сработало.

Ответы [ 3 ]

0 голосов
/ 13 ноября 2018

Полагаю, вы используете SQL-сервер RDS. Не ясно, хотите ли вы восстановить базу данных в тот же экземпляр или нет. Восстановление резервной копии на том же экземпляре под другим именем недоступно в Amazon RDS

Невозможно восстановить файл резервной копии в том же экземпляре БД, который использовался для создания> файла резервной копии. Вместо этого восстановите файл резервной копии в новый экземпляр БД.

Устранение неполадок, часть на

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.html#SQLServer.Procedural.Importing.Native.Using.Poll

Кроме того, собственное резервное копирование SQL Server не поддерживается из SSMS в Amazon RDS, поскольку для него требуется выбрать место для резервного копирования, но в RDS вы не можете получить доступ к ресурсам ОС.

Есть несколько вариантов:

1) Создать еще один экземпляр из снимка,

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

Обязательным условием является наличие корзины S3, а учетная запись IAM имеет доступ к корзине S3 Шаги должны быть:

  • изменить параметр SQLSERVER_BACKUP_RESTORE в группе параметров. Будьте осторожны, это может потребовать перезагрузки сервера.

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.BackupRestore.html

  • вызовите базу данных rds_backup_database в базе данных msdb. Обязательные параметры: имя базы данных и сегмент S3, необязательные, если вы хотите зашифровать резервную копию, перезаписать резервную копию с тем же именем в сегменте S3 и тип резервной копии полный или дифференциальный

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.html#SQLServer.Procedural.Importing.Native.Using.Backup

Выходные данные процедуры - идентификатор задачи, и ее можно использовать для проверки состояния задачи резервного копирования.

exec msdb..rds_task_status @ task_id = 5

  • После создания резервной копии войдите в другой экземпляр и запустите rds_restore_database. Параметры - это имя базы данных для восстановления и S3, где находится резервная копия.

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.html#SQLServer.Procedural.Importing.Native.Using.Restore

Если вы хотите, вы можете загрузить файл резервной копии с S3 и восстановить его на сервере SQL в помещении.

3) И самый длинный, если вы хотите, чтобы обе базы данных были в одном экземпляре, для сценария базы данных, создания под другим именем и экспорта данных в новую базу данных

Весь процесс описан здесь

ОБНОВЛЕНИЕ: Amazon разрешил восстановить базу данных в том же экземпляре, где была создана резервная копия.

https://aws.amazon.com/about-aws/whats-new/2018/10/amazon-rds-for-sql-server-enhances-backup-and-restore-capabilities/

0 голосов
/ 03 января 2019

Это один из лучших результатов Google, но здесь есть устаревшая информация.

Вы можете включить собственное резервное копирование / восстановление sql для сервера sql в RDS, выполнить резервное копирование одной базы данных на S3, а затем восстановить эту базу данных в тот же экземпляр RDS с новым именем базы данных.

Шаги для настройки среды и выполнения резервного копирования / восстановления :

  1. Создание корзины S3 для хранения ваших собственных резервных копий.
  2. Включите собственное резервное копирование Sql, настроив новую группу параметров для своего экземпляра RDS и добавив параметр «SQLSERVER_BACKUP_RESTORE».
  3. Выполнение серии процедур в SSMS для запуска задач резервного копирования и восстановления:

exec msdb.dbo.rds_backup_database 
@source_db_name='database_name', @s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name_and_extension', 
@overwrite_S3_backup_file=1;

exec msdb.dbo.rds_restore_database 
@restore_db_name='database_name', 
@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name_and_extension';

exec msdb.dbo.rds_task_status @db_name='database_name'

Примечание: я не могу найти никаких объявлений об отмене этого предыдущего ограничения:

Невозможно восстановить файл резервной копии в том же экземпляре БД, который использовался для создания файла резервной копии. Вместо этого восстановите файл резервной копии в новый экземпляр БД.

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

0 голосов
/ 13 ноября 2018

Ознакомьтесь с документацией для создания снимка БД и восстановления из снимка БД .

...