Cơ sở đữ liệu Database là hệ thống các đữ liệu có cầu trúc được lưu trữ trên các thiết bị lưu trữ thứ cấp đề thỏa mãn nhu cầu khai thác thông tin của nhiều người sử dụng hoặc nhiều chươn
Trang 1NGAN HÀNG NHÀ NƯỚC VIỆT NAM BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NGÂN HÀNG THÀNH PHÓ HÒ CHÍ MINH
KHOA: HE THONG THONG TIN QUAN LY
Trang 2DANH MUC TU VIET TAT
DBMS Database Management System Hệ quản trị cơ sở dữ liệu
RDBMS Relational Database Management Hệ quản trị cơ sở dữ liệu quan hệ
System
SQL Structured Query Language Ngôn ngữ truy vấn có câu trúc
CHUONG 1: TONG QUAN VE HE QUAN TRI CO SO DU LIEU ORACLE
1.1 Một số khái niệm cơ bản
Trang 3Dữ liệu (Data) là những sự kiện có thê ghi lại được, và thường không có ý nghĩa Trong khi
do, théng tin (information) la y nghia cua dir ligu sau khi đã được người sử dụng xử lý trong
một ngữ cảnh cụ thể nào đó
Cơ sở đữ liệu (Database) là hệ thống các đữ liệu có cầu trúc được lưu trữ trên các thiết bị lưu trữ thứ cấp đề thỏa mãn nhu cầu khai thác thông tin của nhiều người sử dụng hoặc nhiều chương trình ứng dụng với nhiều mục đích khác nhau Trong khái niệm này, chúng ta cần nhân mạnh cơ sở đữ liệu phải là một tập hợp các đữ liệu có liên quan vẻ mặt luận lý, chứ không phải là những đữ liệu rời rạc, không có mối quan hệ với nhau Các dữ liệu này phải có cầu trúc, và chúng phải có khả năng đáp ứng các nhu cầu khai thác thông tin của nhiều người
sử dụng
Hệ quản trị cơ sở dữ liệu (DBMS) nhìn chung là một hệ thống phần mềm hướng đến việc
thực hiện các nhiệm vụ sau đây:
- _ Định nghĩa cơ sở dữ liệu bao gồm việc đặc tả các kiểu dữ liệu, các cấu trúc, và các ràng buộc cho đữ liệu sẽ được lưu trữ trong cơ sở đữ liệu
- _ Xây dựng cơ sở đữ liệu bao gồm việc lưu trữ các đữ liệu trên các phương tiện lưu trữ
được hệ quản trị cơ sở đữ liệu kiểm soát
- _ Thao tác cơ sở đữ liệu bao gồm việc thực hiện các chức năng truy vấn cơ sở đữ liệu
dé lay ra những thông tin cần thiết, cập nhật cơ sở đữ liệu đề phản ánh sự các thay đổi
trong thế giới thực và tạo ra các báo cáo từ đữ liệu trong cơ sở đữ liệu
Nói cách khác, hệ quản trị cơ sở đữ liệu là công cụ giúp người sử dụng hay các chương trình ứng dụng tương tác với cơ sở đữ liệu
SQL la viét tắt của Structured Query Language, là ngôn ngữ truy vấn có cầu trúc Nó là một ngôn ngữ, là tập hợp các lệnh đề tương tác với cơ sở đữ liệu Dùng đề lưu trữ, thao tác và truy xuất dữ liệu được lưu trữ trong một cơ sở dữ liệu quan hệ Trong thực tê, SQL là ngôn
ngữ chuẩn được sử dụng hầu hết cho hệ cơ sở dữ liệu quan hệ Tất cá các hệ thông quản lý
cơ sở dữ liệu quan hệ (RDMS) như MySQL, MS Access, Oracle, Postgres va SQL Server đều sử dụng SQL làm ngôn ngữ cơ sở dữ liệu chuẩn
1.2 Giới thiệu
Oracle là một trong những nhà cung cấp lớn nhất trên thị trường công nghệ hiện nay Cái tên Oracle chính là tên viết tắt từ sản phẩm chủ lực của hãng, hệ thống quản lý cơ sở đữ liệu
Trang 4quan hệ (RDBMS) có tên chính thức là Oracle Database Phần mềm cơ sở đữ liệu thường giữ vị trí trung tâm trong mảng IT của công ty, hỗ trợ nhiều nhiệm vụ khác nhau gồm xử lý giao địch, business intelligence (BI), và các ứng dụng phân tích Người dùng có thê sử dụng Oracle dé quan ly img dung va database Day là giải pháp hàng đầu được rất nhiều đơn vị lựa chọn đề tiết kiệm chỉ phí, nâng cao hiệu quả quản lý Oracle cho phép bạn tương tác với Database thông qua một ngôn ngữ SQL
Loại phần mềm này được sử dụng tập trung phần lớn tại các doanh nghiệp thuộc các khối
như viễn thông, ngân hàng, chính phủ Tại Việt Nam, được ước tính tỷ lệ đối với các doanh
nghiệp lớn đang sử dụng Oracle thậm chí còn nhiều hơn ở ngưỡng cửa mức trung bình các doanh nghiệp trên thế giới
+
Một số phiên bản của Oracle:
Phién ban Standard One: phù hợp với các đơn vi/ứng dụng sử dụng một server Đây
là phiên bản có các tính năng còn bị hạn chế
Phiên bản Standard: Đây là bản nâng cấp hơn so với phiên bản Standard one, phù hợp
với các đơn vị có hệ thống máy chủ lớn hơn
Phiên bản Enterprise: có một số tính năng hiện đại như tính năng bảo mật, tính toán
hiệu suất, mở rộng phiên bản Phù hợp với các ứng dụng liên quan tới vẫn đề giao dịch online, yêu cầu tính bảo mật cao
Phiên bản Express: Đây là phiên bản miễn phí, cho phép người dùng có thể tải về, sử dụng, triển khai và quán lý hệ thống
Phiên bản Personal: đây là phiên bản có các tính năng giỗng phiên bản Enterprise nhưng được bỏ đi tính năng Oracle Real Application Cluster
Trang 5Native Binary JSON—, 4
Hình 1-1 Một số phiên bản của Oracle
- Cac tinh nang cia Oracle Database
Tinh nang mở rộng và hiệu suất
Oracle bao gồm một số cơ chế phần mềm đề đáp ứng các yêu cầu quan trọng sau đây của
hệ thống quản lý thông tin:
+ Dữ liệu đồng thời của một hệ thống nhiều người dùng phải được tối đa hóa + Dữ liệu phải được đọc và sửa đổi một cách nhất quán Dữ liệu người ding dang xem
hoặc thay đổi sẽ không bị thay đổi (bởi người dùng khác) cho đến khi họ kết thúc với
cung cấp, Oracle cũng cung cấp các tính năng sau:
+ Cơ sở đữ liệu tự quan ly
Công cụ quản lý Oracle
Trang 6+ Quan lý tài nguyên cơ sở đữ liệu
Tỉnh năng sao lưu và phục hôi cơ sở dữ liệu (Backup và Recovery)
Trong mọi hệ thông cơ sở dữ liệu, khả năng xảy ra lỗi hệ thông hoặc phần cứng luôn tồn
tại Nếu xảy ra lỗi và ảnh hưởng đến cơ sở dữ liệu, thì cơ sở dữ liệu phải được phục hồi Các mục tiêu sau khi thất bại là để đảm bảo rằng tác động của tất cả các giao dịch đã cam
kết được phản ánh trong cơ sở dữ liệu đã phục hồi và việc trở lại hoạt động bình thường nhanh nhất có thê xảy ra trong khi bảo vệ người dùng khỏi các sự cô do lỗi
Oracle cung cấp các cơ chế khác nhau cho các mục sau:
+ Phục hồi cơ sở đữ liệu theo yêu cầu của các loại lỗi khác nhau
+ Các hoạt động khôi phục linh hoạt để phù hợp với mọi tình huồng
+ C6 san dữ liệu trong các hoạt động sao lưu và phục hồi đề người dùng hệ thông có thê
tiếp tục làm việc
Oracle cung cấp cho phục hồi phương tiện hoàn chỉnh từ tất cả các loại lỗi phần cứng có
thể có, bao gồm cả lỗi đĩa Các tùy chọn được cung cấp đề cơ sở đữ liệu có thể được phục hồi hoàn toàn hoặc được phục hồi một phan đến một thời điểm cụ thê
Nếu một số tệp đữ liệu bị hỏng trong lỗi đĩa nhưng hầu hết cơ sở dữ liệu vẫn còn nguyên vẹn và hoạt động, cơ sở đữ liệu có thê vẫn mở trong khi các không gian bảng yêu cầu
được phục hồi riêng lẻ Do đó, các phan không bị hư hại của cơ sở dữ liệu sẽ có san dé str
dụng bình thường trong khi các phần bị hỏng đang được phục hồi
Tỉnh năng sẵn có cao
Các môi trường điện toán được cấu hình để cung cấp tính khả dụng gần như toàn thời gian được gọi là các hệ thông có tính sẵn sàng cao Các hệ thông như vậy thường có phần cứng và phần mềm dự phòng giúp hệ thống khả dụng mặc dù có lỗi Các hệ thông sẵn
sảng cao được thiết kế tốt tránh có các điểm lỗi đơn
Khi xảy ra lỗi, lỗi quá trình chuyển quá trình xử lý được thực hiện bởi thành phần bị lỗi sang thành phần dự phòng Quá trình này tái tạo lại tài nguyên trên toàn hệ thông, phục
hồi các giao dịch một phân hoặc thất bại và khôi phục hệ thông về trạng thái bình thường
trong vòng vài giây Càng minh bạch sự thất bại xảy ra đối với người dùng, tính khả dụng của hệ thông càng cao
Trang 7Oracle có một số sản phẩm và tính năng cung cấp tính sẵn sàng cao trong các trường hợp ngừng hoạt động ngoài dự kiến hoặc thời gian ngừng hoạt động theo kế hoạch Chúng bao gồm Fast-Start Fault Recovery, Real Application Clusters, Recovery Manager (RMAN), giải pháp sao lưu và khôi phục, Oracle Flashback, phân vùng, Oracle Data Guard, LogMiner, tép nhật ký làm lại đa kênh, sắp xếp lại trực tuyên Chúng có thê được
sử dụng trong các kết hợp khác nhau đề đáp ứng nhu cầu sẵn sảng cao cụ thẻ
Tĩnh năng kinh doanh thông mình
Phân này mô tả một số tính năng kinh doanh thông minh:
Kho đỡ liệu
Khai thác, chuyển đổi và tải (ETL)
Quan điểm cụ thê hóa
Chỉ mục Bitmap trong kho di liệu
Tĩnh năng quản lý nội dụng
Oracle bao gồm các kiêu dữ liệu để xử lý tất cả các loại nội dung Internet phong phú như
dữ liệu quan hệ, dữ liệu quan hệ đối tượng, XML, văn bản, âm thanh, video, hình ảnh và không gian Các kiểu đữ liệu này xuất hiện đưới dạng các kiêu nguyên gốc trong cơ sở
dữ liệu Tất cả đều có thê được truy van bang SQL M6t cau lénh SQL co thé bao gom dir liệu thuộc về bất kỳ hoặc tat cả các kiêu dữ liệu này: XML trong Oracle, LOBs, Oracle
Text, Oracle Ultra Search, Oracle interMedia, Oracle Spatial
Tĩnh năng bảo mật
Oracle bao gồm các tính năng bảo mật kiêm soát cách truy cập và sử dụng cơ sở đữ liệu
Ví dụ: Cơ chế bảo mật:
+ Ngăn chặn truy cập cơ sở đữ liệu trái phép
+ Ngăn chặn truy cập trái phép vào các lược đồ
Trang 8+ Kiểm tra hành động của người dùng
Liên kết với mỗi người dùng cơ sở đữ liệu là một lược đồ có cùng tên Theo mặc định,
mỗi người ding cơ sở dữ liệu tạo và có quyền truy cập vào tất cả các đối tượng trong lược đồ tương ứng
Bao mật cơ sở dữ liệu có thể được phân thành hai loại: bảo mật hệ thông và bảo mật dữ liệu
Tinh toan vẹn và kích hoạt
Dữ liệu phải tuân thủ các quy tắc kinh doanh nhất định, như được xác định bởi quản trị
viên cơ sở dữ liệu hoặc nhà phát triển ứng dụng Ví dụ: giả sử rằng một quy tắc kinh doanh nói rằng không có hàng nào trong bảng kiêm kê có thê chứa giá trị số lớn hơn 9 trong cột sale_ điscount Nếu một câu lệnh INSERT hoặc UPDATE có vi phạm quy tắc toàn vẹn này, thì Oracle phải hoàn tác câu lệnh không hợp lệ và tra lại lỗi cho ứng dụng Oracle cung cấp các ràng buộc toàn vẹn và kích hoạt cơ sở dữ liệu đề quản lý các quy tắc
toàn vẹn đữ liệu
Tĩnh năng tích hợp thông tin
Một môi trường phân tán là một mạng lưới các hệ thông khác nhau, giao tiếp liền mạch với nhau Mỗi hệ thông trong môi trường phân tán được gọi là một nút Hệ thống mà người dùng được kết nối trực tiếp được gọi là hệ thống cục bộ Bát kỳ hệ thống bồ sung nào được người dùng này truy cập đều được gọi là hệ thông từ xa Một môi trường phân tán cho phép các ứng dụng truy cập và trao đổi đữ liệu từ các hệ thống cục bộ và từ xa
Tắt cả các dữ liệu có thể được truy cập và sửa đổi đồng thời
1.3 Lựa chọn phiên cài đặt
Phién ban: Oracle Database 19c (19.3) (64bit)
Trang 9View This PC » Local Disk (0:
Trang 10select any of the folowing install optons
©) Create sng configure a single insiance databsse
cates 0 storter database Ths opton © Set Up Software Only
Note 1: For RAC natal, co “Sat Up Sofware Only end ten execute DECA (Dstabase Confgurstion Assiatant) from tha orscis hom
Note 2: To upgrade an Oracke Databaee, do "Sat Up Sonwara Only end tnen execute DBUA (Databace Upgrade Asalstant) trom the orscis home,
Trang 11(By Oracle Database 19¢ Installer - Step 2 of 15 o x
Trang 12
(B) Oracle Database 19¢ Installer - Step 5 of 17
Trang 13Specify Database Identifiers 19° ne
Provide the if 'ely is uniquely
‘Gentifed by a Global database name, typicalty of the form “name domain” A datobose is referenced by at east
ona Oracle netance which & uniquely identmMed trom any other natance on the computer by an Oracke syetem
Puggable database name ® [papgoi 9c
= Back | Next> Cance!
1.5 Kién tric Oracle Database Server
Oracle Database Server: Overview
- Oracle Instance là thành phần liên kết giữa người dùng và théng tin trong Oracle
Database Một Oracle Instance chỉ được mở cho duy nhất một Oracle Database cần truy xuất
Oracle Database dùng đề lưu trữ và cung cấp thông tin cho người dùng Việc quản lý
dữ liệu trong Oracle Database thông qua cấu trúc lưu trữ logic và vật lý
1.5.1 Oracle Instance Architecture
Oracle Database Memory Structure - Cau trac ving nhé
Trang 14bộ nhớ đề lưu trữ đoạn code chương trình đang chạy, dữ liệu được share giữa các User hoặc các dữ liệu riêng tư cho mỗi kết nối của User đến Server
Có hai cầu trúc bộ nhớ cơ bản trong một Instance
- _ System Global Area (SGA): Là vùng bộ nhớ chia sẻ được sử dụng đề lưu trữ đữ liệu
và các thông tin điều khiển của Oracle server Được chỉ định khi một Instance được khởi động, và là thành phân cơ bản của một Oralce Instance
- Program Global Area (PGA): La mét phan câu trúc bộ nhớ lưu trữ dành cho 1 User
process kết nối tới 1 Instance bao gém dit liéu va thong tin điều khiển cho một Server
hoặc một Background process Được chỉ định khi một Server Process được khởi động
Cac thanh phan trong System Global Area (SGA)
- _ Shared pool: Được dùng để lưu trữ những đoạn SQL vừa được thực thi gần đây nhất
và những định nghĩa dữ liệu được dùng gần đây nhất Ở Shared Pool bao gồm
® Library cache: Luu tri những định nghĩa về những đoạn lệnh SQL và PL/SQL,
vừa được thực thi gần đây nhất theo thuật giải Least Recently Used (LRU) Library cache bao gồm 2 cấu trúc là Shared SQL area và Shared PL/SQL area Kích thước của vùng này được xác định bởi Shared pool sizing
¢ Data dictionary cache: Thu thập những định nghĩa được dùng gần đây nhất trên cơ
sỡ dữ liệu bao gồm các thông tin về Database file, tables, indexes, columns, user, privileges Trong qua trinh phan tích cú pháp đoạn lệnh, Server Process sẽ đọc các thông tin dinh nghia 6 Data dictionary cache dé lay tên các đối tượng, xác nhận truy cập Kích thước của vùng này được xác định bởi Shared pool sizing
¢ Control structures
® Database Buffer Cache: Luu trir những bản copy của Block dữ liệu đã được đọc từ
Data File Khi một đoạn SQL được thực thi, thi Server Process sẽ đọc các thông
tin từ Database buffer cache dé lay cac block đữ liệu cần thiết, điều này giúp cho
tốc độ hoạt động của hệ thống sé cao hon vi doc trén cache sẽ nhanh hơn là đọc
trên đĩa cứng Smile Nếu các block dữ liệu không có trong Database buffer cache
Trang 15dụng thuật giải LRU như ở Shared Pool
chưa Nếu có r6i (cache hit), thi đọc luôn trong buffer cache Nếu chưa có (cache
miss), Oracle sẽ phải đọc từ thiết bị lưu trữ lên
Streams
System Global Area (SGA) Hinh 1-4 Cac thanh phan trong Database buffer cache ctia System Global Area (SGA)
- Redo Log Buffer: là phần bộ nhớ chứa những thay đôi trên database, do các câu lệnh
DML, DDL hay do các hoạt động nội bộ trong database Khi Redo log buffer đầy 1/3
hoặc cử sau mỗi 3 gidy, Log writer process sẽ ghi vao Redo log files, dé lay ch6 cho những nội dung thay đôi mới
Trang 16hftp://khanh.com.vn
Redo log buffer
Streams pool poal
System Global Area (SGA)
Hình 1-6 Các thanh phan trong Large Pool cua System Global Area (SGA)
- Java Pool va Streams Pool: Java Pool la ving ding cho cac Procedure viét bang Java Stream Pool ding cho Oracle Stream
Javapool = System Global Area (SGA)
Hinh 1-7 Java Pool va Streams Pool
Trang 17Cac thanh phan trong Program Global Area (PGA)
Hinh 1-8 Cac thanh phan trong Program Global Area (PGA)
Có 1 phần bộ nhớ trong hệ thống chứa thông tin vé session, goi la User Global Area (UGA) Trong trường hợp instance ding cau hình shared server, UGA sẽ nằm trong SGA luôn Còn trường hợp instance cầu hình dedicated server, UGA sẽ nằm trong PGA
PGA là phần bộ nhớ riêng cho mỗi server process Ngoài UGA, PGA còn chứa Private SQL Area và SQL Work Areas
- Private SQL Area: chita cac bind variables, thong tin vé câu query (ví dụ như số dòng khi thực hiện full table scan)
- - SQL Work Areas: vùng bộ nhớ này dùng cho các hoạt động khác liên quan đến câu query như:
+ Sort area dùng cho việc sắp xếp
+ Hash area dung cho thao tac hash join
+ Bitmap merge area cho thao tac merge bitmap ttr bitmap index scan
Process Architecture
Trong hé théng Oracle Database thì Process có thê được chia làm ba nhóm là
- User Process: Bao gom ứng dụng hay công cụ kết nối tới Oracle Database
- Database Process: Bao gém Server Process va Background Process Trong đó Server
Process duoc tao ra khi mét Session duoc thiét lap Con Background Process duoc khởi động mỗi khi Instance được khởi động
Trang 18Daemon/Application Process: Bao g6m Networking listeners va Grid infrastructure daemons
qua va do tin cay
Co cac Background Process
Database writer process (DB Wn)
Log Writer process (LGWR)
Checkpoint process (CKPT)
System monitor process (SMON)
Recoverer process (RECO)
Job queue coordinator (CJQ0)
Job slave processes (Jnnn)
Archiver processes (ARCn)
Queue monitor processes (QMNn)
Trang 19Trong cac Background Process trén thi DBWn, PMON, CKPT, LGWR, SMON va RECO la cac Background Process bat buộc phải có
Log Writer Process (LGWR):
Hinh 1-10 Log Writer Process (LGWR)
Có nhiệm vụ ghi các Redo log bufer xuống một Redo log file Các trường hợp LGWR thực
hiện công việc ghi trên:
e Khi User Process thuc hién commit m6t transaction
¢ Khi Redo log buffer đã day
¢ Trước khi DBWr ghi dữ liệu xuống đĩa
Hinh 1-11 Cau tric Checkpoint (CKPT)
System Monitor Process (SMON)
Trang 20System Monitor
process
Temporary segment
Hình 1-13 Cấu trúc System Monitor Process (SMON)
System monitor process (SMON) co cac nhiém vu
- _ Phục hôi lại những thay đôi trong redo logs
- _ Mở đatabase cho User truy xuất
- Phuc héi cac transactions chua duoc commit
Process Monitor Process (PMON)
Hinh 1-14 Cau tric Process Monitor Process (PMON)
Process Monitor Process (PMON) có nhiệm vụ "thu don" sau khi m6t Process that bai:
- Quay tré lai transaction
- _ Giải phóng blocks
- _ Giải phóng những tài nguyên khác
- _ Khởi động lại các dispathcers
- Tu d6ng dang ky Database services voi Listeners
Trang 21- Oracle database la tap hợp các đữ liệu được xem như một đơn vị thành phân (Unit)
- Database co nhiém vụ lưu trữ và trả về các thông tin liên quan
- _ Database được xem xét đưới hai góc độ cầu trúc logic và cau trúc vật lý Tuy vậy, hai
cầu trúc đữ liệu này vẫn tôn tại tách biệt nhau, việc quản lý đữ liệu theo câu trúc lưu
trữ vật lý không gây ảnh hưởng tới cau trúc logic
- Oracle database được xác định bởi tên một tên duy nhất và được quy định trong tham
số DB_NAME của paramcter file
Cấu trúc vật lý và logic của Database
+ Cấu trúc vật lý của Database
Cấu trúc vật lý bao gồm tập hợp các control file, online redo log file va cac datafile: Datafiles:
Mỗi một Oracle database đều có thê có một hay nhiéu datafiles Cac database datafiles chứa toàn bộ đữ liệu trong database Các dữ liệu thuộc câu trúc logic của database nhuw
tables hay indexes đều được lưu trữ dưới dang vat ly trong các datañles cua database Một số tính chất của datafiles
- - Mỗi datafile chỉ có thể được sử dụng trong một database
Trang 22- _ Bên cạnh đó, datañles cũng còn có một số tính chất cho phép tự động mở rộng kích
thước mỗi khi database hết chỗ lưu trữ dữ liệu
- Một hay nhiều datafiles tạo nên một đơn vị lưu trữ logic của database gọi là
tablespace
- Mét datafile chi thuộc về một tablespace
Dữ liệu trong một datafile co thể đọc ra và lưu vào vùng nhớ bộ đệm của Oracle Ví
dụ: khi một user muốn truy cập dữ liệu trong một table thuộc database Trong trường hợp thông tin yêu cầu không có trong cache memory hiện thời, nó sẽ được đọc trực tiếp từ các đatafiles ra và lưu trữ vào trong bộ nhớ
Tuy nhiên, việc bô sung hay thêm mới dữ liệu vào database không nhất thiết phải ghi ngay vào các đatafile Các dữ liệu có thê tạm thời ghi vào bộ nhớ đề giảm thiều việc truy xuất tới bộ nhớ ngoài (ố đĩa) làm tăng hiệu năng sử dụng hệ thống Công việc ghi đữ liệu này được thực hiện bởi DBWn background process
Redo Log Files:
M6i Oracle database déu co mét tap hop tir 02 redo log files tré 1én Cac redo log files
trong database thường được gọi là database's redo log M6t redo log dugc tao thanh ttr
nhiéu redo entries (goi la cac redo records)
Chức năng chính của redo log là ghi lại tat ca các thay đổi đối với đữ liệu trong database Redo log ñles được sử dụng đề bảo vệ database khỏi những hỏng hóc do sự cố Oracle cho phép sử dụng cùng một lúc nhiều redo log gọi là multiplexed redo log đề cùng lưu trữ các bản sao của redo log trên các ô đĩa khác nhau
Các thông tin trong redo log ñle chỉ được sử dụng đề khôi phục lại database trong trường hợp hệ thống gặp sự có và không cho phép viết trực tiếp dữ liệu trong đatabase lên các datafiles trong database Vi du: khi có sự cô xảy ra như mắt điện bat chợt chăng hạn, các
dữ liệu trong bộ nhớ không thê ghi trực tiếp lên các datafiles và gây ra hiện tượng mất đữ liệu Tuy nhiên, tất cả các đữ liệu bị mất này đều có thê khôi phục lại ngay khi database được mở trở lại Việc này có thê thực hiện được thông qua việc sử đụng ngay chính các thông tin mới nhất có trong các redo log ñles thuộc đatañles Oracle sẽ khôi phục lại các database cho đến thời điểm trước khi xảy ra sự cô
Công việc khôi phục dữ liệu từ các redo log được gọi là rolling forward
Trang 23Control Files:
Mỗi Oracle database đều có ít nhất một control ñle Control ñle chứa các mục thông tin
quy định cấu trúc vật lý của database nhu:
- Tên của database
- _ Tên và nơi lưu trữ cac datafiles hay redo log files
- _ Time stamp (mốc thời gian) tạo lap database
Mỗi khi nào một instance của Oracle database được mở, control ñle của nó sẽ được sử
dung dé xac dinh data files và các redo log files đi kèm Khi các thành phân vật lý cả
database bi thay déi (ví dụ như, tạo moi datafile hay redo log file), Control file sé duoc tự
động thay đôi tương ứng bởi Oracle
Control file cũng được sử dụng đến khi thực hiện khôi phục lại dữ liệu
¢ Cau tric Logic ctia Database
Cau tric logic cua Oracle database bao gém cac déi tuong tablespaces, schema objects, data blocks, extents, va segments
Tablespaces:
Một database có thể được phân chia về mặt logic thành cac don vi goi la cac tablespaces, Tablespaces thường bao gồm một nhóm các thành phần có quan hệ logic với nhau Mỗi quan hệ giữa Databases, Tablespaces, và Datafiles
- M6i database co thé phan chia vé mat logic thanh m6t hay nhiéu tablespace
- Méi tablespace co thể được tạo nên, về mặt vật lý, bởi một hoặc nhiều datafiles
- _ Kích thước của một tablespace bằng tổng kích thước của các đatafiles của nó
- _ Kích thước của đatabase cũng có thể xác định được bằng tông kích thước của các tablespaces của nó
Schema va Schema Objects:
Schema la tap hop cac d6i tuong (objects) cd trong database Schema objects la các cầu trúc logic cho phép tham chiếu trực tiếp tới đữ liệu trong database Schema objects bao gồm các cầu trúc như tables, views, sequences, stored procedures, synonyms, indexes, clusters, va database links
Data Blocks, Extents, and Segments:
Trang 24Oracle điêu khiên không gian lưu trữ trên đĩa cứng theo các cầu trúc logic bao gồm các data blocks, extents, va segments
- Oracle Data Blocks: La mitc phan cap logic thap nhất, các dữ liệu của Oracle
database được lưu trữ trong các data blocks M6t data block tương ứng với một số
lượng nhất định các bytes vật lý của database trong không gian đĩa cứng Kích thước
của một data block được chỉ ra cho mỗi Oracle database ngay khi database được tạo
lập Database sử dụng, cấp phát và giải phóng vùng không gian lưu trữ thông qua các Oracle data blocks
- _ Extents: Là mức phân chia cao hơn về mặt logic các vùng không gian trong database Một extent bao gồm một số data blocks liên tiếp nhau, cùng được lưu trữ tại một thiết
bị lưu giữ Extent được sử dụng đề lưu trữ các thông tin có cùng kiểu
- _ Segments: Là mức phân chia cao hơn nữa về mặt logic các vùng không gian trong database Một segment là một tập hợp các extents được cấp phát cho một cầu trúc logic
CHUONG 2: QUAN TRI VAN HANH VOI HE QUAN TRI CO SO DU LIEU
ORACLE
2.1 Tạo và cấu hình cơ sở dữ liệu
2.1.1 Tạo và cấu hình cơ sở dữ liệu
Việc tạo database được tiến hành theo các bước:
- Quyết dinh chon lia tén instance va tên database duy nhat Chon character set — tap
ky tu str dung trong database
- Thiét lap cac bién hé thong
- Chuan bi file tham số, tạo ñle mật khẩu (nên có thao tác này)
- Chuan bi instance phuc vu quan tri
- Tao database
- Chay scripts dé tạo cac dictionary cho database
Chuan bi hé diéu hanh:
Dé tao database, quan trị viên trước tiên phải có thé truy nhập vào hệ điều hành với đầy đủ quyền
Trang 25của Server và đảm bảo có đủ bộ nhớ đề thực hiện các tiến trình của Oracle một cách hiệu
quả
Tính toán lượng đĩa trong cần thiết cho viéc luu trit cac data files, cac control files, cac redo log file va cac files khac
Biến môi trường:
Trên hệ điều hành Windows, ta thiết lập các biến môi trường Các biến này tương ứng với các tham số trong registry như: ORACLE_ HOME, ORACLE _SID,NLS_LANG
Dé tao moi database, can tao mdi biến môi trường ORACLE,_ SID:
C:\set ORACLE SID =U16
Chuan bi cac tham s6 trong Parameter file:
Khi tạo mới mét database, ta can quan tâm tới việc tạo parameter file Parameter file chứa
các thông tin can thiét trong database, trong đó quan tâm nhất là các tham số sau:
DB NAME: Tén dinh danh cua database, toi da 8 ký tự Tên database phải trùng với giá trị của biến môi trường ORACLE_SID
CONTROL FILES: Liét kê danh sách các control ñle sử dụng trong database Tối thiểu có
01 control file trong database Tuy nhién, ta nén tao 02 control files trở lên để đề phòng hỏng
file Cac control files khong can thiét phải ton tai Khi tao database, Oracle sé tạo các control
files nay
DB_ BLOCK SIZE: Xac định kích thước của một block sử dụng trong database Kích thước
này sẽ không thay đôi được sau khi database đã được tạo lập Kích thước của các block được tinh theo don vi K (Kilobytes)
Thông thường, khi chuẩn bị parameter ñle của một database sắp được tạo, ta có thê sao chép
lại nội dung của parameter file mẫu rồi chinh sửa lại một vài thông số trong đó như
đdb name, control_ files,
Parameter file mẫu của oracle thường được đặt ở thư mục:
<%ORACLE HOME%>\ADMIN\SAMPLES\PFILE
Ví dụ về nội dung của file tham 36: file InitU16.ora
db_name = U16
db_files = 1020
Trang 26control files = ("C:\ORANT\database\ctl1U16.ora",
sequence cache entries = 30
sequence cache hash buckets = 23
#audit_ trail = true
#timed_ statistics = true
background dump_dest = C:\ORANT\rdbms80\trace
user dump dest = C:\ORANT\rdbms80\trace
db_block size =8192
compatible = 8.0.4.0.0
sort_area_size = 65536
log _checkpoint_timeout = 0
remote login _passwordfile = shared
max dump file size = 10240
Chuan bi Instance phuc vu quan tri:
a Tao mot instance
Cu phap:
C:\>ORADIM -NEW -SID SID | -SRVC SERVICE NAME [-INTPWD
INTERNAL PWD] -SHUTTYPE SRVC | INST | SRVC, INST [-MAXUSERS NUMBER][-STARTMODE AUTO | MANUAL][-PFILE FILENAME]
Với:
- NEW: Tạo mới Instance phục vụ cho database
- SID SID: Tên của instance được tạo (tên này thường được lấy chính là tên của đatabase)
Trang 27- INTPWD INTERNAL PWD: Mat khau cua Internal account str dung dé quan tri database
- MAXUSERS NUMBER: Sé6 luong user t6i da định nghĩa trong password file
- STARTMODE AUTO, MANUAL: Dat ché d6 khoi dong instance phục vụ (khởi động
service trén may chu server)
- PFILE FILENAME: Chi r6 parameter file INIT<Database_name>.ORA
- SHUTTYPE SRVC, INST: Dimg instance phục vu (stop service)
- STARTUP: Khởi động instance phuc vu sẵn sang cho viéc tao database
- SID SID: Tên của instance được tạo (tên này thường được lấy chính là tên của database)
- USERPWD USER PWD: Mat khau
- STARTTYPE SRVC, INST: Ché độ khởi dong la service hay instance
Vi du: C:\> ORADIM -SHUTDOWN -SID PUMA -SHUTTYPE SRVC INST
Tao Database:
a Khoi Dong Instance
Sử dụng user với mức quyén DBA Dung céng cu ORADIM dé tao Instance
Khởi động Instance ở chế độ NOMOUNT và chỉ rõ ñle tham số sử dụng trong chương trình:
Trang 28CREATE DATABASE [database]
[CONTROLFILE REUSE]
[LOGFILE [GROUP integer] filespec
[, [GROUP integer] filespec] ]
[CHARACTER SET charset]
[NATIONAL CHARACTER SET charset]
[DATAFILE filespec [autoextend_clause]
[, filespec [autoextend clause] ]]
filespec :== 'filename' [SIZE integer][K|M] [REUSE]
CONTROLFILE REUSE: Tén file tham số da ton tại được tải sử dụng
LOGFILE GROUP: Tên của log file được sử dụng
MAXLOGFILES: Số lượng tôi đa cac log file group cho CSDL
MAXLOGMEMBERS: Số lượng tối đa các log ñle member đối với một log file group MAXLOGHISTORY: Số lượng tôi đa cac redo log trong một group
DATAFILE filespec: Tên file dữ liệu được sử dụng
Trang 29AUTOEXTEND: Cho phép hoặc không cho phép mở rộng tự động các file dữ liệu MAXDATAFILES: Số lượng tối đa các datañles trong database
MAXINSTANCES: Số lượng lớn nhất các instance có thê đồng thời mount và open database
ARCHIVELOG: Xác định ràng redo log cần đề ở chế độ archive trước khi được dùng lại NOARCHIVELOG: Xác định ràng redo log cần được dùng lại mà không cần đặt chế độ archive
CHARACTER SET, NATIONAL CHARACTER SET: Chuan ky ty ma CSDL str dung dé
lưu trữ các đữ liệu
Ví dụ: tạo database
SPOOL creU16.log
STARTUP NOMOUNT PFILE=initU16.ora
CREATE DATABASE U16
GROUP | (/DISK3/logla.rdo',/DISK4/log|b.rdo’) SIZE 1 M,
GROUP 2 (/DISK3/log2a.rdo',/DISK4/log2b.rdo’) SIZE 1 M
DATAFILE
DISK 1/system01.dbf' size 50M autoextend on
CHARACTER SET WES8ISO8859P1;
c Lỗi xảy ra khi tạo database
Lỗi xảy ra khi tạo database phân lớn do các nguyên nhân sau:
- Lỗi cú pháp lệnh tạo database
- Cac file dit liéu cần tạo lap da ton tai
- _ Lỗi do hệ điều hành, không có đủ quyền, không đủ chỗ trồng
d Kết qua sau khi tao database
Kết thúc các bước trên ta thu được một database với:
Trang 30- Cac control files va cac redo log files phuc vu cho database
- Hai user quan tri database và mật khẩu tương ứng la: SYS/change on install va SYSTEM/manager
- 01 Rollback segment SYSTEM
- _ Các bảng dữ liệu mternal với đữ liệu trong
Tao Data dictionary cho database:
Data dictionary hay còn gọi là từ điển đữ liệu của đatabase là tập hợp các views được thiết lập trong database cung cấp các thông tin về database
Cac file tao data dictionary cho đatabase được Oracle cung cấp sẵn và thường được đặt trong thu muc <%ORACLE HOME%>\RDBMS\ADMIN
Cac dictionary views được phân loai va dat trong cac file SQL khac nhau
Mét 86 file SQL hay dung:
CATALOG.SQL: Tao cac dictionary views co ban, trigger va store procedure co so CATPROC.SQL: Tao cac package cơ sở
CATREP.SQL: Tao cac chite nang Replication cho database
2.1.2 Tao va cau hinh Database bang giao dién:
Tién hanh tai SQL developer
> Sau khi đã tải xong, tiến hành bắm dấu mũi tên ở góc trái -> chọn New Database
Connection dé thuc hién két néi dữ liệu
Trang 31$F test - ata madeling anc datatase design
The 505 - The power of SAL Develops in acs
" gg se meesueneetf vhore SC tor tree
(6) ons: nest trie he ne Date
(oe oy oe vượt SỐ 4787
> Sau dé chon Test va Connect dé két néi dữ liệu
Dữ liệu đã được kết nối thành công
> Tai giao diện màn hình nhập lệnh select*from đba_ users; đề mở cơ sở đữ liệu đã kết
Trang 322.2 Sao lưu dữ liệu - Backup
Cơ sở đữ liệu là một trong những tư liệu, tài sản quý giá của doanh nghiệp Đảm bảo an toàn
cho cơ sở đữ liệu là nhiệm vụ quan trọng Khi có sự cô về cơ sở đữ liệu xảy ra, yêu cầu đặt
lên hàng đầu là phải nhanh chóng sao lưu và khôi phục cơ sở đữ liệu, giảm tối đa thời gian
hệ thông bị đình trệ cũng như các vấn đề mất mát dữ liệu
Mục tiêu:
- _ Dự phòng các biến cô có thê xảy ra
- _ Phục hồi đữ liệu nhanh và chính xác
Các biến cố nên thực hiện sao lưu dữ liệu:
- _ Chủ quan và khách quan: Gặp sự cô và đánh mắt tất cả dữ liệu (trường hợp khách quan và chủ quan);
- _ Hệ thống và hành vi:
+ Lỗi đĩa cứng
+ Xóa nhằm đữ liệu
+ Sử dụng các câu lệnh thực hiện thao tác thay đổi như Insert, Update, Delete
đối với dữ liệu
- _ Bên trong và bên ngoài
2.2.1 Hiểu thuật ngữ backup
Các mục tiêu dữ liệu cần backup
- Cac data file
- Archived redo log (Redo log file)
- Control file
Chién lược backup bao gồm
- Backup toan bộ database (Full backup)
- Backup mét phan database (Partial backup)
- Backup tang tién (Incremental backup)
- Backup nhat quan dir liéu (Consistent backup)
- Backup không nhat quan dit liéu (Inconsistent backup)
Các dạng lưu dữ liệu backup
- _ Image coples: là một bản copy chính xác bit-for-bit của database
Trang 33- _ Backup pieces: là một định dạng độc quyền chứa một hay nhiều ñle Physical gọi là Backup piece Nó có thê chứa nhiều hơn | file Database
-_ Cold backup: một bản sao lưu được thực hiện trong khi một cơ sở đữ liệu hoặc hệ
thống đang ân hoặc trong chế độ tắt máy
- Hot backup: một bản sao lưu được thực hiện khi cơ sở đữ liệu vẫn đang chạy và
người dùng có thê truy cập được vào cơ sở đữ liệu đó Do đó sẽ có các thay đôi có thé
được thực hiện đối với đữ liệu trong khi nó đang được sao lưu
2.2.2 Phương pháp được sử dụng để backup trong Oracle
Phương pháp được sử dụng phố biến:
- _ Kịch ban backup do DBA ty dinh nghĩa
- Recovery Manager (RMAN)
Kich ban backup do DBA (Database Administrator) tw dinh nghia
Dac diém:
- _ Một quy trình thủ công theo đối các nhu cầu và trang thai cua backup
- _ Thường sử dụng các câu lệnh (script) viết của riêng quản trị
- Yéu cau cac file cua CSDL duoc dat 6 ché d6 backup (backup mode)
- _ Dựa vào các lệnh của hệ điều hành đề tao cac ban file backup (cp, zip, tar, )
Nguoi quan tri tự viết lệnh đề thực hiện backup:
- _ Tìm những tên và trạng thái của data file can backup;
- _ Kiểm tra trạng thái của redo log file;
Trang 34- Chuyén trang thai cia control file vé ché d6 backup;
- _ Chuyến trạng thái của tablespace (đơn vị lưu trữ) về ché d6 online backup;
- _ Kiểm tra trạng thái của đata ñle đã ở chế độ online backup hay chưa;
- Dung lénh cua hé diéu hanh dé copy file sang 6 backup;
- _ Chuyến tablespace và các đối tượng khác vẻ chế độ hoạt động bình thường: Recovery Manager (RMAN)
RMAN là một công cụ mạnh mẽ, tĩnh vĩ được cung cấp bởi Oracle để thực hiện sao lưu và
phục hồi RMAN được tự động cài đặt khi cài đặt cơ sở dữ liệu Oracle vì vậy không có yêu cầu cài đặt thêm nào đề sử dụng RMAN
Đặc điểm:
- - Có các hàm để chạy lệnh backup và hỗ trợ cả script;
- (C6 API duoc xuat bản cho phép giao điện tương thích với hầu hết các phần mềm backup phô biến hiện nay:
- Có thể backup được: data file, control file, archivelog, spfile;
- Có thê backup đữ liệu ra đĩa hoặc băng từ:
- Co thé str dung RMAN thông qua EM;
Cac kiéu RMAN backup thuong thay
Full backup chứa những những block (khối) đã sử dụng trong các data ñle (block trồng không backup)
Incremental backup (Ban sao lưu gia tăng) là một bản sao trong đó các bản sao liên tiếp của
dữ liệu chỉ chứa phần đã thay đôi kê từ khi bản sao lưu dự phòng trước đó được tạo Bao gồm 2 kiểu:
+ Cumulative (cac loai dit ligu backup ti lan level 0 gần nhất)
+ Differential (cac loai dir ligu backup tir lan backup Incremental gan nhat) Vidu:
Level 0 incremental backup (Tuong duong v6i Full backup, duoc danh dau nhu level 0) backup RMAN > INCREMENTAL LEVEL 0 DATABASE;
Trang 35Full, hoặc “level 0
Trang 36
Parallelism [ a
Concurrent streams to disk drives
Disk Backup Location |
“The fast recovery area ts the current disk backup location If you would like to override the disk backup location, specify an
existing directory or diskgroup
Disk Backup Type @ Backup Set
An Oracle backup file format that allows for more efficient backups by interleaving multiple backup files into one output file
“Device | Backup Set | Policy
Maximum Backup Piece (File) Size MB +
Specify the compression algorithm that will be used for both disk and tape compressed backup sets
Backup Policy
EElAwematically backup the control file end server parameter file (SPFLE) with every backup and database structural change
(Wil be backed up to the fash recovery ares location Cogn Lup by skipping
ÍC]Enable tlock change tracking for faster incremental
Block Change Tracking Fle _
the thes
9 such as readonly and offin that hi backups
Tablespaces Excluded From Whole Database Backup
Populate thic table wth the tablespaces you want to exclude from
OUP These tablespaces can be backed up separately using tablespace backup
Retention Policy
‘Retain backups that are necessary for a recovery to any time within the specified number of days (pointin-time Days 31
Quan ly backup
Manage Current Back P
This backup data was retrieved from the database control file
Backup Sets | ‘mage Cones”
Search
‘Status
Contents [7)Datatle M Archived Redo Log [V]SPFILE [#]Control File
Completion Time [Within a month
Trang 37Type One Time (Immediately) One Time (Later) @ Repeating
Frequency Type | By Minutes ¥
Repeat Every Minutes
2.3 Phục hồi dữ liệu
Là quá trình khôi phục lại cơ sở đữ liệu ban đầu từ cơ sở dữ liệu được backup
Login vào máy chủ đatabase với user “oracle”, chạy các lệnh sau:
- Restore Spfile va Controlfile
Chạy lệnh theo cú pháp sau, và thay các tham số tương ứng, kết quả câu lệnh trả về thành công là thành công:
$ rman target /
RMAN>Startup nomount
RMAN>rman catalog start with ‘/<BackupLoc>’
RMAN+> restore spfile to’<Spfile Loc>/spfile.ora’ from ‘/<BackupLoc>/<SpfileBackup>; RMAN> shutdown immediate
RMAN>startup nomount
RMAN?>restore controlfile from ‘/<BackupLoc>/<ControlBackup>’;
RMAN>-alter database mount;
- Tao script Restore Database
$ vi/<BackupLoc>/restore_database.cmd
Đưa vào các nội dung như bên dưới và chỉnh các tham số phù hợp:
connect target sys/<pass>@<Database Backup> run {allocate channel chl device type disk; restore database; recover database; release channel chl;
}
sql ‘alter database open resetlogs’
- Tao script Restore Pluggable Database
$ vi/<BackupLoc>/restore_plug.cmd