Phần I của II (phải chia câu trả lời của tôi)
Có một hoặc hai điều cần suy nghĩ ở đây. Theo tôi bạn có thể đã thực hiện một lối tắt trong quá trình suy nghĩ. Tôi sẽ giải thích trong khi tôi đưa ra giả định này ...
Bạn có thể muốn xem nhanh câu trả lời được chấp nhận của tôi ở đây được đăng cùng với câu hỏi Cần gợi ý về Chiến lược sao lưu [đã đóng] để cung cấp cho bạn một số ý tưởng về RTO và RPO.
Tại sao? Bởi vì thiết lập @CleanupTime=0
có thể là một ý tưởng tồi ...
Đầu tiên để trả lời câu hỏi của bạn.
Đây có phải là một lỗi trong kịch bản của Ola không? - Không. Ola đã thiết kế tập lệnh của mình để kiểm tra lần cuối BACKUP DATABASE...
(Sao lưu toàn bộ) và sau đó xóa các bản sao lưu nhật ký giao dịch ( BACKUP LOG ...
) đã xảy ra trước bản sao lưu đó và chỉ khi @CleanupTime
mức thấp hơn so với khi sao lưu FULL xảy ra.
Đây là một cơ chế không an toàn và không có nghĩa là được sử dụng như một tính năng chung.
Hoạt động như thiết kế, bởi vì a BACKUP DATABASE ... WITH COPY_ONLY...
vẫn là một bản sao lưu đầy đủ .
An toàn là trên hết
Tạo một bản sao lưu với BACKUP DATABASE ... COPY_ONLY...
tùy chọn và sau đó tạo BACKUP LOG...
vẫn sẽ cho phép bạn khôi phục cơ sở dữ liệu về trạng thái nhất quán bằng cách sử dụng COPY_ONLY
bản sao lưu FULL và bản sao lưu Nhật ký giao dịch có sẵn.
Tôi đã kiểm tra điều này bằng cơ sở dữ liệu StackExchange của tôi:
- Tạo
COPY_ONLY
bản sao lưu thủ công
- Sửa đổi một số dữ liệu
- Thực hiện
BACKUP LOG ...
việc sử dụng các tập lệnh của Ola
- Khôi phục cơ sở dữ liệu
Sao lưu thủ công với COPY_ONLY
-------------------------------------------------
BACKUP DATABASE [StackExchange] TO DISK = 'C: \ adhoc \ StackExchange_Full_CopyOnly_20171221_082242.bak'
VỚI COPY_ONLY, COMPRESSION, RETAINDAYS = 3, NOFORMAT, NOINIT, NAME = N'StackExchange-Thiết bị sao lưu đầy đủ ', SKIP, NOREWIND,
NOUNLOAD, STATS = 10, KIỂM TRA
-------------------------------------------------
10 phần trăm được xử lý.
21 phần trăm được xử lý.
31 phần trăm được xử lý.
40 phần trăm được xử lý.
50 phần trăm được xử lý.
61 phần trăm được xử lý.
70 phần trăm được xử lý.
80 phần trăm được xử lý.
91 phần trăm được xử lý.
Đã xử lý 376 trang cho cơ sở dữ liệu 'StackExchange', tệp 'StackExchange' trên tệp 1.
Xử lý 100 phần trăm.
Đã xử lý 2 trang cho cơ sở dữ liệu 'StackExchange', tệp 'StackExchange_log' trên tệp 1.
BACKUP DATABASE đã xử lý thành công 378 trang trong 0,027 giây (109.103 MB / giây).
-------------------------------------------------
Đã kết thúc
Sao lưu Nhật ký giao dịch với tập lệnh của Ola
Ngày 21.12.2017 08:29:06
Nhật ký lịch sử công việc (OLA DatabaseBackup - USER_DATABASES - LOG)
ID bước 1
Máy chủ MYNOTEBOOK
Tên công việc OLA DatabaseBackup - USER_DATABASES - LOG
Tên bước OLA DatabaseBackup - USER_DATABASES - LOG
Thời lượng 00:00:01
Mức độ nghiêm trọng 0
ID tin nhắn Sql 0
Điều hành qua email
Toán tử đã gửi
Toán tử phân trang
Thử lại 0
Thông điệp
Được thực thi với tư cách là người dùng: NT Service \ SQLSERVERAGENT. ... 557.0 Phiên bản: Phiên bản dành cho nhà phát triển (64-bit) Quy trình: [msdb]. [Dbo]. [DatabaseBackup] Tham số: @Database = 'USER_DATABASES', @Directory = 'C: \ SQL \ Backup', @BackupType = 'LOG', @Verify = 'Y', @CleanupTime = 48, @CleanupMode = 'AFTER_BACKUP', @Compress = NULL, @CopyOnly = 'N', @ChangeBackupType = 'N', @BackupSoftware = NULL, @ 'Y', @BlockSize = NULL, @BufferCount = NULL, @MaxTransferSize = NULL, @NumberOfFiles = NULL, @CompressionLevel = NULL, @Descrip = NULL, @Threads = NULL, @ , @EncryptAlerskym = NULL, @ServerCert ve = NULL, @ServerAsymmetricKey = NULL, @EncryptKey = NULL, @ReadWriteFile ERIC = 'N', @OverrideBackupPreference = 'N', @NoRec =
[rút ngắn]
... Mã thoát quy trình 0. Bước thành công.
Khôi phục
USE [master]
-- Restore the COPY_ONLY Backup
RESTORE DATABASE [StackExchange] FROM DISK = N'C:\adhoc\StackExchange_Full_CopyOnly_20171221_082242.bak'
WITH REPLACE, FILE = 1, NORECOVERY, NOUNLOAD, STATS = 5
-- Restore an OLA Transaction Log backup
RESTORE LOG [StackExchange] FROM DISK = N'C:\SQL\Backup\MYNOTEBOOK\StackExchange\LOG\NB31710_StackExchange_LOG_20171221_082906.trn'
WITH FILE = 1, NOUNLOAD, STATS = 5
Bạn có thể không sự khác biệt trong dấu thời gian là xấp xỉ. 7 phút.
Các kết quả
6 phần trăm được xử lý.
10 phần trăm được xử lý.
16 phần trăm được xử lý.
21 phần trăm được xử lý.
25 phần trăm được xử lý.
31 phần trăm được xử lý.
36 phần trăm được xử lý.
40 phần trăm được xử lý.
46 phần trăm được xử lý.
50 phần trăm được xử lý.
55 phần trăm được xử lý.
61 phần trăm được xử lý.
65 phần trăm được xử lý.
70 phần trăm được xử lý.
76 phần trăm được xử lý.
80 phần trăm được xử lý.
86 phần trăm được xử lý.
91 phần trăm được xử lý.
95 phần trăm được xử lý.
Xử lý 100 phần trăm.
Đã xử lý 376 trang cho cơ sở dữ liệu 'StackExchange', tệp 'StackExchange' trên tệp 1.
Đã xử lý 2 trang cho cơ sở dữ liệu 'StackExchange', tệp 'StackExchange_log' trên tệp 1.
RESTORE DATABASE đã xử lý thành công 378 trang trong 0,021 giây (140.276 MB / giây).
Xử lý 100 phần trăm.
Đã xử lý 0 trang cho cơ sở dữ liệu 'StackExchange', tệp 'StackExchange' trên tệp 1.
Đã xử lý 2 trang cho cơ sở dữ liệu 'StackExchange', tệp 'StackExchange_log' trên tệp 1.
RESTORE LOG đã xử lý thành công 2 trang trong 0,005 giây (2,441 MB / giây).
Tóm lược
Kịch bản của Ola hoạt động như thiết kế. Chúng tôi đã xác minh rằng một BACKUP DATABASE ... WITH COPY_ONLY...
và một bổ sung BACKUP LOG ...
sẽ làm việc cùng nhau. Tính năng không an toàn đảm bảo bạn có thể khôi phục cơ sở dữ liệu của mình với bản sao lưu đầy đủ cuối cùng (có thể là COPY_ONLY hoặc không) và các bản sao lưu Nhật ký giao dịch có sẵn.
(Vui lòng đọc Phần II của II để biết thêm câu trả lời)