Xem mẫu

  1. 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à một 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 một lượng lớn tài nguyên hệ thống và có thể ảnh hưởng nghiêm trọng 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 dựng nhằm làm giảm thời gian cần thiết để thực hiện quá trình full backup. Differential backup ch ỉ sao lưu những thay đổi tr ên dữ liệu kể từ lần full backup gần nhất. Trong những hệ thống CSDL lớn, quá trình differential backup sẽ sử dụng tài nguyên ít hơn rất nhiều so với quá trình full backup và có th ể không ảnh hưởng đến hiệu suất của hệ thống. Quá trình differential chỉ sao lưu những sự thay đổi của dữ liệu từ lần full backup gần 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 thực hiện full backup v ào cuối ngày thứ 6 hàng tuần và thực hiện differential backup vào t ối các ngày từ thứ 2 tới thứ 5. Nếu cơ sở dữ liệu có sự cố v ào sáng thứ 4, quản trị viên cơ sở dữ liệu sẽ phục hồi dữ liệu bằng bản sao lưu của quá trình full backup c ủa ngày thứ 6 tuần trước và sau đó phục hồi các thay đổi của dữ liệu bằng 181
  2. 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 thứ 3. 3) Transaction log backup: Quá trình full bac kup và differential backup chiếm nhiều tài nguyên hệ thống và ảnh hưởng đến hiệu suất làm việc hệ thống nên thường được thực hiện vào sau giờ làm việc. Tuy nhiên điều này có thể dẫ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 lưu diễn ra. Transaction log backup là một giải pháp nhằm giảm thiểu tối đa lượng dữ liệu có thể mất khi có sự cố cơ sở dữ liệu. 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 bảo đảm cơ sở dữ liệu có thể phục hồi sau những sự cố đột xuất và cũng đảm bảo người dùng có thể quay 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 b ỏ đi các transaction đã thực 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 hệ thống ít hơn rất nhiều so với full backup và differential backup , do đó có thể sử dụng transaction log backup bất kỳ thời gian n ào mà không s ợ ảnh hưởng đến hiệu suất hệ thống. Trở lại với ví dụ cơ sở dữ liệu quản lý tuyển sinh. Trường Đại học này thực hiện full backup vào tối thứ 6 và differential backup vào tối từ thứ 2 tới thứ 5. Trường Đại học thực hiện thêm quá trình transaction log backup mỗi giờ một lần. Giả sử sự cố cơ sở dữ liệu xảy ra vào 9h:05 sáng thứ 4. Quá trình khôi phục lại cơ sở dữ liệu như sau: 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 v ẫn còn để mất dữ liệu trong 2 giờ (7 – 9h) sáng thứ 4. 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 thứ 4. 6.1.2. Thực hiện sao lưu Bước 1: Chọn cơ sở dữ liệu/Chọn chuột phải/Chọn Tasks/Chọn Back up…. 182
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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ữ - Click chọn tên file sao lưu 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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 dùng + These databases: Các cơ sở dữ liệu tùy chọn. - Chọn OK. 193
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
nguon tai.lieu . vn