Sao lưu nhanh máy chủ Sql. Tạo bản sao lưu tự động của cơ sở dữ liệu SQL trên máy chủ SQL Express Edition. Khôi phục cơ sở dữ liệu từ bản sao lưu

Sau khi nghiên cứu rất nhiều thông tin từ nhiều nguồn khác nhau, tôi quyết định mô tả quá trình thiết lập bản sao lưu cơ sở dữ liệu MS SQL Server cho đầy mô hình khôi phục, sử dụng mô hình nào là tùy thuộc vào bạn, nhưng tôi sẽ nói thêm rằng nếu có một luồng thông tin lớn trong cơ sở dữ liệu của bạn (ví dụ: hàng chục, hàng trăm hoặc hàng nghìn tài liệu được tạo trong 1 giờ), thì việc mất thông tin trong một ngày làm việc đơn giản là không thể chấp nhận được, trong trường hợp này chỉ có mô hình hoàn chỉnh mới đảm bảo an toàn cho dữ liệu của bạn. Bài viết này dành cho quản trị viên hệ thống mới làm quen và chứa Theo tôi tập hợp hành động tối thiểu để sao lưu cơ sở dữ liệu 1C. Việc cài đặt\cấu hình máy chủ SQL và triển khai cơ sở dữ liệu trên đó không nằm trong phạm vi của bài viết này.

Chúng tôi sẽ thực hiện tất cả các cài đặt bằng SQL Management Studio. Đầu tiên bạn cần tạo Thiết bị dự phòng, không nhất thiết phải tạo nhưng theo mình thì nó tiện và đúng hơn rất nhiều. Trong nháy mắt Studio quản lý SQL -> Đối tượng máy chủ -> Thiết bị sao lưu. Bạn cần chỉ định tên của thiết bị và tệp sẽ lưu trữ các bản sao lưu (tốt nhất là có phần mở rộng BAK), sau đó bạn có thể xem nội dung của phương tiện, tất cả các bản sao lưu sẽ được liệt kê ở đó.

Bây giờ bạn có thể bắt đầu thiết lập Kế hoạch bảo trì. Kế hoạch bảo trì có thể được tạo cho tất cả cơ sở dữ liệu cùng một lúc, nhưng sẽ thuận tiện hơn nếu bạn tạo kế hoạch bảo trì của riêng mình cho từng cơ sở dữ liệu.

Gói dịch vụ của chúng tôi sẽ có ba gói con: 1 - sao lưu cơ sở dữ liệu (Đầy đủ); 2 - sao lưu cơ sở dữ liệu (Sự khác biệt); 3 - Sao lưu Nhật ký giao dịch. Mỗi kế hoạch con có lịch trình thực hiện riêng. Mọi người tự thiết lập lịch trình theo ý riêng của mình, nhưng trong trường hợp của tôi, một bản sao đầy đủ được thực hiện mỗi tuần một lần vào Chủ nhật, một bản sao khác biệt mỗi ngày trừ Chủ nhật và nhật ký giao dịch mỗi giờ. Với mô hình sao lưu này, bạn có thể khôi phục cơ sở dữ liệu mong muốn vào bất kỳ ngày và giờ nào và chúng tôi tiết kiệm dung lượng trên ổ cứng của bạn vì Việc sao lưu toàn bộ thực tế được thực hiện mỗi tuần một lần và chỉ những thay đổi được thực hiện trong tuần.

Thiết lập một lịch trình hàng ngày. Hàng tuần chỉ khác nhau ở hộp kiểm "Chủ nhật" và được bỏ chọn từ "Thứ Hai" đến "Thứ Bảy"

Lịch trình vận tải đường sắt. Thời gian tiết kiệm trong ngày được đánh dấu bằng màu đỏ, điều này có ý nghĩa, chẳng hạn như nếu người dùng làm việc với cơ sở dữ liệu trong một khoảng thời gian nhất định, nếu chế độ hoạt động là 24x7 thì chúng tôi để mặc định.

Hình dưới đây hiển thị trình soạn thảo kế hoạch con hàng tuần; nó bao gồm các nhiệm vụ được thực hiện theo một trình tự nhất định. Trình tự được đặt thủ công và mũi tên màu xanh lá cây có nghĩa là nhiệm vụ tiếp theo sẽ chỉ được hoàn thành nếu nhiệm vụ trước đó được hoàn thành thành công và mũi tên màu xanh lam có nghĩa là nhiệm vụ sẽ được hoàn thành bất cứ khi nào nhiệm vụ trước đó được hoàn thành. Trong trình chỉnh sửa kế hoạch con bảo trì, bạn có thể thêm các tác vụ từ "Bảng điều khiển thành phần", nằm ở góc trên bên trái khi trình chỉnh sửa mở.

Nhiệm vụ. Bạn cần đi vào từng tác vụ và chọn cơ sở dữ liệu để thực thi nó cũng như một số cài đặt khác (nếu có). Hãy xem kế hoạch con hàng tuần trong kế hoạch bảo trì của chúng ta có những nhiệm vụ gì.

1. “Kiểm tra tính toàn vẹn của cơ sở dữ liệu”. Tác vụ sau sẽ chỉ được thực thi nếu cơ sở dữ liệu không có lỗi. (Chúng ta có nên sao lưu cơ sở dữ liệu khi có lỗi không?)

2. "Nhiệm vụ xây dựng lại chỉ mục". Cần phải khôi phục (Rebuild) chỉ mục mỗi ngày, bởi vì... khi làm việc với các chỉ mục, chúng trở nên bị phân mảnh cao và khi độ phân mảnh vượt quá 25%, SQL bắt đầu chậm lại rõ rệt. Hoạt động này khá tốn tài nguyên nên có thể được thực hiện ít nhất một lần một tuần và ban ngày kế hoạch con để thay thế nó bằng nhiệm vụ ít tiêu tốn tài nguyên hơn "Tổ chức lại chỉ mục".

3. “Cập nhật nhiệm vụ thống kê”. Để tối ưu hóa... Nhân tiện, tác vụ này có thể được thực hiện nhiều lần trong ngày nếu cơ sở dữ liệu của bạn được tải nhiều.

4. Sau khi cập nhật số liệu thống kê, bạn PHẢI xóa bộ đệm thủ tục. Để thực hiện việc này, hãy kéo tác vụ “Thực thi câu lệnh T-SQL” vào trình chỉnh sửa và viết một thủ tục trong trường “Câu lệnh T-SQL:” DBCC MIỄN PHÍPROCCACHE. Nhưng bạn cần lưu ý rằng quy trình này sẽ xóa bộ đệm của TẤT CẢ cơ sở dữ liệu và chúng tôi đã cập nhật từng số liệu thống kê! Cách xóa bộ nhớ đệm thủ tục cho một cơ sở dữ liệu cụ thể, hãy đọc. Tóm lại: DBCC FLUSHPROCINDB(DB_ID)

