1. Trang chủ
  2. » Công Nghệ Thông Tin

Cấu trúc cơ sở dữ liệu của SQL server 7.0

26 1,3K 10
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cấu trúc cơ sở dữ liệu của SQL Server 7.0
Định dạng
Số trang 26
Dung lượng 213,95 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

SAO LƯU CSDL: Sao lưu backup 1 cơ sở dữ liệu CSDL là tạo 1 bản sao CSDL , ta có thể dùng bản sao để khôi phục lại CSDL nếu CSDL bị mất.. Khi đến cuối bản sao lưu transaction log, SQL Ser

Trang 1

CẤU TRÚC CƠ SỞ DỮ LIỆU CỦA

SQL SERVER 7.0

I.CẤU TRÚC CSDL CỦA SQL SERVER 7.0 :

SQL Server tổ chức dữ liệu lưu trong CSDL thành những thành phần luận lý User làm việc trên những thành phần luận lý này như bảng (table), view, procedure… Thành phần vật lý của những file thì trong suốt (transparent), chỉ có người quản lý CSDL mới được làm việc trên đó

SQL Server có 4 CSDL hệ thống (master, msdb, model, temdb database) và các CSDL của user Hình minh họa

Trang 2

Master database: ghi lại cấu hình hệ thống của SQL Server Nó ghi lại tất cả tài khoản

đăng ký của user và cấu hình hệ thống, những file primary chứa thông tin khởi động của CSDL của user, chứa thông tin khởi động của SQL Server Những thao tác sau gây ra những thay đổi trong master database:

• Tạo , thay đổi, xóa CSDL

• Thay đổi transaction log

Thêm hay xóa của những sever sử dụng thủ tục hệ thống như sp-addserver (thêm server) and sp-dropserver (bỏ server).

Temdb database: chứa những bảng tạm và những stored procedure tạm Những bảng

tạm và những stored procedure của user khi nối kết vào hệ thống được lưu trong temdb database Khi SQL khởi động thì tất cả các bảng tạm và các stored procedure trong temdb database đều mất

Stored procedure: là 1 tập hợp biên dịch trước của những câu lệnh của

Transact-SQL được lưu và xử lý như 1 đơn vị (unit) Stored procedure sẵn sàng cho việc quản lý SQL Server và hiển thị thông tin của CSDL, của những người sử dụng SQL Server cung cấp những stored procedure gọi là stored procedure hệ thống

Model database: được dùng như 1 khuôn mẫu của CSDL trong hệ thống Khi tạo ra 1

CSDL thì phần đầu của CSDL là bản sao của model database, phần còn lại là những trang trống

Msdb database: SQL Server Agent dùng msdb database để lập kế hoạch alert, job Alert: là 1 định nghĩa của người sử dụng đáp ứng 1 sự kiện của SQL Server Alert có

thể thực thi cả nhiệm vụ định nghĩa hoặc gởi e-mail đến 1 người chỉ định

Job: là sự thực hiện 1 hành động quản lý chứa 1 hoặc nhiều bước, thay thế cho thuật ngữ task của SQL Server 6.5.

II CẤU TRÚC CSDL VẬT LÝ:

Trang 3

Cấu trúc trang dữ liệu:

Các hàng dữ liệu (data row) được đưa vào tuần tự ngay sau page header, row offset được bắt đầu từ cuối trang, chỉ đến data row và cho biết byte bắt đầu của data row, kích thước hàng tối đa là 8060 byte

II.2 Extent:

Extent là đơn vị cơ bản chỉ vùng lưu bảng và index Mỗi extent gồm 8 trang liên tục nhau Có 2 loại extent:

• Mixed extent có thể lưu những đối tượng khác nhau

• Uniform extent chỉ có thể lưu 1 đối tượng duy nhất

Trang 4

II.3Những loại file trong CSDL:

SQL Server có 3 loại file:

• Primary file: là file bắt đầu của CSDL Mỗi CSDL chỉ có 1 file primary, tên file có phần mở rộng là mdf

• Secondary file: là file lưu những gì còn lại của CSDL mà không chứa trong primary file, có thể có nhiều file secondary, tên file có phần mở rộng là ndf

• Log file: chứa những thông tin trans† tion log , được dùng để khôi phục CSDL, mỗi CSDL có ít nhất 1 log file , tên file có phần mở rộng là ldf

File của SQL Server có 2 tên:

Logical_file_name: là tên dùng trong những câu lệnh Transact_SQL.

Os_file _name: là tên file vật lý, chỉ rõ đường dẫn của file

