Xin chào
Tôi sẽ tiếp tục giải thích về Ảnh chụp nhanh cơ sở dữ liệu trong SQL Server trong bài viết này.
Đọc các bài viết trước trước bài viết này.
Ảnh chụp nhanh cơ sở dữ liệu SQL Server -1
Ảnh chụp nhanh cơ sở dữ liệu SQL Server -2
Ảnh chụp nhanh cơ sở dữ liệu SQL Server -3
Lỗi này rất đáng sợ và tổn thất tài chính cho cơ sở dữ liệu Sản xuất.
Chúng tôi sẽ sử dụng cơ sở dữ liệu Ảnh chụp nhanh để trả về từ lỗi này. Chúng tôi sử dụng bảng AWBuildVersion của cơ sở dữ liệu Snapshot để tạo bảng AWBuildVersion trong cơ sở dữ liệu AdventureWorks. Chúng tôi sẽ sử dụng Chọn * vào lệnh cho việc này. Ảnh chụp màn hình sau khi chạy script như sau. Như được chỉ ra bởi dòng màu đỏ, Bảng đã thả được trả về cơ sở dữ liệu Nguồn cùng với dữ liệu của nó.
Hãy làm một ví dụ tương tự khác để dễ hiểu hơn. Hãy xóa dữ liệu của bất kỳ bảng nào và trả lại dữ liệu đó từ cơ sở dữ liệu Ảnh chụp nhanh. Như được phác thảo trong Hình 1.1 bên dưới, bảng BillOfMaterials ở cuối cơ sở dữ liệu ProductionWorks đang bị xóa khỏi cơ sở dữ liệu AdventureWorks. Khi chúng tôi chọn bộ đếm Chọn cùng một lúc, bản ghi 0 được truy vấn như thể hiện trong hình dưới đây.
Chúng tôi sử dụng lại cơ sở dữ liệu Ảnh chụp nhanh để trả về từ lỗi này. Như trong 2.1 ở trên, chúng ta đang thực hiện việc chèn cùng một lược đồ và bảng của cơ sở dữ liệu Ảnh chụp nhanh vào bảng tương ứng trong cơ sở dữ liệu nguồn. Theo cách tương tự, cùng một số lượng bản ghi dòng được chèn như thể hiện trong hình 2.2 khi chúng tôi truy vấn Select Count.
Cuối cùng, hãy tạo lỗi quản trị viên từ cơ sở dữ liệu Ảnh chụp và lần này chúng tôi sẽ Khôi phục cơ sở dữ liệu Nguồn từ cơ sở dữ liệu Snaphot. Do đó, ảnh chụp nhanh cơ sở dữ liệu AdventureWorks đang trở lại trạng thái ban đầu. Tôi đang xóa dữ liệu của bảng BillOfMaterials khỏi Lược đồ Sản xuất và đồng thời tôi đã xóa bảng SalesOrderDetail trong lược đồ Bán hàng. Ảnh chụp màn hình như sau. Vì dữ liệu của bảng BillOfMaterials ở cuối Lược đồ Sản xuất đã bị xóa, nên bảng SalesOrderDetail không xuất hiện vì nó bị xóa.
Chúng tôi đã thực hiện rất nhiều thay đổi trong cơ sở dữ liệu nguồn, chúng tôi đã nói rằng những thay đổi này luôn được ghi vào Tệp thưa. Hình ảnh sau đây cho thấy phiên bản cuối cùng của tệp tin thưa thớt. Trong khi kích thước ban đầu 1 không thay đổi, tệp tin thưa thớt ban đầu số 2 đã tăng lên. Lý do cho điều này, như tôi đã nói, là tất cả các thay đổi được thực hiện trong cơ sở dữ liệu Nguồn đều được viết ở đây. Vì vậy, khi người dùng đọc dữ liệu đã thay đổi, nó sẽ đọc từ Tệp thưa. Nếu người dùng truy vấn dữ liệu không thay đổi, nó sẽ được đọc từ cơ sở dữ liệu nguồn.
Bây giờ chúng ta hãy quay lại Ảnh chụp nhanh.
SQL Server 2017 Database Snaphot Restore coderestore
database
AdventureWorks
from
database_snapshot=
'AdventureWorksSnaphot'
Chúng tôi có thể truy vấn tất cả các bảng đã xóa và bị xóa sau khi khôi phục Ảnh chụp nhanh như hình trên.