5. "Sao lưu DB" (Sao lưu tác vụ cơ sở dữ liệu). Trong nhiệm vụ này, chúng tôi cho biết chúng tôi đang sao lưu cơ sở dữ liệu nào, loại bản sao lưu (Đối với gói con hàng tuần - Đầy đủ, đối với gói con hàng ngày - Khác biệt, đối với hàng giờ - Nhật ký giao dịch.) Chúng tôi đặt nút chuyển ở vị trí "Tạo một bản sao lưu cơ sở dữ liệu trong một hoặc nhiều tệp" và thêm nó vào thiết bị sao lưu đã tạo trước đó. Trong trường hợp này, TẤT CẢ các bản sao được lưu trong một tệp, tệp này đã được chỉ định khi tạo thiết bị sao lưu, nếu để nút “Tạo file sao lưu cho từng cơ sở dữ liệu” thì mỗi bản sao lưu sẽ tạo một file riêng cho Full, Differential và VT, rất bất tiện khi khôi phục nhưng thuận tiện khi lưu trữ. Đừng quên cho biết rằng bạn cần nén các bản sao lưu!

6. "Clear Log" Xóa các bản ghi được tạo khi thực hiện tác vụ. Bạn cũng có thể kích hoạt tác vụ "Dọn dẹp sau bảo trì" và định cấu hình tác vụ này để xóa nhật ký văn bản hoặc bản sao lưu lỗi thời.

Kế hoạch con để sao lưu VT bao gồm một nhiệm vụ “Sao lưu cơ sở dữ liệu”. Đối với tôi, sẽ thuận tiện hơn nếu lưu VT không phải vào Thiết bị dự phòng mà vào một tệp riêng, tệp này phải được chỉ định trong cài đặt tác vụ.

Chức năng mở rộng của Bacula Enterprise Edition, cùng với những chức năng khác, cho phép bạn tạo bản sao lưu cơ sở dữ liệu cho các tệp . Ví dụ: chúng ta đang nói về một công cụ mà bạn có thể sao lưu MS SQL Server. Người dùng có thể tạo bản sao lưu MS SQL bằng cách tạo bản sao lưu khối lượng lớn của cơ sở dữ liệu MS SQL cụ thể được nền tảng Windows sử dụng, với chi phí thấp hơn cho phần mềm của bên thứ ba, với khả năng khôi phục dữ liệu đến một thời điểm nhất định (khôi phục PITR ) vào mạng và ổ đĩa cục bộ.

Tập lệnh Bacula Systems để tạo bản sao lưu MS SQL Server được đặc trưng bởi hiệu quả cực cao, đạt được thông qua việc triển khai kiến ​​​​trúc hiện đại, có độ tin cậy cao. Hơn nữa, phần mềm cho phép bạn tạo bản sao lưu MS SQL Server và sử dụng nhiều tùy chọn khác nhau để tạo bản sao lưu MS SQL.

Tập lệnh sao lưu MS SQL Bacula Systems hoạt động độc lập với VSS. Điều này có nghĩa là công cụ sao lưu MS SQL không sử dụng ảnh chụp nhanh VSS để tạo bản sao lưu. Do đó, người dùng có thể đặt giá trị sau “Enable VSS = no” trong Bacula FileSet. Việc tạo hiệu quả các bản sao lưu MS SQL Server và khôi phục chúng bằng giải pháp này đạt được thông qua việc sử dụng Microsoft API cho SQL Server. Điều này cho phép Bacula Systems hỗ trợ các cơ chế bảo mật và tất cả các loại xác thực được triển khai trong Microsoft SQL Server.

Sao lưu nhật ký giao dịch MS SQL và khôi phục tại thời điểm MS SQL: Phần mềm Bacula Enterprise Edition cho phép bạn khôi phục các khối dữ liệu MS SQL hoặc cài đặt cụ thể tại một thời điểm cụ thể. Với việc triển khai các mô hình khôi phục được ghi nhật ký đầy đủ và hàng loạt, bạn có thể khôi phục MS SQL bằng cách sử dụng PITR recovery hoặc sử dụng LSN để khôi phục hệ thống về trạng thái cụ thể. Bạn có thể khôi phục trạng thái cụ thể của cơ sở dữ liệu MS SQL tại bất kỳ thời điểm cụ thể nào, cho đến từng giây. Trong trường hợp sao lưu nhật ký giao dịch MS SQL, khi khôi phục, trạng thái cơ sở dữ liệu sẽ được khôi phục từ nhiều bản sao lưu đã chọn khác nhau.

Các tính năng trong nháy mắttự động sao lưu và phục hồi MS SQL với Bacula Enterprise

Bacula Systems đã tạo plugin sao lưu MS SQL Server để sử dụng với Bacula Enterprise Edition. Sao lưu MS SQL Server bằng Bacula có các tính năng sau:

  • Hỗ trợ sao lưu MS SQL đầy đủ và khác biệt
  • Hỗ trợ sao lưu gia tăng MS SQL
  • Sao lưu MS SQL vào mạng và ổ đĩa cục bộ
  • Sao lưu MS SQL theo lịch trình
  • Tạo bản sao lưu ở cấp cơ sở dữ liệu MS SQL Server
  • Khả năng bao gồm/loại trừ cơ sở dữ liệu khỏi quy trình tạo bản sao lưu
  • Hỗ trợ tạo bản sao lưu cơ sở dữ liệu chỉ đọc
  • Khôi phục bản sao lưu MS SQL vào đĩa
  • Gửi luồng sao lưu trực tiếp đến Daemon lưu trữ
  • Khôi phục điểm MS SQL theo thời gian

Đánh giá và cấu hình backup MS SQL 2008, 2008 R2, 2012 và 2014

Tài liệu này cung cấp các giải pháp cho Bacula Enterprise Edition 8.4 trở lên mà các phiên bản phần mềm trước đó không hỗ trợ. Sao lưu cơ sở dữ liệu MS SQL đã được kiểm tra và hỗ trợ bởi MS SQL 2003 R2, MS SQL 2008 R2, MS SQL 2012, MS SQL 2005, MS SQL 2008, MS SQL 2014. Bản sao lưu MS SQL từ Bacula có thể hoạt động với SQL Express.

