Điều đó có nghĩa là gì khi một quy trình PostgreSQL “không hoạt động trong giao dịch”?


83

Điều đó có nghĩa là gì khi một quy trình PostgreSQL "không hoạt động trong giao dịch"?

Trên máy chủ mà tôi đang xem, đầu ra của "ps ax | grep postgres", tôi thấy 9 quy trình PostgreSQL trông giống như sau:

postgres: user db 127.0.0.1(55658) idle in transaction

Điều này có nghĩa là một số quy trình bị treo, chờ giao dịch được cam kết? Bất kỳ con trỏ nào đến tài liệu liên quan đều được đánh giá cao.

Câu trả lời:


53

Các nhãn hiệu PostgreSQL chỉ ra rằng điều này có nghĩa là các giao dịch mở cửa (bên trong BEGIN) và nhàn rỗi. Rất có thể đó là một người dùng được kết nối bằng màn hình đang suy nghĩ hoặc đánh máy. Tôi cũng có rất nhiều thứ trên hệ thống của mình.

Tuy nhiên, nếu bạn đang sử dụng Slony để sao chép, thì Câu hỏi thường gặp về Slony-I gợi ý idle in transactioncó thể có nghĩa là kết nối mạng đã bị ngắt đột ngột. Kiểm tra cuộc thảo luận trong Câu hỏi thường gặp đó để biết thêm chi tiết.


9
Chỉ 'nhàn rỗi' có nghĩa là gì ?? Các giao dịch ở trạng thái 'nhàn rỗi' cũng được mở?
Yousuf Sultan,

2
Làm những gì màn hình trung bình?
Abdull

2
@Abdull Ứng dụng khách psql. "Màn hình" là một thuật ngữ cổ xưa (dường như) để chỉ phần mềm được sử dụng để kiểm soát cơ sở dữ liệu.
Anonymoose


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.