Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Sao lưu cơ sở dữ liệu trong SQL Server 2017

SQL Server cung cấp một cách dễ dàng để tạo bản sao lưu cơ sở dữ liệu. Sao lưu có thể được thực hiện bằng Transact-SQL, PowerShell hoặc thông qua GUI.

Ở đây, tôi sẽ trình bày cách tạo bản sao lưu bằng GUI SQL Operations Studio (hiện được gọi là Azure Data Studio), sau đó sử dụng Transact-SQL, cuối cùng là SQL Server Powershell.

Tạo bản sao lưu qua SQLOPS / Azure Data Studio GUI

  1. Mở Trang tổng quan cơ sở dữ liệu

    Trong ngăn bên trái, nhấp chuột phải vào cơ sở dữ liệu bạn muốn sao lưu và chọn Quản lý .

    Nếu bạn đang sử dụng SSMS, trong Object Explorer, hãy nhấp chuột phải vào cơ sở dữ liệu bạn muốn sao lưu và chọn Tasks> Back Up ... từ menu ngữ cảnh. Thao tác này sẽ khởi chạy Cơ sở dữ liệu sao lưu hộp thoại.

  2. Khởi chạy Cơ sở dữ liệu sao lưu Hộp thoại

    Nhấp vào Sao lưu cái nút.

  3. Xem lại Cài đặt

    Hộp thoại này cho bạn cơ hội thay đổi bất kỳ cài đặt nào nếu được yêu cầu.

    Đối với ví dụ của chúng tôi, hãy để nó ở cài đặt mặc định và nhấp vào Sao lưu để tạo bản sao lưu.

    Nếu bạn có các yêu cầu sao lưu cụ thể, bạn có thể thay đổi kiểu sao lưu và / hoặc nhấp vào Cấu hình nâng cao để điều chỉnh cài đặt cấu hình nâng cao.

  4. Hoàn tất sao lưu

    Sau khi sao lưu hoàn tất, một thông báo sẽ hiển thị xác nhận rằng sao lưu thành công.

Sao lưu cơ sở dữ liệu bằng Transact-SQL

Bạn có thể thực hiện sao lưu tương tự như trên bằng T-SQL.

Để thực hiện việc này, hãy mở một cửa sổ truy vấn mới và thực thi BACKUP tuyên bố.

BACKUP câu lệnh chấp nhận các tùy chọn khác nhau (giống như tùy chọn GUI), nhưng bạn cũng có thể chạy một bản sao lưu đơn giản với tối thiểu mã.

Dưới đây là một ví dụ về tập lệnh sao lưu đơn giản trên hệ thống Linux hoặc Mac. Tập lệnh chỉ định cơ sở dữ liệu để sao lưu và vị trí để sao lưu nó.

BACKUP DATABASE Music  
TO DISK = '/var/opt/mssql/data/Music.bak';

Trên hệ thống Windows, đường dẫn sẽ sử dụng dấu gạch chéo ngược:

BACKUP DATABASE Music  
TO DISK = 'C:\Backups\Music.bak';

Sau khi chạy mã này, tệp sao lưu sẽ được đặt tại vị trí được chỉ định.

Sao lưu cơ sở dữ liệu bằng PowerShell

SQL Server 2017 hỗ trợ Windows PowerShell, là một trình bao kịch bản, thường được sử dụng để tự động hóa các tác vụ quản trị và triển khai.

Ngôn ngữ PowerShell hỗ trợ logic phức tạp hơn so với các tập lệnh Transact-SQL, mang đến cho bạn khả năng xây dựng các tập lệnh phức tạp hơn cho các bản sao lưu và các tác vụ khác của bạn.

Đoạn mã sau sẽ tạo một bản sao lưu giống như các ví dụ trước. Chỉ cần thay thế MyServer với tên máy chủ của bạn.

Backup-SqlDatabase -ServerInstance MyServer -Database Music

Bạn cũng có thể chỉ định một vị trí

Backup-SqlDatabase -ServerInstance MyServer -Database Music -BackupFile 'C:\Backups\Music.bak'

Sau khi chạy mã này, tệp sao lưu sẽ được đặt ở vị trí mặc định.

Bạn cũng có thể chỉ định -BackupAction Database để tuyên bố rõ ràng rằng nó là một bản sao lưu đầy đủ. Tuy nhiên, đây là tùy chọn mặc định.

Bạn có thể xem tài liệu đầy đủ cho Backup-SqlDatabase lệnh tại trang web của Microsoft.

Ghi đè các tệp sao lưu

Nếu bạn thực hiện nhiều sao lưu bằng cách sử dụng cùng một tên tệp cho tệp sao lưu, bạn có thể nhận thấy rằng mỗi lần bạn chạy một bản sao lưu, kích thước tệp của tệp sao lưu sẽ tăng lên.

Điều này là do mỗi bản sao lưu kế tiếp đang thêm chính nó vào tệp hiện có. Nó đang làm điều này bởi vì bạn đang sử dụng cùng một tên tệp và bạn chưa chỉ định rõ ràng rằng mỗi bản sao lưu sẽ ghi đè lên bất kỳ tệp hiện có nào.

Có một tùy chọn cho phép bạn ghi đè lên tệp hiện có.

  • Sử dụng SQLOPS GUI , nhấp vào Cấu hình nâng cao và trong Sao lưu vào tập phương tiện hiện có , chọn Ghi đè tất cả các bộ sao lưu hiện có .
  • Sử dụng SSMS GUI , nhấp vào Tùy chọn phương tiện trong menu bên trái của Cơ sở dữ liệu sao lưu hộp thoại và chọn Ghi đè tất cả các bộ sao lưu hiện có trong Phương tiện ghi đè phần.
  • Sử dụng SQL thêm WITH INIT vào câu lệnh SQL.
  • Sử dụng Powershell , thêm -Initialize vào lệnh.

Sử dụng tên tệp duy nhất

Tuy nhiên, bạn nên tạo một bản sao lưu đầy đủ với một tên tệp duy nhất (thường bao gồm ngày trong tên tệp). Có một tên tệp duy nhất có nghĩa là mỗi bản sao lưu sẽ là một tệp riêng biệt.

Ngoài ra, tùy thuộc vào kích thước cơ sở dữ liệu của bạn và lượng dữ liệu mới đang được nhập vào đó, bạn có thể muốn bổ sung các bản sao lưu đầy đủ của mình bằng các bản sao lưu khác nhau. Một bản sao lưu khác biệt chỉ nắm bắt dữ liệu đã thay đổi kể từ lần sao lưu đầy đủ gần đây nhất.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lấy dữ liệu với bộ ký tự UTF-8 từ máy chủ MSSQL bằng phần mở rộng PHP FreeTDS

  2. Thay đổi mật khẩu khi đăng nhập SA trong SQL Server (Ví dụ T-SQL)

  3. Buộc Oracle trả lại N hàng trên cùng với SKIP ĐÃ KHÓA

  4. Thực hiện vòng lặp while trong SQL Server 2008

  5. Làm cách nào để chuyển tên bảng vào proc được lưu trữ?