latest Post

Tự động sao lưu database trong Microsoft SQL Server

Tự động sao lưu database trong Microsoft SQL Server


1.  Sử dụng SQL Server Agent

Bước 1: Nhấn vào biểu tượng SQL Server Management Studio ở màn hình desktop hoặc Start --> Program --> SQL Server 2008 R2.

Bước 2: Đăng nhập vào SQL sử dụng quyền Authencation là Windows

Bước 3: Kiểm tra xem dịch vụ SQL Server Agent đã được kích hoạt chưa, nếu thấy cái dấu x màu đỏ thì cần Start dịch vụ này lên trước khi thực hiện các bước tiếp theo, nhấn chuột phải chọn Start, nhấn Ok để hoàn thành. 

Bước 4: Chọn Management --> Maintenance Plans --> Nhấn chuột phải chọn New Maintenance Plan, đặt tên vd: AutoBackUp


Bước 5: Bật thanh công cụ Toolbox bằng cách vào View --> Toollbox. Ở thanh Toolbox chọn Back Up Database Task giữ chuột kéo qua cửa sổ bên cạch như hình bên dưới. 
Bước 6: Nhấn double vào khung Back Up Database Task vừa kéo vào ở bước trên sẽ hiện ra cửa sổ như hình bên dưới. Mục Database(s) chọn All Database hoặc tích chọn từng DB muốn backup. Tích vào mục Create a sub-directory for each database để tạo ra từng thư mục cho mỗi DB, bên dưới Folder nhập vào thư mục lưu backup. Nhấn Ok để tiếp tục
Bước 7: Quay về màn hình ở bước 5 trên phần Plan chon vào biểu tượng lịch như hình bên dưới, sẽ hiện lên cửa sổ Job Schedule Properties. Chọn Occurs là dạng hàng ngày, hàng tuần hay hàng tháng. Phần Occurs once at chọn thời gian lịch sẽ chạy. Nhấn OK để hoàn thành.
 

2. Sao lưu cơ sở dữ liệu với Microsoft SQL Server Express 2008 & 2012 phiên bản không hổ trợ SQL Server Agen :


Bước 1: Mở SQL Server Management Studio và chọn “New Query” sau đó chép và dán script bên dưới.
DECLARE @name VARCHAR(50) —database name
DECLARE @path VARCHAR(256) —duong dan file backup
DECLARE @fileName VARCHAR(256) —ten file backup
DECLARE @fileDate VARCHAR(20) —lay ngay backup
SET @path = ‘C:\backupDB\DB\’
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)
DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN (‘master’,’model’,’msdb’,’tempdb’)
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + ‘_’ + @fileDate + ‘.BAK’
BACKUP DATABASE @name TO DISK = @fileName
FETCH NEXT FROM db_cursor INTO @name
END
CLOSE db_cursor
DEALLOCATE db_cursor

Script trên sẽ sao lưu tất cả database của bạn vào ổ “C:\backupDB\DB\”, bạn chọn “Execute” để chạy thử. Bạn có thể thay đổi đường dẫn lưu file backup sao cho phù hợp với hệ thống của bạn.

Sau khi “Execute” thành công, bạn lưu lại file SQL với nội dung trên. Ở đây mình sẽ lưu tại “C:\backupDB\” với tên là backup.sql . 

Bước 2: Tạo batch script thực thi file SQL vừa tạo ở Bước 1.

Bạn mở notepad với nội dung bên dưới sau đó lưu lại thành một file đuôi .bat ở đây mình tạo một file backup.bat cùng với thư mục chứa file backup.sql 
 
sqlcmd -S Server\MSSQLEXPRESS -i C:\backupDB\backup.sql
 
Thay đổi “Server\MSSQLEXPRESS” thành Server name tại trang truy cập SQL Server Management Studio, và thay đổi C:\backupDB\backup.sql cho phù hợp đường dẫn file SQL bên trên.
 
Bước 3: Kích hoạt đặt lịch sao lưu tự động với Windows Task Scheduler.

Start > Seach > Task Scheduler

Action > Create Task > Đặt tên “Task” > Thêm mô tả công việc(Description)

Chọn “Run whether user is logged on or not” (Công việc vẫn tiến hành khi bạn không truy cập server)

Triggers > Tạo mốc thời gian bạn cần “Task” chạy ( Ở đây mình đặt chạy backup mỗi ngày vào 2h sáng)

Actions > New > Action : Start a program > Settings > Trỏ đường dẫn đến file backup.bat (Ở đây của mình sẽ là C:\backupDB\backup.bat )





About miniflash

miniflash
Recommended Posts × +

0 comments:

Đăng nhận xét

Recent Comments Widget
loading...