Máy chủ Percona cho MongoDB là bản phân phối mã nguồn mở MongoDB do Percona cung cấp. Nó là một phiên bản miễn phí, hoàn toàn tương thích và thay thế cho phiên bản MongoDB Community. Nó cũng cung cấp các tính năng “cấp doanh nghiệp” mà nếu không sẽ chỉ có trong Phiên bản Doanh nghiệp của MongoDB, ví dụ:Xác thực và ủy quyền LDAP, Ghi nhật ký kiểm tra, Xác thực Kerberos.
Nâng cấp Máy chủ Percona cho MongoDB thực sự đơn giản. Trong blog này, chúng tôi sẽ thảo luận về một số mẹo nâng cấp và đưa ra ví dụ về cách nâng cấp từ phiên bản 3.6 lên phiên bản 4.0.
Chuẩn bị Nâng cấp
Trước khi chạy nâng cấp, bạn có thể cần chuẩn bị một số. Luôn kiểm tra các thay đổi về khả năng tương thích trong tài liệu và phía ứng dụng của bạn; kiểm tra các tài liệu liên quan đến các thay đổi và cải tiến các tính năng, chức năng lỗi thời (nếu có).
Kiểm tra ma trận tương thích trình điều khiển cho MongoDB để biết bạn có cần nâng cấp trình điều khiển hay không.
Chuẩn bị danh sách kiểm tra từng bước về cách thực hiện nâng cấp. Viết ra kế hoạch hành động, các bên cần tham gia vào tài liệu, kế hoạch khôi phục cho các tình huống xấu nhất.
Nâng cấp Máy chủ Percona cho MongoDB
Kiểm tra nâng cấp của bạn trong môi trường phát triển hoặc môi trường tổ chức trước khi chuyển sang môi trường sản xuất luôn tốt. Bạn có thể xây dựng chính xác cùng một kiến trúc MongoDB như sản xuất, kiểm tra và khôi phục dữ liệu từ lần sao lưu cuối cùng. Sau đó, bạn có thể kiểm tra nâng cấp và xác nhận kế hoạch nâng cấp của mình, không chỉ vậy bạn có thể ước tính thời gian nâng cấp và còn xác minh xem ứng dụng có tương thích với phiên bản mới của cơ sở dữ liệu hay không.
Quá trình nâng cấp chỉ cần cài đặt gói mới từ kho lưu trữ percona, đây là cách nâng cấp trên CentOS dựa trên phiên bản 3.6 lên phiên bản 4.0.
Bước Một
Nếu bạn chưa cài đặt Percona Repository, bạn có thể cài đặt percona-release-mới nhất.
[[email protected] ~]# yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
Loaded plugins: fastestmirror
percona-release-latest.noarch.rpm | 19 kB 00:00:00
Examining /var/tmp/yum-root-evWD4w/percona-release-latest.noarch.rpm: percona-release-1.0-25.noarch
Marking /var/tmp/yum-root-evWD4w/percona-release-latest.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package percona-release.noarch 0:1.0-25 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===========================================================================================================================================
Package Arch Version Repository Size
===========================================================================================================================================
Installing:
percona-release noarch 1.0-25 /percona-release-latest.noarch 31 k
Transaction Summary
===========================================================================================================================================
Install 1 Package
Total size: 31 k
Installed size: 31 k
Is this ok [y/d/N]: y
Bước Hai
Sau khi cài đặt kho lưu trữ Percona, hãy bật Máy chủ Percona cho MongoDB 4.0
[[email protected] ~]# percona-release enable psmdb-40
* Enabling the Percona Server for MongoDB 4.0 repository
<*> All done!
Bước Ba
Cài đặt gói mới percona-server-mongodb, nó sẽ tự động xóa gói cũ và cài đặt gói mới:
[[email protected] ~]# yum install percona-server-mongodb
Loaded plugins: fastestmirror
Repository percona-release-noarch is listed more than once in the configuration
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
percona-release | 2.9 kB 00:00:00
percona-release-noarch | 2.9 kB 00:00:00
percona-release-x86_64 | 2.9 kB 00:00:00
prel-release-noarch | 2.9 kB 00:00:00
psmdb-40-release-x86_64 | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/3): prel-release-noarch/7/primary_db | 2.5 kB 00:00:00
(2/3): psmdb-40-release-x86_64/7/primary_db | 47 kB 00:00:01
(3/3): percona-release-x86_64/7/primary_db | 1.1 MB 00:00:03
Loading mirror speeds from cached hostfile
* base: mirror.buana.web.id
* extras: mirror.buana.web.id
* updates: mirror.buana.web.id
Resolving Dependencies
--> Running transaction check
---> Package Percona-Server-MongoDB-36.x86_64 0:3.6.19-8.0.el7 will be obsoleted
---> Package percona-server-mongodb.x86_64 0:4.0.20-14.el7 will be obsoleting
--> Processing Dependency: percona-server-mongodb-tools = 4.0.20-14.el7 for package: percona-server-mongodb-4.0.20-14.el7.x86_64
--> Processing Dependency: percona-server-mongodb-mongos = 4.0.20-14.el7 for package: percona-server-mongodb-4.0.20-14.el7.x86_64
--> Processing Dependency: percona-server-mongodb-shell = 4.0.20-14.el7 for package: percona-server-mongodb-4.0.20-14.el7.x86_64
--> Processing Dependency: percona-server-mongodb-server = 4.0.20-14.el7 for package: percona-server-mongodb-4.0.20-14.el7.x86_64
--> Running transaction check
---> Package Percona-Server-MongoDB-36-mongos.x86_64 0:3.6.19-8.0.el7 will be obsoleted
---> Package Percona-Server-MongoDB-36-server.x86_64 0:3.6.19-8.0.el7 will be obsoleted
---> Package Percona-Server-MongoDB-36-shell.x86_64 0:3.6.19-8.0.el7 will be obsoleted
---> Package Percona-Server-MongoDB-36-tools.x86_64 0:3.6.19-8.0.el7 will be obsoleted
---> Package percona-server-mongodb-mongos.x86_64 0:4.0.20-14.el7 will be obsoleting
---> Package percona-server-mongodb-server.x86_64 0:4.0.20-14.el7 will be obsoleting
---> Package percona-server-mongodb-shell.x86_64 0:4.0.20-14.el7 will be obsoleting
---> Package percona-server-mongodb-tools.x86_64 0:4.0.20-14.el7 will be obsoleting
--> Finished Dependency Resolution
Dependencies Resolved
===========================================================================================================================================
Package Arch Version Repository Size
===========================================================================================================================================
Installing:
percona-server-mongodb x86_64 4.0.20-14.el7 psmdb-40-release-x86_64 4.9 k
replacing Percona-Server-MongoDB-36.x86_64 3.6.19-8.0.el7
percona-server-mongodb-mongos x86_64 4.0.20-14.el7 psmdb-40-release-x86_64 8.9 M
replacing Percona-Server-MongoDB-36-mongos.x86_64 3.6.19-8.0.el7
percona-server-mongodb-server x86_64 4.0.20-14.el7 psmdb-40-release-x86_64 19 M
replacing Percona-Server-MongoDB-36-server.x86_64 3.6.19-8.0.el7
percona-server-mongodb-shell x86_64 4.0.20-14.el7 psmdb-40-release-x86_64 9.8 M
replacing Percona-Server-MongoDB-36-shell.x86_64 3.6.19-8.0.el7
percona-server-mongodb-tools x86_64 4.0.20-14.el7 psmdb-40-release-x86_64 28 M
replacing Percona-Server-MongoDB-36-tools.x86_64 3.6.19-8.0.el7
Transaction Summary
===========================================================================================================================================
Install 5 Packages
Total download size: 66 M
Is this ok [y/d/N]: y
Downloading packages:
(1/5): percona-server-mongodb-4.0.20-14.el7.x86_64.rpm | 4.9 kB 00:00:05
(2/5): percona-server-mongodb-mongos-4.0.20-14.el7.x86_64.rpm | 8.9 MB 00:00:39
(3/5): percona-server-mongodb-shell-4.0.20-14.el7.x86_64.rpm | 9.8 MB 00:00:42
(4/5): percona-server-mongodb-server-4.0.20-14.el7.x86_64.rpm | 19 MB 00:01:23
(5/5): percona-server-mongodb-tools-4.0.20-14.el7.x86_64.rpm | 28 MB 00:02:00
-------------------------------------------------------------------------------------------------------------------------------------------
Total 332 kB/s | 66 MB 00:03:22
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : percona-server-mongodb-shell-4.0.20-14.el7.x86_64 1/10
Installing : percona-server-mongodb-server-4.0.20-14.el7.x86_64 2/10
warning: /etc/mongod.conf created as /etc/mongod.conf.rpmnew
* To start the service, configure your engine and start mongod
** WARNING: Access control is not enabled for the database.
** Read and write access to data and configuration is unrestricted.
** To fix this please use /usr/bin/percona-server-mongodb-enable-auth.sh
Installing : percona-server-mongodb-mongos-4.0.20-14.el7.x86_64 3/10
Installing : percona-server-mongodb-tools-4.0.20-14.el7.x86_64 4/10
Installing : percona-server-mongodb-4.0.20-14.el7.x86_64 5/10
Erasing : Percona-Server-MongoDB-36-3.6.19-8.0.el7.x86_64 6/10
Erasing : Percona-Server-MongoDB-36-server-3.6.19-8.0.el7.x86_64 7/10
Erasing : Percona-Server-MongoDB-36-shell-3.6.19-8.0.el7.x86_64 8/10
Erasing : Percona-Server-MongoDB-36-mongos-3.6.19-8.0.el7.x86_64 9/10
Erasing : Percona-Server-MongoDB-36-tools-3.6.19-8.0.el7.x86_64 10/10
Verifying : percona-server-mongodb-server-4.0.20-14.el7.x86_64 1/10
Verifying : percona-server-mongodb-tools-4.0.20-14.el7.x86_64 2/10
Verifying : percona-server-mongodb-mongos-4.0.20-14.el7.x86_64 3/10
Verifying : percona-server-mongodb-shell-4.0.20-14.el7.x86_64 4/10
Verifying : percona-server-mongodb-4.0.20-14.el7.x86_64 5/10
Verifying : Percona-Server-MongoDB-36-server-3.6.19-8.0.el7.x86_64 6/10
Verifying : Percona-Server-MongoDB-36-tools-3.6.19-8.0.el7.x86_64 7/10
Verifying : Percona-Server-MongoDB-36-mongos-3.6.19-8.0.el7.x86_64 8/10
Verifying : Percona-Server-MongoDB-36-shell-3.6.19-8.0.el7.x86_64 9/10
Verifying : Percona-Server-MongoDB-36-3.6.19-8.0.el7.x86_64 10/10
Installed:
percona-server-mongodb.x86_64 0:4.0.20-14.el7 percona-server-mongodb-mongos.x86_64 0:4.0.20-14.el7
percona-server-mongodb-server.x86_64 0:4.0.20-14.el7 percona-server-mongodb-shell.x86_64 0:4.0.20-14.el7
percona-server-mongodb-tools.x86_64 0:4.0.20-14.el7
Replaced:
Percona-Server-MongoDB-36.x86_64 0:3.6.19-8.0.el7 Percona-Server-MongoDB-36-mongos.x86_64 0:3.6.19-8.0.el7
Percona-Server-MongoDB-36-server.x86_64 0:3.6.19-8.0.el7 Percona-Server-MongoDB-36-shell.x86_64 0:3.6.19-8.0.el7
Percona-Server-MongoDB-36-tools.x86_64 0:3.6.19-8.0.el7
Complete!
Bước Bốn
Cuối cùng, hãy bắt đầu các dịch vụ mongod.
$ systemctl start mongod.service
Quá trình cài đặt trên Ubuntu / Debian cũng tương tự, bạn chỉ cần lệnh từ trình quản lý gói APT.
Trong kiến trúc MongoDB rất sẵn có, bạn có thể thực hiện nâng cấp luân phiên để giảm thiểu thời gian ngừng hoạt động.
Nếu ứng dụng của bạn đã hỗ trợ phiên bản MongoDB mới nhất, bạn có thể đặt tham số
setFeatureCompatibilityVersion after the upgrade was completed.
> db.adminCommand( { setFeatureCompatibilityVersion: "4.0" } )
Xác minh Nâng cấp
Bạn có thể xác minh xem nâng cấp có thành công hay không bằng cách kết nối trực tiếp với phiên bản MongoDB. Kiểm tra xem cơ sở dữ liệu có đang chạy với phiên bản chính xác hay không:
> db.version()
Hoặc bạn có thể kiểm tra từ dòng lệnh:
[[email protected] lib]# mongod --version
db version v4.0.20-14
git version: b96ae5b9e6c70670b6880d4c5412167a7017713a
OpenSSL version: OpenSSL 1.0.2k-fips 26 Jan 2017
allocator: tcmalloc
modules: none
build environment:
distarch: x86_64
target_arch: x86_64