Thu hẹp Nhật ký giao dịch trong khi sử dụng Luôn có sẵn nhóm


17

Chúng tôi đang sử dụng AlwaysOn Availability Grouptính năng của SQL Server 2012. Sao lưu cơ sở dữ liệu đầy đủ thường xuyên và sao lưu nhật ký giao dịch được thực hiện mỗi ngày trên cơ sở dữ liệu thứ cấp.

Tôi đã đọc ở đây thực hiện sao lưu nhật ký giao dịch trên bản sao chính hoặc bản sao phụ sẽ đánh dấu nhật ký giao dịch của cả hai bản sao là có thể sử dụng lại. Dù sao, kích thước sao lưu nhật ký giao dịch là lớn và có thể được giảm bằng cách sử dụng tệp thu nhỏ:

nhập mô tả hình ảnh ở đây

Tôi đã khôi phục cơ sở dữ liệu cục bộ và thực hiện thao tác thu nhỏ. Kích thước tệp nhật ký đã giảm xuống 160 MB.

Câu hỏi của tôi là cơ sở dữ liệu nào tôi nên thực hiện thao tác thu nhỏ trên tệp nhật ký giao dịch (chính, phụ hoặc cả hai)?


Tôi đoán trong quá khứ trong nhiều năm không có bản sao lưu của tệp nhật ký được tạo ra, vì vậy nó trở nên rất lớn. Thực thi DBCC SQLPERF (LOGSPACE)tôi có thể thấy rằng chỉ có 0.06%tệp được sử dụng - không có lý do gì để tôi giữ kích thước khổng lồ của tệp nhật ký. Trong [sys].[database_files]tôi kiểm tra xem nó max_sizeđược thiết lập để -1với growthtới 65536vì vậy tôi đoán khi nó cần nhiều không gian nó sẽ nhận được. Dù sao, tôi có thể thu nhỏ nó xuống còn 5% chẳng hạn để ngăn chặn sự tăng trưởng trong tương lai. Tôi đang cố gắng tìm một số xác nhận rằng tôi không phải là ý tưởng tồi.


Trên thực tế, sao lưu (trên cơ sở dữ liệu và tệp nhật ký) chỉ được thực hiện trên cơ sở dữ liệu thứ cấp, do đó sẽ dễ dàng thực hiện tệp thu nhỏ trên chúng hơn, nhưng kích thước tệp nhật ký chính cũng sẽ giảm?

Câu trả lời:


21

Trong AGs viết chỉ có thể xảy ra trên chính. Hoạt động co lại được viết. Vì vậy, bạn phải làm thu nhỏ trên chính. Lưu ý rằng thu nhỏ có thể không co lại nhiều như bạn mong đợi, thử nghiệm của bạn trên DB được khôi phục có thể đã tận dụng mô hình khôi phục đơn giản. Đọc Cách thu nhỏ nhật ký Máy chủ SQL để biết thêm thông tin.

Không co lại thành 160MB. Xác định lý do tại sao nhật ký tăng lên 121Gb để nó không lặp lại (bạn có một sự nghi ngờ, sẽ rất tốt để xác nhận nếu có thể). Kích thước nhật ký đến một kích thước phù hợp với nhu cầu hoạt động của bạn. Tăng trưởng nhật ký là một vấn đề nghiêm trọng, nó không thể sử dụng khởi tạo tệp ngay lập tức và tất cả hoạt động cơ sở dữ liệu của bạn sẽ bị đóng băng trong khi nhật ký phát triển và đang được khởi tạo 0. Người dùng và ứng dụng ghét nó khi nó xảy ra. Nếu bạn hiểu tác động và người dùng của bạn vẫn ổn, bạn có thể thu nhỏ một lần đến một lượng nhỏ (160MB có lẽ là quá nhỏ) và để cho nó phát triển cho đến khi nó ổn định.


7

Bạn co thể thử:

  1. Cơ sở dữ liệu trên tất cả các máy chủ trong Nhóm khả dụng phải ở trạng thái Đồng bộ hóa.
  2. Di chuyển các trang đã sử dụng để bắt đầu nhật ký giao dịch, trước khi bạn thu nhỏ nó.
  3. Đôi khi không gian trống của nhật ký là 99%, nhưng SQL Server không thể giải phóng không gian chưa sử dụng. Lần lượt thử khởi động lại từng máy chủ trong Nhóm sẵn có.
  4. Đôi khi bạn cần phải tạo và thu nhỏ nhật ký giao dịch 2 lần trước khi MS SQL Server giải phóng không gian trống (Không thể thu nhỏ tệp nhật ký (DB_Log) vì tệp nhật ký logic nằm ở cuối tệp đang được sử dụng.).

Hãy thử kịch bản này:

    - Thiết lập cơ sở dữ liệu hiện tại bên trong bước công việc hoặc tập lệnh
    --Kiểm tra chỉ thực hiện trên chính
    if (vai trò CHỌN
        TỪ sys.dm_hadr_avcellence_Vplica_states NHƯ
        THAM GIA sys.avcellence_Vplicas NHƯ b
            TRÊN b.replica_id = a.replica_id
    Ở ĐÂU b.replica_server_name = @@ SERVERNAME) = 1
    BẮT ĐẦU
        - Sử dụng [test_db] - Không hoạt động cho MS SQL 2014, chỉ cần nhận xét dòng này và đặt cơ sở dữ liệu hiện tại bên trong bước công việc hoặc tập lệnh
        - 1) Bakup Trn
        ĐĂNG NHẬP BACKUP
        - 2) Di chuyển các trang đã sử dụng
        DBCC SHRINKFILE (N'test_db_log ', 3000, NOTRUNCATE)
        - 3) Nhật ký SHRINKFILE
        DBCC SHRINKFILE (N'test_db_log ', 3000)
    KẾT THÚC
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.