Integración de una instancia de base de datos de Amazon RDS for SQL Server con Amazon S3 - Amazon Relational Database Service

Integración de una instancia de base de datos de Amazon RDS for SQL Server con Amazon S3

Puede transferir archivos entre una instancia de base de datos que se ejecuta en Amazon RDS for SQL Server y un bucket de Amazon S3. Al hacer esto, puede utilizar Amazon S3 con las características de SQL Server, por ejemplo, INSERCIÓN MASIVA. Por ejemplo, puede descargar archivos .csv, .xml, .txt y de otro tipo desde Amazon S3 al host de la instancia de base de datos e importar los datos desde D:\S3\ a la base de datos. Todos los archivos se almacenan en D:\S3\ en la instancia de base de datos.

Se aplican las siguientes restricciones:

  • Los archivos de la carpeta D:\S3 se eliminan en la réplica en espera después de una conmutación por error en instancias multi-AZ. Para obtener más información, consulte Limitaciones multi-AZ para la integración S3.

  • La instancia de base de datos y el bucket de S3 deben estar en la misma región de AWS.

  • Si ejecuta más de una tarea de integración de S3 a la vez, las tareas se ejecutan secuencialmente, no en paralelo.

    nota

    Las tareas de integración de S3 comparten la misma cola que las tareas nativas de copia de seguridad y restauración. Como máximo, solo puede tener dos tareas en curso en cualquier momento en esta cola. Por lo tanto, dos tareas nativas de copia de seguridad y restauración bloquearán cualquier tarea de integración de S3.

  • Tiene que volver a habilitar la característica de integración de S3 en las instancias restauradas. La integración de S3 no se propaga desde la instancia de origen a la instancia restaurada. Los archivos en D:\S3 se eliminan en una instancia restaurada.

  • Las descargas a la instancia de base de datos tienen un límite de 100 archivos. En otras palabras, no puede haber más de 100 archivos en D:\S3\.

  • Sólo se admiten archivos sin extensiones de archivo o con las siguientes extensiones de archivo: .abf, .asdatabase, .bcp, .configsettings, .csv, .dat, .deploymentoptions, .deploymenttargets, .fmt, .info, .ispac, .lst, .tbl, .txt, .xml y .xmla.

  • El propietario del bucket de S3 debe ser el mismo que el del rol relacionado de AWS Identity and Access Management (IAM). Por lo tanto, no se admite la integración de S3 entre cuentas.

  • Además, el bucket de S3 no puede estar abierto al público.

  • El tamaño de archivo para cargas de RDS a S3 está limitado a 50 GB por archivo.

  • El tamaño de archivo para las descargas de S3 a RDS está limitado al máximo admitido por S3.

Para obtener más información sobre cómo trabajar con archivos en Amazon S3, consulte Introducción a Amazon Simple Storage Service.

Requisitos previos para la integración de RDS for SQL Server con S3

Antes de comenzar, busque o cree el bucket de S3 que desea utilizar. También tiene que añadir los permisos para que la instancia de base de datos de RDS pueda acceder al bucket de S3. Para configurar este acceso, cree una política de IAM y un rol de IAM.

