Tìm kiếm PhanVien.Com Web
Download PhanVien.Com Toolbar
Danh mục thông tin

Khôi phục SQL Server từ Transaction Log

Backup là một phần công việc cần thực hiện trong quá trình nâng
cấp và vận hành máy chủ SQL. Và phần công việc còn lại là tiến trình
restore được thực hiện mỗi khi máy chủ SQL có lỗi phát sinh.

Khôi phục SQL Server từ Transaction Log

Một trongnhững tình huống này có thể liên quan tới quá trình restore từ fileTransaction Log (Bản ghi giao tác) Backups.

Transaction Log (có tên gọi khác là Database Log hay Binary Log) là mộtlược sử hành động  được hệ thống  quản lý cơ sở dữ liệu  thực thi để đảmbảo thuộc tính ACID (atomicity, consistency, isolation, durability) khihệ thống bị lỗi.

Có một rắc rối với Transaction Log Backups đó là yêu cầu restore từnhiều file hơn là chỉ từ một file full backup. Để khôi phục thành côngcơ sở dữ liệu, bạn phải sử dụng mọi file Transaction Log Backups đãđược tạo và chúng phải được khôi phục theo trật tự khi tạo. Nếu mộtfile Transaction Log Backup  nào đó bị lỗi, bạn sẽ không thể thực hiệnkhôi phục bất kì file Transaction Log Backup  nào sau file lỗi đó. Chúngcần được khôi phục theo thứ tự và bạn không thể bỏ qua bất kì file nào.

Trên đây là 5 bước cơ bản cần thực hiện khi tiến hành restore một cơ sở dữ liệu  SQL từ Transaction Log.

Bước 1: Backup  phần hoạt động  của Transaction Log

Trong trường hợp máy chủ  SQL bị lỗi và bạn cần phải restore sang mộtmáy chủ khác, trước tiên bạn cần backup  phần hoạt động  của TransactionLog để lưu lại những giao tác đang sử dụng vẫn chưa được backup  vào mộtTransaction Log Backup  hiện có. Để tạo Transaction Log Backup  cuối nàybạn hãy sử dụng lệnh có cú pháp tương tự như sau:
BACKUP LOG Northwind
TO DISK= 'C:\SQL\Backup\North.bak'
WITH NO_TRUNCATE
Trong đó C:\SQL\Backup\North.bak là địa chỉ lưu file Transaction Log Backup.

Lệnh này sẽ tạo một Transaction Log Backup  khác sẽ được sử dụng trong tiến trình restore.

Bước 2: Xác định dữ liệu  cần restore


Nếu bạn chưa biết những thông tin  quan trọng  nào trong cơ sở dữ liệucần phải restore thì bạn hãy thực hiện truy vấn những bản biểu của máychủ SQL trong msdb, những bảng này sẽ hiển thị mọi file backup  trên máychủ, bao gồm những file backup  được tạo bằng Maintenance Plans, wizardtrong Enterprise  Manager, những lệnh T-SQL và những công cụ nhóm bakhác sử dụng tính năng SQL Server  được tích hợp để tạo file backup.

Trong msdb sẽ chứa những loại bảng sau:
  • backupfile - Chứa một bản ghi cho mỗi dữ liệu  hay file Log đã được backup.
     
  • backupmediafamily - Chứa một bản ghi cho mỗi nhóm phương tiện.
     
  • backupmediaset – Chứa một bản ghi cho mỗi bộ công cụ backup.
     
  • backupset – Chứa một bản ghi cho mỗi nhóm file backup.
Nếu muốn thực hiện một quá trình restore hoàn toàn, trước hết bạn phảithực hiện Full Backup  bao gồm Differential (file cập nhật) và nhữngTransaction Log Backup  cho Differential. Những bảng trên sẽ hiển thịfile backup  thực hiện trước trên cùng, vì vậy bạn cần tìm đến file FullBackup mới nhất và những file backup  khác được tạo sau khi thực hiệnFull Backup.

Bước 3: Kiểm tra nội dung  của file Backup

Ngoài lệnh RESTORE thực hiện khôi phục những file backup, một số lệnh RESTORE khác cho phép bạn kiểm tra nội dung  của những file backup. Những lệnh này bao gồm RESTORE HEADERONLY RESTORE FILELISTONLY.

