Este tema describe cómo usar el comando pg_restore para restaurar datos desde un archivo de copia de seguridad lógica (.dump) hacia una instancia de ApsaraDB RDS for PostgreSQL o una base de datos PostgreSQL local.
Para volúmenes pequeños de datos, como los de una sola tabla, puede utilizar una copia de seguridad lógica y lograr una recuperación rápida. Si maneja grandes cantidades de datos, se recomienda restaurar los datos desde una copia de seguridad física completa en una nueva instancia y luego usar Data Transmission Service (DTS) para migrate the data back to the original instance.
Para obtener más información sobre los métodos de recuperación de datos, consulte Recover.
Requisitos previos
Ya creó una logical backup of your PostgreSQL data.
Notas de uso
No se conecte a la base de datos
postgrespredeterminada mientras restaura los datos.Restaurar una tabla específica no recupera otros objetos de la base de datos de los que depende dicha tabla. Por lo tanto, la operación podría fallar si se restaura sobre una base de datos vacía.
Restauración de una base de datos
-
Inicie sesión en la instancia de ECS o en el host local donde se almacenan los datos de la copia de seguridad. Luego, ejecute el siguiente comando para restaurar la base de datos.
pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -c <dumpdir>Parámetro
Descripción
hostname
El endpoint de la instancia de ApsaraDB RDS for PostgreSQL.
Nota-
Si va a conectarse desde una instancia de ECS mediante una internal endpoint, asegúrese de que la instancia de ECS y la instancia de ApsaraDB RDS for PostgreSQL utilicen el mismo tipo de red. Cuando ambas instancias están en una VPC, deben residir en la misma VPC.
-
Si la conexión se establece desde un host local o una instancia de ECS mediante una public endpoint, asegúrese de que exista una public endpoint is enabled para la instancia.
username
El nombre de usuario de la cuenta con privilegios de la instancia de ApsaraDB RDS for PostgreSQL.
port
El número de puerto de la instancia de ApsaraDB RDS for PostgreSQL.
dbname
El nombre de la base de datos que desea restaurar.
-c (opcional)
La opción
-celimina los objetos existentes de la base de datos antes de volver a crearlos. Para obtener más información sobre otras opciones, consulte la documentación oficial de pg_restore.dumpdir
La ruta y el nombre del archivo de copia de seguridad.
Ejemplo:
pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht02 -c /tmp/testdb.dump -
-
Cuando aparezca el mensaje
Password:, introduzca la contraseña de la cuenta con privilegios de la instancia y presione Enter.[root@iZbpxxx ~]# pg_restore -h 'pgm-xxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht02 -c /tmp/testdb.dump Password: [root@iZbpxxx ~]#NotaPuede ignorar cualquier advertencia relacionada con la extensión integrada plpgsql.
Restauración de una tabla específica
-
Inicie sesión en la instancia de ECS o en el host local donde se almacenan los datos de la copia de seguridad. Después, ejecute el siguiente comando para restaurar una tabla específica.
pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -t <table> -c <dumpdir>Parámetro
Descripción
hostname
El endpoint de la instancia de ApsaraDB RDS for PostgreSQL.
Nota-
Si va a conectarse desde una instancia de ECS mediante una internal endpoint, asegúrese de que la instancia de ECS y la instancia de ApsaraDB RDS for PostgreSQL utilicen el mismo tipo de red. Cuando ambas instancias están en una VPC, deben residir en la misma VPC.
-
Si la conexión se establece desde un host local o una instancia de ECS mediante una public endpoint, asegúrese de que exista una public endpoint is enabled para la instancia.
username
El nombre de usuario de la cuenta con privilegios de la instancia de ApsaraDB RDS for PostgreSQL.
port
El número de puerto de la instancia de ApsaraDB RDS for PostgreSQL.
dbname
El nombre de la base de datos que desea restaurar.
table
El nombre de la tabla que desea restaurar.
-c (opcional)
La opción
-celimina los objetos existentes de la base de datos antes de volver a crearlos. Para obtener más información sobre otras opciones, consulte la documentación oficial de pg_restore.dumpdir
La ruta y el nombre del archivo de copia de seguridad.
Ejemplo:
pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht01 -t zhttest0808 -c /tmp/testdb2.dump -
-
Cuando aparezca el mensaje
Password:, introduzca la contraseña de la cuenta con privilegios de la instancia y presione Enter.[root@iZbpxxx ~]# pg_restore -h 'pgm-bpxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht01 -t zhttest0808 -c /tmp/testdb2.dump Password: [root@iZbpxxx ~]#
Restauración exclusiva del esquema de una base de datos
-
Inicie sesión en la instancia de ECS o en el host local donde se almacenan los datos de la copia de seguridad. A continuación, ejecute el siguiente comando para restaurar únicamente el esquema de la base de datos.
pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -s <dumpdir>Parámetro
Descripción
hostname
El endpoint de la instancia de ApsaraDB RDS for PostgreSQL.
Nota-
Si va a conectarse desde una instancia de ECS mediante una internal endpoint, asegúrese de que la instancia de ECS y la instancia de ApsaraDB RDS for PostgreSQL utilicen el mismo tipo de red. Cuando ambas instancias están en una VPC, deben residir en la misma VPC.
-
Si la conexión se establece desde un host local o una instancia de ECS mediante una public endpoint, asegúrese de que exista una public endpoint is enabled para la instancia.
username
El nombre de usuario de la cuenta con privilegios de la instancia de ApsaraDB RDS for PostgreSQL.
port
El número de puerto de la instancia de ApsaraDB RDS for PostgreSQL.
dbname
El nombre de la base de datos de destino.
-s
La opción
-srestaura únicamente el esquema (definición de datos), sin incluir los datos. Para obtener más información sobre otras opciones, consulte la documentación oficial de pg_restore.dumpdir
La ruta y el nombre del archivo de copia de seguridad.
Ejemplo:
pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht03 -s /tmp/testdb2.dump -
-
Cuando aparezca el mensaje
Password:, introduzca la contraseña de la cuenta con privilegios de la instancia y presione Enter.[root@iZbpxxx ~]# pg_restore -h 'pgm-bpxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht03 -s /tmp/testdb2.dump Password: [root@iZbpxxx ~]#NotaPuede ignorar cualquier advertencia relacionada con la extensión integrada plpgsql.