MyDB_primary làtên logical_file_name, c:\Mssql7\Data\MyData1.mdf là tên os_file_name.Những trang trong file được đánh số bắt đầu từ 0 Mỗi file có 1 số ID Mỗi trang trong file gồm cả ID file và số thứ tự trang trong file

Ví dụ: file primary có kích thước 4MB, và secondary có kích thứơc 1 MB

Trang 5

Trang đầu tiên trong mỗi file là trang header file chứa thông tin về thuộc tính của file Trang thứ 9 trong primary file là trang khởi động CSDL chứa thông tin về thuộc tính của CSDL.

Trang 6

PHẦN VI:

SAO LƯU VÀ KHÔI PHỤC

Trang 7

CƠ SỞ DỮ LIỆU (CSDL)

Những nguyên nhân gây ra mất dữ liệu:

I SAO LƯU CSDL:

Sao lưu (backup) 1 cơ sở dữ liệu (CSDL) là tạo 1 bản sao CSDL , ta có thể dùng bản sao để khôi phục lại CSDL nếu CSDL bị mất Bản sao gồm tất cả những file có trong CSDL kể cả transaction log

Transaction log ( hay log file) chứa những dữ liệu thay đổi trong CSDL (Ví dụ như khi

ta thực hiện các lệnh INSERT, UPDATE, DELETE) Transaction log được sử dụng trong suốt quá trình khôi phục để roll forward những transaction hoàn thành và roll back những transaction chưa hoàn thành

Roll back là hủy bỏ giao dịch chưa hoàn thành khi hệ thống xảy ra sự cố,… (hoặc trong

trường hợp sao lưu, khi đã thực hiện xong việc sao lưu mà giao dịch chưa hoàn thành) ( xem chi tiết ở phần Transaction)

Roll forward là khôi phục tất cả giao dịch đã hoàn thành khi hệ thống xảy ra sự cố,…

(hoặc trong trường hợp sao lưu, những giao dịch đã hoàn thành khi đã thực hiện xong việc sao lưu ) ( xem chi tiết ở phần Transaction)

Checkpoint là thời điểm ghi lại tất cả những trang dữ liệu thay đổi lên đĩa.

Ví dụ minh họa roll back và roll forward:

Trang 8

1 Giao dịch 1 commit trước khi checkpoint, không làm gì cả vì dữ liệu đã được thay đổi trong CSDL ( ứng với số 1 trong hình).

2 Giao dịch 2 và 4 commit sau khi checkpoint nhưng trước khi hệ thống xảy ra sự cố, do đó những giao dịch này được tạo lại từ log file Điều này gọi là roll forward (ứng với số 2 và 4 trong hình)

3 Giao dịch 3 và 5 chưa commit khi hệ thống xảy ra sự cố, do đó những giao dịch này không được thực hiện và trả về CSDL khi chưa xảy ra giao dịch Điề này gọi là roll back (ứng với số 3 và 5 trong hình)

Hình minh họa quá trình khôi phục giao dịch

Checkpoint Hệ thống xảy ra sự cố

Sao lưu 1 transaction log là chỉ sao lưu những thay đổi xảy ra trong transaction log kể từ lần sao lưu transaction log cuối cùng

Sao lưu 1 CSDL ghi lại toàn bộ trạng thái của dữ liệu tại thời điểm thực hiện xong sao lưu

Trong thời gian sao lưu, SQL Server 7.0 cho phép thực hiện việc giao dịch (transaction)

II KHÔI PHỤC (RESTORING) CSDL:

Việc khôi phục 1 bản sao lưu CSDL sẽ trả về CSDL cùng trạng thái của CSDL khi ta thực hiện việc sao lưu Giao dịch (transaction) nào không hoàn thành trong khi sao lưu (backup) CSDL được roll back để đảm bảo tính nhất quán CSDL

Trang 9

Khôi phục 1 bản sao lưu transaction log là áp dụng lại tất cả giao dịch (transaction) hoàn thành trong transaction log đối với CSDL Khi áp dụng bản sao lưu transaction log, SQL Server đọc trước transaction log, roll forward tất cả các transaction Khi đến cuối bản sao lưu transaction log, SQL Server roll back tất cả transaction mà không hoàn thành khi ta bắt đầu thực hiện sao lưu, tạo lại trạng thái chính xác của CSDL tại thời điểm bắt đầu thực hiện sao lưu.

Ví dụ minh họa sao lưu (backup) và khôi phục (restore) 1 CSDL có xảy ra giao dịch (transaction) khi thực hiện sao lưu:

