Cette rubrique explique comment migrer les données d'une instance ApsaraDB RDS for SQL Server vers une instance SQL Server autonome. Téléchargez les fichiers de sauvegarde physique complète et incrémentielle depuis la console ApsaraDB RDS, transférez-les sur le serveur hébergeant votre instance SQL Server autonome, décompressez-les, puis restaurez la base de données.
Prérequis
Assurez-vous de disposer d'un fichier de sauvegarde physique complet pour votre instance ApsaraDB RDS for SQL Server.
Vous pouvez également utiliser Data Transmission Service (DTS) pour migrer des fichiers de sauvegarde physique ou des snapshots. Dans DTS, configurez ApsaraDB RDS for SQL Server comme source et votre instance SQL Server autonome comme destination.
Procédure
-
Téléchargez les fichiers de sauvegarde physique complète et incrémentielle depuis votre instance ApsaraDB RDS for SQL Server.
Si le serveur cible peut accéder à l'instance source, téléchargez également les fichiers de sauvegarde à l'aide de la commande
wget "URL". Remplacez « URL » par l'URL de téléchargement du fichier de sauvegarde. -
Transférez les fichiers de sauvegarde téléchargés vers le serveur qui héberge l'instance SQL Server autonome, puis décompressez les fichiers de sauvegarde complète et incrémentielle.
RemarqueAprès décompression, les fichiers de sauvegarde complète et incrémentielle portent le même nom. Pour faciliter la maintenance, nous vous recommandons de renommer les fichiers selon le format
<Database name>_<Backup method>_<Date>. Par exemple :testdb_datafull_201901071320.bak, oùdatafullindique une sauvegarde complète.testdb_datadiff_201901071330.bak, oùdatadiffindique une sauvegarde incrémentielle.
-
Notez les chemins d'accès aux fichiers de sauvegarde complète et incrémentielle décompressés. Cette rubrique utilise les chemins suivants à titre d'exemple :
Chemin d'accès au fichier de sauvegarde complète :
/tmp/testdb_datafull_201901071320.bakChemin d'accès au fichier de sauvegarde incrémentielle :
/tmp/testdb_datadiff_201901071330.bak
-
Connectez-vous à l'instance SQL Server autonome et exécutez l'instruction suivante pour interroger les noms logiques des fichiers dans le fichier de sauvegarde :
RESTORE FILELISTONLY FROM DISK='/tmp/testdb_datafull_201901071320.bak'; GOLe résultat de la requête indique que le nom logique du fichier de données est « testdb » et que le nom logique du fichier journal est « testdb_log ».
-
Restaurez la base de données à partir du fichier de sauvegarde complète et spécifiez les emplacements de stockage pour les fichiers de données et les fichiers journaux.
ImportantSi vous devez restaurer une sauvegarde incrémentielle, passez à l'étape 6. Si vous ne restaurez que la sauvegarde complète, passez directement à l'étape 7.
RESTORE DATABASE testdb FROM DISK = '/tmp/testdb_datafull_201901071320.bak' WITH REPLACE, NORECOVERY, STATS = 10, MOVE 'testdb' TO '/var/opt/mssql/data/testdb.mdf', MOVE 'testdb_log' TO '/var/opt/mssql/data/testdb_log.ldf'; GOAprès avoir exécuté cette instruction, la base de données testdb se trouve dans l'état restoring .
Remarque/var/opt/mssql/data/testdb.mdfcorrespond au chemin d'accès au fichier de données, ettestdb.mdfau nom logique du fichier de données./var/opt/mssql/data/testdb_log.ldfcorrespond au chemin d'accès au fichier journal, ettestdb_log.ldfau nom logique du fichier journal.
Vous pouvez consulter les chemins d'accès aux fichiers de données et aux fichiers journaux dans la section Properties > Files de la base de données cible.
-
(Facultatif) Restaurez la base de données à partir du fichier de sauvegarde incrémentielle et spécifiez les emplacements de stockage pour les fichiers de données et les fichiers journaux.
RESTORE DATABASE testdb FROM DISK = '/tmp/testdb_datadiff_201901071330.bak' WITH REPLACE, NORECOVERY, STATS = 10, MOVE 'testdb' TO '/var/opt/mssql/data/testdb.mdf', MOVE 'testdb_log' TO '/var/opt/mssql/data/testdb_log.ldf'; GOAprès avoir exécuté cette instruction, la base de données testdb se trouve dans l'état restoring .
-
Exécutez l'instruction suivante pour récupérer la base de données et la mettre en ligne.
RESTORE DATABASE testdb WITH RECOVERY; GO