Thuật ngữ sao lưu MS SQL 2008, 2008 R2, 2012 và 2014

  • MS SQL là viết tắt của Microsoft SQL Server.
  • Nhật ký giao dịch. Bất kỳ cơ sở dữ liệu MS SQL Server nào cũng có nhật ký giao dịch, ghi lại tất cả các giao dịch và sửa đổi cơ sở dữ liệu được thực hiện trong các giao dịch đó. Nhật ký giao dịch là một thành phần quan trọng của cơ sở dữ liệu. Trong trường hợp hệ thống bị lỗi, nhật ký giao dịch có thể được yêu cầu để khôi phục cơ sở dữ liệu về trạng thái hoạt động. Bạn có thể tìm thêm thông tin tại https://msdn.microsoft.com/en-us/library/ms190925.aspx.
  • Sao lưu khác biệt cơ sở dữ liệu MS SQL Server. Sao lưu vi sai dựa trên bản đầy đủ cuối cùng. Trong quá trình sao lưu vi sai, chỉ dữ liệu đã thay đổi kể từ lần sao lưu đầy đủ cuối cùng được tạo mới được ghi lại. Bạn có thể tìm thêm thông tin tại https://msdn.microsoft.com/en-us/library/ms175526.aspx.
  • Sao lưu toàn bộ cơ sở dữ liệu MS SQL Server. Trong quá trình sao lưu cơ sở dữ liệu đầy đủ, một bản sao lưu của toàn bộ cơ sở dữ liệu sẽ được tạo. Bản sao lưu bao gồm một phần nhật ký giao dịch nhằm mục đích khôi phục cơ sở dữ liệu hoàn chỉnh từ bản sao lưu. Bản sao lưu cơ sở dữ liệu đầy đủ chứa cơ sở dữ liệu tại thời điểm sao lưu hoàn tất. Bạn có thể tìm thêm thông tin tại https://msdn.microsoft.com/en-us/library/ms186289.aspx.
  • Sao lưu “chỉ sao chép” (CopyOnly). Bản sao lưu chỉ sao chép là bản sao lưu MS SQL độc lập với luồng sao lưu SQL Server truyền thống thông thường. Đôi khi, việc tạo bản sao lưu cho các nhu cầu cụ thể sẽ rất hữu ích mà không ảnh hưởng đến quá trình sao lưu và khôi phục cơ sở dữ liệu tổng thể. Bạn có thể tìm thêm thông tin tại https://msdn.microsoft.com/en-us/library/ms191495.aspx.
  • VDI(Giao diện thiết bị ảo) là một công nghệ của Microsoft cho phép bạn tạo ống có tên giữa các chương trình.
  • mặt nạ tiêu chuẩn chỉ định bộ chuỗi có ký tự đại diện. Ví dụ: mặt nạ sản xuất* tiêu chuẩn sẽ bao gồm các dây chuyền sản xuất1 và sản xuất2.
  • đường kẻ
  • số nguyên.
  • LSN Mỗi mục trong nhật ký giao dịch MS SQL Server được xác định bằng một số sê-ri giao dịch duy nhất (LSN). Thông tin chi tiết hơn có thể được tìm thấy tại https://technet.microsoft.com/en-us/library/ms190411%28v=sql.105%29.aspx.

Sao lưu MS SQL Server 2008, 2008 R2, 2012 và 2014

Sao lưu toàn bộ cơ sở dữ liệu MS SQL Server 2008, 2008 R2, 2012 và 2014

Trong quá trình sao lưu toàn bộ cơ sở dữ liệu MS SQL, các tệp cơ sở dữ liệu và nhật ký giao dịch sẽ được lưu, cho phép bạn bảo vệ hoàn toàn cơ sở dữ liệu MS SQL trong trường hợp lỗi phương tiện. Nếu một hoặc nhiều tệp bị hỏng, việc khôi phục cơ sở dữ liệu MS SQL từ bản sao lưu sẽ cho phép bạn khôi phục tất cả các giao dịch đã hoàn thành. Tất cả các giao dịch đang diễn ra cũng sẽ được khôi phục. Ở chế độ này, các bản sao lưu của cơ sở dữ liệu chính và mbdb sẽ được tạo.

Sao lưu khác biệt cơ sở dữ liệu MS SQL Server 2008, 2008 R2, 2012 và 2014

Sao lưu khác biệt của cơ sở dữ liệu MS SQL Server dựa trên bản sao lưu đầy đủ gần đây nhất của cơ sở dữ liệu MS SQL. Khi tạo bản sao lưu MS SQL vi sai, chỉ dữ liệu đã được thay đổi kể từ bản sao lưu MS SQL đầy đủ cuối cùng được tạo mới được ghi lại. Đối với chức năng sao lưu vi sai MS SQL, trình tự sao lưu là cực kỳ quan trọng. Nếu vì lý do nào đó, bản sao lưu đầy đủ được tham chiếu bởi MS SQL không có sẵn thì không thể sử dụng các bản sao lưu vi sai của cơ sở dữ liệu MS SQL Server. MS SQL Backup của Bacula sử dụng các kỹ thuật cụ thể để giải quyết vấn đề này. Do đó, nếu có khó khăn phát sinh, trạng thái sao lưu cơ sở dữ liệu vi sai có thể được tự động nâng cấp lên bản sao lưu đầy đủ.

Sao lưu nhật ký giao dịch của MS SQL 2008, 2008 R2, 2012 và 2014

Thiết lập cấu hình cơ sở dữ liệu và sao lưu MS SQL

Khôi phục cơ sở dữ liệu MS SQL từ bản sao lưu

Bạn có thể sử dụng tất cả các phương pháp tiêu chuẩn để bắt đầu quy trình khôi phục cơ sở dữ liệu MS SQL từ bản sao lưu. Tuy nhiên, bạn phải đảm bảo rằng trong trường hợp khôi phục dữ liệu vi sai, bản sao lưu đầy đủ trước đó của cơ sở dữ liệu MS SQL cũng sẽ được khôi phục. Trong trường hợp này, quá trình khôi phục sẽ tự động diễn ra nếu bạn chạy nó trong bảng điều khiển bảng điều khiển sử dụng tùy chọn khôi phục 5 hoặc 12. Trong cấu trúc tệp được tạo, bạn cần đánh dấu việc khôi phục cơ sở dữ liệu đầy đủ hoặc phiên bản DB.

Tùy chọn khôi phục cơ sở dữ liệu MS SQL từ bản sao lưu

Phần mềm Bacula Enterprise Edition cho phép người dùng sử dụng nhiều tùy chọn khôi phục MS SQL và áp dụng nhiều phương pháp khôi phục cơ sở dữ liệu khác nhau. Các tùy chọn khôi phục được sử dụng phổ biến nhất được mô tả bên dưới:

  • Tham số Where: Trong trường hợp Bacula Enterprise Edition, tham số này cho phép quản trị viên khôi phục cơ sở dữ liệu về một vị trí cụ thể.
  • Tham số thay thế: Được sử dụng để xác định cách Bacula hoạt động với cơ sở dữ liệu hiện tại khi được khôi phục. Bản sao lưu MS SQL của Bacula cũng cho phép bạn sử dụng thêm một số tùy chọn khi khôi phục, chẳng hạn như:
  • Phiên bản: Vì MS SQL sử dụng nhiều phiên bản nên việc sao lưu cơ sở dữ liệu MS SQL từ Bacula cho phép bạn chọn phiên bản nào để khôi phục. Tham số này là tùy chọn và nếu không được chỉ định, giá trị được chỉ định khi tạo bản sao lưu sẽ được sử dụng khi khôi phục. Theo mặc định, một phiên bản có tên “MSSQLSERVER” được sử dụng.
  • Cơ sở dữ liệu. Tùy chọn này chỉ định tên của cơ sở dữ liệu cần khôi phục và nó sử dụng giá trị được chỉ định tại thời điểm cơ sở dữ liệu được tạo. Tham số này là tùy chọn. Theo mặc định, các bản sao lưu cơ sở dữ liệu SQL Server sử dụng tham số Where để xác định tên của cơ sở dữ liệu mới. Nếu cả hai tham số Where và Database đều được gán tên cơ sở dữ liệu hợp lệ thì tham số Database sẽ được sử dụng.
  • Người dùng. Tên người dùng được sử dụng để kết nối với phiên bản cơ sở dữ liệu MS SQL. Tham số này là tùy chọn và nếu không được chỉ định, giá trị được chỉ định khi tạo bản sao lưu sẽ được sử dụng khi khôi phục.
  • Mật khẩu. Mật khẩu được sử dụng để kết nối với phiên bản cơ sở dữ liệu MS SQL. Tham số này là tùy chọn và nếu không được chỉ định, giá trị được chỉ định khi tạo bản sao lưu sẽ được sử dụng khi khôi phục.
  • Lãnh địa. Miền được sử dụng để kết nối với phiên bản cơ sở dữ liệu MS SQL. Tham số này là tùy chọn và nếu không được chỉ định, giá trị được chỉ định khi tạo bản sao lưu sẽ được sử dụng khi khôi phục.
  • Sự hồi phục. Tham số cho phép bạn xác định xem cơ sở dữ liệu có được khôi phục về trạng thái trước đó trong quá trình khôi phục hay không. Theo mặc định, khi khôi phục cơ sở dữ liệu, nó sẽ quay trở lại trạng thái trước đó.
  • Dừng_trước_mark. Điều kiện VỚI STOPBEFOREMARK = Được sử dụng để chỉ ra rằng mục nhật ký giao dịch ngay trước cờ là điểm khôi phục. Điểm khôi phục có thể là ngày và giờ, LSN hoặc cờ mark_name.
  • Dừng_tại_mark. Điều kiện VỚI STOPATMARK = Được sử dụng để chỉ ra rằng giao dịch được đánh dấu là điểm khôi phục. STOPATMARK di chuyển về phía cờ và thực hiện lại giao dịch đã đánh dấu. Điểm khôi phục có thể là ngày và giờ, LSN hoặc cờ mark_name.
  • Dừng_at= . Điều kiện CÓ STOPAT = được sử dụng để chỉ ra rằng điểm khôi phục là ngày/giờ.
  • Hạn chế_user. Mệnh đề WITH RESTRICT_USER được sử dụng để hạn chế quyền truy cập vào cơ sở dữ liệu được khôi phục. Mặc định là không.