1 Bắt đầu backup :giả sử CSDL gồm có các dữ liệu ABC, DEF, GHI, JKL, transaction log file không có dữ liệu vì không có giao dịch nào xảy ra Khi đang thực hiện sao lưu (backup) được một phần dữ liệu thì xảy ra giao dịch, SQL Server 7.0 sẽ ưu tiên cho việc giao dịch trước, việc sao lưu (backup) tạm thời dừng lại

database database backup

ABCDEFGHIJKL

ABCDEF

ABCDEFGHIJKL

ABC=123GHI=456

Trang 10

3 Khi thực hiện giao dịch (transaction) xong, SQL Server thực hiện tiếp việc sao lưu (backup) , sẽ chép phần còn lại của dữ liệu nhưng dữ liệu đã thay đổi do xảy ra giao dịch database database backup

4 Khi sao lưu xong phần dữ liệu thì sẽ chép tiếp phần transaction log

database database backup

123DEF456JKL

ABC=123GHI=456

ABCDEF456JKL

123DEF456JKL

ABC=123

GHI=456

ABC=123GHI=456

ABCDEF456JKL

ABCDEF456JKL

Trang 11

restore database backup

ABCDEFGHIJKL

ABC=123

GHI=456

Trang 12

CẤU TRÚC SAO CHÉP DỰ PHÒNG (BACKUP) VÀ

KHÔI PHỤC (RESTORE) CỦA SQL SERVER

7.0

Những thành phần sao lưu và khôi phục của SQL Server cung cấp khả năng tạo 1 bản sao CSDL Bản sao này được lưu ở 1 vị trí xác định để phòng trường hợp SQL Server xảy ra sự cố hay vì 1 trong những lý do đã nêu trên Nếu xảy ra sự cố thì bản sao lưu này được sử dụng để khôi phục lại CSDL SQL Server cải tiến những khả năng sao lưu và khôi phục :

• Chọn lựa cách sao lưu và khôi phục CSDL

- Full database backup: 1 bản sao đầy đủ CSDL

- Transaction log backup: chỉ sao lại transaction log

- Differential backup: chỉ sao lại những trang dữ liệu thay đổi sau lần sao lưu full database backup cuối cùng

- Khôi phục file và filegroup cho phép chỉ khôi phục phần CSDL bị hỏng

• Kiểm tra những phát biểu BACKUP và RESTORE

Người sử dụng có thể thực thi những lệnh này trực tiếp từ những ứng dụng hoặc Script Transact-SQL, stored procedure, và trigger Tuy nhiên, ta thường sử dụng giao diện SQL Server Enterprise Manager để định nghĩa 1 lịch trình (schedule) sao lưu và để SQL Server Agent tự động sao lưu theo lịch trình Database Maintenance Wizard có thể sử dụng để định nghĩa và lên kế hoạch sao lưu cho mỗi CSDL SQL Server tự động làm quá trình sao lưu đến mức nó không cần tác động hoặc cần rất ít sự tác động của người sử dụng hoặc của người quản lý

Script: là 1 tập hợp những câu lệnh của Transact-SQL để thực thi 1 thao tác Script

được lưu như 1 file với phần mở rộng sql

Stored procedure: là 1 tập hợp biên dịch trước của những câu lệnh của Transact-SQL

được lưu và xử lý như 1 đơn vị (unit) Stored procedure sẵn sàng cho việc quản lý SQL Server và hiển thị thông tin của CSDL, của những người sử dụng SQL Server cung cấp những stored procedure gọi là stored procedure hệ thống

Trigger: 1 stored procedure thực thi khi ta thay đổi dữ liệu trong 1 bảng xác định

Trigger thường được tạo ra để ép buộc tính toàn vẹn tham khảo và tính nhất quán giữa những dữ liệu liên quan 1 cách hợp lý trong những bảng khác nhau

• Duy trì tập hợp những bản sao lưu cũ trong msdb database

Msdb database là 1 trong 4 CSDL hệ thống của SQL Server (xem chi tiết msdb database

ở phần Cấu trúc CSDL của SQL Server 7.0)

Trang 13

Nếu CSDL nào được khôi phục thì hộp hội thoại Restore Database của SQL Server Enterprise Manager hiện lên danh sách của tất cả các bản backup mới nhất để user lựa chọn Bản backup được chọn sẽ được kiểm tra Nếu user biết được 1 trong những bản backup không có sẵn , ví dụ 1 băng từ bị hư hoặc mất, user có thể chọn lại bản backup đó và SQL Server Enterprise Manager tính toán 1 quá trình khôi phục mới Khi user đồng ý khôi phục thì SQL Server Enterprise Manager tiến hành khôi phục.