Para crear una política de IAM para acceder a Amazon S3
  1. En la IAM Management Console, seleccione Policies (Políticas) en el panel de navegación.

  2. Cree una nueva política y utilice la pestaña Visual editor (Editor visual) para los siguientes pasos.

  3. En Service (Servicio), introduzca S3 y, a continuación, seleccione el servicio de S3.

  4. En Actions (Acciones), seleccione los siguientes elementos para conceder el acceso que requiere la instancia de base de datos:

    • ListAllMyBuckets: obligatorio

    • ListBucket: obligatorio

    • GetBucketACL: obligatorio

    • GetBucketLocation: obligatorio

    • GetObject – obligatorio para descargar archivos desde S3 a D:\S3\

    • PutObject: obligatorio para cargar archivos desde D:\S3\ a S3

    • ListMultipartUploadParts: obligatorio para cargar archivos desde D:\S3\ a S3

    • AbortMultipartUpload: obligatorio para cargar archivos desde D:\S3\ a S3

  5. En Resources (Recursos), las opciones que aparecen varían en función de las acciones que seleccione en el paso anterior. Es posible que vea opciones para bucket, object (objeto) o para ambos. En cada una de ellas, añada el nombre de recurso de Amazon (ARN) adecuado.

    En bucket, añada el ARN del bucket que desea utilizar. Por ejemplo, si el bucket se denomina amzn-s3-demo-bucket, establezca el ARN en arn:aws:s3:::amzn-s3-demo-bucket.

    En object (objeto), introduzca el ARN del bucket y, a continuación, seleccione una de las siguientes opciones:

    • Para conceder acceso a todos los archivos del bucket especificado, seleccione Any (Cualquiera) en Bucket name (Nombre de bucket) y Object name (Nombre de objeto).

    • Para conceder acceso a carpetas o archivos específicos del bucket, facilite los ARN de los objetos y buckets específicos a los que desea que SQL Server acceda.

  6. Siga las instrucciones de la consola hasta que termine de crear la política.

    Se trata de una guía resumida para configurar una política. Para obtener instrucciones más detalladas acerca de la creación de políticas de IAM, consulte Creación de políticas de IAM en la Guía del usuario de IAM.

Para crear un rol de IAM que utiliza la política de IAM del procedimiento anterior
  1. En la IAM Management Console, seleccione Roles en el panel de navegación.

  2. Cree un rol de IAM nuevo y seleccione las siguientes opciones a medida que aparecen en la consola:

    • Servicio de AWS

    • RDS

    • RDS – Add Role to Database (RDS: Añadir rol a la base de datos)

    A continuación, seleccione Next:Permissions (Siguiente:Permisos) en la parte inferior.

  3. En Attach permissions policies (Asociar políticas de permisos), introduzca el nombre de la política de IAM que ha creado previamente. A continuación, seleccione la política de la lista.

  4. Siga las instrucciones de la consola hasta que termine de crear el rol.

    Se trata de una guía resumida para configurar un rol. Si desea obtener instrucciones más detalladas acerca de la creación de roles, consulte Roles de IAM en la Guía del usuario de IAM.

Para conceder a Amazon RDS acceso a un bucket de Simple Storage Service (Amazon S3), utilice el siguiente proceso:

  1. Cree una política de IAM que conceda a Amazon RDS acceso a un bucket de S3.

  2. Cree un rol de IAM que Amazon RDS pueda asumir en su nombre para acceder a los buckets de S3.

    Para obtener más información, vea Crear un rol para delegar permisos a un usuario de IAM en Guía del usuario de IAM.

  3. Asocie la política de IAM que creó al rol de IAM creado.

Para crear la política de IAM

