Tous les produits
Search
Centre de documentation

ApsaraDB RDS:Migration au niveau de l'instance de SQL Server vers le cloud

Dernière mise à jour :Aug 26, 2026

ApsaraDB RDS for SQL Server propose une migration vers le cloud au niveau de l'instance pour l'ensemble des données d'une ou plusieurs bases de données hébergées sur un serveur SQL géré en interne. Pour effectuer la migration, sauvegardez toutes les bases de données de votre serveur SQL géré en interne, téléchargez les fichiers de sauvegarde dans un seul dossier d'un bucket OSS, puis exécutez le script de migration vers le cloud.

Remarque

Pour migrer une seule base de données, consultez les rubriques Migrer des données à partir d'une sauvegarde complète et Migrer des données à partir d'une sauvegarde incrémentielle.

Prérequis

  • La source doit être une base de données SQL Server gérée en interne.

  • L'instance ApsaraDB RDS for SQL Server de destination doit répondre aux exigences suivantes :

    • L'espace de stockage disponible sur l'instance doit être supérieur à la taille des fichiers de données à migrer. Si l'espace de stockage disponible est insuffisant, mettez à niveau les spécifications de l'instance.

    • Pour SQL Server 2008 R2, vous devez créer une base de données sur l'instance de destination portant le même nom que la base de données source. Cette exigence ne s'applique pas aux autres versions.

  • Si vous vous connectez en tant qu'utilisateur RAM, les conditions suivantes doivent être remplies :

    • L'utilisateur RAM dispose des autorisations AliyunOSSFullAccess et AliyunRDSFullAccess. Pour plus d'informations sur l'attribution d'autorisations à un utilisateur RAM, consultez les rubriques Gérer les autorisations OSS à l'aide de RAM et Gérer les autorisations ApsaraDB RDS à l'aide de RAM.

    • Votre compte Alibaba Cloud (compte principal) a autorisé le compte de service officiel ApsaraDB RDS à accéder à vos ressources OSS.

      Cliquez pour afficher la méthode d'autorisation

      1. Accédez à la page Restoration de l'instance ApsaraDB RDS, puis cliquez sur Restore Backup Data from OSS.

      2. Sur la page Import Guide, cliquez deux fois sur Next pour accéder à l'étape 3. Import Data.

        Si le message You have authorized the ApsaraDB RDS official service account to access your OSS resources apparaît dans le coin inférieur gauche de la page, l'autorisation est terminée. Dans le cas contraire, l'autorisation n'est pas complète. Cliquez alors sur Authorization URL sur la page pour accorder l'autorisation.

        image

    • Créez manuellement une stratégie d'autorisation dans votre compte Alibaba Cloud (compte principal), puis attachez-la à l'utilisateur RAM.

      Cliquez pour afficher le contenu de la stratégie

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "ram:GetRole"
                  ],
                  "Resource": "acs:ram:*:*:role/AliyunRDSImportRole",
                  "Effect": "Allow"
              }
          ]
      }

Limites

Cette solution prend uniquement en charge la migration complète ; la migration incrémentielle n'est pas actuellement prise en charge.

Facturation

Si vous utilisez la méthode décrite dans cette rubrique pour migrer des données, vous êtes facturé uniquement pour l'utilisation des buckets OSS.

image

Scénario

Règle de facturation

Téléchargement des fichiers de sauvegarde vers un bucket OSS

Gratuit.

Stockage des fichiers de sauvegarde dans un bucket OSS

Des frais de stockage s'appliquent. Pour plus d'informations, consultez la page Tarification d'OSS.

Migration des fichiers de sauvegarde d'un bucket OSS vers votre instance RDS

  • Si vous migrez les fichiers de sauvegarde d'un bucket OSS vers votre instance RDS via le réseau interne, aucun frais n'est généré.

  • Si vous migrez les fichiers de sauvegarde via Internet, vous êtes facturé pour le bucket OSS en fonction du trafic sortant sur Internet. Pour plus d'informations, consultez la page Tarification d'OSS.

