Vì bạn không quen với lệnh T-SQL BACKUP DATABASE
, tôi nghĩ tôi sẽ thêm một số chi tiết về điều đó.
Bạn có thể muốn chạy một cái gì đó dọc theo dòng của câu lệnh sau thông qua dịch vụ Lập lịch tác vụ Windows, vì bạn không có quyền truy cập vào SQL Server Agent (Tôi thấy từ các câu hỏi khác của bạn, bạn sử dụng SQL Server Express).
BACKUP DATABASE [xyz]
TO DISK = 'C:\somepath\mybackupfile.bak'
MIRROR TO DISK = 'D:\somepath\myotherbackupfile.bak'
WITH FORMAT
, INIT
, SKIP
, STATS = 1;
Bạn có thể muốn xem xét mạnh mẽ việc có MIRROR TO
mệnh đề trỏ đến một số vị trí không có trên máy cục bộ của bạn, vì nếu bạn mất hoàn toàn máy cục bộ, bạn có thể không truy cập được tệp sao lưu. Chỉ định một MIRROR TO
mệnh đề yêu cầu bạn chỉ định FORMAT
từ khóa trong WITH
mệnh đề lần đầu tiên bạn chạy câu lệnh sao lưu đó.
Bạn có thể sử dụng tên của Windows Share, \\SomeServer\SQLBackups\MyBackupFile.bak
miễn là các quyền bảo mật trên chia sẻ cho phép truy cập dịch vụ Trình lập lịch của Windows.
Phần này WITH FORMAT, INIT
yêu cầu SQL Server ghi đè lên bất kỳ bản sao lưu hiện có nào có thể có trong các tệp sao lưu. Bạn có thể thay đổi điều này thành WITH NOINIT
một khi bạn đã hoàn thành bản sao lưu được nhân đôi đầu tiên nếu bạn muốn nhiều bản sao lưu (tức là các bản sao lưu từ các thời điểm khác nhau) được lưu trong các tệp đó. NOSKIP
yêu cầu SQL Server không kiểm tra hết hạn sao lưu, trong số những thứ khác. STATS = 1
sẽ hiển thị đầu ra theo 1
gia số phần trăm. Bạn có thể thay đổi số này thành bất cứ điều gì bạn thích. Tôi sử dụng 1
cho các cơ sở dữ liệu rất lớn vì nó cho một số dấu hiệu của sự tiến bộ.
Để thực hiện điều này thông qua dịch vụ Lập lịch tác vụ Windows, bạn sẽ cần lưu lệnh đó (một khi bạn đã kiểm tra nó trong SQL Server Management Studio) vào một tệp trên đĩa của bạn; chúng ta hãy gọi nó C:\somefolder\BackupMyDB.sql
. Sau đó, bạn sẽ muốn thêm lệnh sau vào Bộ lập lịch Windows:
<path to sqlcmd>sqlcmd -S localhost -E -i C:\somefolder\BackupMyDB.sql
Bạn sẽ muốn có nhiệm vụ đó "chạy như" bạn.
Khi bạn đã thực hiện tất cả điều đó, bạn muốn xem xét rất nghiêm túc việc cố gắng khôi phục bản sao lưu vào máy khác để bạn hiểu cách thực hiện điều đó. Có bản sao lưu chỉ là một phần của kế hoạch khắc phục thảm họa; phần quan trọng hơn được cho là đang thử nghiệm kế hoạch đó.
Quá trình khôi phục sẽ sử dụng một lệnh như:
RESTORE DATABASE [xyz]
FROM DISK = 'D:\somepath\myotherbackupfile.bak'
WITH RECOVERY
, STATS = 1;
Được cảnh báo, chạy RESTORE DATABASE
trên máy có cơ sở dữ liệu hiện tại của bạn có thể ghi đè lên cơ sở dữ liệu hiện tại mà không cần xác nhận hoặc cảnh báo, vì vậy hãy đảm bảo bạn đánh giá cẩn thận tên của cơ sở dữ liệu, [xyz]
trong ví dụ của tôi và các tùy chọn khác bạn sử dụng. (Điều này thực sự sẽ không ghi đè lên cơ sở dữ liệu hiện tại trừ khi bạn thêm REPLACE
từ khóa vào WITH
mệnh đề - Tôi chỉ muốn nhấn mạnh việc cẩn thận.)