Việc khôi phục MS SQL tại một thời điểm có thể được thực hiện trực tiếp từ plugin sao lưu MS SQL. Bạn cũng có thể khôi phục tệp cục bộ và thực hiện các thao tác từ Bảng điều khiển quản lý máy chủ Microsoft SQL để có thêm chức năng.

LSN

Có thể xem số LSN của mục nhật ký nơi xảy ra sự kiện sao lưu và phục hồi cụ thể theo một trong các cách sau:

  • Khi hiển thị mô tả nhiệm vụ tạo bản sao lưu bằng phần mềm Bacula
  • Trong tên tệp nhật ký
  • Trong bảng msdb.backupset
  • Trong bảng msdb.backupfile

Khi thực hiện tác vụ tạo bản sao lưu cơ sở dữ liệu MS SQL, thông tin sau về số LSN sẽ được hiển thị khi hiển thị mô tả tác vụ:

Con số LSN đầu tiên tương ứng với số LSN cuối cùng của bản sao lưu nhật ký giao dịch cuối cùng. Bản sao lưu như vậy có thể là bản sao lưu đầy đủ đầu tiên hoặc bản sao lưu cuối cùng (gia tăng).

Con số LSN cuối cùng khớp với giao dịch cuối cùng được ghi trong nhật ký.

Trong trường hợp sao lưu nhật ký giao dịch (gia tăng), tên của tệp được liên kết với cơ sở dữ liệu này trong tác vụ tạo bản sao lưu gia tăng sẽ như sau:

Số trong tên, trong trường hợp của chúng tôi 42000162001, tương ứng với số LSN cuối cùng của tác vụ trước đó (để tạo bản sao lưu đầy đủ hoặc tăng dần).

Hình 2: LSN đầu tiên, LSN cuối cùng và LSN trong tên tệp

Như trong ví dụ trong Hình 2, nếu quản trị viên cần khôi phục cơ sở dữ liệu MS SQL về trạng thái tương ứng với LSN số 14, có thể thực hiện các bước sau:

  • Trong menu khôi phục cơ sở dữ liệu, sử dụng tùy chọn 5
  • Chọn file backup đầy đủ mới nhất “data.bak” (LSN: 10)
  • Chọn bản sao lưu gia tăng “log-10.trn”

Hoặc, nếu không có bản sao lưu đầy đủ mới nhất của MS SQL Server nhưng có bản sao lưu đầy đủ trước đó thì:

  • Sử dụng tùy chọn khôi phục 3, chọn giá trị công việc phù hợp
  • Chọn thư mục cơ sở dữ liệu “/@mssql/db29187”
  • Chọn file backup đầy đủ “data.bak” (LSN: 2)
  • Chọn các bản sao lưu gia tăng “log-2.trn”, “log-3.trn”, “log-10.trn”
  • Đặt tham số stop_at_mark thành “lsn:14”
  • Chạy tác vụ để khôi phục bản sao lưu

Tập lệnh khôi phục MS SQL

Sự miêu tả Ở đâu Cơ sở dữ liệu Ví dụ
Khôi phục tập tin vào đĩa Con đường ở đâu=c:/tmp
Khôi phục cơ sở dữ liệu gốc đâu=/
Khôi phục với tên mới Tên ở đâu=newdb
Khôi phục với tên mới Tên cơ sở dữ liệu=newdb
Khôi phục với tên mới và di chuyển tập tin Tên

Bảng 1: Kịch bản khôi phục MS SQL

2.3.1 Khôi phục cơ sở dữ liệu MS SQL với tên gốc

Để khôi phục cơ sở dữ liệu với tên gốc, tùy chọn Ở đâu không được chỉ định (giá trị trống) hoặc giá trị “/” phải được chỉ định và tham số Thay thế phải được gán một giá trị Luôn luôn, hoặc trước tiên bạn phải xóa cơ sở dữ liệu nguồn.

Khôi phục bản sao lưu MS SQL bằng tên mới

Để khôi phục bản sao lưu cơ sở dữ liệu MS SQL bằng tên mới, trước tiên bạn có thể cần di chuyển các tệp cơ sở dữ liệu vào đĩa. Tất cả phụ thuộc vào việc cơ sở dữ liệu ban đầu có còn tồn tại hay không.

Nếu cơ sở dữ liệu nguồn không còn nữa thì tham số Ở đâu hoặc trường “Tùy chọn plugin” có thể chứa tên của cơ sở dữ liệu mới. MS SQL Backup from Bacula sẽ tự động tạo cơ sở dữ liệu với tên mới.

Nếu vẫn cần cơ sở dữ liệu gốc, tham số Where sẽ được sử dụng để di chuyển tệp vào đĩa và bạn sẽ cần đặt tên cho cơ sở dữ liệu mới bằng menu Tùy chọn plugin. Trong cây khôi phục, bạn phải chọn tệp bố cục.dat.

Sử dụng Danh mục của tôi

Chạy tác vụ khôi phục MS SQL:

Sử dụng Danh mục của tôi, chạy tác vụ khôi phục cơ sở dữ liệu MS SQL:

Khôi phục MS SQL vào đĩa cục bộ