Trong hình ta có các bản sao lưu, gồm các loại bản sao, ở đây có bản sao database và các bản sao transaction log, hộp hội thoại Restore Database của SQL Server Enterprise Manager cho phép user chọn bản sao, user muốn khôi phục trạng thái của CSDL đến mức nào thì chọn các bản sao lưu transaction đến mức đó

• Ta có thể thực hiện sao lưu khi CSDL đang sử dụng Quá trình sao lưu và cấu trúc dữ liệu bên trong của SQL Server 7.0 được cải tiến để những bản sao lưu tăng tốc độ truyền dữ liệu lên thiết bị giữ bản sao lưu với ảnh hưởng tối thiểu trên dữ liệu truyền qua giao dịch

• Tốc độ truyền dữ liệu của quá trình sao lưu và khôi phục càng nhanh thì nó càng hỗ trợ cho những CSDL rất lớn Cấu trúc dữ liệu mới trong CSDL của SQL Server 7.0 và giải thuật backup và restore mới tăng đáng kể tốc độ truyền dữ liệu của quá trình sao lưu và khôi phục

• SQL Server 7.0 kiểm tra bản sao lưu trước khi khôi phục

Trang 14

• Quá trình sao lưu và khôi phục bị ngắt thì nó sẽ bắt đầu tại thời điểm gần thời điểm bị ngắt khi nó được bắt đầu lại Nếu quá trình sao lưu và khôi phục bị ngắt ( ví dụ: server đang chạy thì mất điện), nó có thể bắt đầu lại từ thời điểm bị ngắt Điều này rất có ích đối với những CSDL lớn

I NHỮNG BACKUP DEVICE:

Backup device: là 1 băng từ (tape), file đĩa, named pipe sử dụng trong quá trình sao lưu hoặc khôi phục

Named pipe: 1 cơ chế giao tiếp giữa các quá trình (interprocess communication – IPC )

mà SQL Server và Open Data Sevices (ODS) sử dụng để cung cấp giao tiếp giữa client và server Named pipe cho phép truy cập tài nguyên chia sẻ trên mạng

Open Data Service: là 1 giao diện trình ứng dụng cho server trong hệ thống

client/server lấy nguồn dữ liệu cung cấp cho client sử dụng

MS SQL Server 7.0 sử dụng Microsoft Tape Format (MSTF) MSTF không chỉ cụ thể những băng từ, nó có thể backup lên cả đĩa hoặc named pipe Mỗi lần SQL Server thực hiện sao lưu, nó sẽ định dạng 1 backup set Backup set được lưu trong 1 đơn vị MSTF gọi là 1 media MSTF media có thể lưu những backup set của những phần mềm khác nhau Ví dụ như 1 media có thể lưu các backup set của WinNT, SQL Server (hình)

Backup set: là đầu ra (output) (toàn bộ CSDL gồm cả những file hệ thống) của 1 lần

thực hiện sao lưu

Backup device gồm đĩa, tape, và named pipe

I.1 Đĩa:

Backup device đĩa là những file trên đĩa cứng hoặc những media lưu trữ đĩa khác Backup device đĩa có thể được định nghĩa trên đĩa cục bộ của server hoặc trên đĩa tài nguyên chia sẻ của mạng

Nếu thực hiện sao lưu trên đĩa của máy tính mạng , sử dụng universal naming convention name (UNC) theo định dạng \\Servername\Sharename\Path\File để chỉ vị trí của file Cũng giống như khi viết file lên đĩa cục bộ, khi ta đọc/ghi file trên đĩa ở xa phải được SQL Server cho phép thông qua tài khoản của user mà SQL Server cấp

Vì sao lưu dữ liệu trên mạng dễ có lỗi ta nên kiểm tra việc sao lưu khi hoàn thành

I.2 Tape:

Backup device tape cũng tương tự như backup device đĩa nhưng

• Tape device phải nối kết với Server đang chạy, không hỗ trợ cho tape device ở xa

Trang 15

• Nếu 1 tape đầy nhưng dữ liệu còn thì SQL Server sẽ nhắc chèn vào tape mới.

I.3 Named pipe.

Named pipe cho phép người phát triển phần mềm có thể tạo ra phần mềm của riêng mình có khả năng sao lưu và khôi phục dựa trên SQL Server

SQL Server nhận biết cả tên device vật lý hoặc luận lý

Backup device vật lý là chỉ ra tên backup device cụ thể

