SQL Server 2012 luôn luôn sao lưu, đầy đủ so với chỉ sao chép


8

Tôi cần làm rõ nhanh về sao lưu chỉ sao chép so với sao lưu toàn bộ vì nó liên quan đến đánh số và khôi phục nhật ký giao dịch nếu cần.

Tôi có thiết lập SQL Server 2012 luôn bật cho nhiều cơ sở dữ liệu. Các nhóm khả dụng được thiết lập với sao lưu ưa thích trên bản sao.

chỉ sao lưu và sao lưu nhật ký giao dịch là có thể trên bản sao. Điều này có nghĩa là tôi sẽ cần thực hiện sao lưu toàn bộ trên chính nếu cần khôi phục nhật ký giao dịch?

Cảm ơn bạn

Câu trả lời:


2

chỉ có bản sao lưu và sao lưu nhật ký giao dịch là có thể trên bản sao

Thật.

Điều này có nghĩa là tôi sẽ cần thực hiện sao lưu toàn bộ trên chính nếu cần khôi phục nhật ký giao dịch?

Câu trả lời ngắn .

Từ BOL :

Chuỗi nhật ký nhất quán được đảm bảo trên các bản sao lưu nhật ký được thực hiện trên bất kỳ bản sao nào (chính hoặc phụ), bất kể chế độ sẵn có của chúng (cam kết đồng bộ hoặc cam kết không đồng bộ).

Vì vậy, để trả lời câu hỏi của bạn, bản sao lưu COPY_ONLY không thể là một phần của khôi phục liên quan đến sao lưu nhật ký T (thực hiện khôi phục tại thời điểm). Toàn bộ quan điểm của nó là có một bộ sao lưu bên ngoài chuỗi sao lưu thông thường KHÔNG ảnh hưởng đến chuỗi khôi phục.

Một bản sao lưu đầy đủ phải được thực hiện trên cơ sở dữ liệu chính (không thể là bản sao lưu copy_only).

Chỉ có bản sao lưu nhật ký T (như đã đề cập ở trên) mới có thể được thực hiện trên cả sơ cấp hoặc thứ cấp với CAVEAT rằng nó sẽ không làm rối các LSN trên PRIMARY, tức là nó sẽ giữ các LSN nhất quán - bất kể bạn lấy bản sao lưu nhật ký trong nhóm khả dụng ở đâu .

Tốt nhất là kiểm tra sys.fn_hadr_backup_is_preferred_replicasao cho các bản sao lưu nhật ký sẽ sử dụng các tùy chọn sao lưu nhóm Availablity cho các bản sao lưu Nhật ký.

Tham khảo: Thực hiện sao lưu nhật ký giao dịch bằng cách sử dụng các bản sao phụ chỉ đọc của nhóm luôn sẵn sàng - Phần 1


2
Bạn chắc chắn có thể sử dụng bản sao lưu đầy đủ COPY_ONLY và áp dụng nhật ký giao dịch trên đầu trang. Một bản sao lưu đầy đủ COPY_ONLY có cấu trúc giống như mọi bản sao lưu đầy đủ khác. Sự khác biệt duy nhất là nó không thiết lập lại bitmap vi sai. Sau khi khôi phục đầy đủ COPY_ONLY, bạn có thể bắt đầu khôi phục với nhật ký giao dịch có chứa LSN cuối cùng của bản sao lưu COPY_ONLY, sau đó tiến hành chuỗi nhật ký như bình thường.
AMtwo

6

Điều này có nghĩa là tôi sẽ cần thực hiện sao lưu toàn bộ trên chính nếu cần khôi phục nhật ký giao dịch?

KHÔNG - Bạn có thể thêm bản sao lưu t-log để khôi phục bản sao lưu COPY_ONLY


2

Bạn có thể khôi phục nhật ký giao dịch trên bản sao lưu đầy đủ chỉ sao chép - điều này có nghĩa là bạn có thể sử dụng bản sao lưu chỉ sao chép từ bản sao phụ cùng với nhật ký giao dịch và thực hiện khôi phục tại thời điểm.

Tuy nhiên, nếu bạn chỉ thực hiện sao lưu chỉ sao chép trên bản sao phụ, bạn sẽ không có bản sao lưu "thực" để đặt lại bitmap vi sai trên bản sao chính. Nếu sao lưu vi sai là một phần của chiến lược khôi phục của bạn, thì bạn cần phải sao lưu toàn bộ trên bản chính. Nếu bạn muốn sử dụng một bản sao lưu vi sai, bạn sẽ cần phải sao lưu toàn bộ trên bản sao chính để sử dụng làm cơ sở vi sai.


2

Tôi đã thử nghiệm thành công bằng cách sử dụng bản sao lưu chỉ sao chép và bản sao lưu nhật ký kéo dài chỉ sao chép đến thời điểm mong muốn. Bạn cần phải có tất cả các bản sao lưu nhật ký. Vì vậy, nếu bạn có nhiều bản sao mà bạn đang sử dụng để thực hiện sao lưu (chẳng hạn như chuyển đổi dự phòng), bạn cần đảm bảo và theo dõi chúng. Trong thử nghiệm của tôi, tôi chỉ cần thiết lập mọi thứ để tất cả các bản sao lưu đi đến một vị trí trung tâm. SQL duy trì chuỗi nhật ký để sao lưu nhật ký trên tất cả các nút trong AG. Một bài viết hay ở đây ... http://info.tricoresolutions.com/blog/under Hiểu-backups-with-sql-server-alwayson-high-avcellence-mirrors


1

Tôi đã có rất nhiều nhầm lẫn xung quanh chủ đề - Trong cụm AG khôi phục Sao lưu nhật ký sau với Sao chép - chỉ sao lưu đầy đủ.

Bây giờ nó đang hoạt động tốt. Chúng tôi có thể sử dụng bản sao chỉ sao lưu từ bản sao phụ:

USE [master]
RESTORE DATABASE [xxxxx_testDB] FROM  
DISK = N'D:\Backups\FULL_COPY_ONLY\xxxxx_testDB_FULL_COPY_ONLY.bak' 
WITH  FILE = 1, 
MOVE N'xxxxx_testDB' TO N'D:\testdb\xxxxx_testDB.mdf',  
MOVE N'xxxxx_testDB_log' TO N'D:\testdb\xxxxx_testDB.ldf',  
NORECOVERY

GO


RESTORE LOG xxxxx_testDB
FROM DISK = 'D:\Backups\FULL_COPY_ONLY\xxxxx_testDB_LOG_1.trn'
WITH NORECOVERY; 
GO

RESTORE LOG xxxxx_testDB
FROM DISK = 'D:\Backups\FULL_COPY_ONLY\xxxxx_testDB_LOG_2.trn'
WITH NORECOVERY; 
GO


RESTORE DATABASE xxxxx_testDB WITH RECOVERY
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.