RESTORE HEADERONLY

Lệnh này cho phép bạn kiểm tra thông tin  tổng quát của mọi file backuptrên một công ụ backup  cụ thể. Lệnh này rất hữu dụng khi bạn cầnrestore từ nhiều file backup  hay nếu file backup  đó là của một máy chủkhác mà bạn không quản lý. Để kiểm tra những gì được lưu trữ  trong filebackup đó, bạn hãy chạy lệnh này trong Query Analyzer.

RESTORE FILELISTONLY

Lệnh này cho phép bạn kiểm tra danh sách cơ sở dữ liệu  và những fileLog trong nhóm file backup, dung lượng của dữ liệu  và các file Log.LogicalName và PhysicalName là những thành phần dữ liệu  chính được sửdụng trong suốt tiến trình restore. Cú pháp lệnh có dạng:
RESTORE FILELISTONLY FROM DISK = 'C:\SQL\Backup\North.bak'

Bước 4: Lựa chọn tùy chọn restore

Có một số tùy chọn để áp dụng khi restore file backup, bao gồm nhữngfile Transaction Log Backup. Dưới đây là một số tùy chọn restore:

NORECOVERY

Tùy chọn này cho phép restore những file backup  bổ sung. Bạn có thể sửdụng nó khi restore Full, Differential hay Transaction Log Backup. Bạnhãy dùng lệnh sau:
RESTORE DATABASE NORTH
FROM DISK = 'C:\SQL\Backup\North.bak'
WITH NORECOVERY
RECOVERY

Đây là tùy chọn mặc định nếu không có tùy chọn nào được lựa chọn. Tùyhconj này sẽ được áp dụng cho tiến trình restore cuối. Khi được ápdụng, bạn không thể restore những file backup  bổ sung, nếu muốn thựchiện restore cả những file backup  bổ sung thì bạn phải thực hiệnrestore lại từ đầu. Tùy chọn này có thể được sử dụng khi restore Full,Differential hay Transaction Log Backup. Để lựa chọn tùy chọn này bạnhãy dùng lệnh sau:
RESTORE LOG NORTH
FROM DISK = 'C:\SQL\Backup\North_Log.bak'
WITH RECOVERY
STANDBY

Tùy chọn này cho phép bạn chuyển cơ sở dữ liệu  sang chế độ Read-Only(chỉ xem), nhưng nó vẫn cho phép restore những file Transation Log bổsung. Tùy chọn này có thể được sử dụng khi restore Full, Differentialhay Transaction Log Backup. Lệnh lựa chọn tùy chọn này có dạng:
RESTORE LOG NORTH
FROM DISK = 'C:\SQL\Backup\North_Log.bak'
WITH STANDBY  = 'c:\undo.ldf'
MOVE

Khi restore cơ sở dữ liệu  sang một máy chủ  khác, có thể bạn sẽ phải sửdụng tùy chọn MOVE nếu những máy chủ  không được cài đặt theo cùng mộtphương pháp. Như đã nhắc đến ở trên, khi sử dụng LogicalName (tênlogic) và PhysicalName (tên vật lý) từ lệnh RESTORE FILELISTONLY. Tùychọn MOVE cho phép bạn di chuyển những file vật lý tới một vị trí kháctrên máy chủ. Tùy chọn này cần được sử dụng cho mọi loại file backupbao gồm Full, Differential và Transaction Log. Lệnh lựa chọn tùy chọnnày có dạng:
RESTORE LOG NORTH
FROM DISK = 'C:\SQL\Backup\North_Log.bak'
WITH RECOVERY,
MOVE 'Northwind_Data' TO 'c:\data\Northwind.mdf',
MOVE 'Northwind_Log' TO 'c:\data\Northwind _log.ldf'
Bước 5: Lựa chọn thời điểm Restore

Ngoài việc restore hoàn toàn Transaction Log, SQL Server  cũng có nhữngtùy chọn dừng tại một thời điểm cụ thể hay dấu giao tác. Bạn có thể lựachọn những tùy chọn này khi biết khi nào hay vị trí lỗi xảy ra trên cơsở dữ liệu  này, bạn có thể phục hồi những giao tác cơ sở dữ liệu  chomột điểm cụ thể để tránh lỗi xảy ra. Ví dụ, nếu ai đó xóa mọi bản ghitrong một bảng, có thể bạn sẽ muốn khôi phục cơ sở dữ liệu  tới thờiđiểm trước khi khôi phục tới bảng đã bị xóa bản ghi đó.

