Cómo importar una base de datos de muestra a su AWS RDS Microsoft SQL Server usando S3

Esta guía se creó porque era muy difícil encontrar una manera de jugar con una base de datos de muestra utilizando AWS RDS MSSQL Server. Espero que encuentres esto útil.

Si no ha configurado su AWS RDS Microsoft SQL Server y Azure Data Studio, consulte primero esta guía: Cómo conectar su AWS RDS Microsoft SQL Server mediante Azure Data Studio .

Tocaremos las tecnologías que se muestran a continuación:

  • Base de datos: AWS RDS Microsoft SQL Server Express Edition
  • Herramienta de base de datos y GUI: Azure Data Studio
  • Copia de seguridad de la base de datos de muestra: Amazon S3 Bucket

Copia de seguridad de la base de datos de muestra de AdventureWorks

Para obtener las descargas OLTP de AdventureWorks, vaya a este enlace y elija cualquier base de datos de muestra. En mi ejemplo, elijo AdventureWorks2017.bak. Lo cargaremos en el S3 Bucket.

Bucket de Amazon S3

Crear el bucket de S3

  1. Crea un cubo. Puede elegir cualquier nombre de depósito (ejemplo: yourname-sample-dbs).

2. Asegúrese de que la región sea la misma que la de la instancia de AWS RDS.

3. Marque las siguientes casillas de verificación:

  • Bloquear el acceso público a depósitos y objetos otorgados a través de nuevas listas de control de acceso (ACL)
  • Bloquear el acceso público y los objetos otorgados a través de cualquier lista de control de acceso (ACL)

4. Acceda a su depósito nuevamente haciendo clic en su depósito creado.

Subir el archivo al depósito de S3

  1. Haga clic en Cargar .

2. Elija el archivo de respaldo de la base de datos. Por ejemplo: AdventureWorks2017.bak. Siga eligiendo Siguiente y elija Cargar en la sección Revisar.

3. Actualice su Política de Bucket para permitir el acceso a su Bucket S3. Tenga en cuenta que su ARN será diferente al mío. Pulse Guardar después.

{ "Version": "2012-10-17", "Id": "Policy1548223592786", "Statement": [ { "Sid": "Stmt1548223591553", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::changethis/*" } ] }

AWS RDS - MSSQL Server Express

Crear un grupo de opciones para su instancia de RDS

  1. Haga clic en Grupos de opciones ,

2. Cree un grupo de opciones. Elija cualquier nombre y descripción. Para el motor, debe coincidir con su instancia de RDS. En mi ejemplo, utilicé SQL Server Express Edition, así que elijo sqlserver-ex.

Aquí están los siguientes motores y sus abreviaturas:

  • Edición Enterprise de SQL Server: sqlserver-ee
  • Edición estándar de SQL Server: sqlserver-se
  • Edición web de SQL Server: sqlserver-web
  • Edición SQL Server Express: sqlserver-ex

3. Una vez que haya creado el grupo de opciones, necesitará Agregar opción .

4. Elija SQLSERVER_BACKUP_RESTORE para su nombre de opción. Para el rol de IAM, es mejor crear un nuevo rol.

5. Elija el depósito de S3 donde se aloja su archivo de base de datos. Para programar, elija Inmediatamente .

6. Vuelva a la instancia del servidor AWS RDS MSSQL y haga clic en Modificar .

7. Elija el grupo de opciones creado con sql-server-express-backup, luego haga clic en Continuar.

8. Elija Aplicar inmediatamente para programar modificaciones.

9. Go back to your AWS RDS MSSQL Server instance page and scroll down and modify Manage IAM Roles. Add the IAM role you have created in S3. For the Feature, choose S3_INTEGRATION.

Azure Data Studio

Importing the sample database in S3 bucket through restore function

  1. In your connected AWS RDS MSSQL Server, create a new query and type in the following:
exec msdb.dbo.rds_restore_database @restore_db_name='AdventureWorks-test', @s3_arn_to_restore_from='arn:aws:s3:::clark-sample-dbs/AdventureWorks2017.bak';

Refresh your Azure Data Studio. Also, try restarting the application if your database did not appear or don't have permission to access it.

Now you are done! Good job! ???

Resources:

  • //aws.amazon.com/premiumsupport/knowledge-center/native-backup-rds-sql-server/

Connect with me on LinkedIn here