Các kỹ thuật sao lưu và khôi phục cơ sở dữ liệu SQL
Microsoft SQL Server là một hệ thống quản lý chuyên nghiệp được sử dụng để thao tác và trao đổi dữ liệu trong các cơ sở dữ liệu quan hệ. Đối với nhiều tổ chức, cơ sở dữ liệu thường là một thành phần quan trọng trong cơ sở hạ tầng CNTT hoặc trong các dự án kinh doanh. Vì lý do này, việc sao lưu cơ sở dữ liệu SQL là điều cần thiết để tránh mất dữ liệu và thời gian ngừng hoạt động của các dịch vụ quan trọng.
Bài viết trên blog này giải thích cách sao lưu Microsoft SQL Server bằng các phương pháp khác nhau, bao gồm cả các công cụ tích hợp sẵn, và sau đó khôi phục dữ liệu cơ sở dữ liệu.
Các loại bản sao lưu trong SQL Server
Trong Microsoft SQL Server, việc sao lưu đóng vai trò quan trọng trong việc bảo vệ dữ liệu và đảm bảo bạn có thể khôi phục thông tin trong trường hợp mất dữ liệu, lỗi phần cứng hoặc các sự cố khác. SQL Server hỗ trợ nhiều loại bản sao lưu, mỗi loại phục vụ một mục đích cụ thể. Các loại sao lưu chính trong MS SQL Server bao gồm:
- Sao lưu toàn bộ
- Sao lưu chênh lệch
- Sao lưu nhật ký giao dịch
- Sao lưu tệp
- Sao lưu chỉ sao chép
Sao lưu toàn bộ
Sao lưu toàn bộ SQL Server tạo ra một bản sao của toàn bộ cơ sở dữ liệu MS SQL. Đây là loại sao lưu đơn giản và trực quan nhất vì nó bao gồm tất cả các đối tượng và dữ liệu có trong cơ sở dữ liệu quan hệ. Các loại sao lưu khác của Microsoft SQL Server sử dụng sao lưu toàn bộ làm nền tảng cho mọi loại sao lưu khác.
Sao lưu toàn bộ SQL Server là bản sao chứa đầy đủ tất cả các thành phần của cơ sở dữ liệu, chẳng hạn như bảng, thủ tục, hàm, view, chỉ mục và nhiều thành phần khác. Ngoài ra, nó còn bao gồm một phần của nhật ký giao dịch. Điều này giúp đơn giản hóa quá trình khôi phục cơ sở dữ liệu, đảm bảo cơ sở dữ liệu được khôi phục chính xác về trạng thái tại thời điểm sao lưu.
Phương pháp này cung cấp hình thức khôi phục cơ sở dữ liệu đơn giản nhất vì toàn bộ nội dung cơ sở dữ liệu đều được chứa trong một bản sao lưu duy nhất.
Các đặc điểm chính của bản sao lưu đầy đủ trong SQL Server là:
- Bản sao lưu đầy đủ ghi lại toàn bộ cơ sở dữ liệu, bao gồm tất cả dữ liệu và đối tượng.
- Đây là loại sao lưu toàn diện nhất và là nền tảng cho các loại sao lưu khác.
- Bản sao lưu đầy đủ là thiết yếu để khôi phục cơ sở dữ liệu một cách hoàn chỉnh.
Bản sao lưu chênh lệch
Bản sao lưu chênh lệch trong SQL Server ghi lại có chọn lọc dữ liệu của các vùng mở rộng cơ sở dữ liệu đã thay đổi kể từ lần sao lưu đầy đủ gần nhất, lấy bản sao lưu đầy đủ làm điểm xuất phát. Loại sao lưu này bao gồm các thay đổi đối với các đối tượng lược đồ, tệp nhật ký và dữ liệu khác, giúp tối ưu hóa thời gian và hiệu quả lưu trữ đồng thời đảm bảo các thay đổi toàn diện trên máy chủ được sao lưu. Các cờ đặc biệt được sử dụng để đánh dấu các vùng cơ sở dữ liệu đã thay đổi cho sao lưu chênh lệch.
Sao lưu cơ sở dữ liệu chênh lệch thể hiện các thay đổi tích lũy kể từ lần sao lưu toàn bộ gần nhất, có thể dẫn đến kích thước nhỏ gọn hoặc đáng kể tùy thuộc vào khối lượng giao dịch gần đây.
Vì sao lưu chênh lệch không bao gồm mọi thành phần, quá trình thực hiện của nó thường nhanh hơn so với sao lưu toàn bộ. Bằng cách ghi lại trạng thái của các đối tượng cơ sở dữ liệu đã thay đổi tại thời điểm tạo, bản sao lưu chênh lệch cơ sở dữ liệu sẽ chứa dữ liệu khác nhau trong mỗi lần sao lưu tiếp theo khi tạo một chuỗi các bản sao lưu chênh lệch cho cơ sở dữ liệu được cập nhật thường xuyên.
Khi kích thước của các bản sao lưu này ngày càng tăng, việc khôi phục từ bản sao lưu chênh lệch có thể làm kéo dài đáng kể thời gian cần thiết để phục hồi. Do đó, nên định kỳ thực hiện một bản sao lưu toàn bộ mới theo các khoảng thời gian đã định trước để thiết lập một cơ sở chênh lệch mới cho dữ liệu.
Tóm lại, các đặc điểm chính của bản sao lưu chênh lệch SQL Server là:
- Bản sao lưu chênh lệch chỉ ghi lại những thay đổi được thực hiện trên cơ sở dữ liệu kể từ lần sao lưu toàn bộ gần nhất.
- Nó bao gồm tất cả các thay đổi được thực hiện trong cơ sở dữ liệu kể từ lần sao lưu toàn bộ gần nhất, không chỉ những thay đổi kể từ lần sao lưu chênh lệch gần nhất.
- Bản sao lưu chênh lệch có thể giảm thời gian cần thiết để khôi phục cơ sở dữ liệu so với việc chỉ khôi phục từ các bản sao lưu toàn bộ.
Tìm hiểu thêm về các loại sao lưu toàn bộ, sao lưu chênh lệch và sao lưu gia tăng để hiểu rõ hơn về sự khác biệt giữa chúng.
Sao lưu nhật ký giao dịch
Sao lưu nhật ký giao dịch trong Microsoft SQL Server bao gồm tất cả các giao dịch xảy ra kể từ lần sao lưu nhật ký giao dịch gần nhất, giúp khôi phục cơ sở dữ liệu về một thời điểm cụ thể. Như tên gọi, sao lưu nhật ký tập trung vào việc sao lưu nhật ký giao dịch và chỉ áp dụng cho các mô hình khôi phục toàn bộ hoặc ghi nhật ký hàng loạt. Các tệp nhật ký giao dịch lưu giữ một chuỗi các bản ghi ghi lại lịch sử các thay đổi dữ liệu trong cơ sở dữ liệu. Bản sao lưu nhật ký giao dịch bao gồm tất cả các bản ghi nhật ký chưa được bao gồm trong lần sao lưu nhật ký giao dịch trước đó.
Về bản chất, bản sao lưu nhật ký giao dịch bao gồm tất cả các thay đổi được thực hiện trên cơ sở dữ liệu, đặc biệt cần thiết khi sử dụng mô hình phục hồi đầy đủ hoặc ghi nhật ký hàng loạt để cắt ngắn nhật ký. Điều quan trọng cần biết là các bản sao lưu nhật ký giao dịch liên tiếp không sao chép dữ liệu, và hiệu suất không bị ảnh hưởng trong quá trình thực hiện sao lưu nhật ký giao dịch. Do đó, bạn có thể thực hiện thao tác này ngay cả trong các khoảng thời gian có khối lượng công việc cao.
Các tính năng chính của sao lưu nhật ký giao dịch trong Microsoft SQL Server là:
- Các bản sao lưu nhật ký giao dịch ghi lại các thay đổi trong nhật ký giao dịch kể từ lần sao lưu nhật ký gần nhất.
- Chúng cho phép khôi phục tại một thời điểm cụ thể và đóng vai trò quan trọng trong việc duy trì tính nhất quán của dữ liệu.
- Được sử dụng kết hợp với các bản sao lưu toàn bộ và sao lưu chênh lệch để tạo ra một chiến lược sao lưu toàn diện.
Sao lưu tệp và nhóm tệp
Sao lưu tệp cho phép sao lưu từng tệp một cách độc lập thay vì phải sao lưu toàn bộ cơ sở dữ liệu. Điều này trở nên hữu ích khi cơ sở dữ liệu của bạn đã được thiết lập với nhiều tệp dữ liệu.
Một tình huống phù hợp với loại sao lưu này là khi phải xử lý các tệp có kích thước cực lớn, đòi hỏi sự chú ý đặc biệt trong quá trình sao lưu. Việc thực hiện sao lưu tệp có thể được thực hiện thông qua T-SQL hoặc SSMS. Tuy nhiên, nếu cơ sở dữ liệu của bạn chủ yếu chỉ bao gồm một tệp dữ liệu duy nhất, tùy chọn này có thể không phù hợp.
Các tính năng chính của sao lưu tệp MS SQL là:
- Loại sao lưu này cho phép bạn sao lưu các tệp cơ sở dữ liệu riêng lẻ hoặc các nhóm tệp.
- Rất hữu ích khi bạn cần sao lưu có chọn lọc các phần cụ thể của cơ sở dữ liệu.
- Bạn cũng có thể sử dụng sao lưu tệp/nhóm tệp để khôi phục từng phần.
Sao lưu chỉ sao chép
Sao lưu chỉ sao chép cho MS SQL Server hoạt động độc lập với chuỗi sao lưu thông thường, tạo bản sao lưu mà không ảnh hưởng đến các bản sao lưu gốc, chuỗi sao lưu hoặc quy trình khôi phục. Sao lưu chỉ sao chép hữu ích để thử nghiệm các thay đổi đối với thông tin đã sao lưu mà không ảnh hưởng đến tập dữ liệu chính, cho phép tạo bản sao lưu mà không làm gián đoạn các giao thức sao lưu và khôi phục tổng thể của cơ sở dữ liệu. Lưu ý rằng sao lưu chỉ sao chép (đối với sao lưu toàn bộ) không thể được sử dụng để tạo các bản sao lưu chênh lệch.
Ưu điểm chính của sao lưu chỉ sao chép nằm ở tính chất không gây gián đoạn đối với chuỗi sao lưu thông thường và các quy trình khôi phục tiêu chuẩn. Thông thường, hầu hết các phương pháp sao lưu MS SQL Server đều ảnh hưởng đến cơ sở dữ liệu và các quy trình khôi phục. Bằng cách sử dụng sao lưu chỉ sao chép, các nhóm CNTT có thể tạo các bản sao lưu độc lập với các bản sao lưu gốc và quy trình khôi phục. Cần lưu ý rằng sao lưu chỉ sao chép không cho phép ghi lại lịch sử sao lưu một cách tập trung.
Trừ khi sử dụng sao lưu chỉ sao chép cho bản sao lưu toàn bộ, bản sao lưu chênh lệch tiếp theo có thể bị ảnh hưởng. Điểm khác biệt chính giữa bản sao lưu toàn bộ và bản sao lưu toàn bộ chỉ sao chép nằm ở chỗ bản sau không làm gián đoạn chuỗi sao lưu chênh lệch. Điều quan trọng là cả hai phương pháp này đều không làm gián đoạn chuỗi nhật ký, vì cả hai đều không cắt ngắn tệp nhật ký.
Đối với việc sao lưu nhật ký, áp dụng cho các mô hình khôi phục đầy đủ và khôi phục nhật ký hàng loạt, mục đích của sao lưu nhật ký chỉ sao chép là ghi lại điểm lưu trữ nhật ký hiện có. Mặc dù hiếm khi được sử dụng, nhưng sao lưu nhật ký chỉ sao chép có thể hữu ích cho việc khôi phục trực tuyến trong một số tình huống nhất định.
Các tính năng chính của sao lưu chỉ sao chép trong Microsoft SQL Server là:
- Sao lưu chỉ sao chép không ảnh hưởng đến chuỗi sao lưu thông thường. Đây là một bản sao lưu bổ sung được thực hiện độc lập với chuỗi sao lưu định kỳ.
- Hữu ích để tạo các bản sao lưu cho các mục đích cụ thể mà không làm gián đoạn chiến lược sao lưu đã thiết lập.
Tất cả các loại sao lưu Microsoft SQL Server này có thể được kết hợp để tạo ra một chiến lược sao lưu toàn diện, đáp ứng các yêu cầu cụ thể của môi trường SQL Server của bạn. Thực hiện định kỳ kiểm tra và xác thực các quy trình sao lưu và khôi phục cũng là những thành phần thiết yếu của một chiến lược bảo vệ dữ liệuvững chắc.
Cách sao lưu cơ sở dữ liệu SQL
Có một số phương pháp để tạo bản sao lưu cơ sở dữ liệu MS SQL bằng các công cụ gốc của Microsoft:
MS SQL Server Management Studio (SSMS)là một công cụ gốc miễn phí với giao diện đồ họa thân thiện với người dùng. SSMS cần được cài đặt thủ công trên cùng máy chủ hoặc máy tính từ xa nơi SQL Server được cài đặt.Transaction SQL (T-SQL)các lệnh được sử dụng để quản lý MS SQL Server, bao gồm các thao tác sao lưu và khôi phục cơ sở dữ liệu.sqlcmdlà một tiện ích trong dòng lệnh Windows (cmd) cho phép bạn chạy các lệnh T-SQL trên SQL Server.- PowerShell là một môi trường dòng lệnh nâng cao trong Windows hỗ trợ quản lý SQL Server sau khi cài đặt mô-đun PowerShell tại
SqlServer.
Sao lưu trong MS SQL Server Management Studio
Để tạo bản sao lưu cơ sở dữ liệu SQL Server, hãy thực hiện các bước sau:
- Mở MS SQL Server Management Studio (SSMS) và đăng nhập vào SSMS bằng tài khoản quản trị.
- Trong
Object Explorer, nằm ở phía bên phải của cửa sổ SSMS, hãy chuyển đếnDatabasesvà nhấp chuột phải vào tên cơ sở dữ liệu mà bạn muốn sao lưu. Trong ví dụ này, chúng tôi sử dụngAdventureWorks2022làm cơ sở dữ liệu. - Trong menu ngữ cảnh, nhấp vào
Tasks > Backup.
- Đặt các tham số trong cửa sổ
Back Up Database.- Nguồn:
- Cơ sở dữ liệu:
AdventureWorks2022 - Loại sao lưu: Chọn
FullhoặcDifferential(bạn cần tạo bản sao lưu toàn bộ trước). - Thành phần sao lưu:
Database
- Cơ sở dữ liệu:
- Địa chỉ đích:
- Sao lưu vào:
Diskhoặc URL (chọn đĩa)
- Sao lưu vào:
- Hãy bỏ chọn hộp kiểm sao lưu
Copy-onlynếu bạn không muốn tạo bản sao lưu chỉ sao chép.
LƯU Ý : Bạn có thể chỉnh sửa cài đặt nếu muốn tạo bản sao lưu loại khác.
Đường dẫn được thiết lập trong thuộc tính chung của máy chủ cơ sở dữ liệu MS SQL sẽ được chọn mặc định. Bạn có thể thay đổi đường dẫn mặc định trong cài đặt chung – nhấp chuột phải vào tên máy chủ MS SQL trong Object Explorer, nhấp vào
Properties, chọn trangDatabase Settingsvà xem/chỉnh sửaDatabase default locations. - Nguồn:
- Nhấp vào
Addđể chọn vị trí đích tùy chỉnh cho tác vụ sao lưu MS SQL hiện tại và chọnDeleteđể xóa vị trí không cần thiết tương ứng. Trong ví dụ này, chúng tôi chọn"D:MS SQL Backup DBAdventureWorks".LƯU Ý : Để lưu trữ bản sao lưu, hãy sử dụng một đĩa khác với đĩa chứa cơ sở dữ liệu gốc. Bạn nên tuân theo hướng dẫn tại Quy tắc sao lưu 3-2-1 để có chiến lược bảo vệ dữ liệu mạnh mẽ. Bạn cũng có thể cấu hình hành vi ghi đè và nén trong Tùy chọn Phương tiện và Tùy chọn Sao lưu tương ứng. Nút Tạo kịch bản sẽ tạo kịch bản T-SQL dựa trên các thiết lập đã chọn.