Nếu bạn chỉ định ở đâu=c:/path/, các tệp sẽ được khôi phục vào đĩa cục bộ và quản trị viên cơ sở dữ liệu MS SQL sẽ có thể sử dụng phần mở rộng thủ tục TSQL cho Bảng điều khiển quản lý máy chủ Microsoft SQL để khôi phục cơ sở dữ liệu. Các lệnh SQL cần thiết để khôi phục cơ sở dữ liệu được liệt kê trong phần mô tả Đầu ra công việc như thể hiện trong hình ảnh dưới đây.

2. Xem thông tin về các sự kiện sao lưu và khôi phục cơ sở dữ liệu

Để tìm hiểu thời điểm bản sao lưu của một cơ sở dữ liệu cụ thể được tạo cũng như thời điểm cơ sở dữ liệu được khôi phục từ bản sao lưu, bạn có thể sử dụng báo cáo tiêu chuẩn “ » (Sự kiện sao lưu và khôi phục). Để tạo báo cáo này, bạn cần nhấp chuột phải vào cơ sở dữ liệu tương ứng trong Trình duyệt đối tượng (Server Oblects) và chọn “ Báo cáo" (Báo cáo) - " Báo cáo chuẩn" (Báo cáo tiêu chuẩn) - " Sao lưu và khôi phục sự kiện» (Sự kiện sao lưu và khôi phục).

Báo cáo được tạo chứa dữ liệu sau:

  • Thời gian trung bình dành cho các hoạt động sao lưu
  • Hoạt động sao lưu thành công
  • Lỗi hoạt động sao lưu
  • Hoạt động khôi phục thành công

Để xem thông tin này, bạn cần mở rộng nhóm tương ứng trong báo cáo.

Bài báo này hữu ích với bạn?

Tập lệnh sao lưu động tất cả cơ sở dữ liệu trên máy chủ. Sau đó tạo một tệp bó theo bài viết. Sẽ rất hữu ích khi tạo hai tệp bó: một để sao lưu toàn bộ và một để sao lưu. Sau đó, tạo hai tác vụ trong bộ lập lịch tác vụ, một tác vụ đầy đủ và một tác vụ khác.

-- // Bản quyền © Tập đoàn Microsoft. Đã đăng ký Bản quyền. -- // Mã này được phát hành theo các điều khoản của -- // Giấy phép Công cộng của Microsoft (MS-PL, http://opensource.org/licenses/ms-pl.html.) SỬ DỤNG ĐI /****** Đối tượng: Thủ tục lưu trữ. ******/ THIẾT LẬP ANSI_NULLS TRÊN GO SET QUOTED_IDENTIFIER TRÊN GO -- ==================================== ============= -- Tác giả: Microsoft -- Ngày tạo: 2010-02-06 -- Mô tả: Sao lưu cơ sở dữ liệu cho SQLExpress -- Tham số1: tên cơ sở dữ liệu -- Tham số2: backupType F=full, D =khác biệt, L=log -- Tham số3: vị trí tập tin sao lưu -- ===================================== = ========== TẠO THỦ TỤC . @databaseName sysname = null, @backupType CHAR(1), @backupLocation nvarchar(200) NHƯ ĐƯỢC BẬT NOCOUNT; KHAI THÁC @DBs BẢNG (ID int IDENTITY PRIMARY KEY, DBNAME nvarchar(500)) -- Chỉ chọn ra các cơ sở dữ liệu trực tuyến trong trường hợp TẤT CẢ cơ sở dữ liệu được chọn để sao lưu -- Nếu cơ sở dữ liệu cụ thể được chọn để sao lưu thì chỉ chọn cơ sở dữ liệu đó out from @DBs INSERT INTO @DBs (DBNAME) CHỌN Tên TỪ master.sys.databases trong đó state=0 AND name=@DatabaseName HOẶC @DatabaseName IS NULL ORDER THEO Tên -- Lọc ra các cơ sở dữ liệu không cần sao lưu IF @ backupType="F" BẮT ĐẦU XÓA @DB trong đó DBNAME IN ("tempdb","Northwind","pubs","AdventureWorks") KẾT THÚC ELSE NẾU @backupType="D" BẮT ĐẦU XÓA @DB trong đó DBNAME IN ("tempdb", "Northwind","pubs","master","AdventureWorks") KẾT THÚC KHÁC NẾU @backupType="L" BẮT ĐẦU XÓA @DB trong đó DBNAME IN ("tempdb","Northwind","pubs","master"," AdventureWorks") END ELSE BEGIN RETURN END -- Khai báo các biến DECLARE @BackupName varchar(100) DECLARE @BackupFile varchar(100) DECLARE @DBNAME varchar(300) DECLARE @sqlCommand NVARCHAR(1000) DECLARE @dateTime NVARCHAR(20) DECLARE @Loop int -- Lặp lại từng cơ sở dữ liệu một SELECT @Loop = min(ID) FROM @DBs WHILE @Loop IS NOT NULL BEGIN -- Tên cơ sở dữ liệu phải có định dạng vì một số có - hoặc _ trong tên của chúng SET @DBNAME = "["+(SELECT DBNAME FROM @DBs WHERE ID = @Loop)+"]" -- Đặt ngày và giờ hiện tại n định dạng yyyyhhmmss SET @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),101)"/ ","") + "_" + REPLACE(CONVERT(VARCHAR, GETDATE(),108),://,"") -- Tạo tên tệp sao lưu ở định dạng path\filename.extension cho các bản sao lưu đầy đủ, khác biệt và nhật ký NẾU @backupType = "F" SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, "[","),"]","")+ "_FULL_"+ @dateTime+ ".BAK" ELSE IF @backupType = "D" SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, "[",""),"]","")+ "_DIFF_"+ @dateTime+ ". BAK" ELSE IF @backupType = "L" SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, "[","),"]","")+ "_LOG_"+ @dateTime+ ".TRN" -- Cung cấp tên cho bản sao lưu để lưu trữ trên phương tiện IF @backupType = "F" SET @BackupName = REPLACE(REPLACE(@DBNAME,"[",""),"]","") +" bản sao lưu đầy đủ cho "+ @dateTime IF @backupType = "D" SET @BackupName = REPLACE(REPLACE(@DBNAME,"[",""),"]","") +" sao lưu vi sai cho "+ @dateTime IF @backupType = "L" SET @BackupName = REPLACE(REPLACE(@DBNAME,"[",""),"]","") +" sao lưu nhật ký cho "+ @dateTime -- Tạo lệnh SQL động để được thực thi IF @ backupType = "F" BEGIN SET @sqlCommand = "BACKUP DATABASE " +@DBNAME+ " TO DISK = """+@BackupFile+ """ VỚI INIT, NAME= """ +@BackupName+""", NOSKIP, NOFORMAT" END NẾU @backupType = "D" BEGIN SET @sqlCommand = "BACKUP DATABASE " +@DBNAME+ " TO DISK = """+@BackupFile+ """ VỚI KHÁC BIỆT, INIT, NAME= """ +@BackupName+""", NOSKIP , NOFORMAT" END IF @backupType = "L" BEGIN SET @sqlCommand = "BACKUP LOG " +@DBNAME+ " TO DISK = """+@BackupFile+ """ VỚI INIT, NAME= """ +@BackupName+""" , NOSKIP, NOFORMAT" END -- Thực thi lệnh SQL được tạo EXEC(@sqlCommand) -- Chuyển đến cơ sở dữ liệu tiếp theo SELECT @Loop = min(ID) FROM @DBs trong đó ID>@Loop END

