Làm cách nào tôi có thể sửa lỗi Có thể thực hiện sao lưu vi sai, sao lưu cơ sở dữ liệu hiện tại không tồn tại?


9

Gần đây chúng tôi đã chuyển sang FULLmô hình khôi phục, với các bản sao lưu đầy đủ được thực hiện vào mỗi cuối tuần và các khác biệt được thực hiện mỗi ngày.

Vấn đề là, các bản sao lưu vi sai dường như không luôn hoạt động. Thông báo lỗi được ghi lại trong lịch sử công việc là

Thực hiện như người dùng: tên người dùng. ... 9.00.3042.00 cho Bản quyền 32 bit (C) Microsoft Corp 1984-2005. Đã đăng ký Bản quyền.
Bắt đầu: 11:20:12 AM Tiến độ: 2013-01-25 11: 20: 13.90 Nguồn: {450389BA-54C2-4892-9CD0-0126CA9B0ED8} Thực hiện truy vấn "DECLARE @Guid UNIQUEIDENTIFIER EXECUTE msdb..sp".: 100% hoàn thành Lỗi tiến trình kết thúc: 2013-01-25 11: 20: 14.40 Mã: 0xC002F210
Nguồn: Sao lưu cơ sở dữ liệu (vi sai) Thực thi tác vụ SQL
Mô tả: Thực hiện truy vấn "BACKUP DATABASE [MyDatabase] TO DISK = N'E: \ Database Backups \ MyDatabase_backup_201301251120.diff 'VỚI KHÁC BIỆT, NOFORMAT, NOINIT, NAME = N'MyDatabase_backup_20130125112014', SKIP, REWIND, NOUNLOAD, STATS = 10 "không thành công với lỗi sau:"Không thể thực hiện sao lưu vi sai cho cơ sở dữ liệu" MyDatabase ", vì không có bản sao lưu cơ sở dữ liệu hiện tại. Thực hiện sao lưu cơ sở dữ liệu đầy đủ bằng cách phát hành lại BACKUP DATABASE, bỏ qua tùy chọn VỚI KHÁC BIỆT. BA ... Bước thực hiện gói thất bại.

Công việc sao lưu đầy đủ hoàn thành thành công mọi lúc và tôi có thể xem nó msdb.dbo.backupsetbằng cách sử dụng truy vấn tìm thấy ở đây , vì vậy tôi biết nó tồn tại. Và có vẻ như sau khi khởi động lại, sự khác biệt trở lên không hoàn toàn thành công cho đến khi sao lưu đầy đủ tới.

Dưới đây là một cái nhìn về lịch sử công việc tôi có:

1/16 - Sao lưu đầy đủ - Thành công
1/17 - Sao lưu vi sai - Thành công
1/18 - Sao lưu vi sai - Thành công
1/19 - Sao lưu vi sai - Thành công
1/20 - Sao lưu đầy đủ - Thành công
1/21 - Sao lưu vi sai - Thất bại
1/21 - Sao lưu vi sai - Thất bại
1/22 - Sao lưu đầy đủ - Thành công
1/22 - Sao lưu vi sai - Thất bại
1/22 - Khởi động lại
1/23 - Sao lưu vi sai - Thành công
1/23 - Khởi động lại
1/24 - Sao lưu vi sai - Thành công
1/25 - Sao lưu đầy đủ - Thành công
1/25 - Sao lưu vi sai - Thất bại

Khởi động lại là do một lỗi liên quan nơi @@SERVERNAMEđược null, vì vậy tôi đã tổ chức ra đăng câu hỏi này cho đến khi tôi phát hiện ra nếu ấn định @@SERVERNAMEcố định được vấn đề, nhưng nó đã không và bây giờ tôi không có ý tưởng bắt đầu từ đâu.

Điều gì có thể khiến SQL Server không nhận ra bản sao lưu đầy đủ cho cơ sở dữ liệu và làm cách nào để khắc phục nó?