- Đừng quên nhập tên tệp sao lưu. Lưu ý rằng các bản sao lưu chênh lệch có thể sử dụng phần mở rộng tệp
.dif.
- Nhấp vào
OKtrong mỗi cửa sổ để tiếp tục.
Nếu mọi thứ đều chính xác, bạn sẽ thấy thông báo: The backup of database "AdventureWorks2022" completed successfully.
Lịch sao lưu Microsoft SQL trong SSMS
Bạn có thể tự động hóa việc sao lưu cơ sở dữ liệu MS SQL và lên lịch các tác vụ sao lưu. Để lên lịch sao lưu cơ sở dữ liệu, hãy thực hiện các bước sau trong Microsoft SQL Server Management Studio.
- Trong
Object Explorer, đi đếnManagement, nhấp chuột phải vàoMaintenance Plans, và nhấp vàoNew Maintenance Plan. - Nhập tên cho kế hoạch bảo trì mới, ví dụ:
MS SQL Backup Plan. Nhấp vàoOK.
- Nhấp vào biểu tượng
Calendar(Lịch trình phụ) để cấu hình lịch trình sao lưu MS SQL.
- Chọn các tùy chọn lịch trình sao lưu MS SQL cần thiết:
- Loại lịch trình: Lặp lại (mặc định)
- Tần suất
- Tần suất hàng ngày
- Thời lượng
Nhấp vào
OKđể lưu cài đặt.
- Nhấp vào
ToolBoxở góc trên bên trái giao diện SSMS.
- Kéo
Back Up Database TasktừToolboxvào vùng trống của tabMS SQL Backup Plan [Design]. - Nhấp đúp vào
Back Up Database Taskmà bạn vừa kéo và thả vào tabMS SQL Backup Plan [Design].
- Cửa sổ tùy chọn
Back Up Database Tasksẽ mở ra. Chọn loại kết nối, chẳng hạn nhưLocal server connection. - Cấu hình các thiết lập cần thiết trong các tab
General, Destination, Options:- Loại sao lưu:
FullhoặcDifferential - Cơ sở dữ liệu:
Specific databases, all databases, system databases, hoặcAll user databases. - Sao lưu đến:
Disk

