Tập bài giảng SQL Server (Phần 2)

Tập bài giảng SQL Server  
Chƣơng 6  
SAO LƢU VÀ PHỤC HỒI DỮ LIỆU  
6.1. Khái niệm sao lƣu cơ sở dữ liệu  
Sao lưu dữ liệu là việc tạo ra các bản sao của dữ liệu gốc, cất giữ ở một nơi an  
toàn. Cơ sơ dữ liệu luôn là kho thông tin vô cùng quan trọng đối với bất kỳ một doanh  
nghiệp hay tổ chức sử dụng chúng. Chúng có thể bị hỏng hóc một phần hay toàn bộ  
bất kỳ lúc nào cho dù cơ sở hạ tầng về công nghệ thông tin nói chung và máy chủ chứa  
cơ sở dữ liệu nói riêng có tốt đến đâu thì việc sự cố bất thường xảy ra là điều khó tránh  
khỏi. Dữ liệu có thể bị mất hoặc bị xâm nhập trái phép bới các nguyên nhân như thiết  
bị lưu trữ bị hỏng, do người dùng vô tình xóa hay do kẻ xấu cố ý phá hoại cơ sở dữ  
liệu. Vì vậy người quản trị cơ sở dữ liệu cần phải có kế hoạch sao lưu để tránh và giảm  
thiểu rủi ro cho cơ sở dữ liệu.  
SQL Server 2008 cung cấp chức năng sao lưu và phục hồi dữ liệu rất hoàn hảo,  
chúng ta có thể thao tác trực tiếp hay theo lịch trình định sẵn.  
6.1.1.Các loại bản sao lưu cơ sở dữ liệu  
1) Full backup:  
Full backup là mt bản sao lưu đầy đủ của cơ sở dữ liệu tr ên các phương tiện  
lưu tr. Quá trình full backup có thể tiến hành mà không  
cần ẩn cơ sở dữ liệu, nhưng  
quá trình này lại chiếm mt lượng lớn tài nguyên hệ thống và có thể ảnh hưởng  
nghiêm trng tới thời gian đáp ứng các yêu cầu của hệ thống.  
2) Diferential backup:  
Differential backup được xây dng nhm làm gim thi gian cần thiết để thc  
hiện quá trình full backup. Differential backup chsao lưu nhng thay đổi trên dữ  
liu kể từ lần full backup gần nhất. Trong nhng hệ thống CSDL lớn, quá trình  
differential backup sẽ sử dụng tài nguyên ít hơn rất nhiu so với quá trình full backup  
và có thkhông ảnh hưởng đến hiệu suất của hệ thống.  
Quá trình differential chsao lưu nhng sự thay đổi của dữ liệu từ lần full  
backup gn nhất, do đó khi có sự cố với cơ sở dữ liệu nếu không có bản sao lưu của  
quá trình full backup thì  
b ản sao lưu của quá trình differential backup s trở nên vô  
nghĩa.  
Ví dụ trong chương trình Quản lý tuyển sinh của một trường Đại học, ta thc  
hiện full backup ào cuối ngày thứ 6 hàng tuần và thc hiện differential backup  
vào ối các ngày từ thứ 2 tới thứ . Nếu cơ sở dữ liệu sự cố ào sáng th4,  
quản trị viên cơ sở dữ liệu sẽ phục hồi dữ liệu bằng bản sao ưu của quá trình full  
backup ủa ngày th6 tuần trước và sau đó phục hồi các thay đổi của dữ liu bằng  
181  
v
t
5
v
l
c
Tập bài giảng SQL Server  
cách áp dụng bản sao lưu của quá trình differential backup vào ngày th3.  
3) Transaction log backup:  
Quá trình full bac kup và differential backup chiếm nhiều tài nguyên hệ  
thống ảnh hưởng đến hiệu suất  
vào sau gilàm việc. Tuy nhiên điều này có thdẫn đến các mất mát dữ liệu trong  
một ng ày làm việc nếu cơ sở dữ liệu có sự cố trước khi quá trình sao ưu diễn ra.  
Transaction log backup là ột giải pháp nhm gim thiểu tối đa lượng dữ liệu thể  
mất khi có sự cố cơ sở dữ liệu.  
làm việc hệ thống nên thường được thc hin  
l
m
Trong quá trình hoạt động, SQL Server sử dụng transaction log để theo dõi tất  
cả các thay đổi trên cơ sở dữ liệu. Log bo đảm cơ sở dữ liệu có thphục hồi sau  
nhng sự cố đột xuất và cũng đảm bảo người dùng có thquay ngược các kết quả  
trong các giao tác cơ sở dữ liệu. Các giao tác chưa hoàn thành được lưu trong log  
trước khi được lưu vĩnh viễn trong cơ sở dữ liệu.  
Transaction log backup sao lưu transaction log của cơ sở dữ liệu vào thiết bị  
lưu tr. Mỗi khi transaction log được sao lưu, SQL Server  
ã thc hiện thành công (committed tracsaction) và ghi các transaction vào phương  
tiện sao lưu. Transaction log backup sử dụng tài nguyên hthống ít hơn rt nhiu so  
bỏ đi các transaction  
đ
với full backup  
bất kthi gian  
v
à differential backup, do đó có thể sử dụng transaction log backup  
n
ào mà không ợ ảnh hưởng đến hiệu suất hệ thống.  
s
Trở lại với dụ cơ sở dữ liệu quản lý tuyển sinh. Trường Đại học này thc  
hiện full backup ào tối thứ 6 và differential backup vào ối từ thứ 2 tới thứ 5.  
v
t
Trường Đại học thc hiện thêm quá trình transaction log backup mỗi giờ một ln.  
Giả sử sự cố cơ sở dữ liệu xy ra vào 9h:05 sáng th4. Quá trình khôi phục lại cơ  
sở dữ liệu nsau: Dùng full backup và differential backup của tối thứ 6 và tối thứ  
3 để phục hồi lại trạng thái cơ sở dữ liệu vào tối thứ 3. Tuy nhiên quá trình này vn  
còn để mất dữ liệu trong 2 gi(7 9h) sáng th4. Tiếp theo sử dụng 2 bản sao lưu  
transaction backup lúc 8h và 9h sáng để khôi phục CSDL về trạng thái lúc 9h sáng  
th4.  
6.1.2. Thực hiện sao lưu  
Bước 1: Chọn cơ sở dữ liệu/Chọn chuột phi/Chn Tasks/Chn Back up….  
182  
Tập bài giảng SQL Server  
Hình 6.1. Sao lưu cơ sở dữ liệu  
Bước 2: Chọn loại Backup trong mục Backup type  
- Chọn loại Full nếu muốn tạo bản sao Full Backup  
- Chọn loại Differental nếu muốn tạo bản sao Differental  
- Chọn loại Transaction Log nếu muốn tạo bản sao Transaction Log  
Hình 6.2. Loại sao lưu cơ sở dữ liệu  
183  
Tập bài giảng SQL Server  
Bước 3: Chọn thành phần backup trong mục Backup component  
- Tùy chọn Database (mặc định): Cho phép tạo bản sao là sao lưu tất cả những  
gì sở dữ liệu đang có  
- Tùy chọn Files and filegroups: Cho phép chọn bản sao tệp tin dữ liệu ta có thể  
chọn file trong nhóm file (*.mdf, *.ndf): gồm những file chính và file mở rộng.  
Hình 6.3. File sao lưu  
Trên cây thư mục chọn các file cần sao lưu. Hộp kiểm tra Copy Only Backup  
cho phép sao lưu bản sao lưu cơ sở dữ liệu mà không ghi lại quá trình sao chép để  
phục vụ cho tiến trình phục hồi lại cơ sở dữ liệu từ bản sao này.  
Bước 4: Thiết lập thời gian sao lưu trong mục Backup set will expire thiết lập  
thời gian sao lưu  
- Tùy chọn After mặc định sẽ cho ta bản sao dữ liệu ngay khi nhấp OK để chấp  
nhận.  
- Tùy chọn On để chỉ định thời gian sao lưu. Ta có thể thiết lập thời gian để hệ  
thống tự động sao lưu vào thời gian đó.  
Bước 5 : Chọn vị trí lưu trữ file trong mục Destination:  
- Chọn tùy chọn Disk để lưu trữ file lên đĩa.  
- Đường dẫn và lưu file back up mặc định đã được khai báo trong phần  
Destination. Nếu muốn thay đổi lại đường dẫn có thể chọn Remove để loại bỏ đường  
dẫn mặc định. Sau đó chọn Add để nhập vào tên file và vị trí lưu trữ khác.  
184  
Tập bài giảng SQL Server  
Hình 6.4. Chọn đường dẫn lưu trữ file backup  
- Nhấp chuột chọn để chọn vị trí lưu trữ  
Hình 6.5. Chọn thư mục lưu file backup  
+ Chọn thư mục lưu trữ trên cây thư mục.  
+ Nhập tên file backup trong mục File name.  
6.2. Phục hồi cơ sở dữ liệu  
6.2.1. Khái niệm  
Phục hồi dữ liệu là quá trình khôi phục lại cơ sở dữ liệu mà trước đó dữ liệu đã  
được sao lưu. Khi cơ sở dữ liệu đang vận hành gặp sự cố do các yếu tố khách quan hay  
chủ quan thì việc phục hồi dữ liệu đã sao lưu trước đó luôn được ưu tiên hàng đầu  
185  
Tập bài giảng SQL Server  
nhằm khắc phục lại cơ sở dữ liệu cho ứng dụng để người sử dụng tiếp tục làm việc.  
Trong một số trường hợp, muốn lấy lại cơ sở dữ liệu dựa vào bản sao lưu trước đó thì  
ta cũng tiến hành phục hồi lại chúng. Ta có thể phục hồi dữ liệu từ các file bản sao lưu  
dạng Full, bản sao lưu dạng Differential, bản sao theo dạng tệp tin, bản sao lưu dạng  
copy.  
6.2.2. Thực hiện phục hồi  
Bước 1: Chọn ngăn Database/Chọn cơ sở dữ liệu/ Chọn chuột phải / Chọn  
Task/Chọn Restore/Chọn Database.  
Hình 6.6. Thao tác phục hồi dữ liệu  
Bước 2: Chọn nguồn khôi phục trong mục Source of restore  
- Bản sao lấy từ cơ sở dữ liệu chọn mục Database: Cơ sở dữ liệu qlts trước đó  
đã được tạo thành hai bản sao là Full và Differential. Nếu muốn sao lưu toàn bộ dữ  
liệu ở lần sao lưu gần nhất chọn cả hai file như hình trên. Còn nếu muốn lấy dữ liệu cũ  
hơn chỉ cần chọn file sao lưu loại Full.  
Hình 6.7. Chọn cơ sở dữ liệu nguồn cần khôi phục  
- Bản sao lấy từ tệp tin chọn From device:  
186  
Tập bài giảng SQL Server  
Hình 6.8. Khôi phục dữ liệu từ thiết bị lưu trữ  
chọn tên file sao lưu  
- Click  
Hình 6.9. Bổ sung file backup  
- Chọn nút Add để chọn file trên cây thư mục.  
Hình 6.10. Chọn file backup để khôi phục  
187  
Tập bài giảng SQL Server  
- Chọn tệp tin bản sao/ Chọn OK. Khi đó, trở về màn hình 6.9.  
- Chọn OK. Trở về màn hình Restore. Đánh dấu chọn file back up trong cột  
Restore.  
Hình 6.11. Chọn file backup  
Bước 3. Chọn OK. Nếu phục hồi thành công sẽ nhận được thông báo.  
Hình 6.12. Thông báo khôi phục thành công  
6.3. Xây dựng kế hoạch sao lƣu cơ sở dữ liệu  
Mỗi khi sự cố xảy ra, rủi ro để mất dữ liệu có thể liên quan đến các tập tin đã  
sao lưu. Trong một số trường hợp sự cố ngoài ý muốn ta có thể mất những tệp tin đã  
sao lưu lẫn cơ sở dữ liệu đang chạy. Việc sao chép các tập tin đã sao lưu vào ổ đĩa  
khác hay thiết bị chuyên dùng là cách tốt nhất để tránh rủi ro. Ngoài ra tạo tệp tin sao  
lưu theo định kỳ cũng là cách mà bạn có thể tránh rủi ro. Để đảm bảo khi sự cố xảy ra,  
bạn có bản sao mới nhất để phục hồi thì phải lập kế hoạch sao lưu, kế hoạch này sẽ  
thực thi theo lộ trình đã định sẵn. Để thực hiện lập kế hoạch sao lưu cần thực hiện 2  
công việc:  
- Khai báo kế hoạch chi tiết ứng với lịch trình.  
- Khai báo nghiệp vụ sao lưu cho kế hoạch chi tiết.  
6.3.1. Tạo kế hoạch chi tiết  
Tạo kế hoạch chi tiết sao lưu là quá trình lập kế hoạch cho việc sao lưu dữ liệu.  
Một kế hoạch có thể gồm nhiều lịch biểu. Mỗi lịch biểu được coi như kế hoạch con  
(subplan). Mỗi một kế hoạch con (subplan) có thể thiết lập lịch trình về thời gian sao  
lưu. Ta có thể lập kế hoạch sao lưu theo từng ngày trong tuần, theo từng ngày hoặc  
theo từng tháng. Tùy theo tính chất của cơ sở dữ liệu mà lập lịch sao lưu có những cơ  
sở dữ liệu cần phải được sao lưu sau mỗi ngày làm việc, nhưng cũng có những cơ sở  
dữ liệu được chỉ định theo từng tuần hoặc theo định kỳ hàng tháng và quý. Công việc  
188  
Tập bài giảng SQL Server  
sao lưu thường được thực hiện vào cuối phiên làm việc để tránh ảnh hưởng đến hiệu  
suất làm việc.  
Kế hoạch sao lưu được quản lý bởi dịch vụ SQL Server Agent. Do đó để có thể  
thực thi được kế hoạch này dịch vụ SQL Server Agent cần được thiết lập ở trạng thái  
running.  
Các bước tạo kế hoạch sao lưu:  
Bước 1: Trong Object Explore, Chọn mục Management/ Chọn Management  
Plans/Chọn phải chuột/ Chọn New Mainternance Plan.  
Hình 6.13. Chọn chức năng New Mainternance Plan  
189  
Tập bài giảng SQL Server  
Bước 2: Đặt tên cho kế hoạch tại mục Name/Chọn OK.  
Hình 6.13. Đặt tên kế hoạch  
Bước 3: Khai báo cấu hình kế hoạch  
Hình 6.14. Khai báo cấu hình kế hoạch tạo bản sao  
- Chọn mục Subplan_1, xuất hiện cửa sổ khai báo từng kế hoạch chi tiết:  
+ Nhập tên cho kế hoạch tại mục Name  
+ Mô tả kế hoạch tại mục Description  
Hình 6.15. Khai báo kế hoạch chi tiết  
Bước 4: Lập lịch  
- Tại mục Schedule chọn biểu tượng  
190  
Tập bài giảng SQL Server  
Hình 6.16. Khai báo lịch trình thực hiện  
- Thiết lập các thông số cho lịch  
+ Mục Schedule type: Chọn loại lịch trình  
Start automatically when SQL Server Agent start: Thực hiện khi SQL  
Server Agent khởi động.  
Start whenever CPUs becom idle: Bắt đầu khi CPU không làm gì.  
Recurring : Lập lịch định k.  
On time: Vào thời gian nào  
+ Mục Frequecy: Chọn tần xuất thực hiện  
Occurs: chọn tần xuất thực hiện theo ngày/tuần/tháng.  
Tùy chọn Daily: Theo ngày  
Hình 6.17. Chọn lịch trình sao lưu theo ngày  
Tùy chọn Weekly: Theo tuần  
Hình 6.18. Chọn lịch trình sao lưu theo tuần  
Tùy chọn Month: Theo tháng  
191  
Tập bài giảng SQL Server  
Hình 6.19. Chọn lịch trình sao lưu theo tháng  
+ Mục Daily frequency: Chọn thời gian thực hiện  
Occurs one at: Thời điểm xuất hiện  
Occurs: Tần suất xuất hiện  
Starting at: Thời điểm bắt đầu  
Starting at: Thời điểm kết thúc.  
+ Mục Duration: Chọn thời điểm thực hiện.  
Start date: Ngày bắt đầu  
End date: Ngày kết thúc  
No end Date: Không có ngày kết thúc.  
- Chọn OK để trở về màn hình kế hoạch chi tiết.  
Hình 6.20. Giao diện kế hoạch thứ nhất  
- Chọn OK để trở về giao diện khai báo cấu hình kế hoạch.  
Hình 6.21. Kết thúc khai báo chi tiết cho kế hoạch thứ nhất.  
Để bổ sung thêm kế hoạch sao lưu ta thực hiện như sau:  
192  
Tập bài giảng SQL Server  
- Chọn Add Subplan.  
- Khai báo như kế hoạch thứ nhất.  
6.3.2. Tạo nghiệp vụ sao lưu chi tiết  
Sau khi có kế hoạch sao lưu việc sao lưu cơ sở dữ liệu nào ứng với lịch biểu đã  
lập ra, ta cần khai báo tên cơ sở dữ liệu và kiểu bản sao tương ứng. Đó là thao tác tạo  
nghiệp vụ sao lưu.  
Các bước tạo nghiệp vụ sao lưu:  
Bước 1: Mở lịch biểu cần khai báo nghiệp vụ sao lưu.  
Bước 2: Trên hộp thoại công cụ (Toolbox), chọn Back Up Database Tas và kéo  
thả vào ngăn bên dưới của kế hoạch chi tiết/Kích chọn Back Up Database Task.  
Hình 6.22. Thêm nghiệp vụ vào kế hoạch sao lưu  
Bước 3: Chọn cơ sở dữ liệu sao lưu  
- Chọn mục Database  
- Chọn loại cơ sở dữ liệu  
+ All databases: Tất cả các cơ sở dữ liệu  
+ System databases: Cơ sở dữ liệu hệ thống  
+ All user databases: Cơ sở dữ liệu người ng  
+ These databases: Các cơ sở dữ liệu tùy chọn.  
- Chọn OK.  
193  
Tập bài giảng SQL Server  
Hình 6.23. Danh sách cơ sở dữ liệu  
Bước 4: Chọn thành phần sao lưu tại mục Backup Component  
- Databases  
- File and FileGroup  
Bước 5: Chọn thư mục lưu file backup trong mục Folder/Chọn OK.  
Hình 6.24.Cấu hình tạo bản sao  
Bước 6: Đặt tên cho nghiệp vụ: Chọn phải chuột trên khung Backup  
Database/Chọn Rename và đổi tên nghiệp vụ cho phù hợp.  
Bước 7: Lưu kế hoạch: Chọn Yes.  
Hình 6.25. Lưu kế hoạch chi tiết  
Sau khi lưu, kế hoạch sao lưu xuất hiện trên cửa sổ Explorer object.  
194  
Tập bài giảng SQL Server  
Hình 6.26. Kế hoạch chi tiết  
Kế hoạch này sẽ tự động chạy theo lịch trình đã định. Tuy nhiên, ta có thể chạy  
lịch trình này bất kỳ lúc nào bằng cách phải chuột vào kế hoạch và chọn Execute.  
6.4. Sao chép dữ liệu  
Sao lưu dữ liệu nhằm mục đích di chuyển cơ sở dữ liệu từ SQL Server này sang  
SQL Server khác trên cùng mạng.  
Các bước sao chép dữ liệu  
Bước 1: Chọn cơ sở dữ liệu/Chọn chuột phải/Chọn Task/ Chọn Copy Database.  
Hình 6.27. Thao tác sao chép cơ sở dữ liệu  
Bước 2: Chọn nút Next.  
195  
Tập bài giảng SQL Server  
Hình 6.28. Sao chép cơ sở dữ liệu  
Bước 3: Chọn cơ sở dữ liệu nguồn  
- Nhập tên máy chủ nơi chứa cơ sở dữ liệu cần sao chép tại mục Source server  
- Chọn quyền đăng nhập dữ liệu: Đăng nhập Windows hay SQL Server.  
Hình 6.29. Khai báo cơ sở dữ liệu nguồn  
Bước 4: Khai báo cơ sở dữ liệu đích  
- Khai báo tên máy chủ chứa cơ sở dữ liệu sao chép tới .  
- Đặt quyền đăng nhập là Windows hay SQL Server.  
196  
Tập bài giảng SQL Server  
Hình 6.30. Khai báo cơ sở dữ liệu đích  
Bước 5: Chọn phương thức sao chép  
SQL Server 2008 sử dụng hai phương pháp sao chép cơ sở dữ liệu từ SQL  
Server này sang SQL Server khác:  
- Phương pháp thứ nhất là loại bỏ (Detach). Sau đó thêm vào (Attach) SQL  
Server khác  
- Phương pháp thứ hai là sử dụng thư viện SQL Managemet Object (SMO).  
+ Chọn mục Use the detach and attach methoed.  
+ Chọn nút Next.  
Hình 6.31. Phương pháp sao chép  
197  
Tập bài giảng SQL Server  
Bước 6: Chọn cơ sở dữ liệu/Chọn nút Next.  
Hình 6.32. Chọn cơ sở dữ liệu sao chép  
Bước 7: Cấu hình cơ sở dữ liệu đích/Chọn Next.  
Hình 6.33. Cấu hình cơ sở dữ liệu đích  
Bước 8: Tại mục Package name nhập tên cho gói sao chép.  
198  
Tập bài giảng SQL Server  
Hình 6.34. Cấu hình cho gói sao chép  
Bước 9: Chọn chế độ thực thi/Chọn nút Next.  
- Run immediately: Chạy ngay lập tức  
- Schelude: Thực thi theo kế hoạch.  
Hình 6.35. Chọn chế độ thực thi  
199  
Tập bài giảng SQL Server  
Hình 6.36. Màn hình tóm tắt quá trình sao chép  
Bước 10: Chọn Finish để kết thúc.  
Trong trường hợp sao chép không thành công có thể nhận được thông báo  
Hình 6.37. Thông báo sao chép không thành công  
200  
Tải về để xem bản đầy đủ
pdf 128 trang baolam 10/05/2022 5820
Bạn đang xem 20 trang mẫu của tài liệu "Tập bài giảng SQL Server (Phần 2)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdftap_bai_giang_sql_server_phan_2.pdf