Và tệp bó có thể trông như thế này:

Sqlcmd -S localhost\myDB -Q "EXEC sp_BackupDatabases @backupLocation="c:\Dropbox\backup\DB\", @backupType="F"" >> c:\Dropbox\backup\DB\full.log 2>&1

Sqlcmd -S localhost\myDB -Q "EXEC sp_BackupDatabases @backupLocation="c:\Dropbox\backup\DB\", @backupType="D"" >> c:\Dropbox\backup\DB\diff.log 2>&1

Ưu điểm của phương pháp này là bạn không phải thay đổi bất cứ điều gì nếu thêm cơ sở dữ liệu mới hoặc xóa cơ sở dữ liệu, thậm chí bạn không cần phải liệt kê các cơ sở dữ liệu trong tập lệnh. Câu trả lời của JohnB tốt hơn/dễ dàng hơn đối với một máy chủ cơ sở dữ liệu, cách tiếp cận này phù hợp hơn với các máy chủ đa cơ sở dữ liệu.

Bản sao lưu khác biệt dựa trên bản sao lưu đầy đủ dữ liệu gần đây nhất trước đó. Bản sao lưu vi sai chỉ lưu những thay đổi đã được thực hiện kể từ lần sao lưu đầy đủ gần đây nhất.
Khuyến nghị:
  1. Sử dụng bản sao cơ sở dữ liệu khác biệt nếu việc tạo bản sao cơ sở dữ liệu đầy đủ mất nhiều thời gian
  2. Định kỳ tạo bản sao đầy đủ của cơ sở dữ liệu để giảm khối lượng bản sao khác biệt được tạo.
  3. Sau khi tạo bản sao đầy đủ của cơ sở dữ liệu, tất cả các bản sao khác biệt trước đó sẽ mất đi tính liên quan.
Bạn có thể đọc thêm về các đề xuất về tần suất tạo bản sao lưu khác biệt.

Hãy để tôi cho bạn một ví dụ thực tế nhỏ về lý do tại sao chúng tôi bắt đầu sử dụng một bản sao khác biệt. Theo thời gian, cơ sở dữ liệu của khách hàng của chúng tôi đã phát triển đến mức việc tạo một bản sao lưu đầy đủ phải mất 8 giờ, vài tháng nữa và có lẽ thao tác này sẽ không có thời gian để hoàn thành trước đầu ngày làm việc. Sau khi chuyển sang sao lưu vi sai, chúng tôi giảm thời gian từ 8 giờ xuống còn 2-4 phút (tùy theo ngày trong tuần). Mỗi tuần một lần, chúng tôi tạo một bản sao đầy đủ của cơ sở dữ liệu.

Ví dụ SQL để tạo bản sao lưu vi sai của cơ sở dữ liệu có kiểm tra bản sao sau khi hoàn thành (khác với bản sao đầy đủ có cờ KHÁC BIỆT bạn nên sử dụng nó thay thế KHÔNG CÓ ĐỊNH DẠNG).

Khai báo @pathBackup dưới dạng varchar(55) set @pathBackup = N"C:\Backup\[tên tệp DB]_" + REPLACE(convert(varchar,GETDATE(), 104),".","_") + " .bak" BACKUP DATABASE [Tên cơ sở dữ liệu] ĐẾN DISK = @pathBackup VỚI DIFFERENTIAL, NOFORMAT, INIT, NAME = N"Sao lưu cơ sở dữ liệu đầy đủ", SKIP, NOREWIND, NOUNLOAD, STATS = 10, CHECKSUM GO khai báo @backupSetId as int khai báo @pathBackup dưới dạng varchar(55) set @pathBackup = N"C:\Backup\[tên tệp DB]_" + REPLACE(convert(varchar,GETDATE(), 104),".","_") + " .bak" chọn @backupSetId = vị trí từ msdb..backupset trong đó cơ sở dữ liệu_name=N"[Tên cơ sở dữ liệu]" và backup_set_id=(select max(backup_set_id) từ msdb..backupset trong đó cơ sở dữ liệu_name=N"[Tên cơ sở dữ liệu]") nếu @backupSetId là null bắt đầu raiserror(N"Lỗi xác minh. Không tìm thấy thông tin sao lưu cho cơ sở dữ liệu '[Tên cơ sở dữ liệu]'.", 16, 1) end KHÔI PHỤC XÁC MINH CHỈ TỪ DISK = @pathBackup VỚI FILE = @backupSetId, NOUNLOAD, NOREWIND GO

3. Cơ sở dữ liệu hệ thống
Ngoài cơ sở dữ liệu chính và các tệp liên quan, tôi thực sự khuyên bạn nên tạo bản sao của cơ sở dữ liệu hệ thống. Hãy bắt đầu bằng cách xem những cơ sở dữ liệu nào tồn tại trong MS SQL. Chỉ có 5 trong số đó:

Tôi chọn chỉ sao lưu 2 cơ sở dữ liệu hệ thống:

  1. msdb - vì các tác vụ đã định cấu hình và các tác vụ khác được lưu trữ ở đó
  2. master – tất cả các cài đặt SQL Server được định cấu hình sẽ được lưu trữ.
Thông tin này vẫn không quan trọng lắm và có thể được khôi phục theo cách thủ công, nhưng tại sao lại lãng phí thêm thời gian khi bạn có thể chỉ cần lấy nó từ bản sao lưu.
4. Phương án dự phòng
Dựa trên những điều trên, chúng tôi sẽ lập kế hoạch sao lưu dữ liệu của mình. Nó có thể khác với những gì bạn cần, tất cả phụ thuộc vào yêu cầu phục hồi cơ sở dữ liệu. Khi chuẩn bị kế hoạch, tôi phải tính đến việc cần phải khôi phục dữ liệu càng nhiều càng tốt và thời gian mất dữ liệu không quá một giờ.

Chúng tôi sẽ thực hiện các bản sao lưu sau:

  • Không cần một bản sao đầy đủ của cơ sở dữ liệu chính, hơn một lần một tuần
  • Bản sao khác biệt của cơ sở dữ liệu chính, mỗi ngày
  • Bản sao nhật ký giao dịch cơ sở dữ liệu chính, mỗi giờ
  • Bản sao cơ sở dữ liệu hệ thống chính, mỗi tuần một lần
  • Bản sao cơ sở dữ liệu hệ thống msdb, mỗi tuần một lần
Kết quả là chúng tôi đã kết thúc với kế hoạch sao lưu dữ liệu sau:
Ngày trong tuần
Thời gian
hành động
Tính thường xuyên
Sự miêu tả
thứ hai thứ Sáu
Từ 8-00 đến 21-00
Sao lưu

Nhật ký giao dịch