Các tùy chọn trong các tab
DestinationvàOptionsđược hiển thị trong ảnh chụp màn hình bên dưới.Nhấn
OKđể lưu cài đặt cho tác vụ sao lưu cơ sở dữ liệu MS SQL theo lịch trình.
- Loại sao lưu:
- Bạn có thể nhấp vào
View T-SQLđể xem các lệnh có thể sử dụng trong T-SQL để chạy tác vụ mà bạn đã tạo trong giao diện người dùng đồ họa của SSMS.
- Nhấn
Ctrl+Sđể lưu các thay đổi trong SSMS. - Nhấn
F5để làm mới các mục hiển thị trong SSMS. - Chuyển đến
SQL Server Agent > Jobstrong Object Explorer. Bạn có thể mởJob Activity Monitorvà xemMS SQL Backup Plan.Sublantrong danh sách tác vụ.
- Làm mới trang bằng cách nhấp chuột phải vào
Jobshoặc một đối tượng khác và nhấp vàoRefresh. Trong Object Explorer, chuyển đếnSQL Server Agent > Jobs, chọnMS SQL Backup Plan.Subplan, nhấp chuột phải vào đối tượng này và nhấp vàoStart Job at Stepđể bắt đầu tác vụ sao lưu theo lịch trình ngay lập tức.
Ngoài ra, bạn có thể tạo tác vụ sao lưu MS SQL theo lịch trình bằng cách truy cập
Object Explorer > Management > New Maintenance Plan. Các tùy chọn tương tự cũng có sẵn nhưng bạn phải thực hiện tất cả các bước.
Sao lưu MS SQL bằng T-SQL
Sử dụng các lệnh chính sau đây để sao lưu cơ sở dữ liệu MS SQL bằng T-SQL cho từng loại sao lưu:
- Sao lưu toàn bộ:
BACKUP DATABASE YourDatabaseName TO DISK = 'C:BackupYourDatabaseName_Full.bak';Thay thế
YourDatabaseNamebằng tên cơ sở dữ liệu của bạn và chỉ định đường dẫn tệp sao lưu mong muốn (sử dụng một đĩa khác, không phải đĩa hệ thống (C:) hoặc đĩa chứa cơ sở dữ liệu gốc). - Sao lưu chênh lệch:
BACKUP DATABASE YourDatabaseName TO DISK = 'C:BackupYourDatabaseName_Diff.bak' WITH DIFFERENTIAL;Đảm bảo rằng bạn đã tạo bản sao lưu toàn bộ trước khi tạo bản sao lưu chênh lệch.
- Sao lưu nhật ký giao dịch:
BACKUP LOG YourDatabaseName TO DISK = 'C:BackupYourDatabaseName_Log.bak';Các bản sao lưu nhật ký giao dịch rất quan trọng đối với việc khôi phục tại một thời điểm cụ thể và duy trì tính nhất quán của dữ liệu.
- Sao lưu tệp:
BACKUP DATABASE YourDatabaseName FILE = 'LogicalFileName' TO DISK = 'C:BackupYourDatabaseName_File.bak';Thay thế
LogicalFileNamebằng tên logic của tệp hoặc nhóm tệp mà bạn muốn sao lưu. - Sao lưu chỉ sao chép:
BACKUP DATABASE YourDatabaseName TO DISK = 'C:BackupYourDatabaseName_CopyOnly.bak' WITH COPY_ONLY;Sao lưu chỉ sao chép (Copy-only) không làm gián đoạn chuỗi sao lưu thông thường.
Chúng tôi đã giải thích các lệnh cơ bản trong các ví dụ trên. Bạn có thể sử dụng các tham số bổ sung để tinh chỉnh các thiết lập sao lưu nâng cao trong các lệnh T-SQL. Dưới đây là một số ví dụ về tập lệnh T-SQL để thực hiện sao lưu trong Microsoft SQL Server với các tùy chọn nâng cao, bao gồm nén:
- Sao lưu toàn bộ với nén:
-- Full Backup with CompressionBACKUP DATABASE YourDatabaseNameTO DISK = 'C:BackupYourDatabaseName_Full.bak'WITH COMPRESSION, INIT;Trong đó:
YourDatabaseNamephải được thay thế bằng tên cơ sở dữ liệu của bạn.C:BackupYourDatabaseName_Full.baklà đường dẫn và tên tệp cho tệp sao lưu cần được thay đổi trong trường hợp của bạn.WITH COMPRESSIONlà tùy chọn cho phép nén để giảm kích thước sao lưu.INITlà tùy chọn khởi tạo một bộ phương tiện mới.--xác định phần đầu của bình luận - Sao lưu toàn bộ với các tùy chọn khác nhau:
-- Full Backup with various optionsBACKUP DATABASE YourDatabaseNameTO DISK = 'C:BackupYourDatabaseName_Full.bak'WITHFORMAT,– Ghi đè lên bộ phương tiện hiện cóNAME = 'FullBackup',– Chỉ định tên bộ sao lưuSTATS = 10,– Hiển thị thông báo sau mỗi 10% tiến độ hoàn thànhCHECKSUM,– Kiểm tra tính toàn vẹn của bản sao lưuCOMPRESSION,– Bật tính năng nénINIT;– Khởi tạo một bộ phương tiện mới - Sao lưu nhật ký giao dịch:
-- Transaction Log BackupBACKUP LOG YourDatabaseNameTO DISK = 'C:BackupYourDatabaseName_LogBackup.trn'WITHFORMAT,– Ghi đè lên bộ phương tiện hiện cóNAME = 'LogBackup',– Chỉ định tên bộ sao lưuSTATS = 10,– Hiển thị thông báo sau mỗi 10% tiến độ hoàn thànhINIT;– Khởi tạo bộ phương tiện mới - Sao lưu vào nhiều tệp:
-- Full Backup to Multiple FilesBACKUP DATABASE YourDatabaseNameTODISK = 'C:BackupYourDatabaseName_Full1.bak',DISK = 'C:BackupYourDatabaseName_Full2.bak'WITH INIT;
Các ví dụ này minh họa các tùy chọn nâng cao như định dạng bộ phương tiện, chỉ định tên bộ sao lưu, hiển thị thống kê tiến độ và xác minh tổng kiểm tra. Bạn có thể tùy chỉnh các kịch bản mẫu này dựa trên yêu cầu và sở thích cụ thể của mình.
Sao lưu bảng MS SQL
Để sao lưu một bảng cụ thể trong Microsoft SQL Server, bạn có thể sử dụng tính năng Generate Scripts trong MS SQL Server Management Studio (SSMS) để tạo tập lệnh sao lưu cho cấu trúc và dữ liệu của bảng hoặc sử dụng tiện ích bcp (Bulk Copy Program). Hãy xem xét các bước dưới đây cho cả hai phương pháp.
Phương pháp 1: Tạo tập lệnh trong SSMS
Thực hiện các bước sau để tạo tập lệnh T-SQL và sao lưu một bảng cụ thể trong cơ sở dữ liệu MS SQL:
- Khởi chạy MS SQL Server Management Studio và kết nối với phiên bản MS SQL Server.
- Truy cập vào một cơ sở dữ liệu tại
Object Explorervà nhấp chuột phải vào tên cơ sở dữ liệu. Nhấp vàoTasks > Generate Scriptstrong menu ngữ cảnh.
- Đọc các lời khuyên trong bước
Introductioncủa trình hướng dẫnGenerate Scripts. Bạn có thể chọn hộp kiểmDo not show this page again. Nhấp vàoNexttại mỗi bước của trình hướng dẫn để tiếp tục. - Tại bước
Choose Objects, nhấp vàoSelect specific database objects. Chọn (các) bảng cần sao lưu. Trong ví dụ này, chúng tôi chọn bảngPerson.Addresscủa cơ sở dữ liệu cần sao lưu.
- Chỉ định cách lưu các tập lệnh tại bước
Set Scripting Options. ChọnSave as script filevà chọnSingle script file. Nhập tên tệp cho bản sao lưu vào thư mục thích hợp. Nhấp vào…để chọn thư mục và nhập tên bản sao lưu bảng MS SQL.
- Nhấp vào
Advancedvà trong cửa sổAdvanced Scripting Optionsvừa mở ra, thiết lậpTypes of data to script = Schema and data. Nhấp vàoOKđể lưu cài đặt và đóng cửa sổ. Sau đó, tiếp tục sang bước tiếp theo của trình hướng dẫn.
- Kiểm tra tóm tắt cấu hình và chuyển sang bước cuối cùng của quá trình sao lưu bảng cơ sở dữ liệu.

