J'ai une base de données qui est en mode haute disponibilité toujours synchronisée avec une autre base de données sur une instance différente. Comment puis-je restaurer à partir d'un .bak
fichier dans la base de données principale à l'aide de T-SQL
?
Je suis novice en matière de haute disponibilité et on m'a dit que je devais retirer la base de données de la haute disponibilité avant de pouvoir effectuer une restauration, puis la remettre à nouveau en haute disponibilité, mais je ne suis pas sûr.
J'espère que je peux simplement restaurer directement dans le primaire tandis que le AlwaysOn
est toujours activé et il se synchronisera automatiquement avec le secondaire.
Écoutez votre conseiller. En restaurant une sauvegarde, vous remplacez essentiellement le schéma et les données de la base de données. Vous devrez désactiver la synchronisation, supprimer la base de données de HA et effectuer la restauration sur le principal et le réplica, en laissant la version du réplica dans un état de restauration à l'aide de WITH NORECOVERY. Une fois votre sauvegarde en place, replacez la base de données dans HA et recommencez la synchronisation.
HA est très similaire à la mise en miroir et utilise une technologie similaire, mais pas aussi capricieuse. Vous souhaiterez également traiter vos bases de données HA.
Le code serait semblable au suivant:
- au primaire
ALTER AVAILABILITY GROUP MyAG REMOVE DATABASE AdventureWorks2012;
- au primaire
RESTORE DATABASE AdventureWorks2012
FROM AdventureWorksBackups
WITH NORECOVERY,
MOVE 'AdventureWorks2012_Data' TO
'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf',
MOVE 'AdventureWorks2012_Log'
TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\NewAdvWorks.
RESTORE LOG AdventureWorks2012
FROM AdventureWorksBackups
WITH RECOVERY;
- au secondaire
RESTORE DATABASE AdventureWorks2012
FROM AdventureWorksBackups
WITH NORECOVERY,
MOVE 'AdventureWorks2012_Data' TO
'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf',
MOVE 'AdventureWorks2012_Log'
TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\NewAdvWorks.ldf';
RESTORE LOG AdventureWorks2012
FROM AdventureWorksBackups
WITH NORECOVERY;
- au primaire
ALTER AVAILABILITY GROUP MyAG ADD DATABASE AdventureWorks2012;
- au secondaire
ALTER DATABASE AdventureWorks2012 SET HADR AVAILABILITY GROUP = MyAG;