Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL Server 2016:Khôi phục cơ sở dữ liệu

Cũng như sao lưu cơ sở dữ liệu, trong SQL Server 2016, bạn có thể khôi phục cơ sở dữ liệu bằng cách sử dụng Transact-SQL, PowerShell hoặc thông qua SQL Server Management Studio GUI.

Ở đây, tôi sẽ trình bày cách khôi phục cơ sở dữ liệu bằng GUI của Hệ thống quản lý SQL Server, sau đó sử dụng Transact-SQL.

Khôi phục cơ sở dữ liệu qua GUI

Trong ví dụ này, chúng tôi sẽ khôi phục bản sao lưu của một cơ sở dữ liệu hoàn toàn mới có tên là WideWorldImporters .

WideWorldImporters cơ sở dữ liệu là cơ sở dữ liệu mẫu do Nhóm SQL Server của Microsoft cung cấp để chứng minh cách các tính năng của SQL Server có thể được sử dụng trong tình huống thực tế.

Quá trình này sẽ tạo một cơ sở dữ liệu mới có tên là WideWorldImporters . Cơ sở dữ liệu sẽ chứa các đối tượng khác nhau (chẳng hạn như bảng, dạng xem, thủ tục được lưu trữ, v.v.). Nó cũng sẽ chứa dữ liệu mẫu, vì vậy không cần thêm dữ liệu của riêng bạn.

Tải xuống tệp sao lưu cơ sở dữ liệu

Trước khi bạn bắt đầu, hãy tải xuống cơ sở dữ liệu (từ GitHub).

  • Tải xuống WideWorldImporters-Full.bak nếu bạn đang sử dụng Đánh giá, Nhà phát triển hoặc Phiên bản Doanh nghiệp của SQL Server.
  • Hoặc tải xuống WideWorldImporters-Standard.bak nếu bạn đang sử dụng SQL Server Standard Edition.
  1. Khởi chạy Cơ sở dữ liệu khôi phục Hộp thoại

    Trong Trình khám phá đối tượng, nhấp chuột phải vào Cơ sở dữ liệu và chọn Khôi phục cơ sở dữ liệu ... từ menu ngữ cảnh.

  2. Chọn tệp sao lưu

    Trong Nguồn tiêu đề, chọn Thiết bị và nhấp vào nút dấu chấm lửng ( ... ) để khởi chạy Chọn thiết bị dự phòng hộp thoại.

  3. Chọn tệp sao lưu

    Đảm bảo rằng Tệp được chọn, nhấp vào Thêm để duyệt đến tệp .bak trong cơ sở dữ liệu và thêm nó.

    Khi bạn đã thêm tệp sao lưu và tệp được liệt kê trong Phương tiện sao lưu: , nhấp vào OK để thoát khỏi hộp thoại này.

  4. Kiểm tra Cài đặt

    Các trường khác nhau trong Cơ sở dữ liệu khôi phục hộp thoại sẽ được điền dựa trên tệp sao lưu mà bạn đã chọn.

    Nhấp vào OK để khôi phục cơ sở dữ liệu.

    Bạn có thể (tùy chọn) nhấp vào Xác minh phương tiện dự phòng để kiểm tra xem không có vấn đề gì với tệp sao lưu trước khi chạy quá trình khôi phục.

  5. Thông báo thành công

    Bạn sẽ nhận được một thông báo cho biết rằng cơ sở dữ liệu đã được khôi phục thành công.

    Nhấp vào OK để kết thúc.

  6. Kiểm tra Cơ sở dữ liệu

    Điều hướng đến WideWorldImporters cơ sở dữ liệu và mở rộng các nút của nó để xem xét các đối tượng khác nhau của nó như bảng, dạng xem, thủ tục được lưu trữ, v.v.

    Bạn có thể bắt đầu làm việc với cơ sở dữ liệu này ngay lập tức. Ví dụ:chạy SELECT * FROM Website.Suppliers; sẽ trả về danh sách các nhà cung cấp bằng cách sử dụng Trang web. Nhà cung cấp xem.

Khôi phục cơ sở dữ liệu bằng Transact-SQL

  • Bạn có thể thực hiện khôi phục cơ sở dữ liệu tương tự như trên bằng cách sử dụng SQL.

    Để thực hiện việc này, hãy mở một cửa sổ truy vấn mới và thực hiện RESTORE tuyên bố.

    RESTORE câu lệnh chấp nhận các tùy chọn khác nhau (giống như tùy chọn GUI), nhưng bạn cũng có thể chạy khôi phục đơn giản với tối thiểu mã.

    Mã mẫu

    Dưới đây là ví dụ về một tập lệnh khôi phục đơn giản chỉ định tệp cơ sở dữ liệu để khôi phục và cơ sở dữ liệu đích.

    Nó cũng chỉ định nơi dữ liệu và tệp nhật ký sẽ được đặt.

    Sau khi chạy mã này, WideWorldImporters cơ sở dữ liệu sẽ được tạo.

    Trước tiên, hãy xóa cơ sở dữ liệu hiện có bằng cách chạy mã sau:

    USE master;
    DROP DATABASE WideWorldImporters;

    Bạn cũng có thể xóa cơ sở dữ liệu thông qua Object Explorer bằng cách nhấp chuột phải vào tên cơ sở dữ liệu và chọn Delete từ menu ngữ cảnh.

    Bây giờ hãy kiểm tra xem cơ sở dữ liệu không còn được liệt kê trong Object Explorer. Bạn có thể phải nhấp chuột phải vào Cơ sở dữ liệu và nhấp vào Làm mới trước khi nó biến mất.

    Khi bạn đã xác nhận rằng cơ sở dữ liệu không còn tồn tại trên máy chủ của mình, hãy chạy tập lệnh sau để đưa nó trở lại:

    USE master;
    RESTORE DATABASE WideWorldImporters  
    FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\WideWorldImporters-Full.bak'   
    WITH    
        MOVE N'WWI_Primary' 
            TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\WideWorldImporters.mdf',    
        MOVE N'WWI_UserData' 
            TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\WideWorldImporters_UserData.ndf',    
        MOVE N'WWI_Log' 
            TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\WideWorldImporters.ldf',    
        MOVE N'WWI_InMemory_Data_1' 
            TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\WideWorldImporters_InMemory_Data_1';

    Hiển thị Thông báo Tiến trình

    Bạn có thể sử dụng STATS tùy chọn để nhận cập nhật về tiến trình của quá trình khôi phục.

    Ví dụ:STATS=10 sẽ dẫn đến được xử lý 10 phần trăm , đã xử lý 20 phần trăm , v.v. khi cơ sở dữ liệu đang được khôi phục.

    Bạn có thể xem cú pháp đầy đủ cho RESTORE tuyên bố trên trang web của Microsoft.

Bây giờ bạn có thể sử dụng cơ sở dữ liệu này để thử những thứ khác nhau. Hãy trải nghiệm với nó. Truy vấn dữ liệu, xóa dữ liệu, thả đối tượng, bất cứ thứ gì. Sau cùng, nếu bạn hoàn toàn xáo trộn nó, bạn luôn có thể khôi phục cơ sở dữ liệu từ tệp sao lưu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhận ID của một đối tượng từ Tên của nó trong SQL Server:OBJECT_ID ()

  2. Bảng sổ cái cơ sở dữ liệu SQL Server Azure / 2022 từ Linux.

  3. Làm cách nào để xóa nhật ký giao dịch SQL Server?

  4. Cách ORIGINAL_DB_NAME () hoạt động trong SQL Server

  5. Cách sys.dm_exec_describe_first_result_set_for_object hoạt động trong SQL Server