- Tại bước
Save Scripts, bạn có thể theo dõi tiến trình sao lưu. Chờ cho đến khi quá trình sao lưu cơ sở dữ liệu MS SQL hoàn tất.
- Mở Windows Explorer và tìm tệp sao lưu bảng MS SQL đã tạo trong thư mục đích đã chọn. Trong ví dụ này, chúng ta có tệp
MS_SQL_Table_Backup.sql.
- Nhấp đúp vào tệp
MS_SQL_Table_Backup.sqlvà mở tệp kịch bản SQL này trong SSMS. Thay đổi tên cơ sở dữ liệu ở dòng đầu tiên để phù hợp với yêu cầu của môi trường của bạn.
- Nhấp vào
Executeđể chạy tập lệnh sao lưu bảng MS SQL.
Phương pháp 2: Sử dụng bcp (Bulk Copy Program)
Sử dụng quy trình làm việc sau để thực hiện sao lưu bảng MS SQL với bcp:
- Mở cửa sổ lệnh (nhấn
Win+R, nhậpcmdvà nhấnEnter) trong Windows với quyền quản trị. - Truy cập vào tệp thực thi tiện ích `
bcp` trong thư mục cài đặt MS SQL Server (160 được sử dụng cho MS SQL Server 2022). Ví dụ: `cd C:Program FilesMicrosoft SQL Server160ToolsBinn - ` Chạy lệnh `
bcp` để xuất dữ liệu bảng vào tệp. Thay thế `<DatabaseName>, <SchemaName>, <TableName>` và `<OutputFilePath>` bằng cơ sở dữ liệu, lược đồ, bảng và đường dẫn tệp đầu ra mong muốn của bạn.bcp. . out -c -S -T Vị trí:
-c– chỉ định dữ liệu ký tự (không phải Unicode) cần sao chép.-S– chỉ định tên máy chủ. -T– sử dụng kết nối đáng tin cậy (xác thực Windows). - Kiểm tra tệp đầu ra đã chỉ định để xem dữ liệu đã xuất.
Cách khôi phục cơ sở dữ liệu SQL Server
Khi sử dụng các công cụ gốc của Microsoft để sao lưu cơ sở dữ liệu MS SQL, các bản sao lưu này thường được lưu dưới dạng tệp .bak . Để mở tệp .bak , bạn thường nên sử dụng MS SQL Server Management Studio (SSMS), một công cụ do Microsoft cung cấp để quản lý cơ sở dữ liệu MS SQL Server. Khôi phục dữ liệu từ bản sao lưu này về trạng thái bình thường. Chỉ khi đó bạn mới có thể mở dữ liệu.
LƯU Ý : Bạn có thể sao chép tệp backupname.bak , đổi tên tệp đã sao chép backupname.bak thành backupname.xls và mở tệp .xls trong Microsoft Excel nếu cần xem dữ liệu từ bản sao lưu nhưng hiện tại chưa cài đặt MS SQL Server. Việc sao chép tệp giúp tránh làm hỏng tệp sao lưu chính nếu xảy ra sự cố.
Khôi phục cơ sở dữ liệu MS SQL trong SSMS
Lưu ý rằng bạn cần có quyền truy cập cần thiết để thực hiện khôi phục cơ sở dữ liệu, và phiên bản MS SQL Server phải có thể truy cập tệp .bak .
Để khôi phục cơ sở dữ liệu MS SQL Server trong MS SQL Server Management Studio từ tệp sao lưu, hãy thực hiện các bước sau:
- Đăng nhập vào máy chủ MS SQL Server trong SSMS bằng tài khoản quản trị.
- Nhấp chuột phải vào `
Databases` trong `Object Explorer` và chọn `Restore Database` trong menu ngữ cảnh.
- Trong cửa sổ `
Restore Database`, chọn `Device` để khôi phục cơ sở dữ liệu MS SQL từ tệp `.bak` và nhấp vào nút `…` để chọn tệp `.bak`.
- Chọn `
File` làm loại phương tiện sao lưu và nhấp vào `Add`.
- Tìm tệp sao lưu. Theo mặc định, thư mục sao lưu mặc định sẽ được hiển thị trong cửa sổ. Truy cập vào thư mục cần thiết và chọn tệp sao lưu. Trong ví dụ này, tệp “
AdventureWorks2022.bak” đã được chọn.
- Nhấp đúp vào “
OK” để lưu cài đặt và quay lại cửa sổ “Restore Database”. SSMS sẽ hiển thị tiến trình của thao tác khôi phục. Bạn có thể theo dõi quá trình này trong cửa sổ “Restore Progress”.
Nếu mọi thứ đều chính xác, bạn sẽ thấy thông báo này sau khi khôi phục cơ sở dữ liệu:
Database 'AdventureWorks2022' restored successfully.
Khôi phục cơ sở dữ liệu MS SQL bằng T-SQL
Bạn có thể sử dụng các lệnh T-SQL để khôi phục cơ sở dữ liệu từ tệp .bak bằng câu lệnh RESTORE DATABASE . Điều này có thể hữu ích trong các tập lệnh hoặc các trường hợp không thể sử dụng SSMS. Hãy xem xét các lệnh sau để khôi phục cơ sở dữ liệu MS SQL bằng T-SQL.
- Khôi phục toàn bộ cơ sở dữ liệu:
RESTORE DATABASE YourDatabaseName FROM DISK = 'C:BackupYourDatabaseName_Full.bak' WITH REPLACE;Thay thế
YourDatabaseNamebằng tên cơ sở dữ liệu của bạn và chỉ định đường dẫn đến tệp sao lưu toàn bộ. Tùy chọnWITH REPLACElà bắt buộc nếu bạn đang ghi đè lên cơ sở dữ liệu hiện có. - Khôi phục cơ sở dữ liệu theo phương thức chênh lệch:
RESTORE DATABASE YourDatabaseName FROM DISK = 'C:BackupYourDatabaseName_Diff.bak' WITH NORECOVERY;Sau khi khôi phục bản sao lưu chênh lệch, bạn có thể cần khôi phục thêm các bản sao lưu nhật ký giao dịch để khôi phục cơ sở dữ liệu về thời điểm mới nhất.
- Để khôi phục bản sao lưu nhật ký giao dịch, hãy sử dụng lệnh T-SQL sau:
RESTORE LOG YourDatabaseName FROM DISK = 'C:BackupYourDatabaseName_Log.bak' WITH NORECOVERY; - Lặp lại lệnh này cho từng bản sao lưu nhật ký giao dịch theo thứ tự. Cuối cùng, thực thi lệnh sau để đưa cơ sở dữ liệu vào trạng thái trực tuyến:
RESTORE DATABASE YourDatabaseName WITH RECOVERY; - Đảm bảo các bản sao lưu nhật ký giao dịch được áp dụng theo thứ tự chính xác.
- Để khôi phục bản sao lưu nhật ký giao dịch, hãy sử dụng lệnh T-SQL sau:
- Khôi phục tệp hoặc nhóm tệp:
RESTORE DATABASE YourDatabaseName FILE = 'LogicalFileName' FROM DISK = 'C:BackupYourDatabaseName_File.bak' WITH REPLACE;Thay thế
LogicalFileNamebằng tên logic của tệp hoặc nhóm tệp. - Khôi phục chỉ sao chép:
RESTORE DATABASE YourDatabaseName FROM DISK = 'C:BackupYourDatabaseName_CopyOnly.bak' WITH REPLACE, COPY_ONLY;Tùy chọn
COPY_ONLYlà bắt buộc cho các lần khôi phục chỉ sao chép.
Sao lưu và Khôi phục Microsoft SQL với NAKIVO
NAKIVO Backup & Replication là giải pháp bảo vệ dữ liệu toàn diện hỗ trợ sao lưu các máy chủ chạy cơ sở dữ liệu MS SQL. Bản sao lưu Microsoft SQL được tạo khi bạn sao lưu một máy Windows được triển khai dưới dạng máy vật lý hoặc máy ảo. Do đó, bạn có thể bảo vệ toàn bộ máy chủ cùng với các cơ sở dữ liệu Microsoft SQL đang chạy trên máy chủ đó. Giải pháp NAKIVO cho phép bạn khôi phục toàn bộ máy vật lý hoặc máy ảo, một cơ sở dữ liệu Microsoft SQL cụ thể hoặc các đối tượng cơ sở dữ liệu. Cách tiếp cận này giúp tăng tốc quá trình khôi phục và mang lại sự linh hoạt cao hơn trong quá trình khôi phục.
Ưu điểm của việc sao lưu Microsoft SQL Server bằng giải pháp NAKIVO là khả năng áp dụng phương pháp sao lưu gia tăng. Sao lưu gia tăng giúp tăng tốc quá trình sao lưu và tiết kiệm không gian lưu trữ. Các kỹ thuật nén, mã hóa và cắt bớt nhật ký SQL giúp việc sử dụng không gian lưu trữ hiệu quả hơn, đồng thời đảm bảo quá trình sao lưu diễn ra nhanh chóng và an toàn. Các tác vụ sao lưu được lên lịch và tự động hóa.
Sao lưu máy chủ chạy SQL: Hướng dẫn từng bước với NAKIVO
Thực hiện các bước sau để sao lưu máy Windows có cơ sở dữ liệu MS SQL dưới dạng NAKIVO Backup & Replication:
- Mở giao diện web của NAKIVO Backup & Replication trong trình duyệt web.
- Đảm bảo rằng máy chủ Windows vật lý hoặc máy ảo cần thiết có cài đặt Microsoft SQL Server đã được thêm vào danh sách tài sản của NAKIVO. Bạn có thể thêm máy vật lý, máy chủ VMware vCenter, máy chủ ESXi và các mặt hàng khác vào danh mục hàng tồn kho bằng cách truy cập
Settings > Inventory.Đảm bảo có đủ dung lượng trống trong kho lưu trữ dự phòng để lưu trữ các bản sao lưu.