Prérequis

1. Installer Python 3

Accédez au site Web officiel de Python pour télécharger et installer le package approprié pour votre système d'exploitation. Sélectionnez la version 3.12 ou ultérieure.

  • Windows : Lors de l'installation, cochez la case Add python.exe to PATH pour éviter de configurer manuellement la variable d'environnement.

  • macOS/Linux : Vous pouvez effectuer l'installation à l'aide du programme d'installation officiel ou d'un gestionnaire de packages tel que Homebrew, apt ou dnf. Reportez-vous au site Web officiel pour obtenir des instructions.

2. Vérifier l'installation et la version de Python

Le nom de l'exécutable peut varier selon votre système d'exploitation et votre méthode d'installation (par exemple, python, python3 ou py). Essayez les commandes dans l'ordre et vérifiez la sortie pour confirmer l'installation.

Windows (Invite de commandes ou PowerShell)

python --version
python3 --version
py --version
  • Si la sortie affiche Python 3.12.x ou une version ultérieure, Python est correctement installé et prêt à l'emploi.

  • Si vous recevez un message d'erreur tel que ...is not recognized as an internal or external command..., vous devez ajouter manuellement le chemin d'installation de Python à la variable d'environnement PATH.

macOS/Linux (terminal)

python --version
python3 --version

Sur certains systèmes, la commande python peut encore pointer vers une version plus ancienne. Utilisez d'abord la commande python3. Vérifiez la sortie pour confirmer que vous disposez de Python 3.12 ou d'une version ultérieure.

3. Installer les dépendances du SDK

pip install alibabacloud_rds20140815
pip install alibabacloud-oss-v2
pip install alibabacloud_tea_openapi
pip install alibabacloud_tea_util

1. Sauvegarder les bases de données SQL Server gérées en interne

Important
  • Pour garantir la cohérence des données, n'écrivez pas de nouvelles données pendant la sauvegarde complète. Planifiez cette opération à l'avance afin d'éviter toute perturbation de vos services.

  • Si vous n'utilisez pas le script de sauvegarde, vous devez nommer les fichiers de sauvegarde selon le formatdatabase_name_backup_type_backup_time.bak

    Description

    access_key_id

    ID AccessKey de votre compte Alibaba Cloud.

    access_key_secret

    Secret AccessKey de votre compte Alibaba Cloud.

    rds_instance_id

    ID de l'instance RDS de destination.

    oss_endpoint

    Endpoint de la région OSS où se trouve votre bucket.

    oss_bucket

    Nom du bucket contenant les fichiers de sauvegarde.

    directory

    Répertoire du bucket OSS pour les fichiers de sauvegarde. Pour le répertoire racine, saisissez / .

  • Exécutez le script de migration pour finaliser la migration.

    Cette rubrique présente un exemple de migration complète de tous les fichiers de sauvegarde répondant aux conditions spécifiées, depuis le répertoire Migrationdata d'un bucket OSS nommé testdatabucket vers une instance ApsaraDB RDS for SQL Server dont l'ID est rm-2zesz5774ud8s****.

    python ~/Downloads/RDSSQLCreateMigrateTasksBatchly.py -k yourAccessKeyID -s yourAccessKeySecret -i rm-2zesz5774ud8s**** -e oss-cn-beijing.aliyuncs.com -b testdatabucket -d Migrationdata

4. Consulter la progression des tâches de migration

Suivez les instructions correspondant à la version SQL Server de votre instance ApsaraDB RDS.

SQL Server 2012 et versions ultérieures

Dans le volet de navigation de gauche de votre instance ApsaraDB RDS, accédez à la page Backup and Restoration. Sous l'onglet Cloud Migration Records of Backup Data, vous pouvez consulter les enregistrements de migration vers le cloud, notamment le statut de la tâche, l'heure de début et l'heure de fin. Par défaut, les enregistrements de la dernière semaine s'affichent. Ajustez la plage de temps selon vos besoins.

