Sao lưu và khôi phục cơ sở dữ liệu SQL Server của bạn từ dòng lệnh

Mục lục:

Sao lưu và khôi phục cơ sở dữ liệu SQL Server của bạn từ dòng lệnh
Sao lưu và khôi phục cơ sở dữ liệu SQL Server của bạn từ dòng lệnh

Video: Sao lưu và khôi phục cơ sở dữ liệu SQL Server của bạn từ dòng lệnh

Video: Sao lưu và khôi phục cơ sở dữ liệu SQL Server của bạn từ dòng lệnh
Video: Tạo hàng trăm Backlink Social giúp cải thiện thứ hạng website | Backlink Social Entity - YouTube 2024, Tháng mười một
Anonim

Phần quan trọng nhất của một kế hoạch bảo trì máy chủ SQL là sao lưu cơ sở dữ liệu của bạn thường xuyên. Để sao lưu cơ sở dữ liệu, bạn không thể chỉ đơn giản là sao chép các tệp MDF và LDF tương ứng của cơ sở dữ liệu khi SQL Server có khóa trên các cơ sở dữ liệu này. Thay vào đó, bạn cần tạo một tệp sao lưu thực sự thông qua SQL Server.

Trong khi điều này có thể được thực hiện bằng cách phát triển một kế hoạch bảo trì bên trong SQL Management Studio, các phiên bản Express miễn phí của SQL Server không cung cấp giao diện này. Để giải quyết vấn đề này, bạn có thể dễ dàng sao lưu cơ sở dữ liệu của mình bằng cách chạy lệnh dưới đây khi đăng nhập với tư cách Quản trị viên Windows:

SqlCmd -E -S Server_Name –Q “BACKUP DATABASE [Name_of_Database] TO DISK=’X:PathToBackupLocation[Name_of_Database].bak'”

Các ví dụ dưới đây sẽ giúp ích.

Ví dụ SQL Server mặc định:

SqlCmd -E -S MyServer –Q “BACKUP DATABASE [MyDB] TO DISK=’D:BackupsMyDB.bak'”

Phiên bản SQL Server được đặt tên:

SqlCmd -E -S MyServerMyInstance –Q “BACKUP DATABASE [MyDB] TO DISK=’D:BackupsMyDB.bak'”

Ở trên tạo ra một bản sao lưu hoàn toàn có thể phục hồi của "MyDB" vào tập tin "D: BackupsMyDB.bak" có thể được sử dụng để khắc phục thảm họa. Tất nhiên, bạn có thể thay đổi vị trí sao lưu và tệp thành bất kỳ thứ gì bạn cần, nhưng đảm bảo bạn chỉ định vị trí thư mục tồn tại trên máy cục bộ. Tệp sao lưu này sau đó có thể được sao chép vào ổ băng hoặc một vị trí sao lưu bên ngoài khác.

Một câu hỏi phổ biến là "Có thể tạo một tệp sao lưu cho một ổ đĩa được ánh xạ hoặc vị trí UNC không?" Và câu trả lời nhanh là không. Lý do là vì Dịch vụ Windows SQL Server chạy như một tài khoản người dùng chỉ có quyền truy cập vào máy cục bộ. Bạn có thể thay đổi tài khoản dịch vụ chạy như, nhưng điều này là rất khuyến khích vì lý do bảo mật.

Khôi phục cơ sở dữ liệu sao lưu từ dòng lệnh

Để khôi phục cơ sở dữ liệu từ một tệp sao lưu, chỉ cần sử dụng lệnh:

SqlCmd -E -S Server_Name –Q “RESTORE DATABASE [Name_of_Database] FROM DISK=’X:PathToBackupFile[File_Name].bak'”

Ví dụ:

SqlCmd -E -S MyServer –Q “RESTORE DATABASE [MyDB] FROM DISK=’D:BackupsMyDB.bak'”

Lệnh trên sẽ khôi phục bản sao lưu của "MyDB" từ dữ liệu được lưu trữ trong tệp sao lưu "D: BackupsMyDB.bak". Bất kỳ thay đổi nào được thực hiện cho MyDB vì tệp sao lưu đã được tạo sẽ bị mất.

Một điều quan trọng cần nhớ khi sử dụng lệnh trên là nó được dự định sẽ được sử dụng trên cùng một máy chủ SQL mà tệp sao lưu tương ứng đã được tạo. Tệp sao lưu SQL lưu trữ thông tin ‘đằng sau hậu trường’ kiểm soát vị trí và cách thức các tệp dữ liệu trong tệp sao lưu được sao chép. Nếu bạn đang khôi phục bản sao lưu từ một Máy chủ SQL khác, các vị trí đường dẫn trong tệp sao lưu có thể không khớp với máy chủ bạn đang khôi phục và sẽ xảy ra lỗi. Trong khi điều này có thể được làm việc xung quanh, nó là dễ dàng hơn nhiều để khôi phục lại các bản sao lưu được tạo ra trên một máy chủ SQL bằng cách sử dụng công cụ SQL Management Studio.

Lưu ý: các lệnh trên sẽ hoạt động trên SQL 2005 trở lên (mọi phiên bản). Đối với SQL 2000 trở về trước, thay thế 'SqlCmd' bằng ‘oSql’.

Đề xuất: