#mysql #amazon-rds #database-restore
#mysql #amazon-rds #база данных-восстановление
Вопрос:
У меня есть 2 экземпляра Amazon rds (один для производства, а другой для разработки / тестирования). Теперь я хочу восстановить одну базу данных из производственного экземпляра в мой экземпляр разработки. Я делаю снимки в своем производственном экземпляре, но нет возможности восстановить снимки в экземпляре разработки из другого экземпляра.
Есть ли какой-либо способ сделать это без загрузки снимка?
Ответ №1:
Восстановление из моментального снимка означает создание нового экземпляра RDS, поэтому вы в основном заменяете старый экземпляр разработки новым.
Сначала вам нужно либо удалить, либо переименовать исходный экземпляр разработки, иначе его имя нельзя будет повторно использовать для нового экземпляра.
Если вам нужен экземпляр RDS как со схемой разработки, так и с производственной схемой, вам придется передавать данные с помощью специфичных для базы данных инструментов (например, mysqldump, если вы используете MySQL, data pump, Если используете Oracle, И т. Д.).
Комментарии:
1. спасибо за ответ. Я уже использую mysqldump для восстановления базы данных в моем экземпляре разработки. Но это очень трудоемкая работа, а также произошел блок чтения при создании резервной копии из производственного экземпляра (это очень сложная ситуация).
2. @ManishSapkal этот ответ говорит вам о том, что вам нужно восстановить снимок в новый экземпляр, а затем либо удалить старый экземпляр разработчика и начать использовать этот новый для разработчика, либо использовать
mysqldump
для передачи данных из нового экземпляра в старый экземпляр разработчика (тогда вы можете удалить новый экземплярэкземпляр, созданный действием восстановления)… в любом случае, вы бы оставили производство в покое. Кроме того, добавление--single-transaction
вmysqldump
должно предотвращать блокировки, если вы используете InnoDB.3. спасибо @Michael-sqlbot, я готов использовать новый экземпляр разработчика. но как мне восстановить снимок моего производственного экземпляра? Есть ли какая-либо возможность выбрать снимки другого экземпляра?
4. Вы этого не делаете. Восстановление снимка всегда создает новый экземпляр. Это не изменяет существующий. docs.aws.amazon.com/AmazonRDS/latest/UserGuide /…
Ответ №2:
Вы можете изменить атрибуты (производственного) моментального снимка и разрешить другой учетной записи AWS (в вашем случае — разработчику) доступ к нему
aws rds modify-db-snapshot-attribute --db-snapshot-identifier $SNAPSHOT_NAME --attribute-name restore --values-to-add "<ACCOUNT NUMBER FOR DEV>" --output=json
Имя атрибута = Восстановить, потому что у вас выполняется восстановление учетной записи разработчика из этого снимка.
в вашей консоли разработчика вы найдете это в разделе «Общие снимки»
Ответ №3:
С конца 2015 года AWS добавила возможность совместного использования моментальных снимков.
Совместное использование моментальных снимков между учетными записями AWS
Комментарии:
1. не могли бы вы, пожалуйста, привести необходимую часть здесь?
2. @manetsus: Я бы с удовольствием, но я не уверен, что AWS подаст на меня в суд за это.
3. Вы должны указать правильную атрибуцию. разве этого не было бы достаточно?