Điểm:1

Nâng cấp các gói khiến cơ sở dữ liệu bị sập

lá cờ us

Một hợp lưu phụ thuộc thực sự kỳ lạ đã dẫn đến sự cố cơ sở dữ liệu kỳ lạ. Bối cảnh:

  • CentOS 7.9
  • LVM2-2.02
  • Postgresql 12, với khối lượng dữ liệu trên ổ đĩa LVM, định dạng XFS
  • hệ thống
  • dbus

Trong khi hệ thống đã hoạt động ổn định và cơ sở dữ liệu chạy bình thường, tôi đã thực hiện một cập nhật yum. Trong quá trình cập nhật, một số ổ đĩa chưa được đếm, bao gồm cả ổ chứa cơ sở dữ liệu. Điều này dẫn đến thông báo hoảng loạn:

12-08-2021 21:12:35.418 CEST PANIC: không thể mở tệp ""/var/lib/pgsql/current/data/global/pg_control"": Không có tệp hoặc thư mục như vậy

Nhật ký nhật ký cho thấy khá nhiều gói đã được cập nhật trong vài phút trước sự cố này. Không có thông báo nhật ký trung gian nào từ postgresql có thể thu hẹp nó.

Rõ ràng một cái gì đó trong /etc/fstab được định cấu hình không chính xác, nhưng có thể thấy thông báo sau rất lâu trước khi cập nhật yum:

Ngày 12 tháng 8 18:27:32 git.uibk.ac.at systemd-fstab-generator[19273]: Kiểm tra được yêu cầu cho "không", nhưng nó không phải là thiết bị.

và thường xuyên trong quá trình cập nhật. Vì vậy, tôi coi đây là một con cá trích đỏ.

Systemd được cập nhật và khởi động lại:

Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: Đang thực hiện lại.
Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: systemd 219 đang chạy trong chế độ hệ thống. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)

Đó là 45 giây trước khi va chạm. Ngay sau đó, chúng ta thấy:

Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: [/etc/systemd/system/rsyslog.service.d/partof-journald.conf:2] Bài tập bên ngoài phần. phớt lờ.
Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: Đã dừng mục tiêu Hệ thống tệp từ xa.
Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: Dừng Hệ thống Tệp Từ xa.
Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: Bỏ đặt tự động đếm mnt-git\x2drepodata.automount.
Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: Đang dừng mnt-git\x2drepodata.automount.
Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: Thiết lập tự động đếm mnt-git\x2drepodata.automount.
Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: Đã tiếp cận Hệ thống tệp từ xa mục tiêu.
Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: Bỏ đặt tự động đếm Định dạng tệp thực thi tùy ý Điểm tự động đếm của hệ thống tệp.
Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: Dừng các định dạng tệp có thể thực thi tùy ý Điểm tự động đếm của hệ thống tệp.
Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: Thiết lập tự động đếm Định dạng tệp thực thi tùy ý Điểm tự động đếm của hệ thống tệp.
Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: Hệ thống tệp cục bộ mục tiêu đã dừng.
Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: Dừng hệ thống tệp cục bộ.
Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: Bỏ đặt automount var-lib-pgsql.automount.
Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: Đang dừng var-lib-pgsql.automount.
Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: var-lib-pgsql.automount: Thư mục /var/lib/pgsql để gắn kết không trống, dù sao vẫn gắn kết.

Tại sao tại sao???? .... TẠI SAOYYYYYYYYY!!!! Ở bất kỳ giá nào, nó dường như không hoạt động bình thường.

Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: Thiết lập automount var-lib-pgsql.automount.
Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: Gắn /var/lib/pgsql/current/pg_stat_tmp...
Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: Đã gắn /var/lib/pgsql/current/pg_stat_tmp.
Ngày 12 tháng 8 21:11:46 git.uibk.ac.at systemd[1]: Đã tiếp cận Hệ thống tệp cục bộ mục tiêu.

Tập này cũng không được gắn ngay sau đó và phải được đếm lại bằng tay trong quá trình khôi phục.

Một vài thông báo khác xuất hiện trước PANIC:

Ngày 12 tháng 8 21:12:32 git.uibk.ac.at yum[12642]: Đã cài đặt: kernel-3.10.0-1160.36.2.el7.x86_64
Ngày 12 tháng 8 21:12:33 git.uibk.ac.at yum[12642]: Đã cập nhật: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
Ngày 12 tháng 8 21:12:33 git.uibk.ac.at systemd[1]: Đang tải lại.
Ngày 12 tháng 8 21:12:34 git.uibk.ac.at yum[12642]: Đã cập nhật: 7:lvm2-2.02.187-6.el7_9.5.x86_64
Ngày 12 tháng 8 21:12:34 git.uibk.ac.at yum[12642]: Đã cập nhật: 1:nfs-utils-1.3.0-0.68.el7.1.x86_64

Và rồi hai điều này, kỳ lạ thay, không theo đúng thứ tự:

Ngày 12 tháng 8 21:12:35 git.uibk.ac.at systemd[1]: postgresql-12.service: quá trình chính đã thoát, mã=đã thoát, trạng thái=1/THẤT BẠI
Ngày 12 tháng 8 21:12:35 git.uibk.ac.at kernel: XFS (dm-6): Unmounting Filesystem

dm-6 là hiện nay (sau khi khởi động lại) khối lượng hoán đổi, vậy ...?

Đây là danh sách các tập, không bao gồm các tập bị nghi ngờ thông thường:

/dev/mapper/vgdata-git--db trên /var/lib/pgsql gõ xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/dev/mapper/vgroot-lvroot bật / gõ xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/dev/mapper/vgroot-lvtmp trên /tmp gõ xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/dev/mapper/vgroot-lvvar trên /var gõ xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/dev/vda1 trên /boot gõ ext4 (rw,relatime,seclabel,data=ordered)
nfsshare:/git/qt-gitlab trên /mnt/git-repodata gõ nfs (rw,relatime,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec= sys,mountport=635,mountproto=udp,local_lock=none)
không có trên /var/lib/pgsql/12/pg_stat_tmp gõ tmpfs (rw,relatime,seclabel,size=16384k,mode=770,uid=102,gid=26)
systemd-1 trên /mnt/git-repodata kiểu autofs (rw,relatime,fd=37,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=13188)
systemd-1 trên /proc/sys/fs/binfmt_misc gõ autofs (rw,relatime,fd=31,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=13146)
systemd-1 trên /var/lib/pgsql gõ autofs (rw,relatime,fd=41,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=13753)

Tôi chưa từng thấy điều này xảy ra trước đây trên bất kỳ hệ thống Linux hiện đại nào. Đây có phải là "hành vi dự kiến" của systemd khi nó được cập nhật hoặc thực hiện lại không?

Michael Hampton avatar
lá cờ cz
Ngắt kết nối và kết nối lại các hệ thống tập tin _không_ là hành vi bình thường. Tôi nghi ngờ bạn đã bỏ qua một mục nhật ký với thông tin quan trọng. Vui lòng đăng nhật ký _complete_ bao gồm thời gian chạy bản cập nhật và sự cố đã xảy ra.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.