2014-06-16 3 views
3

J'ai 2 instance amazon rds (une pour la production, et une autre pour le développement/test). Maintenant, je veux restaurer une base de données de l'instance de production à mon instance de développement. Je prends des instantanés sur mon instance de production, mais il n'y a pas d'options pour restaurer les instantanés sur l'instance de développement d'une autre instance.restaurer des instantanés à partir d'une autre instance

Y a-t-il un moyen de le faire sans télécharger de snapshot?

Répondre

3

La restauration à partir de l'instantané signifie la création d'une nouvelle instance RDS. Vous remplacez donc l'ancienne instance de développement par une nouvelle.

Vous devez d'abord supprimer ou renommer l'instance de développement d'origine, sinon son nom ne peut pas être réutilisé pour la nouvelle instance. Si vous voulez une instance RDS avec le schéma de développement et le schéma de production, vous devrez transférer les données en utilisant des outils spécifiques à la base de données (par exemple, mysqldump si vous utilisez MySQL, data pump si vous utilisez Oracle, etc).

+1

merci de répondre. J'utilise déjà mysqldump pour restaurer la base de données sur mon instance de développement. Mais il est très temps de prendre le travail, et aussi lire le bloc s'est produit tout en prenant la sauvegarde de l'instance de production (C'est la situation très lit). –

+0

@ManishSapkal ce que cette réponse vous dit est, vous devez restaurer l'instantané sur une * nouvelle * instance, puis supprimer l'ancienne instance * dev * et commencer à utiliser cette nouvelle pour dev, ou, utiliser mysqldump pour Transférez les données de la nouvelle instance vers l'ancienne instance de développement (vous pouvez ensuite supprimer la nouvelle instance créée par l'action de restauration) ... de toute façon, vous laissez la production seule. De plus, ajouter '--single-transaction' à' mysqldump' devrait empêcher les blocages si vous utilisez InnoDB. –

+0

merci @ Michael-sqlbot, je suis prêt à utiliser la nouvelle instance de dev. mais Comment restaurer l'instantané de mon instance de production? Y at-il une option pour choisir des instantanés d'une autre instance? –

0

Vous pouvez modifier les attributs sur la (production) instantané et permettre à un autre compte AWS (Dev, dans votre cas) pour y accéder

aws rds modify-db-snapshot-attribute --db-snapshot-identifier $SNAPSHOT_NAME --attribute-name restore --values-to-add "<ACCOUNT NUMBER FOR DEV>" --output=json 

Nom d'attribut = Restaurer, parce que vous rencontrez compte dev restauration à partir cet instantané.

dans votre console dev, vous trouverez sur les « instantanés partagés »

0

À partir fin 2015, le partage de l'instantané a été ajouté comme fonction par AWS.

Sharing Snapshot across AWS Accounts

+0

pourriez-vous s'il vous plaît apporter la partie nécessaire ici? – manetsus

+0

@manetsus: J'adorerais, mais je ne suis pas sûr si AWS me poursuivrait pour avoir fait ça. – Jamboree

+0

Vous devriez donner la bonne attribution. ne serait-ce pas assez bien? – manetsus

Questions connexes