Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Transporte SQL bases de datos de Postgre entre dos instancias de Amazon RDS DB mediante pg_transport
Creado por Raunak Rishabh () y Jitender Kumar () AWS AWS
Entorno: PoC o piloto | Origen: bases de datos: relacionales | Objetivo: Amazon RDS para Postgre SQL |
Tipo R: reubicar | Carga de trabajo: código abierto | Tecnologías: migración; bases de datos |
AWSservicios: Amazon RDS |
Resumen
Este patrón describe los pasos para migrar bases de datos extremadamente grandes entre dos instancias de base de datos de Amazon Relational Database Service (RDSAmazon) para SQL Postgre mediante la extensión pg_transport. Esta extensión proporciona un mecanismo físico de transporte para trasladar cada base de datos. Al transmitir por streaming los archivos de base de datos con un procesamiento mínimo, proporciona un método extremadamente rápido para migrar bases de datos de gran tamaño entre instancias de base de datos con un tiempo de inactividad mínimo. Esta extensión utiliza un modelo de extracción donde la instancia de base de datos de destino importa la base de datos de la instancia de base de datos de origen.
Requisitos previos y limitaciones
Requisitos previos
Ambas instancias de base de datos deben ejecutar la misma versión principal de Postgre. SQL
La base de datos no debe existir en el destino. De lo contrario, el transporte devuelve un error.
No se debe habilitar ninguna extensión que no sea pg_transport en la base de datos de origen.
Todos los objetos de base de datos deben estar en el espacio de tablas predeterminado pg_default.
El grupo de seguridad de la instancia de base de datos de origen debe permitir el tráfico desde la instancia de base de datos de destino.
Instale un SQL cliente de Postgre, como psql
, o PgAdmin para trabajar con la instancia de base de datos de Amazon RDS SQL Postgre. Puede instalar el cliente en su sistema local o utilizar una instancia de Amazon Elastic Compute Cloud (AmazonEC2). En este patrón, utilizamos psql en una EC2 instancia.
Limitaciones
No puedes transportar bases de datos entre distintas versiones principales de Amazon RDS for PostgreSQL.
Los privilegios de acceso y la propiedad de la base de datos de origen no se transfieren a la base de datos de destino.
No puede transportar bases de datos en réplicas de lectura ni en instancias principales de réplicas de lectura.
No puede utilizar tipos de datos de registro en ninguna tabla de base de datos que planee transportar con este método.
Puede ejecutar hasta 32 transportes totales al mismo tiempo en una instancia de base de datos, (incluidas tanto importaciones como exportaciones).
No puede cambiar el nombre de las tablas ni incluirlas o excluirlas. Todo se migra tal cual.
Precaución
Realice copias de seguridad antes de eliminar la extensión, ya que al eliminar la extensión también se eliminan los objetos dependientes y algunos datos que son fundamentales para el funcionamiento de la base de datos.
Tenga en cuenta la clase de instancia y los procesos que se ejecutan en otras bases de datos de la instancia de origen al determinar la cantidad de trabajadores y los
work_mem
valores de pg_transport.Cuando se inicia el transporte, finalizan todas las conexiones de la base de datos de origen y la base de datos pasa al modo de solo lectura.
Nota: Cuando el transporte se ejecuta en una base de datos, no afecta a las demás bases de datos del mismo servidor.
Versiones de producto
Amazon RDS para Postgre SQL 10.10 y versiones posteriores y Amazon RDS para SQL Postgre 11.5 y versiones posteriores. Para obtener información sobre la versión más reciente, consulte Transporte de SQL bases de datos Postgre entre instancias de base de datos en la documentación de AmazonRDS.
Arquitectura
Herramientas
pg_transport proporciona un mecanismo físico de transporte para trasladar cada base de datos. Al transmitir por streaming los archivos de la base de datos con un procesamiento mínimo, el transporte físico mueve los datos mucho más rápido que los procesos tradicionales de volcado y carga y requiere un tiempo de inactividad mínimo. Las bases de datos SQL transportables de Postgre utilizan un modelo de extracción en el que la instancia de base de datos de destino importa la base de datos de la instancia de base de datos de origen. Esta extensión se instala en las instancias de base de datos al preparar los entornos de origen y destino, tal y como se explica en este patrón.
psql
le permite conectarse a sus instancias de base de datos de Postgre y trabajar con ellas. SQL Para instalar psql en su sistema, consulte la página de descargas de Postgre. SQL
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree un grupo de parámetros para el sistema de destino. | Especifique un nombre de grupo que lo identifique como grupo de parámetros de destino; por ejemplo,v | DBA |
Modifique los parámetros para el grupo de parámetros. | Establezca los siguientes parámetros:
Para obtener más información sobre estos parámetros, consulta la RDSdocumentación de Amazon. | DBA |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree un grupo de parámetros para el sistema de origen. | Especifique un nombre de grupo que lo identifique como grupo de parámetros de origen; por ejemplo, | DBA |
Modifique los parámetros para el grupo de parámetros. | Establezca los siguientes parámetros:
Para obtener más información sobre estos parámetros, consulta la RDSdocumentación de Amazon. | DBA |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree una nueva instancia de SQL base de datos de Amazon RDS for Postgre a la que transportar la base de datos de origen. | Determine la clase de instancia y la SQL versión de Postgre en función de los requisitos de su empresa. | DBA, administrador de sistemas, arquitecto de bases de datos |
Modifique el grupo de seguridad del destino para permitir las conexiones en el puerto de la instancia de base de datos desde la EC2 instancia. | De forma predeterminada, el puerto de la SQL instancia de Postgre es 5432. Si utilizas otro puerto, las conexiones a ese puerto deben estar abiertas para la instancia. EC2 | DBA, administrador de sistemas |
Modifique la instancia y asigne el nuevo grupo de parámetros de destino. | Por ejemplo, | DBA |
Reinicie la instancia de Amazon RDS DB de destino. | Los parámetros | DBA, administrador de sistemas |
Conéctese a la base de datos desde la EC2 instancia mediante psql. | Utilice el comando:
| DBA |
Cree la extensión pg_transport. | Ejecute la siguiente consulta como usuario con el rol
| DBA |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Modifique el grupo de seguridad de la fuente para permitir las conexiones en el puerto de la instancia de base de datos desde la instancia de Amazon y la EC2 instancia de base de datos de destino | De forma predeterminada, el puerto de la SQL instancia de Postgre es 5432. Si utilizas otro puerto, las conexiones a ese puerto deben estar abiertas para la instancia. EC2 | DBA, administrador de sistemas |
Modifique la instancia y asigne el nuevo grupo de parámetros de origen. | Por ejemplo, | DBA |
Reinicie la RDS instancia de base de datos Amazon de origen. | Los parámetros | DBA |
Conéctese a la base de datos desde la EC2 instancia mediante psql. | Utilice el comando:
| DBA |
Cree la extensión pg_transport y elimine todas las demás extensiones de las bases de datos que se van a transportar. | El transporte fallará si hay alguna extensión que no sea pg_transport instalada en la base de datos de origen. Este comando debe ejecutarlo un usuario con el rol | DBA |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Ejecute una prueba. | Utilice la función
El último parámetro de esta función (establecido en Esta función muestra los errores que aparecen al ejecutar el transporte principal. Resuelva los errores antes de ejecutar el transporte principal. | DBA |
Si el simulacro se realiza correctamente, inicie el transporte de la base de datos. | Ejecute la función
El último parámetro de esta función (establecido en | DBA |
Realice los pasos posteriores al transporte. | Una vez finalizado el transporte de la base de datos:
| DBA |