Tạo SQL Job Dùng Để Backup Database Hàng Ngày

Thứ Ba, 20 tháng 5, 2014

Backup là công việc tối quan trọng cho mỗi DBA để đảm bảo an toàn dữ liệu. Khi có sự cố xảy ra, backup file là nguồn duy nhất giúp bạn khôi phục dữ liệu trở lại. Trong thời đại dữ liệu trở thành trung tâm của các hoạt động doanh nghiệp, mất mát dữ liệu làm ảnh hưởng nghiêm trọng, thậm chí làm tê liệt hoạt động của công ty. Vì thế không có gì ngạc nhiên khi trong các yêu cầu trách nhiệm của DBA, backup database luôn được liệt kê ở phần đầu.
Chưa nói đến các phương án sao lưu/khôi phục dữ liệu phức tạp, như backup/restore transaction log… ở mức độ tối thiểu bạn cần backup database hàng ngày để khi có sự cố, ít nhất bạn cũng có bản backup từ ngày hôm trước để khôi phục. Việc làm này có thể được tự động hóa một cách dễ dàng thông qua SQL Server Agent. Đây là module trong SQL Server dùng để tự động thực hiện các tác vụ, tương tự như Scheduled Task của Windows.
Trong Management Studio, bạn mở rộng nút “SQL Server Agent”, sau đó click phím phải vào nút “Jobs”, rồi chọn “New Job…”:
Một cửa sổ mới sẽ hiện ra cho bạn nhập thông tin về job cần tạo. Ở ô Name, bạn nhập “Backup – Daily”, và ở Owner bạn nhập “sa”:

Sau đó ở hàng menu bên trái, click chuột vào dòng “Steps”, rồi bấm vào nút “New…”:

Ở cửa sổ mới này, ở ô “Step name” bạn nhập “Backup”, để nguyên các ô còn lại, và ở phần soạn thảo “Command” hãy nhập đoạn code sau:
BACKUP DATABASE CongTyDB TO DISK = 'D:\Backup\CongTyDB.bak' WITH INIT
Bạn cần đổi tên database và đường dẫn tương ứng với môi trường của bạn. Ở cuối câu lệnh là mệnh đề “WITH INIT” để đảm bảo hàng ngày chạy nó sẽ ghi đè lên file hiện tại. Nếu không có mệnh đề này, các bản backup sẽ được ghi nối tiếp nhau trong cùng một file và file backup sẽ tăng kích thước lên nhanh chóng.
Sau khi nhập xong, bạn click OK và trở lại màn hình ban đầu. Giờ ở hàng menu bên trái, bạn chọn “Schedules” và click vào “New…” để tạo một lịch làm việc cho Job:

Ở ô “Name” bạn nhập vào “Backup – Daily”; ở ô “Occurs” bạn chọn “Daily” và “Occurs once at:” bạn chọn “1:00:00 AM”; các phần khác giữ nguyên. Như vậy backup job sẽ chạy hàng ngày vào lúc 1h sáng. Lý do của việc chọn giờ như vậy là vì thường ban đêm database có ít hoạt động và do đó không ảnh hưởng nhiều đến user. Bạn có thể chọn giờ thích hợp cho mình.
Sau đó bạn click “OK” để trở về màn hình trước và click “OK” lần nữa để quay trở lại Management Studio. Việc setup như vậy là đã xong, bạn đã tạo được một job có tên “Backup – Daily” để backup database và sẽ được chạy hàng ngày vào lúc 1h sáng.