Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
213,95 KB
Nội dung
CẤU TRÚCCƠSỞDỮLIỆU CỦA SQLSERVER7.0 I.CẤU TRÚC CSDL CỦASQLSERVER7.0 : SQLServer 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 đó. SQLServercó 4 CSDL hệ thống (master, msdb, model, temdb database) và các CSDL của user. Hình minh họa • Master database: ghi lại cấu hình hệ thống củaSQL 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ủaSQL 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ý SQLServer và hiển thò thông tin của CSDL, của những người sử dụng. SQLServer 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: SQLServer 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ủaSQL 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ủaSQLServer 6.5. II. CẤUTRÚC CSDL VẬT LÝ: II.1Trang (page): Đơn vò cơ bản lưu trữ dữliệu là trang (page). Trong SQLServer7.0 , 1 trang có kích thước 8MB, ta sẽ có 128 trang/1MB. 96 byte đầu của mỗi trang chứa header của trang gồm thông tin hệ thống như loại trang, số vùng trống của trang. Cấutrú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. II.3Những loại file trong CSDL: SQLServercó 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ủaSQLServercó 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 đầ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. PHAN VI: SAO LệU VAỉ KHOI PHUẽC CHƯƠNG 1: GIỚI THIỆU VỀ SAO CHÉP DỰ PHÒNG (BACKUP) VÀ KHÔI PHỤC (RECOVERY) CƠSỞDỮLIỆU (CSDL) Những nguyên nhân gây ra mất dữ liệu: • Đóa cứng hư • Vô ý hay cố ý sửa đổi dữliệu như xóa hay thay đổi dữ liệu. • Trộm cắp • Virus Để tránh việc mất dữ liệu, chúng ta nên thường xuyên sao lưu cơsởdữ liệu. Nếu như dữliệu hay cơsởdữliệu bò hư thì ta có thể dùng bản sao lưu (backup) này để khôi phục lại cơsởdữliệu bò mất. 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: 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ủadữliệu tại thời điểm thực hiện xong sao lưu. Trong thời gian sao lưu, SQLServer7.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. 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, SQLServer đọc trước transaction log, roll forward tất cả các transaction . Khi đến cuối bản sao lưu transaction log, SQLServer 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, SQLServer7.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 transaction log 2. Xảy ra giao dòch (transaction), dữliệu ABC được thay bằng 123, GHI được thay bằng 456. database database backup transaction log ABC DEF GHI JKL ABC DEF GHI JKL ABC DEF ABC DEF GHI JKL ABC=123 GHI=456 3. Khi thực hiện giao dòch (transaction) xong, SQLServer thực hiện tiếp việc sao lưu (backup) , sẽ chép phần còn lại củadữliệu nhưng dữliệu đã thay đổi do xảy ra giao dòch. database database backup transaction log 4. Khi sao lưu xong phần dữliệu thì sẽ chép tiếp phần transaction log. database database backup transaction log transaction log backup 5. Khi có yêu cầu khôi phục (restore) CSDL , CSDL được khôi phục trước, chép lại toàn bộ CSDL của bản sao lưu CSDL đó . restore database backup ABC DEF 456 JKL 123 DEF 456 JKL ABC=123 GHI=456 ABC DEF 456 JKL 123 DEF 456 JKL ABC=123 GHI=456 ABC=123 GHI=456 ABC DEF 456 JKL ABC DEF 456 JKL [...]... dụng Quá trình sao lưu và cấu trúcdữliệu bên trong củaSQLServer7.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ệucủ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úcdữliệu mới trong CSDL củaSQLServer7.0 và giải thuật backup... (tương đương với lệnh BACKUP củaSQLServer 7.0) Trong quá trình sao lưu và khôi phục củaSQL Server: • Những extent (xem chi tiết extent ở phần Cấutrúc CSDL củaSQLServer 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ấutrúc CSDL củaSQLServer 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à... dữliệu trên SQLServer sang file của hệ điều hành hay ngược lại Đây là chương trình chạy từ dấu nhắc lệnh Bcp chuyển dữliệu từ SQLServer thành file của hệ điều hành theo đònh dạng của người dùng hay ngược lại Tiện ích này có thể thực hiện một tự động với những giá trò mặc đònh thường được dùng Trình tiện ích này thường được dùng để chuyển dữliệu vào CSDL SQLServer từ một chương trình khác Dữ liệu. .. đến sự thay đổi dữ liệucủ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ủaSQL Server, lệnh LOAD ( tương đương với lệnh RESTORE củaSQLServer 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ủaSQLServer 7.0) Trong quá trì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ủaSQLServer (xem chi tiết msdb database ở phần Cấutrúc CSDL củaSQLServer 7.0) Nếu CSDL nào được khôi phục thì hộp hội thoại Restore Database củaSQLServer Enterprise Manager hiện lên danh sách của tất cả các bản backup... liệu muốn chuyển phải được đặt trên file của hệ điều hành hay đóa mềm bằng tiện ích sao lưu của chương trình Tiện ích này cũng được dùng chuyển tạm dữliệu để làm việc với những chương trình khác, như bảng tính Dữliệu được chuyển từ SQLServer thành file của hệ điều hành hay lên đóa mềm; từ đó có thể nhập dữliệu từ chương trình khác SQLServer chấp nhận dữliệu từ bất kỳ đònh dạng ASCII hay binary,... cục bộ củaserver 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 SQLServer cho phép thông qua tài khoản của user mà SQLServer cấp Vì sao lưu dữ liệu. .. ABC=123 GHI=456 6 Sau đó SQLServer sẽ khôi phục tiếp phần transaction log Trước tiên sẽ roll forward nhưng khi đọc đến dữliệu thứ ba thì nó thấy dữliệu này đã được thay đổi rồi do đó nó sẽ roll back ( trả về dữliệu ban đầu khi chưa thực hiện giao dòch) để nhất quán dữliệu restore ABC DEF GHI JKL database backup ABC DEF 456 JKL transaction log backup ABC=123 GHI=456 CẤUTRÚC SAO CHÉP DỰ PHÒNG (BACKUP)... 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ủaSQLServer và 2 của WinNT Để khôi phục backup set thứ hai củaSQL Server, ta chỉ ra vò trí thứ tư để khôi phục III QUÁ TRÌNH SAO LƯU VÀ KHÔI PHỤC: SQLServer7.0 dùng những... 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ý SQLServer và hiển thò thông tin của CSDL, của những người sử dụng SQLServer 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 . 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. 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)
xtent
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 (Trang 3)
Hình minh
họa quá trình khôi phục giao dịch (Trang 8)
rong
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 (Trang 13)