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.
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.
-
Créez manuellement une stratégie d'autorisation dans votre compte Alibaba Cloud (compte principal), puis attachez-la à l'utilisateur RAM.
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.
|
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 |
|
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 PATHpour é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.
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
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
Migrationdatad'un bucket OSS nommétestdatabucketvers 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.

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.
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 |
| L'AccessKey ID utilisé pour l'appel OpenAPI est incorrect. | Indiquez l'AccessKey ID et AccessKey Secret corrects. |
| L'AccessKey Secret utilisé pour l'appel OpenAPI est incorrect. | |
| 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. |
| L'ID d'instance RDS spécifié n'existe pas. | Vérifiez que l'ID d'instance RDS fourni est correct. |
| Échec de la connexion en raison d'un endpoint incorrect. | Vérifiez que l'endpoint fourni est correct. |
| Le bucket OSS spécifié n'existe pas. | Vérifiez que le nom du bucket OSS fourni est correct. |
| 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. |
| 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 |
| 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. |
| 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.
|
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 |
|
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. |
|
|
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. |
|
|
Interroge la liste des tâches de migration de données de sauvegarde sur une instance ApsaraDB RDS for SQL Server. |
|
|
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. |