Incluya las acciones adecuadas para conceder el acceso que requiere la instancia de base de datos:

  • ListAllMyBuckets: obligatorio

  • ListBucket: obligatorio

  • GetBucketACL: obligatorio

  • GetBucketLocation: obligatorio

  • GetObject – obligatorio para descargar archivos desde S3 a D:\S3\

  • PutObject: obligatorio para cargar archivos desde D:\S3\ a S3

  • ListMultipartUploadParts: obligatorio para cargar archivos desde D:\S3\ a S3

  • AbortMultipartUpload: obligatorio para cargar archivos desde D:\S3\ a S3

  1. El siguiente comando de la AWS CLI crea una política de IAM denominada rds-s3-integration-policy con estas opciones. Otorga acceso a un bucket denominado amzn-s3-demo-bucket.

    Para Linux, macOS o:Unix

    aws iam create-policy \ --policy-name rds-s3-integration-policy \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/key_prefix/*" } ] }'

    En:Windows

    Asegúrese de cambiar las terminaciones de las líneas a las que son compatibles con la interfaz (^ en lugar de \). Además, en Windows, tiene que escapar todas las comillas dobles con \. Para evitar tener que escapar las comillas del JSON, puede guardarlo en un archivo y transferirlo como un parámetro.

    En primer lugar, cree el archivo policy.json con la siguiente política de permisos:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/key_prefix/*" } ] }

    A continuación, utilice el siguiente comando para crear la política:

    aws iam create-policy ^ --policy-name rds-s3-integration-policy ^ --policy-document file://file_path/assume_role_policy.json
  2. Después de crear la política, anote el Nombre de recurso de Amazon (ARN) de la política. Necesita el ARN para un paso posterior.

Cómo crear el rol de IAM
  • El siguiente comando de la AWS CLI crea el rol de IAM rds-s3-integration-role con este fin.

    Para Linux, macOS o:Unix

    aws iam create-role \ --role-name rds-s3-integration-role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'

    En:Windows

    Asegúrese de cambiar las terminaciones de las líneas a las que son compatibles con la interfaz (^ en lugar de \). Además, en Windows, tiene que escapar todas las comillas dobles con \. Para evitar tener que escapar las comillas del JSON, puede guardarlo en un archivo y transferirlo como un parámetro.

    En primer lugar, cree el archivo assume_role_policy.json con la siguiente política:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

    A continuación, utilice el siguiente comando para crear el rol de IAM:

    aws iam create-role ^ --role-name rds-s3-integration-role ^ --assume-role-policy-document file://file_path/assume_role_policy.json
    ejemplo de utilizar la clave de contexto de condición global para crear el rol de IAM

    Le recomendamos que utilice las claves de contexto de condición globales aws:SourceArn y aws:SourceAccount en las políticas basadas en recursos para limitar los permisos del servicio a un recurso específico. Esta es la forma más eficaz de protegerse contra el problema del suplente confuso.

    Puede utilizar claves de contexto de condición globales y hacer que el valor de aws:SourceArn contenga el ID de cuenta. En estos casos, el valor de aws:SourceAccount y la cuenta del valor de aws:SourceArn deben utilizar el mismo ID de cuenta cuando se utilizan en la misma instrucción de política.

    • Use aws:SourceArn si quiere acceso entre servicios para un único recurso.

    • Use aws:SourceAccount si quiere permitir que cualquier recurso de esa cuenta se asocie al uso entre servicios.

    En la política, asegúrese de utilizar la clave de contexto de condición global aws:SourceArn con el nombre de recurso de Amazon (ARN) completo de los recursos que acceden al rol. Para la integración de S3, asegúrese de incluir los ARN de la instancia de base de datos, tal y como se muestra en el siguiente ejemplo.

    Para Linux, macOS o:Unix

    aws iam create-role \ --role-name rds-s3-integration-role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn":"arn:aws:rds:Region:my_account_ID:db:db_instance_identifier" } } } ] }'

    En:Windows

    Agregue la clave de contexto de condición global a assume_role_policy.json.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn":"arn:aws:rds:Region:my_account_ID:db:db_instance_identifier" } } } ] }
Para adjuntar la política de IAM al rol de IAM
  • El siguiente comando de la AWS CLI asocia la política al rol denominado rds-s3-integration-role. Sustituya your-policy-arn por el ARN de la política anotado en el paso anterior.

    Para Linux, macOS o:Unix

    aws iam attach-role-policy \ --policy-arn your-policy-arn \ --role-name rds-s3-integration-role

    En:Windows

    aws iam attach-role-policy ^ --policy-arn your-policy-arn ^ --role-name rds-s3-integration-role

Habilitación de la integración de RDS for SQL Server con S3

En la siguiente sección, puede encontrar cómo habilitar la integración de Amazon S3 con Amazon RDS for SQL Server. Para trabajar con la integración de S3, la instancia de base de datos debe estar asociada al rol de IAM que ha creado previamente antes de utilizar el parámetro feature-name de S3_INTEGRATION.

nota

Para añadir un rol de IAM a una instancia de base de datos, el estado de la instancia de base de datos debe ser available (disponible).

Para asociar su rol de IAM a su instancia de base de datos
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. Seleccione el nombre de la instancia de base de datos de RDS for SQL Server para mostrar los detalles.

  3. En la pestaña Connectivity & security (Conectividad y seguridad), en la sección Manage IAM roles (Administrar roles de IAM), seleccione el rol de IAM que desea añadir en Add IAM roles to this instance (Añadir roles de IAM a esta instancia).

  4. En Feature (Característica), elija S3_INTEGRATION.

    Agregue el rol S3_INTEGRATION
  5. Seleccione Add role (Añadir rol).

Para añadir el rol de IAM a la instancia de base de datos de RDS for SQL Server
  • El siguiente comando AWS CLI agrega el rol de IAM a una instancia de base de datos de RDS for SQL Server denominada mydbinstance.

    ejemplo

    Para Linux, macOS o:Unix

    aws rds add-role-to-db-instance \ --db-instance-identifier mydbinstance \ --feature-name S3_INTEGRATION \ --role-arn your-role-arn

    En:Windows

    aws rds add-role-to-db-instance ^ --db-instance-identifier mydbinstance ^ --feature-name S3_INTEGRATION ^ --role-arn your-role-arn

    Sustituya your-role-arn por el ARN del rol anotado en el paso anterior. S3_INTEGRATION debe especificarse para la opción --feature-name.

Transferencia de archivos entre RDS for SQL Server y Amazon S3

Puede utilizar los procedimientos almacenados de Amazon RDS para descargar y cargar archivos entre Amazon S3 y su instancia de base de datos de RDS. También puede utilizar los procedimientos almacenados de Amazon RDS para visualizar y eliminar los archivos de la instancia de RDS.

Los archivos que descarga desde y carga a S3 se almacenan en la carpeta D:\S3. Esta es la única carpeta que puede utilizar para acceder a los archivos. Puede organizar los archivos en subcarpetas, que se crean cuando incluye la carpeta de destino durante la descarga.

Algunos procedimientos almacenados necesitan que asigne un nombre de recurso de Amazon (ARN) al bucket de S3 y al archivo. El formato del ARN es arn:aws:s3:::amzn-s3-demo-bucket/file_name. Amazon S3 no requiere un número de cuenta ni una región de AWS en los ARN.

Las tareas de integración de S3 se ejecutan de forma secuencial y comparten la misma cola que las tareas de restauración y copia de seguridad nativas. Como máximo, solo puede tener dos tareas en curso en cualquier momento en esta cola. La tarea puede tardar hasta cinco minutos en comenzar a procesarse.

Descarga de archivos desde un bucket de Amazon S3 a una instancia de base de datos de SQL Server

Para descargar archivos desde un bucket de S3 a una instancia de base de datos de RDS for SQL Server, utilice el Amazon RDS procedimiento almacenado msdb.dbo.rds_download_from_s3 con los siguientes parámetros.

Nombre del parámetro Tipo de datos Valor predeterminado Obligatorio Descripción

@s3_arn_of_file

NVARCHAR

Obligatorio

El ARN de S3 del archivo que desea descargar, por ejemplo: arn:aws:s3:::amzn-s3-demo-bucket/mydata.csv

@rds_file_path

NVARCHAR

Opcional

La ruta del archivo de la instancia de RDS. Si no se especifica, la ruta del archivo es D:\S3\<filename in s3>. RDS admite rutas absolutas y relativas. Si desea crear una subcarpeta, inclúyala en la ruta del archivo.

@overwrite_file

INT

0

Opcional

Sobrescribir el archivo existente:

0 = No sobrescribir

1 = Sobrescribir

Puede descargar archivos sin una extensión de archivo y archivos con las siguientes extensiones de archivo: .bcp, .csv, .dat, .fmt, .info, .lst, .tbl, .txt y .xml.

nota

Los archivos con la extensión de archivo .ispac se pueden descargar cuando SQL Server Integration Services está habilitado. Para obtener más información sobre la habilitación de SSIS, consulte SQL Server Integration Services.

Los archivos con las siguientes extensiones de archivo se pueden descargar cuando SQL Server Analysis Services está habilitado: .abf, .asdatabase, .configsettings, .deploymentoptions, .deploymenttargets y .xmla. Para obtener más información sobre cómo habilitar SSAS, consulte SQL Server Analysis Services.

En el siguiente ejemplo se muestra el procedimiento almacenado para descargar archivos desde S3.

exec msdb.dbo.rds_download_from_s3 @s3_arn_of_file='arn:aws:s3:::amzn-s3-demo-bucket/bulk_data.csv', @rds_file_path='D:\S3\seed_data\data.csv', @overwrite_file=1;

La operación de ejemplo rds_download_from_s3 crea una carpeta denominada seed_data en D:\S3\, si la carpeta no existe. A continuación, el ejemplo descarga el archivo de origen bulk_data.csv desde S3 a un nuevo archivo denominado data.csv en la instancia de base de datos. Si el archivo existía previamente, se sobrescribe porque el parámetro @overwrite_file está establecido en 1.

Carga de archivos desde una instancia de base de datos de SQL Server a un bucket de Amazon S3

Para cargar archivos desde una instancia de base de datos de RDS for SQL Server en un bucket de S3, utilice el el Amazon RDS procedimiento almacenado msdb.dbo.rds_upload_to_s3 con los siguientes parámetros.

Nombre del parámetro Tipo de datos Valor predeterminado Obligatorio Descripción

@s3_arn_of_file

NVARCHAR

Obligatorio

El ARN de S3 del archivo que desea crear en S3, por ejemplo: arn:aws:s3:::amzn-s3-demo-bucket/mydata.csv

@rds_file_path

NVARCHAR

Obligatorio

La ruta del archivo que desea cargar en S3. Se admiten rutas relativas y absolutas.

@overwrite_file

INT

Opcional

Sobrescribir el archivo existente:

0 = No sobrescribir

1 = Sobrescribir

En el siguiente ejemplo se carga el archivo denominado data.csv desde la ubicación especificada en D:\S3\seed_data\ al archivo new_data.csv del bucket de S3 que especifica el ARN.

exec msdb.dbo.rds_upload_to_s3 @rds_file_path='D:\S3\seed_data\data.csv', @s3_arn_of_file='arn:aws:s3:::amzn-s3-demo-bucket/new_data.csv', @overwrite_file=1;

Si el archivo existía previamente en S3, se sobrescribe porque el parámetro @overwrite_file está establecido en 1.

Descripción de los archivos de la instancia de base de datos de RDS

Para visualizar los archivos disponibles en la instancia de base de datos, utilice una función y un procedimiento almacenado. En primer lugar, ejecute el siguiente procedimiento almacenado para recopilar los detalles de los archivos que se encuentran en D:\S3\.

exec msdb.dbo.rds_gather_file_details;

El procedimiento almacenado devuelve el ID de la tarea. Al igual que con las otras tareas, este procedimiento almacenado se ejecuta de forma asíncrona. Cuando el estado de la tarea sea SUCCESS, puede utilizar el ID de la tarea en la función rds_fn_list_file_details para visualizar los directorios y los archivos existentes que se encuentran en D:\S3\, como se muestra a continuación.

SELECT * FROM msdb.dbo.rds_fn_list_file_details(TASK_ID);

La función rds_fn_list_file_details devuelve una tabla con las siguientes columnas.

Parámetro de salida Descripción
filepath Ruta absoluta del archivo (por ejemplo, D:\S3\mydata.csv)
size_in_bytes Tamaño del archivo (en bytes)
last_modified_utc Fecha y hora en formato UTC de la última modificación
is_directory Opción que indica si el elemento es un directorio (true/false)

Eliminación de los archivos de la instancia de base de datos de RDS

Para eliminar los archivos disponibles en la instancia de base de datos, utilice el procedimiento almacenado de Amazon RDS msdb.dbo.rds_delete_from_filesystem con los siguientes parámetros.

Nombre del parámetro Tipo de datos Valor predeterminado Obligatorio Descripción

@rds_file_path

NVARCHAR

Obligatorio

La ruta del archivo que desea eliminar. Se admiten rutas relativas y absolutas.

@force_delete

INT

0

Opcional

Para eliminar un directorio, se debe incluir este indicador y establecerlo en 1.

1 = Eliminar directorio

Este parámetro se ignora si va a eliminar un archivo.

Para eliminar un directorio, @rds_file_path debe terminar con una barra invertida (\) y @force_delete se debe establecer en 1.

En el siguiente ejemplo se elimina el archivo D:\S3\delete_me.txt.

exec msdb.dbo.rds_delete_from_filesystem @rds_file_path='D:\S3\delete_me.txt';

En el siguiente archivo se elimina el directorio D:\S3\example_folder\.

exec msdb.dbo.rds_delete_from_filesystem @rds_file_path='D:\S3\example_folder\', @force_delete=1;

Monitoreo del estado de una tarea de transferencia de archivos

Para realizar un seguimiento del estado de la tarea de integración de S3, llame a la función rds_fn_task_status. Tiene dos parámetros. El primer parámetro siempre debe ser NULL porque no se aplica a la integración de S3. El segundo parámetro acepta un ID de tarea.

Para obtener una lista de todas las tareas, establezca el primer parámetro en NULL y el segundo en 0, como se muestra en el siguiente ejemplo.

SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,0);

Para obtener una tarea específica, establezca el primer parámetro en NULL y el segundo en el ID de la tarea, como se muestra en el siguiente ejemplo.

SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,42);

La función rds_fn_task_status devuelve la siguiente información.

Parámetro de salida

Descripción

task_id

El ID de la tarea.

task_type

En la integración de S3, las tareas pueden ser de los siguientes tipos:

  • DOWNLOAD_FROM_S3

  • UPLOAD_TO_S3

  • LIST_FILES_ON_DISK

  • DELETE_FILES_ON_DISK

database_name

No se aplica a las tareas de integración de S3.

% complete

El porcentaje de progreso de la tarea.

duration(mins)

El tiempo empleado en la tarea, en minutos.

lifecycle

El estado de la tarea. Los posibles estados son los siguientes:

  • CREATED – después de llamar a uno de los procedimientos almacenados de la integración de S3, se crea una tarea y el estado se establece en CREATED.

  • IN_PROGRESS – cuando una tarea comienza, el estado se establece en IN_PROGRESS. Pueden pasar hasta cinco minutos hasta que el estado cambie de CREATED a IN_PROGRESS.

  • SUCCESS – cuando una tarea se completa, el estado se establece en SUCCESS.

  • ERROR – si se produce un error con una tarea, el estado se establece en ERROR. Para obtener más información acerca del error, consulte la columna task_info.

  • CANCEL_REQUESTED: después de llamar a rds_cancel_task, el estado de la tarea se establece en CANCEL_REQUESTED.

  • CANCELLED – después de que se cancela una tarea correctamente, se establece su estado en CANCELLED.

task_info

Información adicional acerca de la tarea. Si se produce un error durante el procesamiento, esta columna contiene información acerca del error.

last_updated

La fecha y hora en que se actualizó por última vez el estado de la tarea.

created_at

La fecha y hora en que se creó la tarea.

S3_object_arn

El ARN del objeto de S3 desde el que se descarga o al que se carga.

overwrite_S3_backup_file

No se aplica a las tareas de integración de S3.

KMS_master_key_arn

No se aplica a las tareas de integración de S3.

filepath

La ruta del archivo de la instancia de base de datos de RDS.

overwrite_file

Una opción que indica si un archivo existente se sobrescribe.

task_metadata

No se aplica a las tareas de integración de S3.

Cancelación de una tarea

Para cancelar las tareas de integración de S3, utilice el procedimiento almacenado msdb.dbo.rds_cancel_task con el parámetro task_id. La eliminación y la visualización de las tareas que están en curso no se pueden cancelar. En el siguiente ejemplo se muestra una solicitud para cancelar una tarea.

exec msdb.dbo.rds_cancel_task @task_id = 1234;

Para obtener información general acerca de todas las tareas y sus ID de tarea, utilice la función rds_fn_task_status como se describe en Monitoreo del estado de una tarea de transferencia de archivos.

Limitaciones multi-AZ para la integración S3

En las instancias multi-AZ, los archivos de la carpeta D:\S3 se eliminan en la réplica en espera después de una conmutación por error. Se puede planificar una conmutación por error, por ejemplo, durante las modificaciones de instancia de base de datos, como cambiar la clase de instancia o actualizar la versión del motor. O una conmutación por error puede no estar planificada, durante una interrupción del servicio principal.

nota

No recomendamos usar la carpeta D:\S3 para el almacenamiento de archivos. La práctica recomendada consiste en cargar archivos creados en Amazon S3 para hacerlos duraderos y descargar archivos cuando tenga que importar datos.

Para determinar la hora de la última conmutación por error, puede utilizar el procedimiento almacenado msdb.dbo.rds_failover_time. Para obtener más información, consulte Determinación de la hora de la última conmutación por error.

ejemplo de No hay conmutación por error reciente

Este ejemplo muestra el resultado cuando no hay conmutación por error reciente en los registros de errores. No se ha producido ninguna conmutación por error desde 2020-04-29 23:59:00 .01.

Por lo tanto, todos los archivos descargados después de esa hora que no se hayan eliminado mediante el procedimiento almacenado rds_delete_from_filesystem siguen siendo accesibles en el alojamiento actual. Los archivos descargados antes de esa hora también pueden estar disponibles.

errorlog_available_from recent_failover_time

2020-04-29 23:59:00.0100000

null

ejemplo de Conmutación por error reciente

Este ejemplo muestra el resultado cuando hay una conmutación por error en los registros de errores. La conmutación por error más reciente fue en 2020-05-05 18:57:51 .89.

Todos los archivos descargados después de esa hora que no se hayan eliminado mediante el procedimiento almacenado rds_delete_from_filesystem siguen siendo accesibles en el alojamiento actual.

errorlog_available_from recent_failover_time

2020-04-29 23:59:00.0100000

2020-05-05 18:57:51.8900000

Desactivación de la integración de RDS for SQL Server con S3

A continuación puede encontrar cómo deshabilitar la integración de Amazon S3 con Amazon RDS for SQL Server. Los archivos de D:\S3\ no se eliminan al deshabilitar la integración de S3.

nota

Para eliminar un rol de IAM de una instancia de base de datos, el estado de la instancia de base de datos debe ser available.

Para desvincular el rol de IAM de la instancia de base de datos
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. Seleccione el nombre de la instancia de base de datos de RDS for SQL Server para mostrar los detalles.

  3. En la pestaña Connectivity & security (Conectividad y seguridad), en la sección Manage IAM roles (Administrar roles de IAM), seleccione el rol de IAM que desea eliminar.

  4. Elija Eliminar.

Para eliminar el rol de IAM de la instancia de base de datos de RDS for SQL Server
  • El siguiente comando AWS CLI elimina el rol de IAM de una instancia de base de datos RDS for SQL Server denominada mydbinstance.

    Para Linux, macOS o:Unix

    aws rds remove-role-from-db-instance \ --db-instance-identifier mydbinstance \ --feature-name S3_INTEGRATION \ --role-arn your-role-arn

    En:Windows

    aws rds remove-role-from-db-instance ^ --db-instance-identifier mydbinstance ^ --feature-name S3_INTEGRATION ^ --role-arn your-role-arn

    Sustituya your-role-arn por el ARN del rol de IAM adecuado en la opción --feature-name.