Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2023-05-08 GMT+08:00

Actualización de la versión principal de una instancia de base de datos

Escenarios

Puede actualizar la versión principal de RDS for PostgreSQL para disfrutar de más funciones y un mayor rendimiento y seguridad. Las actualizaciones de versiones principales pueden introducir cambios que son incompatibles con versiones existentes y afectan a la ejecución del servicio. Por lo tanto, debe probar los servicios en la versión de destino antes de la actualización.

En esta sección, la instancia de origen indica la instancia de base de datos que ejecuta la versión de origen y la instancia de destino indica la instancia de base de datos que ejecuta la versión de destino.

Descripción de versión de RDS for PostgreSQL

  • RDS for PostgreSQL v10 y versiones posteriores consisten en una versión principal y una versión secundaria. Una actualización de la versión principal se refiere a la actualización de la versión principal, como de 11.x a 12.x.
  • Las versiones anteriores a RDS for PostgreSQL v10 consisten en dos versiones principales y una versión secundaria. Una actualización de versión principal se refiere a la actualización de las versiones principales, como de 9.5.x a 9.6.x o de 9.x.x a 10.x.

Preparaciones

  1. Vea información sobre la instancia de base de datos de RDS for PostgreSQL que se va a actualizar.
    1. En la página Instances, haga clic en la instancia de base de datos que desea actualizar.
    2. En la página Basic Information, vea la región, zona de disponibilidad, VPC, subred y grupo de seguridad de la instancia de base de datos.
  2. Preparar un ECS.

    Para conectarse a una instancia de base de datos a través de un ECS, primero debe crear un ECS.

    Para obtener más información sobre cómo crear y conectar un ECS, consulte ¿Cómo puedo crear y conectar un ECS?

    La región, zona de disponibilidad, VPC, subred y grupo de seguridad del ECS son los mismos que los de la instancia de base de datos de RDS for PostgreSQL que se va a actualizar.

  3. Instale un cliente PostgreSQL en el ECS creado en 2.

    Para obtener más información, consulte ¿Cómo puedo instalar el cliente de PostgreSQL?

    La versión del cliente RDS for PostgreSQL debe ser la misma que la de la instancia RDS for PostgreSQL. La instancia o cliente de RDS para PostgreSQL proporciona pg_dump, pg_restore, y psql.

  4. Conéctese a la instancia fuente a través de psql y ejecute la siguiente instrucción SQL en cada base de datos para obtener la lista de plugins usada:

    select extname from pg_extension;

  5. Seleccione una versión de destino que contenga todos los plugins basados en la lista de plugins usados.

    Para obtener más información sobre los plugins soportados por diferentes versiones de RDS for PostgreSQL, consulte Plugins compatibles.

  6. Cree una plantilla de parámetros que sea compatible con la versión de origen haciendo referencia a Creación de una plantilla de parámetros.
  7. Cree una instancia de RDS for PostgreSQL que ejecute la versión de destino.
    • Para obtener más información sobre cómo crear una instancia de base de datos, consulte Compra de una instancia de base de datos.
    • La región, zona de disponibilidad, VPC, subred y grupo de seguridad de la instancia de destino son los mismos que los de la instancia de origen.
  8. En el ECS preparado en 2, use psql para conectarse a la instancia de destino y compruebe que la conexión es correcta.

Procedimiento

Realice las siguientes operaciones en el ECS preparado.

  1. Utilice psql para conectarse a la instancia de origen y ejecute la siguiente instrucción SQL para obtener la lista de la base de datos:

    postgres=# \l

  2. Utilice psql para conectarse a la instancia de destino y ejecute la siguiente instrucción SQL para comprobar si todas las bases de datos obtenidas en 1 existen en la instancia de destino:

    postgres=# \l

    • En caso afirmativo, vaya a 3.
    • Si no, ejecute la siguiente sentencia de SQL para crear bases de datos que no existen en la instancia de destino y vaya a 3.

      postgres=# create database my_target_db;

      • No es necesario migrar las bibliotecas de plantillas template0 y template1.
      • La base de datos postgres se crea de forma predeterminada y no necesita migrarse a menos que almacene datos de servicio.

  3. Use pg_dump para volcar la instancia de origen y use pg_restore para restaurar datos a la instancia de destino. Repita 3 a 4 en cada base de datos de servicio.

    • Para versiones distintas de RDS for PostgreSQL 11, ejecute el siguiente comando de volcado:

      pg_dump -Fc -v --host=source_IP --port=source_port --username=my_user --dbname=my_source_db | pg_restore -v --no-owner --host=target_IP --port=target_port --username=my_user --dbname=my_target_db

    • Para RDS for PostgreSQL 11, ejecute el siguiente comando de volcado:

      pg_dump -Fc -v --host=source_IP --port=source_port -Ndbms_lob -Ndbms_output -Ndbms_random -Nsys -Nutl_raw -Npg_catalog --username=my_user --dbname=my_source_db | pg_restore -v --no-owner --host=target_IP --port=target_port --username=my_user --dbname=my_target_db

    • El usuario de inicio de sesión que usa pg_dump debe tener el permiso para acceder a todos los objetos de la base de datos.
    • El usuario de inicio de sesión que usa pg_restore debe tener todos los permisos de operación en la base de datos.
    • Para obtener más información sobre cómo conceder permisos, consulte GRANT.
    • Si el comando pg_dump utiliza el parámetro -N, los blobs no se exportarán.
    • Si el comando pg_dump utiliza el parámetro -Fc, el archivo exportado está en formato binario. Para exportar archivos SQL, utilice el parámetro -Fp.

  4. Después de migrar una base de datos, pruebe los servicios en la base de datos de destino para asegurarse de que los servicios se están ejecutando correctamente en ella.
  5. Compruebe que los servicios se están ejecutando correctamente en las bases de datos de destino. A continuación, cambie los servicios a la instancia de destino y elimine la instancia de origen.