[ pg数据库数据备份 ]


使用 psql

1. 备份所有表不包含数据库

pg_dump -U <username> -d <database_name> -f /path/to/backup/file.sql

3. 命令恢复数据库

psql -U <username> -d <database_name> -f /path/to/backup/file

2. 备份整个数据库

pg_dump -U <username> -d <database_name> -f 20240618-01.sql --create

# 直接备份到外部文件
docker exec $CONTAINER_NAME pg_dump -U $PG_USER -d $PG_DB > $BACKUP_FILE --create

4. 恢复整个数据库

psql -U inhouse -d postgres -f 20240618-01.sql

5. 在容器外面执行命令

1.容器外面执行备份

docker exec -i xxxxxx容器id pg_dump -U username用户名 -d dbname > xxxx.sql --create

2.删除整个数据库 删除会话

psql -U inhouse -d CEWS_PROD -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='CEWS_PROD' AND pid<>pg_backend_pid();"

3.删除数据库

dropdb -U inhouse CEWS_PROD

4.恢复数据库数据

psql -U inhouse -d postgres < 2024-07-17.sql

5.在docker外面恢复例子

docker exec -i 9b02 psql -U inhouse -d postgres < /home/chf/backup/cews/db/2024-07-17.sql