Sao lưu tất cả database của SQL Server
Posted: 24/3/2010.
Đôi khi nhiều thứ dường như có vẻ phức tạp thì lại đơn giản hơn những gì bạn nghĩ và đây là sức mạnh của việc sử dụng câu lệnh T-SQL để thực hiện những công việc lặp đi lặp lại.
Đôi khi nhiều thứ dường như có vẻ phức tạp thì lại đơn giản hơn những gì bạn nghĩ và đây là sức mạnh của việc sử dụng câu lệnh T-SQL để thực hiện những công việc lặp đi lặp lại. Một trong những công việc này có lẽ là việc backup tất cả các cơ sở dữ liệu...
Đôi khi nhiều thứ dường như có vẻ phức tạp thì lại đơn giản hơn những gì bạn nghĩ và đây là sức mạnh của việc sử dụng câu lệnh T-SQL để thực hiện những công việc lặp đi lặp lại. Một trong những công việc này có lẽ là việc backup tất cả các cơ sở dữ liệu trong server của bạn. Điều này không có gì lớn nếu như bạn chỉ có một vài cơ sở dữ liệu, nhưng có những server chứa tới hàng trăm cơ sở dữ liệu trên một instance của SQL Server thì vấn đề bắt đầu nảy sinh. Bạn có thể sử dụng tiện ích Enterprise Manager để backup các cơ sở dữ liệu, hoặc thậm chí dùng Maintenance Plans để lên kế hoạch bảo trì, songT-SQL vẫn cho phép bạn thực hiện dễ dàng và nhanh chóng hơn nhiều.
Với việc sử dụng của T-SQL bạn có thể tạo ra các lệnh dự phòng của bạn và với việc sử dụng con trỏ, bạn có thể trỏ qua tất cả các cơ sở dữ liệu của bạn để backup chúng từng cái một. Đây là một quá trình thẳng tiến và bạn chỉ cần một số ít các lệnh để làm điều này.
Đây là script cho phép bạn sao lưu mỗi cơ sở dữ liệu trong instance SQL Server của bạn. Bạn cần thay đổi biến @path để dẫn tới thư mục dự phòng phù hợp và các tập tin sao lưu sẽ đưa vào tên có dạng "DBnameYYYDDMM.BAK".
- DECLARE @name VARCHAR(50) -- database name
- DECLARE @path VARCHAR(256) -- path for backup files
- DECLARE @fileName VARCHAR(256) -- filename for backup
- DECLARE @fileDate VARCHAR(20) -- used for file name
- SET @path = 'C:\Backup\'
- 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
Trong script này chúng ta bỏ qua các cơ sở dữ liệu hệ thống, nhưng những cơ sở dữ liệu này cũng có thể đưa vào dễ dàng như vậy. Bạn cũng có thể thay đổi scropt này thành một thủ tục được lưu trữ và truyền vào tên cơ sở dữ liệu hoặc nếu để là NULL thì nó sẽ sao lưu tất cả các cơ sở dữ liệu.
[Nghean-Aptech st]
Các tin mới:
Hướng dẫn tích hợp giao diện trang quản trị SB Admin 2 vào Laravel 5.8.
Hướng dẫn tích hợp Google ReCaptcha v2 vào Laravel bằng curl.
Học lập trình React JS trong vòng 5 phút.
Sử dụng trình soạn thảo CKeditor tích hợp CKFinder với Laravel.
Hướng dẫn cài đặt Apache, PHP, MySQL, PHPMyAdmin trên Windows 10 và cấu hình SendMail.
Các tin cũ hơn:
10 lý do bạn chọn MySQL.
Hướng dẫn install YetanotherForum trên localhost.
Nhúng reCaptcha vào ASP.NET.
Jquery: Ẩn hiện nội dung ASP.NET Panel.
Sử dụng DropDownList trong DataGrid.