Mỗi giờ
Sau khi thực hiện sao lưu cơ sở dữ liệu, nhật ký giao dịch sẽ được nén và cắt bớt
Thứ bảy Chủ Nhật
Từ 8-00 đến 18-00
thứ hai chủ Nhật
22-00
Bản sao khác biệt của cơ sở dữ liệu chính
1 mỗi ngày
Sau khi chạy bản sao vi sai thành công, tất cả các bản sao nhật ký giao dịch cũ sẽ bị xóa
Thứ bảy
12-00
Kiểm tra cơ sở dữ liệu
1 mỗi ngày
Kiểm tra cơ sở dữ liệu về tính toàn vẹn.
Thứ bảy
18-00
Tạo bản sao đầy đủ của cơ sở dữ liệu
1 mỗi ngày
Sau khi hoàn thành thao tác này, một thông báo sẽ được gửi qua email.

Nếu bản sao lưu được tạo thành công, nó sẽ bị xóa

  • bản sao lưu đầy đủ cũ
  • tất cả các bản sao khác biệt cũ
  • tất cả nhật ký giao dịch cũ
thứ hai chủ Nhật
23-30
Tạo bản sao của cơ sở dữ liệu hệ thống chính
1 mỗi ngày

Chủ nhật
12-30
Tạo bản sao của cơ sở dữ liệu hệ thống msdb
1 lần mỗi tháng
Chỉ phiên bản cuối cùng của cơ sở dữ liệu luôn được lưu trữ
  1. Sử dụng tùy chọn SAO LƯU VỚI KIỂM TRA
    để đảm bảo mọi việc diễn ra tốt đẹp. Nhược điểm của giải pháp này là đối với cơ sở dữ liệu lớn, việc kiểm tra tổng kiểm tra có thể là một gánh nặng đáng kể đối với hệ thống.
  2. Không sao lưu tệp vào cùng một đĩa vật lý lưu trữ cơ sở dữ liệu hoặc nhật ký giao dịch.
  3. Nếu bạn sử dụng MS SQL 2008 trở lên, tôi khuyên bạn nên sử dụng tính năng nén sao lưu SQL. Đoạn mã sau sẽ cho phép nén theo mặc định: USE master; GO EXEC sp_configure ‘mặc định nén sao lưu’, “1”; CẤU HÌNH LẠI VỚI GHI ĐÈ;
  4. Giữ các bản sao lưu trong vài ngày phòng trường hợp một trong số chúng bị hỏng - một bản sao lưu cũ vẫn tốt hơn là không có bản sao lưu nào.
  5. Sử dụng DBCC CHECKDBđể kiểm tra từng cơ sở dữ liệu trước khi sao chép, điều này sẽ nhanh chóng cảnh báo bạn về các vấn đề sắp xảy ra. DBCC CHECKDB("Tên cơ sở dữ liệu") VỚI NO_INFOMSGS, ALL_ERRORMSGS; Ghi chú: Trong thực tế, chúng tôi chỉ sử dụng bước kiểm tra này trước khi thực hiện sao lưu toàn bộ.
  6. Định kỳ cập nhật số liệu thống kê và sắp xếp lại các chỉ mục cơ sở dữ liệu

Sử dụng ứng dụng

Một số sắc thái về ứng dụng:
  • Tất cả văn bản và truy vấn trong mã đều được đưa vào tài nguyên, điều đó dễ dàng hơn đối với tôi
  • Khi bạn nhập các thông số kết nối và các cài đặt khác, chúng sẽ được lưu vào một tệp. Đối với Express và Standard, các tệp khác nhau được sử dụng (dbStandart, udExpress) và lớp UserData được lưu trữ trong đó
  • Một số thao tác có thể yêu cầu quyền quản trị viên
  • Hiện tại, kết nối tới cơ sở dữ liệu bằng tài khoản miền không hoạt động
  • Chương trình không có giao diện siêu đẹp
1. Thiết lập thông báo quản trị
Tôi quá lười để đăng nhập vào máy chủ mỗi lần và kiểm tra xem tác vụ có hoạt động hay không hoặc đã xảy ra lỗi nào đó. Và tôi muốn có thể nhận được các thông báo khác, không chỉ về việc hoàn thành nhiệm vụ.

DatabaseMail MS SQL được sử dụng cho mục đích này (dành cho phiên bản Standard trở lên)
Trong ứng dụng của mình, tôi đã tạo một phần đặc biệt để tự động hóa tác vụ này

Khi nhấp vào, một biểu mẫu sẽ xuất hiện để điền thông tin cần thiết nhằm tạo hồ sơ gửi thư:

Ứng dụng được tự động cấu hình theo cổng SMTP tiêu chuẩn 25 cho địa chỉ mà thư được gửi đi. Nếu cần, nó có thể được thay đổi trong thủ tục sysmail_add_account_sp
Cần có người dùng và mật khẩu trong trường hợp dịch vụ thư có cấu hình xác thực.

Tên nhà điều hành trong hệ thống được chỉ định để chúng tôi có thể tạo hồ sơ trong DatabaseMail một cách chính xác. Viết bất kỳ tên nào bạn có thể hiểu rõ. Dưới đây là một ví dụ về một mẫu đơn đã hoàn thành.

  1. Các tham số hệ thống MS SQL thay đổi.
  2. Hồ sơ DatabaseMail được tạo
  3. Đã kích hoạt trong hồ sơ SQL Agente
  4. Tài khoản DatabaseMail được tạo
  5. Thêm tài khoản DatabaseMail vào hồ sơ thư cơ sở dữ liệu
  6. Toán tử DatabaseMail được tạo
Nó được mô tả chi tiết hơn ở phần sau và một phần tôi đã lấy nó từ đây. Đương nhiên, những hành động này có thể được thực hiện bằng SSMS.
2.Thông báo bổ sung cho quản trị viên
Chương trình cung cấp 2 tác vụ áp dụng cho cơ sở dữ liệu:
  1. kiểm tra tính toàn vẹn của cơ sở dữ liệu. Quy trình chuẩn DBCC CHECKDB đã được sử dụng để kiểm tra cơ sở dữ liệu.
  2. thông báo về không gian trống trong các nhóm tập tin.
  3. Tác vụ thứ hai được triển khai bằng cách sử dụng truy vấn tới bảng hệ thống dbo.sysfiles
  4. Đây là một ví dụ về truy vấn này được thực hiện đối với cơ sở dữ liệu:
Chọn NAME = left(a.NAME,15), a.FILEID, = Convert(decimal(12,2),round(a.size/128.000,2)), = Convert(decimal(12,2),round( fileproperty(a.name,"SpaceUsed")/128.000,2)), = chuyển đổi(thập phân(12,2),round((a.size-fileproperty(a.name,"SpaceUsed"))/128.000,2) ) , FILENAME = a.FILENAME Từ dbo.sysfiles a
Phản hồi từ máy chủ đến email của quản trị viên dưới dạng đánh dấu html. Cú pháp này có thể thực hiện được nhờ hàm MS SQL FOR XML tiêu chuẩn sau.

Ngoài ra, trong khi tôi đang tìm cách chuyển đổi kết quả truy vấn trả về thành văn bản html, tôi đã xem qua trang sau, nơi một người đã tạo toàn bộ quy trình cho các mục đích này
Bạn có thể định cấu hình các thao tác này bằng cách sử dụng mục tương ứng trong menu chương trình:

Một cửa sổ sẽ xuất hiện cho biết hộp thư mà văn bản html của báo cáo sẽ được gửi đến:

3. Giải quyết vấn đề khi thiết lập DatabaseMail
Trong MS SQL 2008, tôi gặp sự cố khi thiết lập SQL Server Agent. Hiện tượng như sau: sau khi cấu hình, không thể khởi động SQL Agent. Điều này chủ yếu được giải quyết bằng cách cài đặt bản cập nhật trên máy chủ SQL.

Nếu những bản cập nhật này không giúp ích được gì, bạn cần tải xuống bản sửa lỗi. Nó có thể được tìm thấy trên trang này; Tôi không thể cung cấp liên kết cuối cùng ngay bây giờ; để có được gói sửa lỗi, bạn sẽ cần phải trả lời một số câu hỏi.
Nếu có vấn đề với mô-đun DatabaseMail. Sau khi định cấu hình mô-đun này bằng ứng dụng, bạn cần truy cập SQL Agent và xem nhật ký sự kiện. Nếu xảy ra lỗi “không thể kết nối với hộp thư”. Điều này có nghĩa là đã xảy ra sự cố, ngay cả khi thư được gửi qua quá trình xác minh.

Điều này có thể được khắc phục bằng các thao tác sau:

  1. Studio quản lý - Tác nhân máy chủ SQL - Thuộc tính.
  2. Hệ thống cảnh báo
  3. Bỏ chọn Bật hồ sơ thư
  4. Bấm vào đồng ý
  5. Đăng nhập lại và đánh dấu vào ô
  6. Khởi động lại đại lý máy chủ SQL.
Kiểm tra tài khoản của bạn để biết dịch vụ SQL Agent. Nếu đây là tài khoản miền thì đổi thành tài khoản hệ thống hoặc ngược lại. Mọi thứ sẽ hoạt động.
4.Thiết lập sao lưu bằng ứng dụng SQL Standard:
Chọn phiên bản Tiêu chuẩn. Đang thiết lập thông báo. (xem phần, cài đặt thông báo):

Chúng tôi kết nối với cơ sở dữ liệu, điền dữ liệu kết nối và chỉ định cơ sở dữ liệu mà Công việc sẽ được sử dụng:

Chọn cài đặt sao lưu:

Chỉ định đường dẫn để lưu bản sao cơ sở dữ liệu. Nếu các thư mục được chỉ định không tồn tại, chương trình sẽ cố gắng tạo chúng (cần có các quyền thích hợp).

Bấm lưu và các tác vụ tương ứng sẽ được cấu hình trong cơ sở dữ liệu. Bạn nên định cấu hình các thư mục khác nhau cho mỗi bản sao lưu, vì... Khi xóa, tất cả các file có phần mở rộng bak sẽ bị xóa. (cm. phần xóa bản sao cơ sở dữ liệu)

5.Thiết lập sao lưu bằng ứng dụng SQL Express:
Vì SQL Express không có Tác nhân SQL nên nhiệm vụ tự động sao lưu phải được giải quyết theo một cách khác. Một tệp bat được tạo trong thư mục do người dùng chỉ định, tệp này mô tả truy vấn SQL chịu trách nhiệm tạo bản sao lưu. Nếu cần, bạn có thể chỉnh sửa trực tiếp. Ngoài ra, bộ lập lịch tiêu chuẩn của Windows sẽ hoạt động; nó tạo ra một tác vụ sẽ chạy mỗi ngày một lần vào thời gian đã chỉ định.

Để thực hiện việc này, hãy khởi chạy ứng dụng. Chọn MS SQL Express:

Xuất hiện bảng điền thông số:

Chúng tôi cho biết nơi bản sao của chúng tôi sẽ được lưu, cũng như vị trí của tệp bat để tạo bản sao của cơ sở dữ liệu (không cần chỉ định tên tệp, nó sẽ được chỉ định tự động). Tiếp theo, chúng tôi chỉ định cài đặt kết nối và thời điểm tác vụ cần được khởi chạy.

Nhược điểm duy nhất của phương pháp này là mật khẩu để kết nối với cơ sở dữ liệu phải được lưu trữ ở dạng văn bản rõ ràng.

6.Xóa các tác vụ khỏi cơ sở dữ liệu.
Nếu bạn cần xóa tất cả tác vụ khỏi cơ sở dữ liệu (ví dụ: bạn muốn thay đổi đường dẫn để lưu cơ sở dữ liệu). Để thực hiện việc này, hãy sử dụng mục tương ứng trong menu chương trình. Tất cả các tác vụ có tiền tố bắt đầu nhất định (trong trường hợp của tôi là King) sẽ bị xóa khỏi Tác nhân SQL:

7.Xóa bản sao cơ sở dữ liệu
Trong một số tác vụ, bản sao cơ sở dữ liệu cũ được cấu hình để xóa. Để làm điều này, tôi sử dụng thủ tục master.dbo.xp_delete_file. Ví dụ sử dụng: Sẽ xóa tất cả các tệp có phần mở rộng bak khỏi thư mục được chỉ định có ngày tạo hơn 14 ngày.
THỰC HIỆN master.dbo.xp_delete_file 0,"E:\backups",N"bak",dateadd(d,-14,getdate()),0;
Và đây là một ví dụ và thông tin chi tiết hơn về những tham số mà hàm này lấy.

Cách khôi phục bản sao lưu

Do thiếu thời gian nên mô-đun khôi phục vẫn chưa được triển khai, có lẽ trong tương lai tôi sẽ bổ sung nó, nhưng bây giờ tôi sẽ chỉ mô tả ngắn gọn cách khôi phục cơ sở dữ liệu.

Sử dụng tập lệnh SQL. Để khôi phục cơ sở dữ liệu, hãy sử dụng lệnh RESTORE.

Nếu bạn chỉ cần khôi phục cơ sở dữ liệu từ một bản sao đầy đủ thì chỉ cần chạy đoạn mã sau:
KHÔI PHỤC CƠ SỞ DỮ LIỆU [Tên cơ sở dữ liệu] TỪ DISK = "Z:\SQLServerBackups\back.bak" VỚI THAY THẾ
Nếu bạn cần khôi phục tuần tự một bản sao đầy đủ, bản sao khác biệt và nhật ký giao dịch, thì bạn cần viết tập lệnh SQL sau.

KHÔI PHỤC CƠ SỞ DỮ LIỆU TEST_DB – khôi phục bản sao đầy đủ TỪ test_db_full VỚI BÌNH THƯỜNG; GO RESTORE DATABASE TEST_DB – khôi phục bản sao khác biệt TỪ test_db_diff VỚI FILE = 1, BÌNH THƯỜNG; GO RESTORE LOG TEST_DB – khôi phục nhật ký giao dịch số 1 TỪ test_db_tran_1 VỚI FILE = 1, VỚI BÌNH THƯỜNG; GO RESTORE LOG TEST_DB – khôi phục nhật ký giao dịch số 2 TỪ test_db_tran_2 VỚI FILE = 1, VỚI BÌNH THƯỜNG; ĐI KHÔI PHỤC CƠ SỞ DỮ LIỆU TEST_DB VỚI PHỤC HỒI; ĐI
Bạn cũng có thể sử dụng SSMS để khôi phục cơ sở dữ liệu.

Thẻ:

  • Sao lưu MS SQL
  • Sao lưu MS SQL
Thêm thẻ