STOPAT

Tùy chọn này giúp khôi phục mọi giao đã thực hiện tính đến một thời điểm nhất định. Ví dụ:
RESTORE LOG Northwind
FROM DISK = 'C:\SQL\Backup\North_Log.bak'
WITH RECOVERY,
STOPAT = 'Sep 22, 2009 09:00 AM'
Hai lệnh tiếp theo giúp bạn khôi phục những giaotác sử dụng dấu giao tác mà phải là những giao tác đã đặt tên được sửdụng trong ứng dụng. Nếu sử dụng những giao tác chưa được đặt tên thìtùy chọn này sẽ không có tác dụng.

STOPATMARK

Với tùy chọn này bạn có thể khôi phục mọi giao tác xảy ra cho đến mốcgiao tác Invoice1024. Bổ sung lệnh có cú pháp như sau để lựa chọn tùychọn này:
RESTORE LOG Northwind
FROM DISK = 'C:\SQL\Backup\North_Log.bak'
WITH RECOVERY,
STOPATMARK = 'Invoice1024'
STOPBEFOREMARK
Tùy chọn này giúp khôi phục mọi giao tác đã thực hiện xảyra trước mốc giao tác Invoice1024. Để sử dụng tùy chọn này bạn hãy bổsung lệnh có cú pháp như sau:
RESTORE LOG Northwind
FROM DISK = 'C:\SQL\Backup\North_Log.bak'
WITH RECOVERY,
STOPBEFOREMARK = 'Invoice1024'
Một số tùy chọn khôi phục có thể được sử dụng cho mọi filebackup và những tùy hconj nhất định chỉ được sử dụng cho fileTransaction Log Backup.



Tìm bài viết khác
Theo QUANTRIMANG.COM
Updated: 22/09/2009 | Views: 5 | Comments: 0

Comments - Khôi phục SQL Server từ Transaction Log

Hiện tại chưa có bình luận nào về bài viết Khôi phục SQL Server từ Transaction Log!

Bạn có ý kiến gì về bài viết Khôi phục SQL Server từ Transaction Log này? Hãy gởi suy nghĩ, bình luận, đánh giá, lời khuyên ... của bạn về bài viết Khôi phục SQL Server từ Transaction Log bạn tại đây.

Other articles

Similar Articles Khôi phục SQL Server từ Transaction Log

Older than Khôi phục SQL Server từ Transaction Log in Cơ Sở Dữ Liệu

Newer than Khôi phục SQL Server từ Transaction Log in Cơ Sở Dữ Liệu

Recently Published - Cơ Sở Dữ Liệu
Day ao thuat
Latest Comments in Cơ Sở Dữ Liệu
By TuấnBQ. Bài viết này rất hay, và em cũng hy vọng sẽ có các bài tiếp theo về .....
Most Comments in Cơ Sở Dữ Liệu
Monthly Most Views - Cơ Sở Dữ Liệu
  English Tiếng Việt 
Bạn đang xem bài viết Khôi phục SQL Server từ Transaction Log được gởi trong chủ đề Cơ Sở Dữ Liệu - Công Nghệ Thông Tin. Bài viết Khôi phục SQL Server từ Transaction Log này được lưu trên Server thành hai bản: Khôi phục SQL Server từ Transaction Log có dấuKhôi phục SQL Server từ Transaction Log không dấu. Bạn có thể gởi ý kiến bình luận, đóng góp về bài viết Khôi phục SQL Server từ Transaction Log này tại phần gởi bình luận ở cuối nội dung bài viết. Lưu ý nội dung của bài viết Khôi phục SQL Server từ Transaction Log này có thể không còn phù hợp với thời điểm hiện tại. Nếu phát hiện điều này, xin bạn báo cho BQT biết để gỡ bỏ nó.
Home Page | Privacy | Contact | Friend Links | Search | Sitemap | Up
Copyright © 2008 PhanVien.Com . All rights reserved.