Vô hiệu hóa đăng nhập trên các bảng nhất định


9

Tôi đang sử dụng SQL Server 2005. Tôi có hai bảng chứa thông tin tổng hợp. Thông tin liên tục được cập nhật, tạo ra gần 5GB dữ liệu nhật ký mỗi ngày. (Đó là lớn hơn toàn bộ cơ sở dữ liệu!) Tôi muốn tắt đăng nhập trên các bảng này, vì việc quay trở lại là không thực sự cần thiết. Tuy nhiên tôi muốn tiếp tục đăng nhập vào các bảng khác trong cơ sở dữ liệu.

Có thể vô hiệu hóa đăng nhập vào các bảng nhất định trong cơ sở dữ liệu? Nếu không, tôi có thể đặt hai bảng trong cùng một lược đồ, sau đó tắt đăng nhập vào lược đồ không? Là tùy chọn duy nhất để di chuyển hai bảng vào một cơ sở dữ liệu riêng biệt và vô hiệu hóa đăng nhập ở đó?

Cập nhật: Tôi đoán tôi sẽ giải thích lý do tại sao tôi thực sự không cần phải đăng nhập hoạt động trên các bảng này.

Hai bảng chứa đầy dữ liệu GPS, vì vậy chúng có kích thước khá lớn. Bảng đầu tiên đang chụp các vị trí thô từ sáu bảng Android trong trường. Dữ liệu mới từ mỗi máy tính bảng xuất hiện sau mỗi 5-10 giây. Thông tin đó sau đó được tổng hợp dưới dạng locationA, locationB, TravelTime. Mục tiêu cuối cùng là có thời gian di chuyển ngắn nhất giữa tất cả các địa điểm, dựa trên dữ liệu lái xe thực tế. Dữ liệu chỉ dành cho một thành phố nhỏ và chỉ chính xác đến bốn chữ số thập phân, vì vậy nó có thể quản lý được. Tuy nhiên, khi dữ liệu thô mới xuất hiện, có những thời gian di chuyển chậm hơn cần được cập nhật và những dữ liệu mới cần được chèn vào.

Sau khi dữ liệu thô được tổng hợp, nó sẽ bị xóa. Chúng ta sẽ không quay ngược thời gian di chuyển dài hơn, vì vậy đó là lý do tại sao việc quay trở lại không quan trọng lắm trong các bảng này.


Câu trả lời:


8
  • Có thể vô hiệu hóa đăng nhập vào các bảng nhất định trong cơ sở dữ liệu?
  • Tôi có thể đặt hai bảng trong cùng một lược đồ, sau đó tắt đăng nhập vào lược đồ không?
  • Là tùy chọn duy nhất để di chuyển hai bảng vào một cơ sở dữ liệu riêng biệt và vô hiệu hóa đăng nhập ở đó?

Ghi nhật ký hoạt động của người dùng không thể bị vô hiệu hóa.

Có một lớp các hoạt động được gọi là các hoạt động được ghi lại tối thiểu chỉ cho phép một giao dịch được khôi phục (trái ngược với việc có thể được chuyển tiếp ). Tuy nhiên, nó không giống như những gì bạn đang làm sẽ đáp ứng các tiêu chí để áp dụng, tôi cũng không nghĩ rằng điều này sẽ giải quyết vấn đề bằng mọi cách.

Giải pháp SQL Server sẽ là hạ cánh các bảng phân tầng trong cơ sở dữ liệu mới trong SIMPLEphục hồi, tách biệt với cơ sở dữ liệu kết quả tổng hợp, mà tôi giả sử là đang FULLphục hồi. Mặc dù điều này sẽ không làm giảm khối lượng ghi nhật ký, nhưng nó sẽ loại bỏ nhu cầu sao lưu nhật ký được tạo bởi tải dữ liệu. (Xem bài đăng trên blog của tôi ở đây về việc đăng nhập và một số yếu tố liên quan đến việc chọn mô hình khôi phục cơ sở dữ liệu.)

Việc tách các bảng thành một cơ sở dữ liệu khác sẽ cung cấp tính linh hoạt để hạ cánh tệp nhật ký trên hệ thống con I / O nhanh hơn, có thể là một mảng nhỏ của các ổ đĩa trạng thái rắn được gắn cục bộ.

Ngoài ra, hãy xem xét rằng SQL Server một mình có thể không phải là giải pháp tốt nhất để giải quyết vấn đề. Có các giải pháp RDBMS khác cung cấp khả năng vô hiệu hóa hoàn toàn việc ghi nhật ký cho các bảng nhất định. Dữ liệu có thể được sắp xếp và tổng hợp trong một hệ thống khác và kết quả được hợp nhất vào cơ sở dữ liệu SQL Server hiện có, được bảo vệ tốt bởi ghi nhật ký và sao lưu đầy đủ.


@dangowans: Bạn được chào đón.
Jon Seigel

3

Không, không có cách nào để ngăn chặn việc đăng nhập vào SQL Server bất kể mức lược đồ, bảng hoặc cơ sở dữ liệu.

Vấn đề thực tế là mọi giao dịch thực hiện sửa đổi hoặc thay đổi trong cơ sở dữ liệu SQL Server đều được ghi lại ngoại trừ các giao dịch liên quan đến cửa hàng phiên bản liên quan đến TempDB khi sử dụng cách ly ảnh chụp nhanh. (đăng nhập nhật ký giao dịch đảm bảo rằng giao dịch có thể được khôi phục (Đối với thao tác nhất định, bạn có thể giảm ghi nhật ký (được gọi là hoạt động được ghi nhật ký tối thiểu) bằng cách thay đổi mô hình khôi phục thành BULK Logged --- bạn có thể tìm hiểu thêm về SQL Server Books Online tại đây


0

Câu trả lời là, như mọi khi, nó phụ thuộc.
Khi bạn nói:

Tôi có hai bảng chứa thông tin tổng hợp. Thông tin liên tục được cập nhật

Đó là loại tổng hợp nào?
Thay vào đó, hãy thử sử dụng XEM, không cần cập nhật và không đăng nhập.

Nếu đó không phải là một tùy chọn, hãy thử sử dụng các giao dịch ngắn hơn và sao lưu nhật ký giữa chúng.

Sử dụng một Cơ sở dữ liệu khác có nghĩa là chi phí quản trị bảo mật, v.v. và sẽ có nhật ký giao dịch của riêng nó (ngay cả với mô hình khôi phục SIMPLE, nhật ký được viết, SQL Server chỉ tự động cắt nhật ký, nhưng không giải phóng không gian đĩa) vì vậy tôi không khuyến nghị tùy chọn đó .


Tôi đã cập nhật câu hỏi với loại tổng hợp đang diễn ra.
dangowans

@dangowans Tôi đang nghĩ về mô hình khôi phục được đăng nhập hàng loạt, DRP của bạn có yêu cầu khả năng thực hiện khôi phục theo thời gian không? Bạn có sử dụng nhân rộng? hãy thử đọc về các điều kiện tiên quyết cho các hoạt động được ghi lại tối thiểu
Roi Gavish
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.