Cách được khuyến nghị để nâng cấp cơ sở dữ liệu sản xuất Heroku Postgres lên 9,2 với thời gian ngừng hoạt động tối thiểu là gì? Có thể sử dụng một người theo dõi hay chúng ta nên sử dụng tuyến đường pgbackups/snapshots?nâng cấp lên postgres trên Heroku
Trả lời
Cho đến logical followers in 9.4, bạn sẽ phải đổ và khôi phục (vì lý do Craig mô tả). Bạn có thể đơn giản hóa điều này với pgbackups: chuyển. Chuyển trực tiếp nhanh hơn đổ và khôi phục, nhưng biết rằng bạn sẽ không có ảnh chụp nhanh.
Tập lệnh bên dưới về cơ bản là số Using PG Backups to Upgrade Heroku Postgres Databases của Heroku với sửa đổi cho pgbackups:transfer. (Nếu bạn có nhiều trường hợp, nói một dàn máy chủ, thêm "-a" hoặc "--remote" với từng ngành nghề Heroku để xác định các máy chủ.)
# get the pgbackups plugin
heroku plugins:install git://github.com/heroku/heroku-pg-extras.git
# provision new db
heroku addons:add heroku-postgresql:crane --version=9.2
# wait for it to come online, make note of new color
heroku pg:wait
# prevent new data from arriving during dump
heroku ps:scale worker=0 web=0
heroku maintenance:on
# copy over the DB. could take a while.
heroku pgbackups:transfer OLDCOLOR NEWCOLOR
# promote new database as default for DATABASE_URL
heroku pg:promote NEWCOLOR
# start everything back up and test
heroku ps:scale worker=N web=N
heroku maintenance:off
heroku open
# remove old database
heroku addons:remove HEROKU_POSTGRESQL_OLDCOLOR
Lưu ý rằng nếu bạn so sánh kích thước dữ liệu của bạn giữa chúng , cái mới có thể nhỏ hơn nhiều vì hiệu quả trong 9.2. (9.2 của tôi là khoảng 70% của 9.1.)
Người theo dõi Heroku là, AFAIK, chỉ các máy chủ sao chép trực tuyến của PostgreSQL. Điều này có nghĩa là bạn không thể sử dụng chúng trên các phiên bản, bạn phải có cơ sở dữ liệu tương thích nhị phân.
Các kỹ thuật tương tự sẽ áp dụng như PostgreSQL thông thường, ngoại trừ việc bạn có thể không sử dụng được pg_upgrade
trên Heroku. Điều này yêu cầu truy cập shell (ssh, etc) là người dùng postgres
trên hệ thống lưu trữ cơ sở dữ liệu, vì vậy tôi nghi ngờ có thể có trên Heroku trừ khi họ cung cấp công cụ để chạy pg_upgrade
cho bạn. Tôi không thể tìm thấy nhiều thông tin về điều này. Bạn có thể sẽ phải xem xét bằng cách sử dụng Slony-I, Bucardo, hoặc một giải pháp nhân bản dựa trên trình kích hoạt khác để thực hiện nâng cấp trừ khi bạn có thể tìm cách chạy pg_upgrade
trên một cá thể cơ sở dữ liệu Heroku. Ví dụ:. Ý tưởng chung là bạn thiết lập một phiên bản 9.2 mới, sử dụng Slony để sao chép dữ liệu từ thể hiện 9.1 vào nó, sau đó khi chúng hoàn toàn đồng bộ, bạn dừng phiên bản 9.1, loại bỏ trình kích hoạt Slony và chuyển đổi máy khách sang 9.2.
Tìm kiếm thêm thông tin về "thời gian ngừng nâng cấp thời gian ngừng hoạt động thấp", hãy xem cách bạn thực hiện.
Craig là chính xác, họ đang streaming bản sao: bạn không thể sử dụng tuyến đường này để nâng cấp. Hiện tại, cách tiếp cận tốt nhất là sử dụng pgbackups: lệnh chuyển có sẵn trong plugin pg-extras (https://github.com/heroku/heroku-pg-extras#pgbackupstransfer) để chuyển dữ liệu nhanh chóng (trong khi bạn ứng dụng đang ở chế độ bảo trì). Trong tương lai, chúng tôi có kế hoạch hỗ trợ các tùy chọn nâng cấp dễ dàng hơn. – hgmnz
@hgmnz Tại sao không sử dụng [heroku-pgupgrade] (https://github.com/hgmnz/heroku-pgupgrade)? – thejaz
@thejaz aha! Vâng, bởi vì nó hiện đang trong phiên bản beta, và nó sẽ xảy ra để bị hỏng (phía máy chủ) cho đến khi có thông báo mới. Khi nó đã sẵn sàng cho thời gian chính, tôi chắc chắn sẽ lưu ý nó trên repo đó. – hgmnz
- 1. Nâng cấp gói Heroku Postgres DB
- 2. Nâng cấp Python lên 2.7 trên OSX
- 3. Nâng cấp lên msysgit 1.7.0.2?
- 4. Nâng cấp Python lên 2.6 trên máy Mac
- 5. Nâng cấp IIS 5.1 lên IIS 6 trên Windows XP
- 6. Nâng cấp Glassfish v2 lên JPA 2.0?
- 7. iOS nâng cấp lên twitter api 1.1
- 8. Đặt ngôn ngữ trên Heroku postgres
- 9. Việc nâng cấp lên SVN 1.7 trên máy cục bộ có yêu cầu nâng cấp trên kho lưu trữ không?
- 10. Cách nâng cấp từ mysql_ * lên mysqli_ *?
- 11. Nâng cấp từ symfony1 lên symfony2
- 12. Nâng cấp lên Rails 3.1.1 và Authlogic
- 13. Nâng cấp TFS 2008 lên TFS 2012
- 14. Nâng cấp lên ASP.NET 3.x
- 15. Nâng cấp từ Eclipse Galileo lên Helios
- 16. Nâng cấp lên ASP.NET 4 framework
- 17. MAMP - Nâng cấp lên MySQL 5.6
- 18. Nâng cấp dịch vụ web từ asmx lên webAPI
- 19. Không thể nâng cấp từ Xcode 4.2 lên 4.2.1
- 20. Cách nâng cấp SVN 1.4.4 (r25188) lên SVN 1.6
- 21. Cách nâng cấp Typescript lên phiên bản mới nhất?
- 22. Nâng cấp lên phiên bản ASP.NET MVC 2
- 23. Nâng cấp ứng dụng Rails Từ 1.2.3 lên 3.1.0?
- 24. Truy cập Heroku Postgres Instance từ EC2
- 25. Nâng cấp Hibernate từ phiên bản 3.0 lên 3.6
- 26. Thuyết phục khách hàng để nâng cấp lên Java 5
- 27. Unhandled Exception sau khi nâng cấp lên Entity Framework 4.3.1
- 28. Nâng cấp từ Rails 3.2 lên Rails 4
- 29. Bắt đầu chậm sau khi nâng cấp lên Spring 3
- 30. Nâng cấp lên phiên bản 2.2.0 của Play Khung
Vì giải pháp (được bình chọn cao nhất) được áp dụng cho 9.2 và 9.3, bạn có thể cân nhắc xóa số phiên bản khỏi tiêu đề câu hỏi của mình. –