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
-
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.
-
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.
-
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.
-
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.