J'ai tenté de passer d'un serveur SQL normal sur un serveur Win2008 à un serveur SQL sur Amazon AWS RDS.
Je pensais qu'une simple sauvegarde et restauration fonctionnerait. Bien qu'AWS RDS ne semble pas avoir accès à un système de fichiers, les scripts SQL semblent tous avoir besoin d'un système de fichiers local sur le serveur source et le serveur de destination. J'ai tenté un script en suivant
exec sp_addlinkedserver @server='test.xxxx.us-east-1.rds.amazonaws.com'
-- Verify that the servers were linked (lists linked servers)
exec sp_linkedservers
EXEC ('RESTORE DATABASE [orchard] FROM DISK = ''C:\Temp\orchard.bak'' WITH FILE = 1, NOUNLOAD, STATS = 10')
AT [test.xxxx.us-east-1.rds.amazonaws.com]
Toute suggestion serait utile.
téléchargez gratuitement 'l'Assistant de migration SQL Azure' à partir de CodePlex - J'ai fait un court blog/screencast à ce sujet. Veillez à définir le paramètre "TO" de l'assistant sur le nom DNS AWS, puis à utiliser "SQL Server 2008" et not "SQL Azure".
Le mot officiel que j'ai obtenu pour le support AWS sur la migration des bases de données SQL à l'aide de fichiers .bak est qu'il n'est pas pris en charge. Donc, plus de restauration rapide à partir de fichiers .bak. Ils ont offert l'aide officielle pour la migration des bases de données existantes ici:
Guide officiel de migration de la base de données AWS
Et cela m'a également envoyé un clin d'œil non officiel à l'outil de migration de base de données Azure. Utilisez-le simplement pour générer un script de votre schéma et/ou de vos données et l'exécuter sur votre instance RDS. C'est un bon outil. Pour ce faire, vous devez d'abord importer le fichier .bak dans un serveur SQL non RDS.
J'ai rédigé des instructions pas à pas sur comment restaurer un fichier .bak vers RDS en utilisant l'outil de migration SQL Azure basé sur le screencast de Lynn. Cette méthode est beaucoup plus simple que les instructions officielles et a bien fonctionné pour plusieurs bases de données que j'ai migrées.
Vous constaterez probablement que le format Applications de niveau données BACPAC vous fournira la solution la plus pratique. Vous pouvez utiliser Export pour générer un fichier contenant à la fois le schéma de base de données et les données. Import créera une nouvelle base de données contenant des données basées sur ce fichier.
Contrairement aux opérations sauvegarde et restauration , l'exportation et l'importation ne nécessitent pas d'accès au système de fichiers du serveur de base de données.
Vous pouvez utiliser des fichiers BACPAC avec SQL Server Management Studio ou via l’API dans .Net, Powershell, MSBuild, etc.
Notez qu'il existe des problèmes d'utilisation de cette méthode pour exporter, puis importer à partir d'Amazon RDS. Lorsqu'une nouvelle base de données est créée sur RDS, les deux objets suivants y sont créés.
Lors de l'importation, il y aura un conflit entre les objets inclus dans le fichier BACPAC et ceux ajoutés automatiquement par RDS. Ces objets sont à la fois présents dans le fichier BACPAC et créés automatiquement par RDS lors de la création de la nouvelle base de données.
Si vous disposez d'une instance non-RDS de SQL Server, vous pouvez importer le BACPAC dans cette instance, supprimer les objets ci-dessus, puis exporter la base de données pour créer un nouveau fichier BACPAC. Celui-ci n'aura aucun conflit lorsque vous le restaurerez sur une instance RDS.
Sinon, il est possible de contourner ce problème en procédant comme suit.
Remarque: Il existe un autre problème lié à l'importation d'un BacPac dans RDS à l'aide de SQL Server Management Studio, problème que j'explique ici .
Utilisez l'assistant d'exportation du studio de gestion de serveur SQL sur votre base de données source. Faites un clic droit sur la base de données> tâches> exporter des données. Un assistant vous guide pour l’envoi de toute la base de données à un serveur SQL distant.
L'article suivant expliquant comment copier une base de données avec des données - Générer T-SQL pour l'insertion de données d'une table à une autre est ce dont j'avais besoin.
AWS est un outil conçu par AWS qui répond à la plupart, voire à toutes vos questions de compatibilité: l'outil de conversion de schéma pour SQL Server: https://docs.aws.Amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source .SQLServer.html
Étant donné que tous les objets de base de données de serveur SQL ne sont pas pris en charge par RDS et varient même d'une version à l'autre du serveur SQL, le rapport d'évaluation vaudra également votre temps: https://docs.aws.Amazon.com/SchemaConversionTool /latest/userguide/CHAP_AssessmentReport.html
Enfin, utilisez définitivement le service de migration de base de données: https://aws.Amazon.com/dms/