Khi bạn chạy lệnh thực thi pg_dumpall xuất hiện lỗi như bên dưới này:
-bash-4.2$ pg_dump -U postgres -n duongdb -f /pgbackup/backup_duongdb.sql
pg_dumpall: server version: 15.7; pg_dump version: 9.2.24
pg_dumpall: aborting because of server version mismatch
Nguyên nhân: đây là lỗi postgresql server và pg_dumpall không sử dụng cùng phiên bản, không tương thích với nhau nên không tiến hành thực hiện backup được.
Khắc phục: thực hiện symlink version
Kiểm tra đường dẫn cài đặt pg_dumpall:
find / -name pg_dumpall -type f 2>/dev/null
[root@localhost data]# find / -name pg_dumpall
/usr/bin/pg_dumpall
/usr/pgsql-15/bin/pg_dumpall
=> pg_dumpall hiện có 2 đường dẫn => có 2 version khác nhau cùng thực hiện, hệ thống không hiểu sử dụng version nào? => chúng ta cần chỉ ra cho postgresql biết được là sử dụng dump nào
Link 2 directory lại với nhau:
sudo ln -s /usr/pgsql-15/bin/pg_dumpall /usr/bin/pg_dumpall --force
Tiến hành bachkup bình thường: (giả sử có DB là duongdb)
login vào user postgres và thực hiện lệnh sau: đường dẫn file: /pgbackup/backup_duongdb.sql, thư mục phải được tạo sẵn trước và user phải có quyền ghi.
su postgres
pg_dumpall duongdb > /pgbackup/backup_duongdb.sql;
drwxr-xr-x. 2 postgres postgres 32 May 16 21:16 .
dr-xr-xr-x. 19 root root 4.0K May 13 14:47 ..
-rw-r–r–. 1 postgres postgres 137M May 16 21:16 backup_duongdb.sql
=> backup thành công không có lỗi.