- Tạo tác vụ sao lưu mới cho máy tính có cài đặt MS SQL Server. Với NAKIVO, bạn có thể sao lưu máy tính có MS SQL Server khi hệ thống đang hoạt động. Nhấp vào
Jobs > +(Tạo tác vụ mới) và chọn loại tác vụ cần thiết. Trong ví dụ này, chúng tôi sao lưu một máy vật lý và chọnPhysical machine backup job.
- Chọn máy có cài đặt MS SQL Server trong bước đầu tiên của trình hướng dẫn tác vụ sao lưu mới. Chúng tôi chọn máy Windows Server 2022 có cài đặt MS SQL Server 2022. Bạn có thể chọn nhiều máy trong một tác vụ. Nhấp vào
Nextở mỗi bước của trình hướng dẫn để tiếp tục.
- Chọn kho lưu trữ sao lưu nơi bạn muốn lưu trữ bản sao lưu của mình. Bạn có thể chọn kho lưu trữ sao lưu cục bộ hoặc kho lưu trữ trên đám mây. Nên sử dụng kho lưu trữ cục bộ trước, sau đó tạo bản sao lưu lên đám mây hoặc kho lưu trữ khác để tuân thủ quy tắc sao lưu 3-2-1.

- Chọn các tùy chọn lịch trình. Các phiên bản mới nhất của giải pháp NAKIVO sử dụng tính năng kết hợp phương pháp lập lịch và lưu giữ. Bạn có thể cấu hình các quy tắc lưu trữ linh hoạt cho các tác vụ sao lưu, bao gồm cả tác vụ sao lưu cơ sở dữ liệu MS SQL. Đặt tên cho từng lịch trình.