Ví dụ:

BACKUP DATABASE accounting

TO DISK = 'C:\Backups\Accounting\Full.Bak'Backup device luận lý là alias (1 tên ngắn ) dùng để chỉ backup device vật lý

Ví dụ:

BACKUP DATABASE accounting

TO Accounting_Backup

II BACKUP MEDIA:

Backup media là 1 vùng lưu trữ vật lý thật sự dùng để lưu backup CSDL, transaction log, file

Backup media: là đĩa, băng từ, named pipe dùng để lưu backup set

Ví dụ, 1 backup device là C:\Backup\Accounting\Full.bak chỉ backup media, nơi đĩa sẽ chứa file này; tương tự cho tape \\.\TAPE0

Khi tạo 1 bản sao, SQL Server có thể chọn 1 trong những cách sau:

• Backup device dùng media (đĩa hay tape) lần đầu

Khi khởi tạo media, SQL Server sẽ tạo ra media header, tất cả các nội dung trên media đều bị xóa, không thể lấy lại được

Media header: là thông tin về media gồm tên của media, tên phần mềm tạo

media, …

Trong 1 media có nhiều backup set, mỗi backup set cũng có backup header Backup header gồm những thông tin về loại backup device, loại sao lưu (full database, transaction log, differential hoặc filebackup), ngày/giờ bắt đầu và kết thúc sao lưu, kích thước của bản sao lưu

Trang 17

• Nối tiếp với backup đã tồn tại trên media Một backup set được ghi lên media đã sử dụng thì chỉ có thể ghi nối tiếp backup set cuối cùng Ví dụ: một media có 5 backup set, không thể bỏ qua 3 backup set đầu để ghi đè lên backup set thứ tư , chỉ có thể ghi nối tiếp ở cuối backup thứ năm Mặc định, SQL Server luôn luôn nối backup set mới vào các backup set có trên media.

• Ghi đè lên backup set trước đã ghi lên media

Một media có thể chứa cả các backup set của những phần mềm khác như những backup set của Windows NT, các backup set đều được đánh số Điều này cho phép backup set dùng để khôi phục sẽ được tham khảo dễ dàng Ví dụ media có 4 backup set, có 2 backup set của SQL Server và 2 của WinNT Để khôi phục backup set thứ hai của SQL Server, ta chỉ ra vị trí thứ tư để khôi phục

III QUÁ TRÌNH SAO LƯU VÀ KHÔI PHỤC:

SQL Server 7.0 dùng những giải thuật tiêu chuẩn công nghệ fuzzy (industry-standard fuzzy) Những giải thuật mới này có nhiều ưu điểm cho những user:

• Lệnh BACKUP chạy nhanh hơn và ít ảnh hưởng đến sự thay đổi dữ liệu của user khi phát biểu này đang xử lý

• Lệnh RESTORE nhanh hơn

Quá trình khôi phục sẽ khôi phục lại trạng thái của CSDL đến lúc lệnh BACKUP hoàn tất Trong những bản (version) trước của SQL Server, lệnh LOAD ( tương đương với lệnh RESTORE của SQL Server 7.0) khôi phục lại trạng thái của CSDL đến lúc lệnh DUMP bắt đầu (tương đương với lệnh BACKUP của SQL Server 7.0) Trong quá trình sao lưu và khôi phục của SQL Server:

Những extent (xem chi tiết extent ở phần Cấu trúc CSDL của SQL Server 7.0) chứa

dữ liệu được ghi vào backup set mà không để ý đến việc user thay đổi những page

dữ liệu (xem chi tiết page ở phần Cấu trúc CSDL của SQL Server 7.0) đồng thời

trong suốt quá trình backup Tuy nhiên , điều này không có nghĩa là những page trong backup được lưu ở trạng thái không khôi phục được và mâu thuẫn nhau Nó cũng cho phép thao tác backup sao chép những page nối tiếp nhau

• Transaction log được sao như 1 phần của backup

Lệnh RESTORE sẽ :

• Tạo lại CSDL nếu nó không tồn tại và khởi tạo những extent trong CSDL Bước này được bỏ qua nếu CSDL tồn tại lúc thực thi lệnh RESTORE

Ngày đăng: 28/09/2013, 10:20

HÌNH ẢNH LIÊN QUAN

Hình minh họa quá trình khôi phục giao dịch - Cấu trúc cơ sở dữ liệu của SQL server 7.0
Hình minh họa quá trình khôi phục giao dịch (Trang 8)

TỪ KHÓA LIÊN QUAN

w