Mục tiêu:
Trong bài này, Anh/Chị cần đạt được những mục tiêu sau:
1. Nắm được khái niệm và nguyên tắc sao lưu – phục hồi Cơ sở dữ liệu
2. Biết cách thực hiện import – export CSDL
3. Hiểu và nắm được nguyên tắc Detach – Attach CSDL
4. Nắm được cơ chế phân quyền gán quyền và biết cách thực hiện phân quyền gán quyền cho người dùng
Nội dung:
I. SAO LƯU VẦ PHỤC HỒI DỮ LIỆU
1. Sao lưu dữ liệu – Backup
Sao lưu là quá trình copy toàn bộ hoặc một phần database, transaction log, file, file group thành một tập dữ liệu backup
Việc sao lưu nên thực hiện thường xuyên vì một số lý do sau:
- Ổ đĩa bị hỏng (chứa các tập tin CSDL).
- Server bị hỏng.
- Nguyên nhân bên ngoài (thiên nhiên, hỏa hoạn, mất cắp,...)
- User vô tình xóa dữ liệu.
- Bị vô tình hay cố ý làm thông tin sai lệch.
- Bị hack
Các kỹ thuật sao lưu hiện nay gồm:
a. Full backup và Differential backup
Full backup: sao lưu một bản đầy đủ của CSDL 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 offline CSDL, 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.
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
Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 2 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 CSDL 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ụ: Công ty XYZ 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 CSDL có sự cố vào sáng thứ 4, quản trị viên CSDL 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 cách áp dụng bản sao l ưu của quá trình differential backup vào ngày thứ 3.
b. Transaction log backup
Quá trình full backup 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 CSDL 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ố CSDL. 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 CSDL. Log bảo đảm CSDL 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 CSDL. 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 CSDL.
Transaction log backup sao lưu transactio n log của CSDL 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ụ về công ty XYZ. Công ty 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. Công ty thực hiện thêm quá trình transaction log backup mỗi giờ một lần. Giả sử sự cố CSDL xảy ra vào 9h:05 sáng thứ 4. Quá trình khôi phục lại CSDL nhu 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 CSDL 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.
Các bước thực hiện sao lưu:
Mở Management Studio
Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 3
Mở cửa sổ Object Explorer, mở nút Database, chọn CSDL muốn thực hiện sao lưu dự phòng
Nháy phải chuột lên CSDL. Chọn Task, chọn BackUp, Xuất hiện hộp thoại
Trong mục Destination, Chọn tập tin dự phòng đã có và ấn Remove để xóa cái cũ. Chọn Add, sau chọn đường dẫn mới và nhập tên tập tin sao lưu dự phòng mới
Đưa các lựa chọn thực hiện Backup, trong đó: Backup Type: xác định kiểu thực hiện Backup
Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 4
Ấn OK để thực hiện sao lưu
2. Khôi phục cơ sở dữ liệu
Cho phép khôi phục lại CSDL từ tập tin dự phòng (.bak) đã có
Các mô hình phục hồi dữ liệu:
Full Recovery model: Là mô hình phục hồi toàn bộ hoạt động giao dịch của
dữ liệu (Insert, Update, Delete, hoạt động bởi lệnh bcp, bulk insert).
Bulk-Logged Recovery Model: Mô hình này được thực thi cho các thao tác
bcp, bulk insert, create index, writetext, updatetext, các hoạt động này chỉ nhật ký sự kiện vào log để biết mà không sao lưu toàn bộ dữ liệu, chi tiết như trong full recover.
Simple Recovery Model: Với mô hình này bạn chỉ phục hồi lại thời điểm
backup gần nhất mà không theo thời điểm khác trong quá khứ.
Các bước thực hiện:
Mở Management Studio
Mở cửa sổ Object Explorer, nháy phải chuột vào Database. Chọn Restore Database
Xuất hiện hộp thoại
Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 5
Trong To database: nhập tên CSDL mà muốn khôi phục
Chọn From Device trong phần Source for Restore. Chọn … và chọn
Add trong cửa sổ Specify Backup
Chọn tập tin sao lưu muốn khôi phục (tìm tập tin .bak)
Chọn OK
Chọn OK để thực hiện
Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 6
II. ĐẶT LỊCH SAO LƯU TỰ ĐỘNG
Đặt lịch sao lưu tự động là tạo một kế hoạch cho SQL Server để SQL Server tự động thực hiện sao lưu CSDL tại một thời điểm ấn định sẵn. Để đặt lịch sao lưu tự động phải đăng nhập với Login có vai trò “sysadmin”.
Các bước thực hiện:
Nháy phải chuột vào Maintenance Plans -> New Maintenace Plan
Đặt tên cho Maintenance Plan
Cấu hình lịch sao lưu tự động
Ấn định thời gian thực hiện
Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 7
Chọn Back Up Database Task: cho phép sao lưu CSDL theo thời gian ấn
định đưa các cài đặt của Back up Database Task
Thêm Maintenance Cleanup Task để cho phép xóa các bản sao lưu cũ hơn một khoảng thời gian cho trước tránh đầy bộ nhớ Server
Thực hiện cấu hình cho Maintenance Cleanup Task
Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 8
III. DETACH – ATTACH CƠ SỞ DỮ LIỆU
Detach – Attach là kỹ thuật hủy và nối ghép tập tin CSDL với Server (Tập tin của CSDL gồm tập tin dữ liệu và nhật ký có thể được copy từ vị trí khác)
1. Copy dữ liệu tập tin CSDL
Cho phép thực hiện copy CSDL sang một vị trí khác, sau đó sử dụng trên instance mới. Để copy thực hiện các bước sau:
Stop dịch vụ SQL của Instance có CSDL, có nghĩa là stop SQL Server không
cho phép chạy nữa
Copy các tập tin của CSDL sang vị trí cần thiết. Tập tin ở đây là file có phần
mở rộng .mdf
Start dịch vụ SQL của Instance để tiếp tục làm việc
2. Detach CSDL
Là bước thực hiện tách CSDL khỏi Instance, lúc này Instance không quản lý CSDL nhưng khác với xóa CSDL thì các tập tin chứa CSDL vẫn còn. Để tiến hành Detach, thực hiện:
Chọn CSDL cần Detach Nháy phải chuột
Chọn Task Chọn Dettach Database Chọn OK
3. Attach CSDL
Là kỹ thuật để ghép nối tập tin cơ sở dữ liệu vào Instance, để tiến hành Attach thực hiện:
Chọn Instance cần attach cơ sở dữ liệu vào
Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 9
Chọn Database Nháy phải, Chọn Attach Chọn Add và chỉ ra tập tin .MDF cần attach Nhấn OK để kết thúc
IV. IMPORT VÀ EXPORT DỮ LIỆU
Import – Export là kỹ thuật cho phép chuyển dữ liệu từ dạng SQL Server ra các dạng CSDL khác như Access, Excel và ngược lại. Đồng thời cho phép chuyển sang Instance khác của SQL Server.
1. Import dữ liệu
Dùng để nhập dữ liệu vào CSDL từ các hệ quản trị CSDL khác hoặc CSDL khác của SQL Server
Thực hiện:
Tạo tên CSDL định import từ nguồn khác
Chọn mục CSDL cần import từ nguồn khác, Nháy phải chọn Task, Chọn Import Data
Chọn Next, chọn Data Source , có thể lựa chọn: SQL Server | Oracle | Access, …
Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 10
Chọn tập tin đã có, chọn Next Chọn Databases sẽ import, chọn kiểu xác thực người dùng
Chọn Next, chọn Table hoặc View cần import
Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 11
Chọn Next -> Finish
2. Export dữ liệu
Export là kỹ thuật xuất dữ liệu từ SQL Server ra một hệ quản trị CSDL khác hoặc một CSDL khác của SQL Server
Thực hiện:
Chọn Database, chọn Task, chọn Export Data, chọn Next Chọn DataSource cần Export
Access hoặc Excel (cần xác định phiên bản Excel tương ứng) Chọn kiểu dữ liệu đích cần export và nhập tên (Name)
Chọn CSDL SQL Server muốn Export sang
Chọn Next -> Next -> Finish
Có thể chọn các bảng được Export sang
Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 12
V. NGƯỜI DÙNG VÀ XÁC THỰC
1. Xác thực kết nối trong SQL Server
Xác thực là thao tác đảm bảo biết được người dùng là ai. Các kiểu xác thực: SQL Server Login ID, Windows Login ID. Khi cài đặt SQL Server thực hiện thiết lập kiểu xác thực SQL Server sẽ dùng.
Để thay đổi kiểu xác thực:
Mở Management Studio
Trong của sổ Object Explorer, nháy phải chuột lên server muốn thay đổi, chọn Properties
Chọn nút Security
Chọn kiểu xác thực trong phần Server Authentication
Windows Authentication Mode
SQL Server and Windows Authentication Mode
Chọn OK
2. Người dùng trong SQL Server
Người dùng trong SQL Server được chia thành 2 mức:
Login: truy cập vào hệ thống SQL Server, login mới có quyền truy cập vào
Server chưa có quyền truy cập vào Database
User: người dùng, để truy cập tới CSDL theo quyền hạn
Tài khoản để kết nối tới SQL Server được gọi là tài khoản đăng nhập SQL Server. Mỗi CSDL có một tài khoản người dùng ảo gán với nó, tài khoản ảo này cung cấp bí danh tới tài khoản đăng nhập SQL Server được gọi là tài khoản người dùng CSDL.
Cú pháp tạo login:
Tạo login với quyền window
CREATE LOGIN <tên đăng nhập> FROM WINDOWS
[ WITH [ DEFAULT_DATABASE = <Tên CSDL> ] [ , DEFAULT_LANGUAGE = <Ngôn ngữ> ] ]
Tạo login với quyền SQL Server
CREATE LOGIN <tên đăng nhập>
WITH PASSWORD = ‘password’ [MUST_CHANGE]
[ WITH [ DEFAULT_DATABASE = <Tên CSDL> ] [ , DEFAULT_LANGUAGE = <Ngôn ngữ> ]
[ , CHECK_EXPIRATION = {ON | OFF}, [ , CHECK_POLICY = {ON | OFF } ]
Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 13
Cú pháp tạo User
CREATE USER <tên user>
[ {FOR | FROM} LOGIN <tên đăng nhập> } [ WITH DEFAULT_SCHEMA = <tên schema> }
Cú pháp sửa User
ALTER USER <tên user> WITH
[ NAME = <Tên user mới> ] [ , DEFAULT_SCHEMA = <tên schema> ]
VI. PHÂN QUYỀN NGƯỜI DÙNG
Để phân quyền cho người dùng sử dụng lệnh Grant, lệnh Grant được sử dụng nhằm cấp phát quyền cho người sử dụng trên các đối tượng CSDL hoặc quyền thực thi các câu lệnh SQL. Người thực hiện Grant phải có quyền được thực hiện phân quyền cho user.
Cú pháp lệnh Grant:
GRANT permission
ON table_name | view_name[(column1)] |
stored_procedure
TO account [, … ] | group
[ WITH GRANT OPTION ]
Trong đó:
Permission: là các quyền được trao cho account, có thể nhận các giá trị: all,
select, update, delete, insert, delete, create, alter, execute, …
Account: là tên người dùng được quyền trao quyền, có thể là: Public hoặc tên một user cụ thể
Nếu có WITH GRANT OPTION thì tài khoản có thể trao lại quyền của mình cho tài khoản khác
Chúc Anh/ Chị học tập tốt!
TÀI LIỆU THAM KHẢO
1. Professional SQL Server 2000 Database Design, Louis Davidson,
Wrox PressLtd
2. SQL Server 2008 Books Online.
Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 6 Trang 1