Mất dữ liệu của một công ty thường là đủ để đưa công ty ra khỏi kinh doanh, nhưng lỗi sao lưu thường có thể tránh được với các ứng dụng cảm giác thông thường chứ không phải là kiến thức kỹ thuật sâu. Cấp đào thành những kỷ niệm của kinh nghiệm lâu năm của ông đưa ra lời khuyên diễn đàn, để đến với các lỗi dễ dàng sao lưu có thể ngăn ngừa hầu hết.
Toàn bộ ý tưởng đằng sau việc sao lưu cơ sở dữ liệu của bạn là để bảo vệ các doanh nghiệp khỏi mất mát. Nhưng những gì nếu bạn bị mất các sao lưu? Làm thế nào bảo vệ nhiều bạn có bây giờ? Tất cả các loại sự kiện khác nhau có thể làm bạn mất sao lưu hoặc sao lưu của bạn bị hỏng. Nhiều người trong số họ là hoàn toàn ngẫu nhiên và ngoài tầm kiểm soát của bạn. Nhưng có một số ít, khá phổ biến, các sự kiện đó là hoàn toàn có thể phòng ngừa thông qua tiêu chuẩn thực hành tốt nhất.
Điều quan trọng nhất bạn có thể làm cho các bản sao lưu của bạn là để kiểm tra chúng bằng cách khôi phục chúng.
Bài viết này chúng tôi viết về nội dung 7 lỗi sao lưu dữ liệu dự phòng
1. Tập tin sao lưu
Kịch bản: Có một cúp hệ thống. Ai đó đã đánh rơi một bảng hoặc xóa số lượng lớn dữ liệu quan trọng. Đây là lần đầu tiên nó đã xảy ra trên bất kỳ hệ thống mà bạn đang chịu trách nhiệm. Bạn có biết rằng nhóm các hệ thống thiết lập một số loại sao lưu cho tất cả các tập tin trên máy chủ sản xuất của bạn. Đó là một cứu trợ. Vì vậy, bạn đi để có được MDF. Và. File LDF đã được sao lưu … Chỉ có họ không có, hoặc, họ đang có, nhưng khi bạn cố gắng để khôi phục lại cơ sở dữ liệu họ không làm việc.
Những gì đã xảy ra: Điều này thường xuyên xảy ra trong các hệ thống mà bạn không có người chịu trách nhiệm cho các máy chủ cơ sở dữ liệu ở tất cả hoặc một dữ liệu thực sự mới chuyên nghiệp. Nó không phải là phổ biến kiến thức trong thế giới thực sự mà SQL Server đòi hỏi bạn phải chạy một loại sao lưu. Một tập tin là một tập tin, phải không? Có, nhưng, SQL Server sẽ đưa ra ổ khóa trên tất cả các tập tin cơ sở dữ liệu. Điều này có thể gây ra một hệ thống tập tin sao lưu để bỏ qua các tập tin cơ sở dữ liệu. Nó thường sẽ nâng cao một lỗi, nhưng sau hai hoặc ba tuần nhìn vào lỗi tương tự, người thường xuyên chỉ cần tắt nó, bỏ qua các tập tin, bất cứ điều gì, nhưng bạn không có một bản sao lưu các tập tin cơ sở dữ liệu của bạn, ở tất cả.
Một số hệ thống tập tin sao lưu thậm chí có thể hình dung ra rằng một tập tin bị khóa, nhưng sao nó lên không. Bây giờ, bạn sẽ có các file cơ sở dữ liệu của bạn, nhưng bạn vẫn sẽ không thể sử dụng chúng. Trước tiên, bạn không thể chạy một hoạt động RESTORE từ các tập tin cơ sở dữ liệu; bạn chỉ có thể ATTACH chúng đến máy chủ. Vì vậy, bạn nghĩ rằng, tốt, tôi sẽ chỉ ATTACH họ. Nhưng sau đó bạn có thể không. Lý do cho điều này là các công cụ SQL Server quản lý các giao dịch, và các giao dịch kiểm soát dữ liệu được ghi vào đĩa. Nó hoàn toàn có thể sao lưu của bạn để nắm bắt các tập tin nhưng với các giao dịch không cam kết, một nửa đầy đủ, và bạn không thể ROLLFORWARD hoặc rollback trong một ATTACH, trừ khi bạn đã làm một DETACH đầu tiên, do đó, SQL Server có thể làm sạch các giao dịch mở. Các tập tin sao lưu là vô ích.
Làm thế nào để ngăn chặn nó : SQL Server có một phương pháp để tạo bản sao lưu, được xây dựng ngay vào sản phẩm, BACKUP DATABASE. Không chỉ nó sẽ tạo ra một tập tin (hoặc các tập tin) mà bạn có thể sử dụng để khôi phục lại cơ sở dữ liệu từ, nhưng nó cũng hiện nó trong một cách mà dò ra tất cả các giao dịch, do đó bạn không phải lo lắng về điều đó cả. giới thiệu này để sao lưu được xuất bản cho SQL Server 2005, nhưng vẫn còn áp dụng rộng rãi để 2008R2. Đây là cơ chế thuận lợi nhất để tạo bản sao lưu trong SQL Server.
2. Không tin lưu trữ
Đột nhiên, tất cả các bản sao lưu được không. Bạn đã lên kế hoạch trước và bạn có một cảnh báo rằng bắn từ công việc SQL Agent chạy sao lưu của bạn, nhưng tất cả mọi thứ là không. Nhìn vào các bản ghi lỗi hoặc trong thông báo lỗi bạn nhìn thấy “không gian đĩa không đủ để sao lưu” hoặc một số thông báo tương tự.
Những gì đã xảy ra : Bạn đã chạy ra khỏi không gian trên ổ đĩa mà bạn đã sao lưu của bạn. Nó xảy ra rất nhiều. Đó là cực kỳ phổ biến. Nguyên nhân là đôi khi khó khăn hơn để móng tay xuống. Nguyên nhân đơn giản là một trong những bạn có số tiền ít nhất của kiểm soát. Cơ sở dữ liệu lớn. Bởi vì sự tăng trưởng này, nó cần nhiều không gian hơn cho việc sao lưu. Các nguyên nhân khác bạn có thể làm những việc về. Một số người thích để tạo ra một tập tin sao lưu mới cho mỗi sao lưu, đặt một ngày và thời gian vào tên tập tin cùng với tên cơ sở dữ liệu để nó dễ dàng để kể khi sao lưu được thực hiện. Nhưng họ không luôn luôn chăm sóc càng nhiều với việc tạo ra hoặc duy trì một kịch bản làm sạch loại bỏ các bản sao lưu sau một vài ngày.
Làm thế nào để ngăn chặn nó : Bạn có theo dõi không gian ổ đĩa của bạn. Bạn cũng cần phải theo dõi kích thước cơ sở dữ liệu của bạn. Nếu họ đang phát triển, như vậy sẽ sao lưu của bạn. Bạn cũng cần phải chắc chắn của quá trình dọn dẹp sao lưu của bạn. Tôi đã nhìn thấy những thường thất bại, đó là giá trị đặt kiểm tra khác ở nơi đó xác nhận tuổi và sao lưu hoặc gửi cho bạn một cảnh báo hoặc gửi cho bạn một cảnh báo sau khi xóa các tập tin sao lưu cũ. Chỉ cần kiểm tra các quá trình này để bạn không xóa các bản sao lưu mới mà bạn có thể cần phải ngay lập tức, và chắc chắn rằng bạn đã sao lưu cũ có sẵn từ một số hệ thống lưu trữ off-site.
Ngoài ra, công tác phòng chống tốt nhất ở đây là để giữ một mắt trên không gian đĩa cứng của bạn. Không chỉ bạn nên lo lắng về dung lượng miễn phí, nhưng bạn cần phải hiểu tốc độ tăng trưởng.
3. Sao lưu Trên Mạng
Kịch bản : Bạn đã có bản sao lưu tại chỗ, nhưng họ đang chạy rất chậm. Họ đang chạy rất chậm mà đôi khi bạn nhận được lỗi thời gian chờ và các bản ghi thất bại. Lần khác nó đang chạy rất chậm mà SQL Server bị ảnh hưởng và bạn phải giết chết quá trình sao lưu để tăng tốc độ hệ thống. Trong cùng một tình huống này bạn cũng có thể được nhìn thấy load quá mức trên mạng của bạn.
Những gì đã xảy ra : Có thể có nhiều nguyên nhân cho điều này, nhưng một trong những thường gặp nhất đang chạy các bản sao lưu trên mạng. Sao lưu vào một ổ đĩa cục bộ hoặc một SAN thông qua một kênh sợi chuyên dụng thường chỉ là nhanh như các đĩa có thể xử lý nó. Nhưng khi bạn sao lưu trên mạng, bạn chạy vào tất cả các loại tranh và tắc nghẽn, cạnh tranh với Twitter, Facebook và của tất cả mọi người từ với Bạn bè trò chơi. Tranh gây ra các bản sao lưu chạy chậm.
Làm thế nào để ngăn chặn nó : Do không sao lưu trên mạng. Tôi nhận ra nó có thể có nhiều khó khăn hơn, đặc biệt là nếu bạn đang ở trong một cuộc khủng hoảng cho không gian đĩa và không có ngân sách để biết thêm. Nhưng có thực sự không thể làm gì về nó. Nếu có thể, sao lưu vào đĩa địa phương. Nếu không gian thực sự là một vấn đề, sao lưu tại địa phương, sau đó sao chép các tập tin trên mạng. Quá trình hai bước này có thể làm cho một thói quen sao lưu tổng thể dài hơn, nhưng các bản sao lưu bản thân có nhiều khả năng hoàn thành, đó là một phần quan trọng.
4. Chỉ có Differential Backups sẵn
Kịch bản : Bạn đã được vui vẻ chạy một bản sao lưu khác biệt mỗi ngày. Bạn đã không bao giờ đánh một thất bại và mọi thứ đều tốt. Bây giờ bạn đã có thể tránh khỏi cúp và bạn đi đến sao lưu khác biệt giữa bạn và chạy một khôi phục lại. Chỉ có điều là, bạn nhận được một lỗi: Nhật ký hoặc sao lưu khác biệt không thể được phục hồi bởi vì không có tập tin sẵn sàng để cuộn về phía trước.
Những gì đã xảy ra : sao lưu Differential chỉ làm việc kết hợp với một bản sao lưu đầy đủ. Đôi khi sao lưu toàn bị mất và mọi người cố gắng để khôi phục lại sự khác biệt mà không có. Hoặc, đôi khi đó chỉ là một sự hiểu lầm về cách sao lưu khác biệt làm việc. Nó cũng có thể là một bản sao lưu đầy đủ đã được thực hiện trước khi chạy sự khác biệt, nhưng cơ sở dữ liệu không còn lại trong trạng thái phục hồi cần thiết để áp dụng khác biệt và sao lưu đăng nhập. Bất kỳ một trong những vấn đề này có thể là nguyên nhân.
Làm thế nào để ngăn chặn nó : Bạn phải thực hiện sao lưu đầy đủ và sử dụng chúng như là cơ sở cho một quá trình khôi phục kết hợp với sao lưu khác biệt. Vì bạn không thể chỉ đơn giản là khôi phục lại một khác biệt, đây là cách duy nhất để làm công việc này. Hơn nữa, khi bạn khôi phục lại các sao lưu đầy đủ, nó phải được để lại trong trạng thái phục hồi để áp dụng sự khác biệt. Kịch bản sẽ như sau:
RESTORE DATABASE MovieManagement
FROM DISK = ‘g: bu MovieManagement.bak’
WITH REPLACE , NORECOVERY ;
Điều này sẽ khôi phục lại cơ sở dữ liệu trong câu hỏi, nhưng để nó trong một trạng thái phục hồi. Trong trạng thái đó một bản sao lưu khác biệt có thể được áp dụng. Nếu các bản ghi phải được phục hồi là tốt, sau đó khôi phục lại sự khác biệt cũng phải rời khỏi cơ sở dữ liệu trong một tuyên bố phục hồi bằng cách sử dụng các tùy chọn NORECOVERY.
Vì sao lưu khác biệt là hoàn toàn phụ thuộc vào sao lưu đầy đủ, nó rất quan trọng là bạn có một sao lưu đầy đủ thử nghiệm có sẵn để làm việc với các bản sao lưu khác biệt. Không có phím tắt xung quanh yêu cầu này.
5. Phá vỡ chuỗi sao lưu
Kịch bản : Bạn đã nghe tất cả những lời khuyên và thời gian này bạn đã làm những điều đúng. Bạn đã sao lưu đầy đủ, sao lưu khác biệt và sao lưu đăng nhập tất cả đều chạy trên các hệ thống giám sát nơi bạn đang xem không gian ổ đĩa thích hợp. Sự cố xảy ra một và bây giờ bạn đã sẵn sàng để chạy phục hồi. Bạn lấy sao lưu đầy đủ mới nhất của bạn từ vị trí thích hợp và chạy khôi phục lại cơ sở dữ liệu trong trạng thái phục hồi. Sau đó, bạn chạy một khôi phục bằng cách sử dụng sao lưu khác biệt mới nhất, một lần nữa rời khỏi cơ sở dữ liệu trong trạng thái phục hồi bởi vì bạn sẽ phải áp dụng sao lưu đăng nhập. Chỉ, thay vì một khôi phục thành công, bạn nhận được một lỗi: sao lưu khác biệt này không thể được phục hồi bởi vì cơ sở dữ liệu chưa được khôi phục lại trạng thái trước đó đúng.
Những gì đã xảy ra : Không biết đến bạn, trong ngày, giữa khi các bản sao lưu đầy đủ đã được chạy và sự cố mà đòi hỏi bạn phải chạy một khôi phục lại, một quản trị viên cơ sở đã chạy một bản sao lưu cơ sở dữ liệu để chuẩn bị cho việc triển khai sản xuất, chỉ trong trường hợp. Sự chênh lệch đã được chạy, mà bạn nghĩ là dựa trên cuối cùng, thích hợp chạy, sao lưu đầy đủ thay vì dựa trên sao lưu đặc biệt này. Bởi vì điều này, sự khác biệt phục hồi hoạt động, mà biết đó khác biệt cơ bản nó thuộc về và theo dõi những số thứ tự đăng nhập (LSN) rằng nó bắt đầu với, tạo ra các lỗi. Bạn có thể xem bản sao lưu cơ sở bạn nên có bằng cách chạy một truy vấn đơn giản trong cơ sở dữ liệu của bạn:
SELECT df.name ,
bs.backup_finish_date ,
bs.name ,
bmf.physical_device_name ,
bmf.logical_device_name
FROM sys.database_files AS df
JOIN msdb..backupset AS bs
ON df.differential_base_guid = bs.backup_set_uuid
JOIN msdb..backupmediafamily AS bmf
ON bs.media_set_id = bmf.media_set_id
Làm thế nào để ngăn chặn nó : Nếu bạn có một bộ đầy đủ của các hệ số và các bản ghi và bạn đang lập kế hoạch sử dụng chúng để khôi phục lại hoạt động, sau đó bạn không thể out-of-trình tự sao lưu đầy đủ. Bạn có hai lựa chọn này sẽ cho phép bạn để có được một bản sao lưu. Đầu tiên, nếu bạn chỉ cần lấy một bản sao lưu để đề phòng trong quá trình triển khai hoặc cập nhật tình hình, thay vì chạy một bản sao lưu đầy đủ, chạy một bản sao lưu ảnh chụp. Họ đang nhanh hơn để tạo ra anyway và hoàn toàn phục vụ mục đích này. Thứ hai, nếu bạn vẫn muốn có một sao lưu đầy đủ, sau đó sử dụng tùy chọn COPY_ONLY. Điều này sẽ tạo ra một bản sao lưu, nhưng nó sẽ không cập nhật các cơ sở khác biệt cho cơ sở dữ liệu. Trong thực tế, bất kỳ sao lưu bằng cách sử dụng tùy chọn COPY_ONLY không thể được sử dụng như một căn cứ khác biệt. COPY_ONLY cũng sẽ không ảnh hưởng đến bất kỳ các chuỗi đăng nhập.
6. Khôi phục lại Server lỗi
Kịch bản : Bạn đang ở trong một vội vàng vì bạn đã có ba người khác nhau trên điện thoại. Bạn cần phải sửa chữa một vấn đề an ninh trên máy chủ sản xuất, khắc phục sự cố một vấn đề hiệu suất trong phát triển và phục hồi cơ sở dữ liệu trong bảo đảm chất lượng. Bạn đã có cửa sổ mở ra cho tất cả ba máy chủ và bạn đang gõ càng nhanh càng tốt để giải quyết tất cả các vấn đề. Bạn đã có những phục hồi cơ sở dữ liệu tất cả đặt ra và bạn chạy lệnh khôi phục lại. Bạn có được một cơ sở dữ liệu là do lỗi sử dụng. Điển hình. Đội bảo đảm chất lượng cơ sở dữ liệu muốn khôi phục, nhưng họ đang đăng nhập Đó là OK. Nếu bạn thay đổi các tùy chọn trên cơ sở dữ liệu cho người sử dụng bị hạn chế và đặt một rollback ngay lập tức, bạn có thể khôi phục lại cơ sở dữ liệu và họ sẽ chỉ bị mất kết nối của họ. Bạn nhấn nút thực thi nhỏ với các bang vào nó và ngay sau đó thông báo về rằng bạn đang ở trên cửa sổ đó là đăng nhập vào sản xuất. Rất tiếc.
Những gì đã xảy ra : Bạn phục hồi cơ sở dữ liệu đến máy chủ sai.
Làm thế nào để ngăn chặn nó : Nói đúng ra, đây không phải là một vấn đề sao lưu cho mỗi gia nhập , nhưng nó là một sự kiện rất phổ biến. Hầu hết các DBA mà tôi từng gặp đã phục hồi cơ sở dữ liệu sai đến máy chủ sai ít nhất một lần trong sự nghiệp của họ. Không có cách nào chữa cháy chắc chắn để ngăn chặn vấn đề này. Nếu bạn đã có các đặc quyền thích hợp, bạn có thể làm cho một sai lầm.
Một trong những cách tốt nhất để giảm thiểu vấn đề này là yêu cầu đăng nhập khác nhau cho hệ thống sản xuất. Nếu bạn thiết lập mà lên và yêu cầu DBA của bạn phải mở một bản sao riêng của SSMS sử dụng chạy từ Run, bạn có thể khá chắc chắn rằng bạn đã có ly hơn giữa sản xuất và các hệ thống khác của bạn.
Một điều bạn có thể làm để giảm thiểu vấn đề là không bao giờ sử dụng rollback ngay lập tức để kick người sử dụng ra khỏi hệ thống. Gọi họ lên và yêu cầu họ đăng xuất hoặc sử dụng câu lệnh giết cá nhân. Dù bằng cách nào, nỗ lực được gọi là cho bằng bạn, mang đến cho bạn một cơ hội thêm để thông báo rằng bạn đang ở trên máy chủ sai.
Cuối cùng, có một cách để thay đổi màu sắc của thanh thông tin ở dưới cùng của cửa sổ truy vấn của bạn trong SSMS. Nó nằm trong “Kết nối với Cơ sở dữ liệu” cửa sổ trong “Connection Properties” tab. Nếu bạn thiết lập này cho một màu sắc đặc biệt trên máy tính của bạn cho các máy chủ sản xuất, nó làm cho nó có thể biết rằng bạn đang kết nối với một hệ thống sản xuất. Ngoài ra còn có các công cụ của bên thứ ba đó làm điều này trong một thời trang thậm chí phức tạp hơn.
Qua đó chúng ra thấy có rất nhiều thứ có thể ảnh hưởng đến các bản sao lưu của bạn. Phần cứng thất bại, vết đen, xung điện hoặc từ tính, ai biết được? Nhưng những người không phải là vấn đề phổ biến nhất. Những vấn đề phổ biến nhất với các bản sao lưu có thể ngăn ngừa đơn giản bằng cách tìm hiểu cách sao lưu làm việc và áp dụng quy trình thực hành tốt nhất để thói quen sao lưu của bạn. Đưa các phương pháp tiếp cận thông thường để làm việc và tránh các vấn đề sao lưu phổ biến nhất.
Chúc các bạn thành công!