- Cấu hình các tùy chọn tác vụ sao lưu. Nhập tên tác vụ, ví dụ: Tác vụ sao lưu MS SQL Server 2022. Cấu hình cài đặt sao lưu toàn bộ. Theo mặc định, sao lưu gia tăng được sử dụng cùng với các bản sao lưu toàn bộ định kỳ. Các bản sao lưu toàn bộ có thể là
Active fullvà {177}. Nhấp vàoFinishhoặcFinish & Runđể chạy tác vụ ngay lập tức.
- Chờ cho đến khi tác vụ sao lưu hoàn tất.
Lưu ý rằng NAKIVO Backup & Replication hỗ trợ cắt ngắn nhật ký cho Microsoft SQL Server, Exchange Server và Oracle Database để tiết kiệm không gian lưu trữ trên máy chủ nguồn sau khi sao lưu.
Khôi phục cơ sở dữ liệu SQL với NAKIVO
Quy trình khôi phục cơ sở dữ liệu MS SQL trong NAKIVO Backup & Replication rất đơn giản. Bạn có thể khôi phục toàn bộ máy vật lý hoặc máy ảo cùng với cơ sở dữ liệu. Ngoài ra, bạn có thể sử dụng tính năng khôi phục chi tiết và chỉ khôi phục các đối tượng cơ sở dữ liệu (toàn bộ cơ sở dữ liệu, các bảng, v.v.).
Thực hiện các bước sau để khôi phục cơ sở dữ liệu MS SQL hoặc các đối tượng cơ sở dữ liệu cụ thể trong NAKIVO Backup & Replication:
- Trong giao diện web của giải pháp NAKIVO, truy cập
Jobs > Recover > Microsoft SQL Server objects.
- Tại bước đầu tiên của
Object Recovery Wizard for Microsoft SQL Server, chọn bản sao lưu của máy tính chứa cơ sở dữ liệu MS SQL Server và chọn điểm khôi phục. Đảm bảo rằng ô chọnAutomatically locate application databasesđã được đánh dấu. NhấnNextở mỗi bước của trình hướng dẫn khôi phục để tiếp tục.
- Chọn một máy chủ khôi phục. Máy chủ khôi phục có thể là máy chủ gốc được sử dụng làm nguồn để tạo bản sao lưu hoặc một máy tính mới không chứa cơ sở dữ liệu đang được khôi phục. Chúng ta chọn máy chủ gốc để khôi phục cơ sở dữ liệu.
- Nhập thông tin đăng nhập của máy chủ khôi phục và nhấp vào
Test Connection. - Chọn một phiên bản SQL trên máy chủ này sau khi kết nối thành công.

