Thứ Năm, 27 tháng 7, 2023

9 bước đơn giản nâng cấp từ Postgresql phiên bản cũ lên Postgresql 14 chạy trong Docker

9 bước đơn giản nâng cấp từ Postgresql phiên bản cũ lên Postgresql 14 chạy trong Docker

Ngày 30/9/2021, Postgresl 14 ra mắt với nhiều tính năng cải tiến. Giả sử bạn đang có một hệ CSDL Postgresql phiên bản cũ (gọi tắt là Postgresql cũ) chạy trong Docker, vậy làm sao để nâng cấp hệ CSDL này lên Postgresql 14? Tôi sẽ sử dụng công cụ pg_dumpall để backup dữ liệu ở Postgresql cũ rồi khôi phục vào Postgresql 14.

  1. Sử dụng Pgadmin hoặc Dbeaver hoặc psql kết nối vào hệ CSDL hiện giờ truy vấn thông tin phiên bản bằng lệnh SELECT version();
    Kết quả

    PostgreSQL 12.8 on x86_64-pc-linux-musl, compiled by gcc (Alpine 10.3.1_git20210424) 10.3.1 20210424, 64-bit

    dbeaver

  2. Lấy container id của Postgresql cũ bằng lệnh ps hoặc trực quan dùng ctop. Bạn phải cài bổ xung ctop từ web site https://github.com/bcicen/ctop
    ctop
    Ở hình trên {old_postgres_container_id} = 910742cdfc0b

  3. Chạy lệnh which pg_dumpall bên trong postgresql container để biết đường dẫn đến công cụ này.

    $ docker exec -it {old_postgres_container_id} which pg_dumpall
    /usr/local/bin/pg_dumpall
  4. Sau khi có đường dẫn chính xác của pg_dumpall thì sao lưu tất cả database trong Postgresql cũ

    $ docker exec -it {old_postgres_container_id} /usr/local/bin/pg_dumpall -U postgres > backup/dumpfile
  5. Khởi động container Postgresql14 mới hoàn toàn.

    $ docker run --name pg14 -d -p 5432:5432 -e POSTGRES_PASSWORD=123 -v db_data:/var/lib/postgresql/data -v $(pwd)/backup:/backup postgres:14-alpine3.14

    Chú ý chúng ta map 2 volume:

    • db_data:/var/lib/postgresql/data: map docker volume db_data với thư mục dữ liệu của Postgresql
    • $(pwd)/backup:/backup: map thư mục chứa dumpfile vào thư mục /backup bên trong container
  6. Lấy id của container Postgresql 14 tạm gọi là {new_postgres_container_id}

    pg14_id

  7. Exec vào trong container Postgresql 14, rồi thử list /backup/dumpfile

    $ docker exec -it {new_postgres_container_id} /bin/ash
    $ ls -all /backup/dumpfile
    -rw-r--r--    1 root     root     543444597 Oct  3 03:10 /backup/dumpfile
  8. Khôi phục backup/dumpfile vào Postgresql 14 container mới
    Thực hiện

    $ psql -U postgres -d postgres < backup/dumpfile
  9. Dùng DBeaver kết nối vào Postgresql 14 kiểm tra version bằng lệnh SELECT version();
    Kết quả trả về
    PostgreSQL 14.0 on x86_64-pc-linux-musl, compiled by gcc (Alpine 10.3.1_git20210424) 10.3.1 20210424, 64-bit

Đánh giá chung

  • Tốc độ ở những câu lệnh truy vấn đơn giản, Postgresql 14 không nhanh hơn 12, thậm chí chậm hơn chút xíu
  • Postgresql 14 hỗ trợ thao tác trên kiểu dữ liệu JSON rất tốt. Nhiều lệnh mới hoàn toàn, không có trong Postgresql Thử copy những lệnh ở link này jsonb Containment and Existence
=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
9 bước đơn giản nâng cấp từ Postgresql phiên bản cũ lên Postgresql 14 chạy trong Docker, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master