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.
Temas
- Requisitos previos para la integración de RDS for SQL Server con S3
- Habilitación de la integración de RDS for SQL Server con S3
- Transferencia de archivos entre RDS for SQL Server y Amazon S3
- Descripción de los archivos de la instancia de base de datos de RDS
- Eliminación de los archivos de la instancia de base de datos de RDS
- Monitoreo del estado de una tarea de transferencia de archivos
- Cancelación de una tarea
- Limitaciones multi-AZ para la integración S3
- Desactivación de la integración de RDS for SQL Server con 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
-
En la IAM Management Console
, seleccione Policies (Políticas) en el panel de navegación. -
Cree una nueva política y utilice la pestaña Visual editor (Editor visual) para los siguientes pasos.
-
En Service (Servicio), introduzca
S3
y, a continuación, seleccione el servicio de S3. -
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 aD:\S3\
-
PutObject
: obligatorio para cargar archivos desdeD:\S3\
a S3 -
ListMultipartUploadParts
: obligatorio para cargar archivos desdeD:\S3\
a S3 -
AbortMultipartUpload
: obligatorio para cargar archivos desdeD:\S3\
a S3
-
-
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 enarn: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.
-
-
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
-
En la IAM Management Console
, seleccione Roles en el panel de navegación. -
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.
-
-
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.
-
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:
-
Cree una política de IAM que conceda a Amazon RDS acceso a un bucket de S3.
-
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.
-
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 aD:\S3\
-
PutObject
: obligatorio para cargar archivos desdeD:\S3\
a S3 -
ListMultipartUploadParts
: obligatorio para cargar archivos desdeD:\S3\
a S3 -
AbortMultipartUpload
: obligatorio para cargar archivos desdeD:\S3\
a S3
-
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 denominadoamzn-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 -
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.jsonejemplo 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
yaws: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 deaws:SourceAccount
y la cuenta del valor deaws: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
por el ARN de la política anotado en el paso anterior.your-policy-arn
Para Linux, macOS o:Unix
aws iam attach-role-policy \ --policy-arn
your-policy-arn
\ --role-namerds-s3-integration-role
En:Windows
aws iam attach-role-policy ^ --policy-arn
your-policy-arn
^ --role-namerds-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
Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/
. -
Seleccione el nombre de la instancia de base de datos de RDS for SQL Server para mostrar los detalles.
-
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).
-
En Feature (Característica), elija S3_INTEGRATION.
-
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-arnyour-role-arn
En:Windows
aws rds add-role-to-db-instance ^ --db-instance-identifier
mydbinstance
^ --feature-name S3_INTEGRATION ^ --role-arnyour-role-arn
Sustituya
por el ARN del rol anotado en el paso anterior.your-role-arn
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:::
. Amazon S3 no requiere un número de cuenta ni una región de AWS en los ARN.amzn-s3-demo-bucket
/file_name
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 |
---|---|---|---|---|
|
NVARCHAR |
– |
Obligatorio |
El ARN de S3 del archivo que desea descargar, por ejemplo: |
|
NVARCHAR |
– |
Opcional |
La ruta del archivo de la instancia de RDS. Si no se especifica, la ruta del archivo es |
|
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 |
---|---|---|---|---|
|
NVARCHAR |
– |
Obligatorio |
El ARN de S3 del archivo que desea crear en S3, por ejemplo: |
|
NVARCHAR |
– |
Obligatorio |
La ruta del archivo que desea cargar en S3. Se admiten rutas relativas y absolutas. |
|
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 |
---|---|---|---|---|
|
NVARCHAR |
– |
Obligatorio |
La ruta del archivo que desea eliminar. Se admiten rutas relativas y absolutas. |
|
INT |
0 |
Opcional |
Para eliminar un directorio, se debe incluir este indicador y establecerlo en
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 |
---|---|
|
El ID de la tarea. |
|
En la integración de S3, las tareas pueden ser de los siguientes tipos:
|
|
No se aplica a las tareas de integración de S3. |
|
El porcentaje de progreso de la tarea. |
|
El tiempo empleado en la tarea, en minutos. |
|
El estado de la tarea. Los posibles estados son los siguientes:
|
|
Información adicional acerca de la tarea. Si se produce un error durante el procesamiento, esta columna contiene información acerca del error. |
|
La fecha y hora en que se actualizó por última vez el estado de la tarea. |
|
La fecha y hora en que se creó la tarea. |
|
El ARN del objeto de S3 desde el que se descarga o al que se carga. |
|
No se aplica a las tareas de integración de S3. |
|
No se aplica a las tareas de integración de S3. |
|
La ruta del archivo de la instancia de base de datos de RDS. |
|
Una opción que indica si un archivo existente se sobrescribe. |
|
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
-
Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/
. -
Seleccione el nombre de la instancia de base de datos de RDS for SQL Server para mostrar los detalles.
-
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.
-
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-arnyour-role-arn
En:Windows
aws rds remove-role-from-db-instance ^ --db-instance-identifier
mydbinstance
^ --feature-name S3_INTEGRATION ^ --role-arnyour-role-arn
Sustituya
por el ARN del rol de IAM adecuado en la opciónyour-role-arn
--feature-name
.