PHẦN LÝ THUYẾT Chương I TÌM HIỂU VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 1.1 Giới thiệu về hệ quản trị CSDL Oracle - Oracle là một hệ thống phục vụ cho mục đích quản lý cơ sở dữ liệu quan hệ, viế
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM
Lớp: 09DHBM2
TP.HỒ CHÍ MINH, THÁNG 5 NĂM 2021
Trang 2GIÁO VIÊN HƯỚNG DẪN ĐỀ TÀI
Giáo viên hướng dẫn thứ nhất:
Họ và tên: Nguyễn Phương Hạc
Cơ quan công tác: Trường ĐH Công Nghiệp Thực Phẩm TPHCM
Nội dung hướng dẫn: Tìm hiểu, triển khai và cài đặt CSDL Oracle Tìm hiểu và xây dựng các giải pháp an toàn trên CSDL Oracle
Giáo viên hướng dẫn thứ hai: Họ và tên:
Cơ quan công tác:
Nội dung hướng dẫn:
Đề tài được giao ngày 24 tháng 04 năm 2021
Yêu cầu phải hoàn thành trước ngày 21 tháng 06 năm 2021
Trang 3PHẦN NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
1 Tinh thần thái độ của sinh viên trong quá trình làm đề tài tốt nghiệp:
2 Đánh giá chất lượng của đề tài (so với nội dung yêu cầu đã đề ra trong nhiệm vụ đề tài)
3 Cho điểm của giáo viên hướng dẫn:
(Điểm ghi bằng số và chữ)
Ngày……tháng… năm 2021 Giáo viên hướng dẫn (Ký, ghi rõ họ tên)
Trang 4PHẦN NHẬN XÉT ĐÁNH GIÁ CỦA CÁC BỘ CHẤM PHẢN BIỆN ĐỀ TÀI
1 Đánh giá chất lượng đề tài tốt nghiệp (về các mặt như cơ sở lý luận, thuyết
trình, giá trị thực tế…)
2 Cho điểm của giáo viên phản biện
(Điểm ghi bằng số và chữ)
Ngày……tháng……năm 2021 Giáo viên phản biện (Ký, ghi rõ họ tên)
Trang 5LỜI NÓI ĐẦU
Những năm gần đây, vai trò của các hệ quản trị cơ sở dữ liệu trong doanh nghiệp
đã ngày càng lớn mạnh Từ chỗ chỉ được sử dụng để hỗ trợ một số hoạt động trong lưu trữ dữ liệu, hiện nay đã trở nên có vai trò chiến lược trong doanh nghiệp Đặc biệt những thành tựu trong công nghệ thông tin (CNTT) đã khiến doanh nghiệp ngày càng chú ý hơn tới việc phát triển hệ cơ sở dữ liệu và triển khai các giải pháp
an toàn nhầm tránh mất mát dữ liệu Hiện nay, hệ quản trị cơ sở dữ liệu không chỉ giới hạn trong các doanh nghiệp lớn, tầm cỡ đa quốc gia mà còn lan rộng trong tất
cả các doanh nghiệp, kể cả những doanh nghiệp vừa và nhỏ ở những nước đang phát triển Tuy nhiên, việc triển khai các cơ sở dữ liệu và triển khai các giải pháp
an toàn nhầm tránh mất mát dữ liệu không phải đơn giản ngay cả với những doanh nghiệp lớn, dồi dào về nguồn tài lực, nhân lực và kinh nghiệm Một hệ quản trị cơ
sở dữ liệu thành công ở doanh nghiệp này cũng chưa chắc thành công tương tự trong doanh nghiệp khác Vì vậy, đề tài của nhóm đó là “Tìm hiểu và triển khai các giải pháp an toàn trong Oracle” để có cái nhìn sâu hơn, thực tế hơn về việc triển khai và bảo mật dữ liệu trong hệ quản trị cơ sở dữ liệu trong doanh nghiệp Từ đó nhóm rút ra được những mặt ưu, khuyết của hệ thống, kinh nghiệm triển khai Vì thời gian thực hiện không nhiều nên chắc chắn còn nhiều thiếu sót, mong được thầy/cô hướng dẫn thêm
Trân Trọng Cảm ơn
Trang 6LỜI CẢM ƠN
Trước tiên với tình cảm sâu sắc và chân thành nhất, cho phép tôi được bày tỏ lòng biết ơn đến thầy Nguyễn Văn Tùng, thầy Trần Đắc Tốt, cô Nguyễn Phương Hạc và anh Hậu cựu sinh viên khoa Công Nghệ Thông Tin đã tạo điều kiện hỗ trợ, giúp đỡ tôi trong suốt quá trình học tập và nghiên cứu đề tài này Trong suốt thời gian từ khi bắt đầu học tập tại trường đến nay, tôi đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô và bạn bè
Với lòng biết ơn sâu sắc nhất, tôi xin gửi đến quý Thầy Cô ở Khoa đã truyền đạt vốn kiến thức quý báu cho chúng tôi trong suốt thời gian học tập tại trường Nhờ có những lời hướng dẫn, dạy bảo của các thầy cô nên đề tài nghiên cứu của chúng tôi mới có thể hoàn thiện tốt đẹp
Một lần nữa, tôi xin chân thành cảm ơn cô Nguyễn Phương Hạc – người đã trực tiếp giúp đỡ, quan tâm, hướng dẫn chúng tôi hoàn thành tốt bài báo cáo này trong thời gian qua
Bài báo cáo đồ thực hiện trong khoảng thời gian gần 8 tuần Bước đầu đi vào thực tế của tôi còn hạn chế và còn nhiều bỡ ngỡ nên không tránh khỏi những thiếu sót, rất mong nhận được những ý kiến đóng góp quý báu của quý Thầy Cô để kiến thức của tôi trong lĩnh vực này được hoàn thiện hơn đồng thời có điều kiện bổ sung, nâng cao ý thức của mình
Tôi xin chân thành cảm ơn
Trang 7NHIỆM VỤ ĐỀ TÀI
1 Tìm hiểu kiến trúc Oracle
2 Tìm hiểu cơ chế quản trị tài nguyên và lập lịch tự động, sao lưu tự động
3 Xây dựng các giải pháp an toàn cơ sở dữ liệu Oracle
4 Cài đặt các nội dung tìm hiểu trên Java và Oracle Linux
TÀI LIỆU THAM KHẢO
1 Cài đặt Oracle 19c GUI
https://www.tranvanbinh.vn/2020/12/tu-ong-backup-oracle-database-hang-6 Java connect Oracle
https://www.youtube.com/watch?v=ea0HhETxOIs&t=2007s
7 Restore and recover in rman
https://docs.oracle.com/cd/A91202_01/901_doc/server.901/a90135/rmancon a.htm
Trang 8https://csc.edu.vn/lap-trinh-va-csdl/tin-tuc/kien-thuc-lap-trinh/hoc-oracle MỤC LỤC
LỜI NÓI ĐẦU 5
LỜI CẢM ƠN 6
NHIỆM VỤ ĐỀ TÀI 7
TÀI LIỆU THAM KHẢO 7
MỤC LỤC 8
DANH MỤC HÌNH 10
Chương I TÌM HIỂU VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 11
1.1 Giới thiệu về hệ quản trị CSDL Oracle 11
1.2 Lịch sử hình thành và các phiên bản 11
1.3 Oracle và công nghệ Client/Server 12
Chương II KIẾN TRÚC HỆ QUẢN TRỊ CSDL ORACLE 12
2.1 Kiến trúc của hệ quản trị CSDL Oracle 12
2.2 Cấu trúc vùng nhớ (Memory Structure) 12
2.2.1 System Global Area (SGA) 14
2.2.2 Tìm hiểu PGA 16
2.3 Các tiến trình 26
2.3.1 Tiến trình quan trọng nhất database writer (DBWn) 28
2.3.2 Tiến trình checkpoint (thông tin trung tâm điều khiển) 29
2.3.3 Tiến trình system monitor 29
2.3.4 Tiến trình process monitor 30
2.3.5 Tiến trình Recoverer 31
2.3.6 Tiến trình Archiver (ARCn) 32
2.4 Kiến trúc Storage (lưu trữ đối tượng) 32
Chương III CÀI ĐẶT ORACLE TRÊN LINUX 35
3.1 Cấu hình máy ảo VMWare 35
3.2 Cài đặt Oracle 41
3.3 Kết nối Client tới Server 60
Chương IV CÀI ĐẶT ORACLE TRÊN WINDOWS 76
Trang 9Chương V CÁC BIỆN PHÁP BẢO VỆ CSDL 85
5.1 CÁC BIỆN PHÁP BẢO VỆ CSDL ORACLE 85
5.1.1 Quản lí người dùng 85
5.1.2 Tạo mới người dùng 85
5.1.3 Xóa người dùng 85
5.2 Mở/Tắt CSDL VÀ THỂ HIỆN (STARTUP/SHUTDOWN) 86
5.2.1 Mở CSDL 86
5.2.2 Tắt CSDL 90
5.3 Sao lưu và phục hồi dữ liệu 92
5.3.1 Xóa FILEDATA và BACKUP lại 93
5.3.2 Xóa USER và BACKUP lại USER 108
5.3.3 Crontab 114
5.3.4 Profile user 122
Chương VI SQL DEVELOPER 134
6.1 Tìm hiểu SQL DEVELOPER 134
6.2 Lợi ích và công dụng của SQL DEVELOPER 134
6.3 Cài đặt SQL DEVELOPER 134
Chương VII ỨNG DỤNG JAVA 140
Chương VIII MỘT SỐ LỖI THƯỜNG GẶP VÀ CÁCH KHẮC PHỤC 159
SOURCE CODE 160
Form đăng nhập (login) 160
Form chức năng (menu) 167
Form xem user hiện có trên database 173
Form tạo user 177
Form xoá user 185
Form tạo table vào user đang đăng nhập 190
Form xoá table 196
Form Thêm data vào table 202
Lấy dữ liệu bảng students từ user phap 208
Trang 10DANH MỤC HÌNH
Hình 1 Mô Hình Kiến Trúc Oracle 12
Hình 2 Mô hình Instance 13
Hình 3 Mô hình SGA và PGA 14
Hình 4 Mô hình SGA 15
Hình 5 Thông số SGA 15
Hình 6 Kích thước SGA 15
Hình 7 Tổng kích thước PGA 16
Hình 8 Thông số PGA 17
Hình 9 Chi tiết Shared pool 22
Hình 10 Chi tiết Redo log buffer 23
Hình 11 Chi tiết Large pool 24
Hình 12 Chi tiết Java Pool và Stream Pool 24
Hình 13 Connect 25
Hình 14 Session 25
Hình 15 Số phiên được kết nối 26
Hình 16 Liệt kê các tiến trình 27
Hình 17 Các thuộc tính process 28
Hình 18 Tiến trình Database writer (DBWn) 28
Hình 19 Quá trình điều phối LGnn 29
Hình 20 Tiến trình Checkpoint 29
Hình 21 Tiến trình System Monitor 30
Hình 22 Kiểm tra tiến trình SMON 30
Hình 23 Tiến Trình Process Monitor 31
Hình 24 Kiểm tra tiến trình PMON 31
Hình 25 Tiến trình Recoverer 32
Hình 26 Tiến trình Archiver (ARCn) 32
Hình 27 Kiến trúc Storage 33
Hình 28 Cấu trúc logic và cấu trúc vật lý của CSDL 33
Trang 11PHẦN LÝ THUYẾT
Chương I TÌM HIỂU VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
1.1 Giới thiệu về hệ quản trị CSDL Oracle
- Oracle là một hệ thống phục vụ cho mục đích quản lý cơ sở dữ liệu quan hệ, viết tắt là RDBMS (Relational Database Management System) do nhà phát triển Oracle nghiên cứu và lập trình
- RDBMS (hệ quản trị cơ sở dữ liệu quan hệ) là nền tảng cho SQL, và cho tất
cả các hệ thống cơ sở dữ liệu hiện đại như MS SQL Server, IBM DB2, Oracle, MySQL và Microsoft Access
- Hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) là một hệ thống quản lý
cơ sở dữ liệu (DBMS) dựa trên mô hình quan hệ được giới thiệu bởi EF Codd
1.2 Lịch sử hình thành và các phiên bản
- Vào năm 1977, Larry Ellison, Bob Miner, và Ed Oates thành lập một công ty
và đặt tên là Relation Incorporated (RSI) Công ty này xây dựng một hệ quản trị cơ sở dữ liệu là Oracle Ellison, Miner và Oates quyết định phát triển hệ này bằng C và giao tiếp SQL Ngay sau một thời gian ngắn, họ đưa
ra phiên bản một như một nguyên mẫu
- Năm 1979, RSI phân phối sản phẩm đầu tiên cho khách hàng: hệ quản trị cơ
sở dữ liệu Oracle phiên bản 2, làm việc trên Digital PDP-11 và ngay sau đó chuyển sang hệ thống DEC VAX
- Năm 1983 phiên bản 3 được giới thiệu với những thay đổi trong ngôn ngữ SQL Không như các phiên bản trước đây, phiên bản 3 được viết toàn bộ bằng C Vào thời điểm này, RSI được đổi tên thành Oracle Corporation
- Phiên bản 4 được phát hành vào năm 1984
- Phiên bản 5 được giới thiệu vào năm 1985, là mốc lịch sử vì nó đưa công nghệ Client/Server vào thị trường với việc sử dụng SQL*NET
- Năm 1988, Oracle đưa ra phiên bản 6 giới thiệu việc khóa ở mức thấp
- Năm 1992, Oracle đưa ra phiên bản 7 bao gồm nhiều kiến trúc về bộ nhớ, CPU và tiện ích nhập/xuất
- Năm 1997, Oracle giới thiệu Oracle 8 thêm phần mở rộng đối tượng cũng như nhiều tính năng mới và đặc biệt là các ứng dụng cơ sở dữ liệu Internet
Trang 121.3 Oracle và công nghệ Client/Server
- Oracle Corporation đã trở thành một công ty cơ sở dữ liệu nổi tiếng nhờ tạo
ra một hệ thống quản trị cơ sở dữ liệu quan hệ kiểu Server với hiệu suất cao
và đầy đủ chức năng Oracle đã vượt qua tầm vóc của một công ty cơ sở dữ liệu khi bổ sung hệ quản trị cơ sở dữ liệu quan hệ kiểu Server của nó những sản phẩm tích hợp cao được thiết kế đặc biệt cho các ứng dụng xử lý dữ liệu phân tán và công nghệ Client/Server
Chương II KIẾN TRÚC HỆ QUẢN TRỊ CSDL ORACLE
2.1 Kiến trúc của hệ quản trị CSDL Oracle
Hình 1 Mô Hình Kiến Trúc Oracle
2.2 Cấu trúc vùng nhớ (Memory Structure)
- Oracle sử dụng cấu trúc vùng nhớ để lưu trữ thông tin trong hệ thống trong khi đang thực thi, cấu trúc vùng nhớ như là một mã nguồn của một chương trình đang chạy, thông tin về kết nối của các phiên làm việc, lưu vết dữ liệu vật lý trong quá trình xử lý…
- Cấu trúc của vùng nhớ của Oracle bao gồm SGA và PGA
+ SGA (System Global Area) là một thành phần cơ bản trong Oracle Instance và được cấp phát khi Instance khởi động Thông tin lưu trữ trong SGA có thể được sử dụng bởi tất cả các Server Process và Background Process
Trang 13+ PGA (Program Global Area) được cấp phát cho User Process kết nối đến Oracle
- Kiến trúc oracle gồm: client sql, java, developer toad hoặc ứng dụng java, kết nối với sever (database)
- 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
Các Instance của Oracle chia ra làm 2 phần
Hình 2 Mô hình Instance
- Hệ thống nonclusstered khi chúng ta cài một hệ điều hành trên máy chủ, cài
1 database, cài 1 - 1 dữ liệu lưu dưới dạng local storage (D1, d2 ) ( i 1 i 2) – clustered Mỗi instace chạy trên một máy và dữ liệu là shared storage những node đều được đọc là ghi vào đầy đủ đảm bảo tính sẵn sàng, hiệu năng cao, toàn vẹn dữ liệu
Cấu trúc bộ nhớ CSDL
Trang 14Hình 3 Mô hình SGA và PGA
2.2.1 System Global Area (SGA)
Vùng SGA là bộ nhớ chia sẽ thông tin chung giữa các tiến trình process
- SGA được cấp phát tại vùng nhớ ảo của máy tính đang chạy Oracle SGA gồm có một số cấu trúc vùng nhớ dùng để chứa dữ liệu và quản lý các thông tin về Oracle Instance
- SGA còn được biết như một vùng nhớ chia sẻ, thông tin về Database có thể được truy xuất bởi các tiến trình đang làm việc trên Database đó Nếu có nhiều người dùng kết nối đến Instance thì SGA của Instance sẽ chia sẻ cho những người dùng đó
- SGA được cấp phát (allocated) trong bộ nhớ của máy tính mà Oracle server đang hoạt động trên đó Các User kết nối tới Oracle sẽ chia sẻ các dữ liệu có trong SGA Việc mở rộng không gian bộ nhớ cho SGA sẽ làm nâng cao hiệu suất của hệ thống, lưu trữ được nhiều dữ liệu trong hệ thống hơn đồng thời giảm thiểu các thao tác truy xuất đĩa (disk I/O)
- SGA bao gồm một số cấu trúc vùng nhớ chính như: Shared Pool, Database Buffer Cache, Redo Log Buffer Ngoài ra, còn có hai cấu trúc vùng nhớ mà SGA có thể sử dụng hoặc bỏ qua là Large Pool và Java Pool Kích thước của vùng nhớ của SGA phụ thuộc vào kích thước của các thành phần tạo nên nó
Trang 15Hình 4 Mô hình SGA
- SGA có một số tính năng quan trọng là ta có thể thay đổi kích thước mà
không cần phải ngừng Instance của SGA cần sửa đổi Điều này có nghĩa
kích thước của Database Buffer Cache, Shared Pool và Large Pool của SGA
có thể được thay đổi trong khi Instance đang chạy
Cách kiểm tra kích thước SGA
SQL> SHOW SGA;
Hình 5 Thông số SGA
Cách kiểm tra tổng kích thước SGA
SQL> SELECT sum (value) / 1024 / 1024 “TOTAL SGA (MB)” FROM v $
sga;
Hình 6 Kích thước SGA
Trang 162.2.2 Tìm hiểu PGA
Vùng PGA mỗi một user kết nối với data sẽ có 1 tiến trình sẽ cho PGA quản lí
- Là vùng nhớ riêng tư bao gồm dữ liệu và thông tin điều khiển của một
Server Process Mỗi Server Process đều có một PGA riêng biệt PGA bao
gồm:
Session information
Cursor information
SQL execution work area
Kiểm tra tổng kích thước PGA
SQL> select sum(pga_max_mem) /1024/1024 “TOTAL MAX PGA (MB)”
from v$process;
Hình 7 Tổng kích thước PGA
* Show PGA SELECT * FROM V$PGASTAT;
Trang 17Hình 8 Thông số PGA
Trang 18Phân tích chi tiết hơn về việc sử dụng bộ nhớ PGA
SELECT spid, program, pga_max_mem max,pga_alloc_mem
alloc,pga_used_mem used,pga_freeable_mem free FROM V$PROCESS;
Trang 20Xác định bộ nhớ được cấp tối đa theo phiên người dùng
SQL> select max(p.pga_max_mem)/1024/1024 "PGA MAX MEMORY OF USER SESSION (MB)" from v$process p, v$session s where P.ADDR = S.paddr and s.username is not null;
Trang 21* Khác nhau giữa SGA và PGA:
- PGA là bộ nhớ không chia sẻ
- 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 được dùng gần đây nhất
Trang 22Hình 9 Chi tiết Shared pool
Bao gồm:
Library cache: Lưu trữ 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 là thuật toán cache phổ biến Cache được dùng để lưu trữ các kết quả tính toán vào một nơi và khi cần tính lại thì lấy trực tiếp kết quả đã lưu ra thay vì thực hiện tính) 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 Share 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 quá trình phân tích cú pháp đoạn lệnh, Server Process sẽ đọc các thông tin định nghĩa ở Data dictionary cache để lấy 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
Database Buffer Cache: Lưu trữ 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 thì Server Process sẽ đọc các thông tin từ Database buffer cache để lấy các block
dữ 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 hơn vì đọc cache sẽ nhanh hơn đọc đĩa cứng Smile Nếu các block
dữ liệu không có trong Database buffer cache thì Server process mới đọc dữ liệu từ data file Database buffer cache cũng sử dụng giải thuật LRU như ở Shared Pool
Trang 23 Redo Log Buffer: là một bản ghi tạm thời ghi lại tất cả những thay đổi trên các Data Block với mục đích chính là để phục hồi dữ liệu Được thực hiện bởi các background process
Một số đặc điểm của Redo log buffer
Kích thước được xác định bởi tham số Log_Buffer
Lưu trữ các redo records (bản ghi hồi phục) mỗi khi thay đổi dữ liệu
Redo log buffer được sử dụng một cách thường xuyên và các thay đổi bởi một transaction có thể nằm đan xen với các thay đổi của các transactions khác
Bộ điệm được tổ chức theo kiểu circular buffer (bộ đệm nối vòng) tức là dữ liệu thay đổi sẽ tiếp tục được nạp lên đầu sau khi vùng đệm đã được sử dụng hết
Hình 10 Chi tiết Redo log buffer
Large Pool: cung cấp một vùng nhớ lớn, được cấp phát cho các trường họp như: vùng bộ nhớ cho UGA, xử lý I/O, sao lưu và phục hồi hệ thống Không giống như shared pool, large pool không sử dụng thuật giải LRU Tham số xác định của large pool là LARGE_POOL_SIZE
Trang 24Hình 11 Chi tiết Large pool
Java Pool và Stream Pool: Java pool là vùng cho các Procedure viết bằng Java Stream Pool dùng cho Oracle Stream
Hình 12 Chi tiết Java Pool và Stream Pool
Connection: Là kết nối từ Client lên Server
Câu lệnh:
Sqlplus / as sysdba
Sqlplus > connect sys/pass@orcl as sysdba
Trang 26select count(1) from v$session where username is not null;
Hình 15 Số phiên được kết nối
2.3 Các tiến trình
Liệt Kê Các tiến trình
SQL> select pname from v$process;
Trang 27Hình 16 Liệt kê các tiến trình
Liệt kê các thuộc tính của process
SQL> desc v$process;
Trang 28Hình 17 Các thuộc tính process
2.3.1 Tiến trình quan trọng nhất database writer (DBWn)
Hình 18 Tiến trình Database writer (DBWn)
- Ghi dữ liệu bị thay đổi trong databasse buffer cache dirty block tới đĩa 4
- Không đồng bộ khi thực hiện giữa các quá trình khác
- Là một sự mở rộng của check point
- Khi checkpoint, commit, dirty block đầy sẽ ghi
- Tiến trình log writer (đảm bảo an toàn cho dữ liệu)
- Ghi redo log buffer ra redo log file trên đĩa:
+ Khi một tiến trình của người dùng commit một giao dịch
+ Khi diễn ra online redo log switch
+ Khi redo log buffer đầy 1/3 hoặc chứa 1MB trong buffer data
Trang 29+ Trước khi tiến trình DBWn ghi dữ liệu bufer thay đổi trong databuffer cache
tới đĩa
+ Cứ 3s 1 lần
+ Quá trình điều phối LGnn và bảo đảm hoạt động diễn ra tuần tự
Hình 19 Quá trình điều phối LGnn
2.3.2 Tiến trình checkpoint (thông tin trung tâm điều khiển)
- Lưu giữ thông tin checkpoint trong Control file
- Mỗi header của data file
- Là tín hiệu của DBWn ghi blocks tới đĩa
Hình 20 Tiến trình Checkpoint
2.3.3 Tiến trình system monitor
- Đảm bảo cho database an toàn khi khởi động database, nó sẽ quét tất cả
- Thực hiện recovery vào lúc instance được bật
- Dọn dẹp những segment tạm không sử dụng
Trang 30Hình 21 Tiến trình System Monitor
Kiểm tra tiến trình SMON
ps -ef | grep smon
Hình 22 Kiểm tra tiến trình SMON
2.3.4 Tiến trình process monitor
- Thực hiện khôi phục lại các tiến trình
- Dọn dẹp database buffer cache
- Giải phóng tài nguyên được sử dụng với tiến trình người dùng
- Giám sát các sesion idle timeout
Trang 31Hình 23 Tiến Trình Process Monitor
Kiểm tra tiến trình pmon
$ ps -ef | grep pmon
Hình 24 Kiểm tra tiến trình PMON
2.3.5 Tiến trình Recoverer
- Được dùng với cấu hình CSDL phân tán
- Tự động kết nối với CSDL liên quan đến giao dịch phân tán
- Tự động giải quyết các vấn đề với giao dịch phân tán
- Giải phóng các tương ứng với các giao dịch phân tán
Trang 32Hình 25 Tiến trình Recoverer
2.3.6 Tiến trình Archiver (ARCn)
- Copy redo log files tới vùng lưu trữ khác nhau khi log switch
- Chọn dữ liệu redo và truyền vào strandby
Hình 26 Tiến trình Archiver (ARCn)
2.4 Kiến trúc Storage (lưu trữ đối tượng)
- Các kiến trúc lưu trữ cũ: lưu trữ local hay lưu trữ trực tiếp trên máy tính sử dụng không đáp ứng được nhu cầu ngày càng cao về lưu trữ khối lượng dữ liệu rất lơn, và đặc biệt không có khả năng co giãn linh hoạt Vì vậy, kiến trúc Storage ra đời để đáp ứng nhu cầu đa dạng đối với dữ liệu
- Lưu trữ dưới dạng storage Control files, data files, online redo files, backup files, aler log and trace files, Parameter file password file
- Dạng vật lý
Trang 33Hình 27 Kiến trúc Storage
- Cấu trúc logic và vật lý CSDL
Hình 28 Cấu trúc logic và cấu trúc vật lý của CSDL
* Giải thích mô hình cấu trúc logic
Trang 34- Trong mô hình cấu trúc logic cao nhất là Database được gọi là các Instance (là thành phần liên kết giữa người dùng với các thông tin trong Database) Một Oracle Instance chỉ được mở cho duy nhất một Oracle Database cần truy xuất
- Thành phần tiếp theo là Tablespace: Một Database được chia thành nhiều đơn vị lưu trữ ở mức logic, những đơn vị lưu trữ đó gọi là Tablespace Tablespace chỉ thuộc về một Database duy nhất Một Tablespace bao gồm một hay nhiều tập tin vật lý dùng để lưu trữ dữ liệu đó là Datafile
Ví dụ: Tablespace system, Tablespace user…
Tablespace system
Tablespace user
Trang 35- Thành phần tiếp theo là các Segment: Là tập hợp một số Extent dùng để chứa toàn bộ thông tin của cấu trúc lưu trữ logic bên trong Tablespace Oracle Database sử dụng bốn loại Segment khác nhau để lưu trữ thông tin: + Data Segment
+ Index Segment
+ Temporary Segment
+ Rollback Segment
- Thành phần tiếp theo là Extent: Là tập hợp nhiều Data Block liên tiếp nhau
sẽ tạo thành một đơn vị lưu trữ logic lớn hơn gọi là Extent Số lượng Data Block của một Extent tùy thuộc vào kích thước được chỉ định cho Extent khi tạo đối tượng Table Khi người dùng tạo một Table thì Oracle sẽ tự động cấp phát cho Table một Data Segment, trong Data Segment sẽ có một Extent với
số lượng Data Block tùy thuộc vào kích thước của Extent
- Thành phần cuối cùng là Data Block: Là đơn vị lưu trữ logic nhỏ nhất được Oracle sử dụng trong việc đọc và ghi dữ liệu trong Oracle Database Data Block trong Oracle gồm ba vùng chính là: Header, Data và Free Space + Vùng Header: Vùng chứa thông tin chung của Block, như là địa chỉ của Block và loại Segment chứa Block là Data, Index, Rollback hay Temporary
+ Vùng Data: Dùng lưu trữ dữ liệu của các dòng trong bảng Các dòng của một bảng dữ liệu có thể nằm trên nhiều Block khác nhau
+ Vùng Free Space: Vùng nhớ nằm giữa Header và Data, vùng nhớ này giúp kích thước của Header và Data có thể tăng lên khi cần trong trường hợp thêm hay sửa dữ liệu của chúng
* Giải thích mô hình cấu trúc vật lý
- Mô hình vật lý bao gồm Data file được lưu trữ trong lưu trữ hệ thống (SAN, NAS, Exadata, NFS ASM, file system)
PHẦN THỰC HÀNH
Chương III CÀI ĐẶT ORACLE TRÊN LINUX
Ở đây em cài đặt Oracle trên máy ảo VMWare Workstation Pro
3.1 Cấu hình máy ảo VMWare
Bước 1: Mở máy ảo VMWare lên Workstation Pro và chọn Create a New Virtual Machine
Trang 36Bước 2: Chọn Typical hoặc Custom
Bước 3: Download bản iso mà bạn muốn cài đặt
https://yum.oracle.com/oracle-linux-downloads.html?source=:ow:o:p:nav:121620LinuxHero&intcmp=:ow:o:p:nav:121620LinuxHero
Trang 37Bước 4: Chọn file iso vừa tải và chọn Next
Bước 5: Đặt tên cho máy ảo và chọn thư mục lưu
Bước 6: Sau khi chọn đường dẫn để lưu máy ảo ta chọn Next để cấu hình bộ nhớ cho máy ảo
Trang 38Bước 7: Sau khi cấu hình bộ nhớ xong ta chọn Next để cấu hình đường mạng
tương thích với máy thật Chọn Use bridged networking Sau đó chọn Next
Trang 39Bước 7: Chọn Create a new virtual disk để tạo ổ đĩa cho máy ảo Sau đó chọn Next
Bước 8: Tăng hoặc giảm kích thước để cấu hình ổ đĩa Sau đó chọn Next
Trang 40Bước 9: Chọn Finish để hoàn tất quá trình tạo máy ảo
Máy ảo ORACLE đã được tạo