- Tại bước
Objectscủa trình hướng dẫn khôi phục, chọn cơ sở dữ liệu bạn muốn khôi phục (một tệp.mdf).
Nếu bạn không cần khôi phục toàn bộ cơ sở dữ liệu, hãy nhấp vào biểu tượng
>trong khung bên trái tại tên cơ sở dữ liệu để mở rộng đối tượng cơ sở dữ liệu và chọn các đối tượng cơ sở dữ liệu cụ thể cần khôi phục.
- Nhập thông tin đăng nhập của máy chủ khôi phục và nhấp vào
- Xác định phạm vi khôi phục các tùy chọn công việc phục hồi từ các tùy chọn được liệt kê bên dưới:
Phạm vi khôi phục :
- Khôi phục lược đồ và dữ liệu
- Chỉ khôi phục lược đồ
Loại khôi phục :
- Khôi phục về vị trí ban đầu
- Khôi phục về vị trí tùy chỉnh
- Xuất
Hành vi ghi đè :
- Đổi tên mục đã khôi phục nếu mục đó tồn tại (mặc định)
- Bỏ qua mục đã khôi phục nếu mục đó tồn tại
- Ghi đè lên mục gốc nếu mục đó tồn tại

Nhấp vào
Recovervà đợi cho đến khi cơ sở dữ liệu hoặc các đối tượng cơ sở dữ liệu đã chọn được khôi phục.