image

Remarque

Si le Task Status indique Failed, vérifiez la Task Description ou cliquez sur View File Details à côté de la tâche de migration concernée pour identifier la cause de l'échec. Une fois le problème résolu, relancez la tâche de migration.

SQL Server 2008 R2

Dans le volet de navigation de gauche de votre instance ApsaraDB RDS, accédez à la page Data Migration To Cloud. Recherchez ensuite la tâche de migration cible pour consulter sa progression.

Remarque

Si le Task Status indique Failed, vérifiez la Task Description ou cliquez sur View File Details à côté de la tâche de migration concernée pour identifier la cause de l'échec. Une fois le problème résolu, relancez la tâche de migration.

Erreurs courantes

Message d'erreur

Cause

Solution

HTTP Status: 404 Error:InvalidAccessKeyId.NotFound Specified access key is not found. RequestID: XXXXXXXXXXXXXXXXX

L'AccessKey ID utilisé pour l'appel OpenAPI est incorrect.

Indiquez l'AccessKey ID et AccessKey Secret corrects.

HTTP Status: 400 Error:IncompleteSignature The request signature does not conform to Aliyun standards. server string to sign is:......

L'AccessKey Secret utilisé pour l'appel OpenAPI est incorrect.

RDS engine doesn't support, this is only for RDS SQL Server engine.

Cette solution prend uniquement en charge ApsaraDB RDS for SQL Server. Les autres moteurs de base de données ne sont pas pris en charge.

Utilisez une instance ApsaraDB RDS for SQL Server comme destination de migration.

Couldn't find specify RDS [XXX].

L'ID d'instance RDS spécifié n'existe pas.

Vérifiez que l'ID d'instance RDS fourni est correct.

{'status': -2, 'request-id': '', 'details': "RequestError: HTTPConnectionPool(host='xxxxxxxxxxxxxxxxx', port=80): Max retries exceeded with url: /?bucketInfo= (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x10e996490>: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known',))"}

Échec de la connexion en raison d'un endpoint incorrect.

Vérifiez que l'endpoint fourni est correct.

{'status': 404,'-id': 'xxxxxxxxx', 'details': {'HostId': 'xxxxxxxxx', 'Message': 'The specified bucket does not exist.', 'Code': 'NoSuchBucket', 'RequestId': 'xxxxxxxx', 'BucketName': 'aaaatp-test-on-ecs'}}

Le bucket OSS spécifié n'existe pas.

Vérifiez que le nom du bucket OSS fourni est correct.

There is no backup file on OSS Bucket [xxxxxx] under [xxxxxxxxx] folder, check please.

Le dossier spécifié n'existe pas dans le bucket OSS, ou il ne contient aucun fichier de sauvegarde de base de données éligible.

Vérifiez que le dossier existe dans le bucket OSS et qu'il contient des fichiers de sauvegarde de base de données éligibles.

Warning!!!!!, [autotest_2005_ent_broken_full_dbcc_failed.bak] is not backup file, filtered.

Le nom du fichier de sauvegarde ne respecte pas la convention de nommage requise.

Si vous n'utilisez pas le script de sauvegarde, vous devez nommer le fichier de sauvegarde au format DatabaseName_BackupType_BackupTime.bak. Par exemple : Testdb_FULL_20180518153544.bak.

HTTP Status: 403 Error:Forbidden.RAM The user is not authorized to operate the specified resource, or this operation does not support RAM. RequestID: xxxxx{'status': 403, 'request-id': 'xxxx', 'details': {'HostId': 'atp-test-on-ecs.oss-cn-beijing.aliyuncs.com', 'Message': 'The bucket you visit is not belong to you.', 'Code': 'AccessDenied', 'RequestId': 'xxxx'}}

L'utilisateur RAM ne dispose pas des autorisations suffisantes.

Vous devez accorder à l'utilisateur RAM les autorisations d'accès à OSS et RDS. Cela nécessite les stratégies AliyunOSSFullAccess et AliyunRDSFullAccess.

OPENAPI Response Error !!!!! : HTTP Status: <Http Status Code> Error:<Error> <Description>. RequestID: 32BB6886-775E-4BB7-A054-635664****

L'appel OpenAPI a renvoyé une erreur.

Analysez la cause première en vous basant sur le code d'erreur et le message d'erreur renvoyés.

Codes d'erreur OpenAPI

Code d'état HTTP

Erreur

Message

Description

403

InvalidDBName

Le nom de base de données spécifié n'est pas autorisé.

Le nom de la base de données est invalide. Vous ne pouvez pas utiliser les noms de bases de données système.

403

IncorrectDBInstanceState

L'état actuel de l'instance ne permet pas cette opération.

L'instance RDS se trouve dans un état invalide. Par exemple, l'instance est dans l'état Creating.

400

IncorrectDBInstanceType

Le type d'instance actuel ne prend pas en charge cette opération.

Le moteur de l'instance n'est pas pris en charge. Cette fonctionnalité est disponible uniquement pour ApsaraDB RDS for SQL Server.

400

IncorrectDBInstanceLockMode

Le mode de verrouillage actuel de l'instance ne prend pas en charge cette opération.

La base de données se trouve dans un état de verrouillage invalide.

400

InvalidDBName.NotFound

Un ou plusieurs noms de bases de données spécifiés n'existent pas, ou leur état ne permet pas l'opération.

La base de données n'existe pas.

  • Pour ApsaraDB RDS for SQL Server 2008 R2, vous devez d'abord créer une base de données portant le même nom sur l'instance de destination.

  • Pour ApsaraDB RDS for SQL Server 2012 et versions ultérieures, une base de données portant le même nom ne doit pas exister sur l'instance de destination.

400

IncorrectDBType

Le type de base de données ne prend pas en charge cette opération.

400

IncorrectDBState

L'état actuel de la base de données ne permet pas cette opération.

La base de données se trouve dans un état invalide, par exemple lors de sa création ou pendant une migration en cours.

400

UploadLimitExceeded

Le quota quotidien de migrations pour la base de données a été dépassé.

Un maximum de 20 migrations est autorisé par base de données sur chaque instance par jour.

400

ConcurrentTaskExceeded

Le quota quotidien de migrations pour l'instance a été dépassé.

Une instance est limitée à un maximum de 500 migrations par jour.

400

IncorrectFileExtension

L'extension de fichier n'est pas prise en charge.

Le fichier de sauvegarde possède une extension invalide.

400

InvalidOssUrl

L'URL OSS spécifiée est invalide.

L'URL de téléchargement OSS fournie n'est pas disponible.

400

BakFileSizeExceeded

Le fichier de sauvegarde dépasse la limite de taille autorisée.

La taille du fichier de sauvegarde ne peut pas dépasser 3 To.

400

FileSizeExceeded

Le fichier est trop volumineux pour l'instance de destination.

La restauration du fichier de sauvegarde dépasserait la capacité de stockage de l'instance de destination.

Opérations API associées

API

Description

CreateMigrateTask

Restaure les fichiers de sauvegarde depuis OSS vers une instance ApsaraDB RDS for SQL Server et crée une tâche de migration de données.

CreateOnlineDatabaseTask

Ouvre la base de données d'une tâche de migration de données de sauvegarde sur une instance ApsaraDB RDS for SQL Server.

DescribeMigrateTasks

Interroge la liste des tâches de migration de données de sauvegarde sur une instance ApsaraDB RDS for SQL Server.

DescribeOssDownloads

Interroge les détails des fichiers de sauvegarde d'une tâche de migration de données de sauvegarde sur une instance ApsaraDB RDS for SQL Server.