“allow updates” thảm họa cho DBA (SQL2000) Microsoft đã fix version >= SQL2005


Chào các bạn,

“allow updates” là một option thảm họa trong Microsoft SQL 2005 trở về trước. Tại sao mình nói như thế ?

Cách đây khoản 4 năm, khi còn sử dụng SQL2000 và 2005 mình có biết một anh bạn đồng nghiệp, anh ta thiết kế Table có một column chiều dài bằng nvarchar(100). Sau này vì nhu cầu sử dụng nên column này phải dài bằng 200. Rất nhiều table và column cần phải sửa lại length của field này. Thay vì dùng Script Alter table, anh ta lại update length trực tiếp vào sys.columns vì option “allow updates” được bật lên nên user có thể cập nhật thẳng vào các table hệ thống, trong khi đó việc constraint giữa các table trong hệ thống không có. 

Kết quả là thỉnh thoảng khi select dữ liệu đến những column đã sửa length thường xảy ra lỗi và server treo cứng hoàn toàn:

Buffer provided to read column value is too small

03

04

=> Kết luận : Nếu ai đã từng bị lỗi này thì nên tạo database mới, chuyển dần cấu trúc và dữ liệu qua Database mới

Lưu ý: Lỗi này cực kỳ nghiêm trọng và ảnh hưởng đến server (treo server liên tuc) anh/chị nào còn sử dụng SQL2000 thì tắt option này

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s