使用 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
test