Ngoài ra tôi không chắc điều này có liên quan hay không, nhưng các bản sao lưu vi sai có vẻ khá lớn và tôi tự hỏi liệu họ có đang chạy vi sai khỏi bản sao lưu cơ sở dữ liệu đầy đủ được thực hiện ngay từ đầu (vào ngày 1/16) thay vì hầu hết sao lưu đầy đủ gần đây. Các bản sao lưu đầy đủ là khoảng 260 GB và chênh lệch từ 1 / 23-1 / 24 là 30 GB mỗi bản.

Các công việc được thiết lập bằng Trình hướng dẫn kế hoạch bảo trì máy chủ SQL và tôi đang sử dụng SQL Server 2005

Nút [Xem T-SQL] cho Gói bảo trì trả về mã này:

Sao lưu đầy đủ:

BACKUP DATABASE [MyDatabase] 
TO DISK = N'E:\Database Backups\MyDatabase_backup_2013_01_25_140607_2543780.bak' 
WITH NOFORMAT, NOINIT, SKIP, REWIND, NOUNLOAD, STATS = 10, 
    NAME = N'MyDatabase_backup_2013_01_25_140607_2523778'

Sự khác biệt:

BACKUP DATABASE [MyDatabase] 
TO DISK = N'E:\Database Backups\MyDatabase_backup_2013_01_25_140537_4073936.diff' 
WITH DIFFERENTIAL, NOFORMAT, NOINIT, SKIP, REWIND, NOUNLOAD,  STATS = 10, 
    NAME = N'MyDatabase_backup_2013_01_25_140537_4053934'

Điều này liên quan rất chặt chẽ với một câu hỏi khác mà tôi có , tuy nhiên có một gợi ý trong trò chuyện là tôi đăng một câu hỏi mới thay vì chỉnh sửa câu hỏi khác do các câu hỏi khác nhau và câu trả lời hiện có cho câu hỏi khác.


Suy nghĩ đầu tiên của tôi là có một ảnh chụp nhanh SAN hoặc VM gây ra điều này. Tuy nhiên, điều đó không giải thích được tại sao vào ngày 1 / 22-1 / 23, khác biệt đầu tiên sau khi thất bại hoàn toàn và lần tiếp theo thành công mà không có sự khác biệt đầy đủ. Bạn có nhớ kiểm tra kỹ điều đó bởi vì tôi sẽ mong đợi một bản đầy đủ mới cần được thực hiện để mọi thứ hoạt động trở lại?
cfradenburg

@cfradenburg Tôi đã kiểm tra lại lịch sử công việc, và điều đó là chính xác. Công việc sao lưu đầy đủ đã thành công vào 1/22 lúc 12:30 sáng. Tôi đã thực hiện công việc khác biệt bằng tay vào sáng hôm sau lúc 8:26 sáng và nó đã thất bại. Chúng tôi đã khởi động lại máy chủ vào tối hôm đó và sự khác biệt vào sáng hôm sau lúc 12:30 sáng đã thành công. Tôi nghĩ rằng quản trị mạng của chúng tôi đã làm một số thứ gần đây với VM. Điều đó sẽ ảnh hưởng đến nó như thế nào?
Rachel

1
Bạn có thể thử chạy tập lệnh ở đây để xem có bản sao lưu nào khác xảy ra ngoài những gì bạn đã lên lịch không: jasonbrimhall.info/2012/11/30/backup-history
cfradenburg

1
Theo câu trả lời này trên SF, có vẻ như VSS có thể gây ra vấn đề. Bất kỳ bản sao lưu SAN / VM nào đang xảy ra đều có thể gây ra sự cố.
swasheck

1
Một câu hỏi SF khác cần xem xét: serverfault.com/questions/147459/ từ

Câu trả lời:


6

Nếu một cái gì đó đang chụp nhanh phía sau hậu trường phá vỡ các bản sao lưu vi sai SQL gây ra toàn bộ cần phải được thực hiện trước một vi sai mới. Bạn có thể dừng bất cứ điều gì đang chụp ảnh nhanh hoặc đảm bảo rằng bạn đang sao lưu toàn bộ sau đó trước khi bạn cố gắng thực hiện một sự khác biệt. Nếu bạn sử dụng Giải pháp bảo trì của Ola Hallengren có thể tự động thay đổi một khác biệt thành đầy đủ khi nó chạy vào tình huống này.

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.