lỗi data base không chạy đuộc
- Sao chép liên kết
- Chia sẻ với Facebook
- Chia sẻ với X
- Chia sẻ với Pinterest
- Chia sẻ với Linkedin
- Gửi bài qua Email
gửi email cho tác giả
Caused by: org.postgresql.util.PSQLException: ERROR: updated partition constraint for default partition "ts_kv_indefinite" would be violated by some row
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2734)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2421)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:518)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:435)
at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:357)
at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:342)
at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:318)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:313)
at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94)
at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java)
at org.springframework.jdbc.core.JdbcTemplate$1ExecuteStatementCallback.doInStatement(JdbcTemplate.java:435)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:393)
... 32 common frames omitted
2026-08-22 20:39:58,142 [tenant-dispatcher-0-2] INFO o.t.server.actors.tenant.TenantActor - [76e070d0-207c-11f1-9ef3-07eaab1bc597] Processing message for non-existing tenant: org.thingsboard.server.actors.device.SessionTimeoutCheckMsg@21950563
2026-08-22 20:40:01,143 [tenant-dispatcher-0-2] INFO o.t.server.actors.tenant.TenantActor - [76e070d0-207c-11f1-9ef3-07eaab1bc597] Processing message for non-existing tenant: org.thingsboard.server.actors.device.SessionTimeoutCheckMsg@21950563
2026-08-22 20:40:04,143 [tenant-dispatcher-0-2] INFO o.t.server.actors.tenant.TenantActor - [76e070d0-207c-11f1-9ef3-07eaab1bc597] Processing message for non-existing tenant: org.thingsboard.server.actors.device.SessionTimeoutCheckMsg@21950563
2026-08-22 20:40:06,322 [http-nio-0.0.0.0-18181-exec-10] INFO o.t.s.c.plugin.TbWebSocketHandler - [76e070d0-207c-11f1-9ef3-07eaab1bc597][8846c950-207c-11f1-9ef3-07eaab1bc597][533c66fe-de53-42c9-ae3f-c2bb62d63e61] Session is closed
2026-08-22 20:40:06,808 [http-nio-0.0.0.0-18181-exec-9] INFO o.t.s.c.plugin.TbWebSocketHandler - [76e070d0-207c-11f1-9ef3-07eaab1bc597][8846c950-207c-11f1-9ef3-07eaab1bc597][e0da2106-6876-4c45-ac5e-4bb8d2a1d467][fc08471d-12d3-075b-15f9-fb3bafbc217d] Session established from address: /[0:0:0:0:0:0:0:1]:50773
2026-08-22 20:40:07,144 [tenant-dispatcher-0-2] INFO o.t.server.actors.tenant.TenantActor - [76e070d0-207c-11f1-9ef3-07eaab1bc597] Processing message for non-existing tenant: org.thingsboard.server.actors.device.SessionTimeoutCheckMsg@21950563
2026-08-22 20:40:10,145 [tenant-dispatcher-0-1] INFO o.t.server.actors.tenant.TenantActor - [76e070d0-207c-11f1-9ef3-07eaab1bc597] Processing message for non-existing tenant: org.thingsboard.server.actors.device.SessionTimeoutCheckMsg@21950563
2026-08-22 20:40:13,146 [tenant-dispatcher-0-1] INFO o.t.server.actors.tenant.TenantActor - [76e070d0-207c-11f1-9ef3-07eaab1bc597] Processing message for non-existing tenant: org.thingsboard.server.actors.device.SessionTimeoutCheckMsg@21950563
2026-08-22 20:40:16,148 [tenant-dispatcher-0-1] INFO o.t.server.actors.tenant.TenantActor - [76e070d0-207c-11f1-9ef3-07eaab1bc597] Processing message for non-existing tenant: org.thingsboard.server.actors.device.SessionTimeoutCheckMsg@21950563
2026-08-22 20:40:19,148 [tenant-dispatcher-0-2] INFO o.t.server.actors.tenant.TenantActor - [76e070d0-207c-11f1-9ef3-07eaab1bc597] Processing message for non-existing tenant: org.thingsboard.server.actors.device.SessionTimeoutCheckMsg@21950563
2026-08-22 20:40:22,150 [tenant-dispatcher-0-1] INFO o.t.server.actors.tenant.TenantActor - [76e070d0-207c-11f1-9ef3-07eaab1bc597] Processing message for non-existing tenant: org.thingsboard.server.actors.device.SessionTimeoutCheckMsg@21950563
2026-08-22 20:40:25,150 [tenant-dispatcher-0-1] INFO o.t.server.actors.tenant.TenantActor - [76e070d0-207c-11f1-9ef3-07eaab1bc597] Processing message for non-existing tenant: org.thingsboard.server.actors.device.SessionTimeoutCheckMsg@21950563
2026-08-22 20:40:28,152 [tenant-dispatcher-0-1] INFO o.t.server.actors.tenant.TenantActor - [76e070d0-207c-11f1-9ef3-07eaab1bc597] Processing message for non-existing tenant: org.thingsboard.server.actors.device.SessionTimeoutCheckMsg@21950563
2026-08-22 20:40:31,152 [tenant-dispatcher-0-1] INFO o.t.server.actors.tenant.TenantActor - [76e070d0-207c-11f1-9ef3-07eaab1bc597] Processing message for non-existing tenant: org.thingsboard.server.actors.device.SessionTimeoutCheckMsg@21950563
2026-08-22 20:40:34,152 [tenant-dispatcher-0-1] INFO o.t.server.actors.tenant.TenantActor - [76e070d0-207c-11f1-9ef3-07eaab1bc597] Processing message for non-existing tenant: org.thingsboard.server.actors.device.SessionTimeoutCheckMsg@21950563
2026-08-22 20:40:37,153 [tenant-dispatcher-0-1] INFO o.t.server.actors.tenant.TenantActor - [76e070d0-207c-11f1-9ef3-07eaab1bc597] Processing message for non-existing tenant: org.thingsboard.server.actors.device.SessionTimeoutCheckMsg@21950563
Java HotSpot(TM) 64-Bit Server VM warning: Option UseBiasedLocking was deprecated in version 15.0 and will likely be removed in a future release.
Java HotSpot(TM) 64-Bit Server VM warning: Option UseBiasedLocking was deprecated in version 15.0 and will likely be removed in a future release.
Java HotSpot(TM) 64-Bit Server VM warning: Option UseBiasedLocking was deprecated in version 15.0 and will likely be removed in a future release.
Java HotSpot(TM) 64-Bit Server VM warning: Option UseBiasedLocking was deprecated in version 15.0 and will likely be removed in a future release.
Java HotSpot(TM) 64-Bit Server VM warning: Option UseBiasedLocking was deprecated in version 15.0 and will likely be removed in a future release.
08-22T20:40:57.834+0700][150.258s][info ][safepoint ] Safepoint "Cleanup", Time since last: 1000462100 ns, Reaching safepoint: 180900 ns, At safepoint: 27300 ns, Total: 208200 ns
[2026-08-22T20:41:00.835+0700][153.258s][debug][safepoint ] Safepoint synchronization initiated using semaphore wait barrier. (211 threads)
[2026-08-22T20:41:00.835+0700][153.259s][info ][safepoint ] Safepoint "Cleanup", Time since last: 3000815200 ns, Reaching safepoint: 735500 ns, At safepoint: 4100 ns, Total: 739600 ns
[2026-08-22T20:41:02.835+0700][155.259s][debug][safepoint ] Safepoint synchronization initiated using semaphore wait barrier. (211 threads)
[2026-08-22T20:41:02.835+0700][155.259s][info ][safepoint ] Safepoint "Cleanup", Time since last: 2000036900 ns, Reaching safepoint: 170100 ns, At safepoint: 27400 ns, Total: 197500 ns
[2026-08-22T20:41:04.837+0700][157.261s][debug][safepoint ] Safepoint synchronization initiated using semaphore wait barrier. (211 threads)
[2026-08-22T20:41:04.837+0700][157.261s][info ][safepoint ] Safepoint "Cleanup", Time since last: 2001398700 ns, Reaching safepoint: 236200 ns, At safepoint: 6400 ns, Total: 242600 ns
[2026-08-22T20:41:08.839+0700][161.263s][debug][safepoint ] Safepoint synchronization initiated using semaphore wait barrier. (210 threads)
[2026-08-22T20:41:08.839+0700][161.263s][info ][safepoint ] Safepoint "Cleanup", Time since last: 4002143000 ns, Reaching safepoint: 166500 ns, At safepoint: 4400 ns, Total: 170900 ns
[2026-08-22T20:41:15.843+0700][168.266s][debug][safepoint ] Safepoint synchronization initiated using semaphore wait barrier. (210 threads)
[2026-08-22T20:41:15.843+0700][168.267s][info ][safepoint ] Safepoint "Cleanup", Time since last: 7003100000 ns, Reaching safepoint: 172100 ns, At safepoint: 7900 ns, Total: 180000 ns
[2026-08-22T20:41:17.307+0700][169.731s][debug][safepoint ] Safepoint synchronization initiated using semaphore wait barrier. (210 threads)
[2026-08-22T20:41:17.307+0700][169.731s][info ][safepoint ] Safepoint "Cleanup", Time since last: 1464601600 ns, Reaching safepoint: 54700 ns, At safepoint: 4000 ns, Total: 58700 ns
[2026-08-22T20:41:18.308+0700][170.732s][debug][safepoint ] Safepoint synchronization initiated using semaphore wait barrier. (215 threads)
[2026-08-22T20:41:18.308+0700][170.732s][info ][safepoint ] Safepoint "Cleanup", Time since last: 1000226400 ns, Reaching safepoint: 397400 ns, At safepoint: 12100 ns, Total: 409500 ns
[2026-08-22T20:41:20.309+0700][172.733s][debug][safepoint ] Safepoint synchronization initiated using semaphore wait barrier. (215 threads)
[2026-08-22T20:41:20.309+0700][172.733s][info ][safepoint ] Safepoint "Cleanup", Time since last: 2000748800 ns, Reaching safepoint: 178700 ns, At safepoint: 25400 ns, Total: 204100 ns
log đây
Lỗi cụ thể từ PostgreSQL:
ERROR: updated partition constraint for default partition "ts_kv_indefinite" would be violated by some row
Nguyên nhân: Dữ liệu Partition (phân vùng theo tháng/năm) trong bảng ts_kv của PostgreSQL bị lệch hoặc thiếu phân vùng cho thời điểm hiện tại. Khi Python đẩy telemetry lên, ThingsBoard cố ghi dữ liệu vào PostgreSQL nhưng bị cơ sở dữ liệu từ chối (REJECT) vì vi phạm ràng buộc phân vùng (Partition Constraint). Kết quả là MQTT Broker vẫn báo nhận packet thành công (MID), nhưng Node Save Timeseries bị báo đỏ và không lưu được dữ liệu.
Cách xử lý triệt để không cần cài lại ThingsBoard
Hãy chạy các câu lệnh SQL để cập nhật lại cấu hình Partition trong PostgreSQL.
Bước 1: Mở công cụ quản lý PostgreSQL
Mở pgAdmin hoặc giao diện dòng lệnh psql đăng nhập vào database thingsboard.
Bước 2: Chạy lệnh SQL kiểm tra và định dạng lại Partition
Thực thi các lệnh SQL sau trong Query Tool:
-- 1. Xóa các ràng buộc partition bị lỗi trên bảng default
ALTER TABLE ts_kv_indefinite DROP CONSTRAINT IF EXISTS ts_kv_indefinite_partition_check;
-- 2. Đổi lại cấu hình lưu trữ partition tạm thời để chấp nhận timestamp mới
DROP TABLE IF EXISTS ts_kv_indefinite;
Lưu ý: Nếu bạn không muốn can thiệp SQL sâu, cách xử lý nhanh nhất từ phía ThingsBoard là điều chỉnh cấu hình Partition lưu trữ trong file
thingsboard.yml.
Bước 3: Cấu hình lại Partition System trong thingsboard.yml
Truy cập thư mục cài đặt ThingsBoard (Mặc định:
C:\Program Files (x86)\thingsboard\conf\hoặcC:\thingsboard\conf\).Mở file
thingsboard.ymlbằng Notepad (Run as Administrator).Tìm đến từ khóa
partition:trong mụcsql:
sql:
postgres:
ts_binding:
partition: "MONTHS" # Chuyển từ DAYS sang MONTHS hoặc INDEFINITE
Đổi giá trị
partitionthànhINDEFINITE(không phân vùng theo ngày/tháng để tránh lỗi partition hoàn toàn):
sql:
postgres:
ts_binding:
partition: "INDEFINITE"
Lưu file
thingsboard.yml.
Bước 4: Restart Service
Mở PowerShell với quyền Admin và chạy lệnh:
Restart-Service postgresql*
Restart-Service thingsboard
Sau khi dịch vụ khởi động lại xong (khoảng 30-60 giây), chạy lại script Python. Dữ liệu telemetry sẽ nhảy lập tức trên tab Latest telemetry và node save time series sẽ chuyển sang màu xanh.
xóa data base post gre . cài lại thingboard có khắc phục được không
Có, chắc chắn 100% sẽ khắc phục được hoàn toàn.
Lỗi updated partition constraint for default partition "ts_kv_indefinite" would be violated xuất hiện là do cơ sở dữ liệu PostgreSQL cũ bị lỗi phân vùng thời gian (partitioning) trong quá trình vận hành.
Việc xóa Database cũ và chạy lại script khởi tạo (Install/Init script) của ThingsBoard sẽ tạo mới toàn bộ các bảng dữ liệu (ts_kv, ts_kv_indefinite...) sạch sẽ, hết sạch lỗi partition này.
Các bước thực hiện lại từ đầu cho sạch (Clean Install Data)
Bạn không cần gỡ cài đặt (uninstall) ứng dụng ThingsBoard, chỉ cần reset lại Database PostgreSQL và chạy lại script khởi tạo hệ thống theo 3 bước sau:
Bước 1: Dừng dịch vụ ThingsBoard
Mở PowerShell (Run as Administrator) và chạy:
Stop-Service thingsboard
Bước 2: Xóa và tạo mới Database thingsboard trong PostgreSQL
Mở pgAdmin (hoặc dùng
psql).Click chuột phải vào database
thingsboard→ Chọn Delete/Drop.Click chuột phải vào Databases → Chọn Create → Database...
Đặt tên lại là
thingsboard(chủ sở hữu:postgres) rồi bấm Save.
Bước 3: Chạy lại script khởi tạo Database của ThingsBoard
Mở CMD hoặc PowerShell (Admin), trỏ vào thư mục install của ThingsBoard và chạy file cài đặt cơ sở dữ liệu:
cd "C:\Program Files (x86)\thingsboard"
.\install.bat --loadDemo
(Nếu bạn không muốn lấy dữ liệu mẫu Demo, chỉ cần chạy .\install.bat)
Script này sẽ tự động tạo lại toàn bộ cấu trúc bảng, các hàm Partition và tài khoản mặc định trên Database mới tinh.
Bước 4: Khởi động lại ThingsBoard
Start-Service thingsboard
Đợi khoảng 1-2 phút cho ThingsBoard khởi động xong, bạn đăng nhập lại web, tạo mới một Device, dán Access Token vào script Python và chạy thử. Dữ liệu sẽ vào Latest telemetry mượt mà ngay lập tức.

