• Khởi động và tắt Oracle Database • Tạo Database • Quản lý các file Database Oracle • Quản lý các tablespaces, segments, extents, blocks • Quản lý người dùng, quyền truy nhập, tài nguyê
Trang 2Mục lục
Mục lục 2
Hình vẽ 4
1 Giới thiệu 5
1.1 Mục tiêu khoá học 5
2 Các thμnh phần kiến trúc Oracle 5
2.1 Kiến trúc Oracle Server, các thành phần chính 6
2.2 Các cấu trúc liên kết người sử dụng với một Oracle Instance 7
2.3 Xử lý một câu lệnh SQL 10
2.4 Xử lý câu lệnh thao tác dữ liệu 11
2.5 Xử lý COMMIT 11
3 Lμm quen với Oracle Server 12
3.1 Xác nhận phân quyền sử dụng 12
3.2 Các công cụ quản trị CSDL Oracle cơ bản 12
3.3 DBA Management Pack 15
4 Quản lý một Oracle Instance 16
4.1 Start up và shut down Oracle Server 16
4.2 Tạo và lưu giữ cấu hình 16
4.3 Một số quy tắc đối với các tham số 17
5 Tạo CSDL 19
5.1 Chuẩn bị 19
5.2 Tạo CSDL 20
6 Tạo các khung nhìn từ điển dữ liệu vμ các package chuẩn 22
6.1 Từ điển dữ liệu 22
6.2 Store Program 24
6.3 Package 24
6.4 Trigger 25
7 Bảo trì các file điều khiển - Contron files 26
7.1 Control file 26
7.2 Tạo nhiều control file 26
7.3 Lấy thông tin về control file 27
8 Bảo trì các Redo log files 28
8.1 Redo log file 28
8.2 Redo log file group và Redo log file member 30
8.3 Phân tích và ghi nhận các redo log file 31
9 Quản lý Tablespaces vμ Data files 32
9.1 Cấu trúc logic của database 32
9.2 Tablespace 33
9.3 Quản lý tablespace 35
10 Cấu trúc lưu trữ 39
10.1 Các cấu trúc lưu trữ chính của Oracle 39
10.2 Segments - phân loại segments 40
10.3 Quản lý bộ nhớ đối với segment 41
Trang 311 Quản lý Rollback Segments 42
11.1 Rollback segments 42
11.2 Quản lý rollback segment 43
11.3 Thông tin về rollback segment 45
12 Quản lý Tables 46
12.1 Table - Phân loại table 46
12.2 Quản lý table 47
12.3 Thông tin về table 50
13 Quản lý Indexes 51
13.1 Phân loại Index 51
13.2 Quản lý Index 53
13.3 Thông tin về index 55
14 Duy trì toμn vẹn dữ liệu (Maintaining data integrity) 56
14.1 Các dạng toàn vẹn dữ liệu 56
14.2 Tạo các constraint 57
14.3 Lấy thông tin về các constraint 58
15 Nạp dữ liệu 59
15.1 Nạp dữ liệu trực tiếp 59
15.2 Sử dụng công cụ SQL* Loader 59
15.3 Tổ chức lại dữ liệu 62
16 Quản trị người sử dụng 64
16.1 Tạo một người sử dụng mới 64
16.2 Thay đổi thuộc tính của user 64
16.3 Xoá user 65
17 Quản trị các Privilege 65
17.1 Quyền hạn – Privileges 65
17.2 System privilege 66
17.3 Object privilege 68
18 Quản lý Roles 70
18.1 Roles 70
18.2 Quản lý role 71
18.3 Hiển thị thông tin về các role 74
19 Sử dụng hỗ trợ ngôn ngữ quốc tế (NLS) 76
19.1 NLS 76
19.2 Chọn tập ký tự 76
Trang 4H×nh vÏ
H×nh vÏ 1 Phư¬ng thøc x¸c nhËn quyÒn 12
H×nh vÏ 2 Oracle Enterprise Manager Console 15
H×nh vÏ 3 CÊu tróc ph©n cÊp lưu tr÷ CSDL 32
H×nh vÏ 4 CÊu tróc mét block 41
H×nh vÏ 5 CÊu tróc dßng d÷ liÖu trong table 47
H×nh vÏ 6 CÊu tróc B-Tree 51
H×nh vÏ 7 CÊu tróc Bitmap Index 52
Trang 51 Giới thiệu
1.1 Mục tiêu khoá học
Kết thúc khoá học, học viên phải nắm được các kiến thức sau
• Khởi động và tắt Oracle Database
• Tạo Database
• Quản lý các file Database Oracle
• Quản lý các tablespaces, segments, extents, blocks
• Quản lý người dùng, quyền truy nhập, tài nguyên
• Sử dụng khả năng hỗ trợ ngôn ngữ chính thống (National Language Support - NLS)
1.2 Kiến trúc Oracle Server
Hình vẽ 1 Kiến trúc Oracle Server Một Oracle server gồm:
2 Cấu trúc bộ nhớ vμ các tiến trình nền của csdl Oracle
Oracle Server là một hệ quản trị CSDL quan hệ đối tượng cho phép quản lý thông tin một cách tổng
hợp, toàn diện, và có tính mở Oracle tạo ra và sử dụng các cấu trúc bộ nhớ để hoàn thành một số
công việc Ví dụ, bộ nhớ lưu trữ mã chương trình đang được thực hiện và dữ liệu dùng chung của các
user
Oracle Instance là kết hợp của các tiến trình nền và các cấu trúc bộ nhớ của Oracle Server Oracle
Instance cần được khởi tạo trước khi truy nhập vào CSDL Oracle instance gồm:
• System Global Area - SGA: Vùng bộ nhớ được sử dụng để lưu trữ các thông tin CSDL chia sẻ cho
cache
Data Buffer cache
Redo Log Buffer
Parameter File Password File
Archived Log Files
Data files
Control files
Redo Log files
User Process
Server Process
PGA
Trang 6• Các tiến trình nền: Thực hiện các chức năng của từng tiến trinhg cụ thể Điều khiển vào ra, cung
cấp các cơ chế xử lý song song nâng cao hiệu quả và độ tin cậy
Oracle chiếm một vùng của hệ thống khi một instance được khởi tạo và giải phóng vùng đó khi
instance được shuts down Mỗi instance có một vùng hệ thống riêng gọi là system global area
2.1 Cấu trúc bộ nhớ Oracle Server
• Các tiến trình xử lý khác: Các tiến trình của người dùng, các đoạn chương trình được viết bằng câu
lệnh SQL Server sẽ xử lý các câu lệnh được gửi đến bởi người dùng
• Các database file: Là các file của hệ điều hành, lưu trữ các thông tin CSDL thực sự dưới dạng vật
lý Chúng được sử dụng để đảm bảo tính nhất quán của dữ liệu, có thể phục hồi lại khi xảy ra sự
cố hỏng hóc
• Các file khác: các file không phải CSDL, để lưu giữ cấu hình, thiết lập quyền của người sử dụng,
phục hồi CSDL
• Các database file Oracle
CSDL Oracle là một tập hợp các đơn vị dữ liệu có quan hệ với nhau CSDL Oracle bao gồm ba kiểu
file:
• Datafile - File dữ liệu: Chứa toàn bộ dữ liệu trong CSDL Dữ liệu được lưu trong các bảng, tuy
nhiên các file dữ liệu cũng chứa các từ điển dữ liệu Các file dữ liệu có đặc điểm:
- Một file dữ liệu có thể kết hợp với chỉ một CSDL
- File dữ liệu có các tính chất cho phép nó tự động thay đổi kích thước khi CSDL hết khoảng
trống
- Một hoặc vài file dữ liệu hình thành nên một đơn vị logic lưu trữ gọi là tablespace
• Redo logs file: Chứa bản ghi các thay đổi trong CSDL Một CSDL cần có ít nhất 02 redo log file
• Control file - File điều khiển: Chứa các thông tin cần thiết cho bảo trì và đảm bảo tính toàn vẹn của
dữ liệu
• Các file chính khác
• Các file tham số: Quy định các tính chất của Oracle instance
• File mật khẩu để xác nhận đặc quyền cho phép người sử dụng khởi động và tắt một Oracle
instance
• Archived redo log files là bản off line của các redo log files chứa các thông tin cần thiết để phục
hồi dữ liệu
• Oracle Instance
Oracle Instance: Là kết hợp của các tiến trình nền và các cấu trúc bộ nhớ Oracle Instance cần được
khởi tạo để truy nhập vào CSDL
• System Global Area - SGA: Vùng bộ nhớ được sử dụng để lưu trữ các thông tin CSDL chia sẻ giữa
các tiến trình CSDL SGA bao gồm một vài cấu trúc bộ nhớ chính:
Trang 7- Shared pool: Lưu các câu lệnh SQL được thực hiện gần nhất và các dữ liệu trong từ điển dữ
liệu
- Database buffer cache: Lưu trữ các dữ liệu được sử dụng gần nhất
- Redo log buffer: Được sử dụng cho việc lần lại các thay đồi trong CSDL và được thực hiện bởi
các tiến trình nền
• Các tiến trình nền: Thực hiện các chức năng thay cho lời gọi tiến trình xử lý tương ứng Điều khiển
vào ra, cung cấp các cơ chế xử lý song song nâng cao hiệu quả và độ tin cậy Tùy theo từng cấu
hình mà Oracle instance có các tiến trình nền:
- Database Writer (DBW0): Ghi lại các thay đổi trong database buffer cache ra các file dữ liệu
- Log Writer (LGWR): Ghi lại các thay đổi được đăng ký trong redo log buffer vào các redo log
files
- System Monitor (SMON): Kiểm tra sự nhất quán trong CSDL
- Process Monitor (PMON): Dọn dẹp lại tài nguyên khi các tiến trình của Oracle gặp lỗi
- The Checkpoint Process (CKPT): Cập nhật lại trạng thái của thông tin trong file điều khiển và
file dữ liệu mỗi khi có thay đổi trong buffer cache
2.2 Các quá trình (process)
2.3 Các cấu trúc liên kết người sử dụng với một Oracle Instance
• Share Pool
Trong bước phân tích, Server xử dụng một vùng trong SGA gọi là shared pool để biên dịch câu lệnh
SQL Shared pool gồm có hai thành phần chính:
• Library cache: Chứa thông tin về các câu lệnh SQL được xử lý trong một cấu trúc vùng nhớ gọi là
shared SQL area Bao gồm:
- Toàn bộ nội dung câu lệnh SQL
- Cây phân tích (parse): một phiên bản được phân tích của câu lệnh
- Cách thức thực hiện: sơ đồ thực hiện câu lệnh - execution plan
Trong trường hợp một câu lệnh SQL được thực hiện lại va sơ đồ thực hiện câu lệnh của câu lệnh vẫn
còn thì Server sẽ không cần phải phân tích lại câu lệnh Library cache làm tăng hiệu quả thực hiện câu
lệnh SQL
• Data dictionary cache: là một tập hợp các định nghĩa được sử dụng trong CSDL Nó bao gồm các
thông tin về database files, tables, indexes, columns, users, privileges, và các database objects
khác
• Kích thước của Shared Pool: được khởi tạo bởi tham số SHARED_POOL_SIZE
• Database Buffer Cache
• Chức năng của Database Buffer Cache: Khi một truy vấn được xử lý, tiến trình Server sẽ tìm trong
database buffer cache các block mà nó cần Nếu block không tìm thấy trong database buffer
cache, tiến trình Server sẽ đọc các block từ các file dữ liệu và đặt một bản copy của nó vào buffer
cache Oracle server sử dụng giải thuật least recently trong việc quản lý cache
Trang 8• Kích thước của Database Buffer Cache bằng với kích thước của một Oracle block và được xác định
bởi tham số DB_BLOCK_SIZE
• Số các buffers được định bởi tham số DB_BLOCK_BUFFERS
• Program Global Area
Program Global Area hay Process Global Area (PGA) là vùng nhớ chứa dữ liệu và các thông tin điêu
khiển cho một tiến trình server hay một tiến trình nền Không giống với SGA - dùng chung cho nhiều
tiến trình, là vùng dành riêng cho một tiến trình PGA không chía sẻ và chỉ được ghi bởi các server
process PGA bao gồm các thành phần chính:
• Vùng sắp xếp: được sử dụng cho bất kỳ một yêu cầu sắp xếp nào của câu lệnh
• Thông tin về phiên: bao gồm thông tin về quyền người sử dụng và các thống kê thực thi cho 1
phiên
• Trạng thái cursor: Chỉ ra mức xử lý hiện tại của câu lệnh SQL;
• Vùng Stack: Chứa các biến khác của sesstion
• Redo Log Buffer
Các tính chất của Redo Log Buffer:
• Kích thước được xác định bởi tham số: LOG_BUFFER
• Lưu lại các thay đổi trong instance: các block bị thay đổi, vị trí thay đổi, và các giá trị mới trong a
redo entry Redo entry không phân biệt các kiểu block; nó đơn giản chỉ ghi lại các byte thay đổi
trong block
• Sử dụng tuần tự: Redo log buffer được sử dụng một cách tuần tự, các thay đổi trong một giao dịch
được thực hiện xen kẽ với các thay đổi trong một giao dịch khác
• Đây là một circular buffer, nó sẽ được sử dụng lại khi đầy
• Rollback Segment
Trước khi thay đổi, tiến trình Server sẽ lưu các giá trị cũ vào một rollback segment Gọi là
before-image, được sử dụng để:
• Undo các thay đổi khi giao dịch bị rolled back
• Cho phép đọc nhất quán đảm bảo các giao dịch khác không thay đổi các dữ liệu chưa được
commit bằng lệnh DML
• Khôi phục lại dữ liệu khi có sự cố
Rollback segment như tables, index tồn tại trong data file và các rollback block được đưa vào database
buffer cache nếu cần
Rollback segment được tạo bởi DBA Các thay đổi đối với Rollback segment đều được lưu vào redo log
file
Các thay đổi trong rollback segments được ghi lại trong redo log buffer
• Log writer
Thực hiện ghi lại tuần tự từ redo log buffer vào redo log file theo các tình huống sau:
• Khi COMMIT một giao dịch
Trang 9• Khi redo log buffer đầy 1/3
• Khi thay đổi của các bản ghi trong redo log buffer lớn hơn 1 MB
• Trước khi DBW0 ghi các block bị thay đổi trong bộ đệm ra file dữ liệu
• Các Instance Processes khác
• Database Writer (DBW0): ghi lại các vùng đệm bị thay đổi (dirty buffers) trong database buffer
cache ra file các dữ liệu, đảm bảo đủ số lượng bộ nhớ
• System Monitor (SMON): Trong trường hợp Oracle instance bị lỗi, các thông tin trong SGA chưa
kịp lưu lên đĩa sẽ bị mất Tiến trình nền PMON sẽ thực hiện khôi phục một cách tự động ngay khi
CSDL được mở lại Việc này được tiến hành theo các bước:
- Khôi phục các dữ liệu chưa kịp ghi lên file dữ liệu nhưng đã lưu vào online log redo
- Mở CSDL và cho phép các user truy nhập vào
- Khôi phục lại các giao dịch chưa commit
- Kết hợp các vùng không gian kề nhau trong file dữ liệu Và phân bổ lại các segment, trả lại
vùng trống trong các file dữ liệu
• Process Monitor (PMON):thực hiện dọn dẹp sau khi các tiến trình bị lỗi
- Khôi phục lại các giao dịch hiện thời của người sử dụng\
- Giải phóng các bảng, dòng dữ liệu đang bị khóa (locked)
- Giải phóng các tài nguyên dành riêng cho người sử dụng
• Archiving Process: cho phép đặt chế độ lưu trữ ARCHIVELOG và NOARCHIVELOG
- Trong chế độ NOARCHIVELOG: chỉ các dữ liệu trong bộ nhớ SGA bị mất, các dữ liệu trên đĩa
vân được lưu giữ Dữ liệu đã commit có thể khôi phục lại
- Trong chế độ ARCHIVELOG: các thay đổi đối với CSDL đều được lưu ra online redo log file
Chế độ này được đặt mặc định trong CSDL
• Checkpoint (CKPT): sử dụng để đồng bộ hóa các file dữ liệu
Trang 102.4 Xử lý một câu lệnh SQL
Các tiến trình người dùng và tiến trình server là các tiến trình chính xử lý các câu lệnh SQL Tuy nhiên
cũng còn có một số tiến trình khác xử lý câu lệnh SQL
• Các tiến trình user và server được sử dụng để kết nối một user với một Oracle instance
• Một vài tiến trình nền, cấu trúc SGA, và các database file được sử dụng để xử lý câu lệnh SQL
- Các truy vấn yêu cầu một tiến trình mở rộng cho phép trả về nhiều dòng dữ liệu
- Các câu lệnh thao tác dữ liệu (Data manipulation language - DML) yêu cầu các tiến trình mở
rộng để lưu vào log file các thay đổi
- Xử lý Commit đảm bảo các thay đổi dữ liệu trong giao dịch có thể được phục hồi
• Một vài thành phần khác (tiến trình nền) của server không tham gia vào quá trình xử lý nhưng làm
tăng tính thực thi và dùng để phục hồi CSDL
• Kết nối với CSDL
Kết nối
Kết nối (connection) là cách giao tiếp giữa một user process và một Oracle server Một database user
có thể kết nối với Oracle server theo ba cách:
• User truy nhập vào hệ điều hành chạy Oracle instance và khởi động các ứng dụng, công cụ để
truy nhập vào CSDL
• User khởi động các ứng dụng, công cụ trên máy tại chỗ và kết nối với máy tính co Oracle instance
thông qua đường mạng Cách này còn gọi là client-server
• Máy tính của user sẽ giao tiếp thông qua một ứng dụng hoặc network server đang được kết nối với
một máy tính có chạy Oracle instance
Phiên - Sessions
Session là một kết nối cụ thể giữa một user với một Oracle server Session bắt đâu khi một user được
xác nhận bởi một Oracle server và kết thúc khi user ra khỏi theo cách thông thường hoặc bất thường
• Xử lý một truy vấn
Các truy vấn nếu thành công sẽ trả về một loạt các dòng dữ liệu Có ba giai đoạn chính trong xử lý
một truy vấn
Trang 11• Parse: Câu lệnh SQl được biên dịch qua user process và server process, Kết quả biên dịch sẽ
được tải vào vùng chia sẻ xử lý lệnh SQL Gồm các việc
- Tìm và copy câu lệnh SQL hiện thời vào shared pool
- Kiểm tra cú pháp câu lệnh SQL
- Tìm trong từ điển dữ liệu xem có các table và column được dùng trong câu lệnh SQL
- Khoá đối tượng Các định nghĩa về đối tượng sẽ không đổi trong quá trình thực hiện lệnh
- Kiểm tra quyền truy nhập của user vào các schema tham chiếu
- Xác định cách thức thực hiện lệnh tối ưu
- Tải và thực hiện câu lệnh trong vùng chia sẻ xử lý lệnh SQL
• Execute: ở thời điểm này Oracle Server đã có đầy đủ thông tin và nguồn cần thiết vì lệnh đã được
thực hiện Với câu lệnh SELECT tiserver process đã chuẩn bị dữ liệu hiển thị
• Fetch: Các đòng dữ liệu được chọn, sắp xếp (nếu cần) và trả về cho user Phụ thuộc vào số dòng
kết quả mà 1 hoặc 1 vài fetch cần để chuyển kết quả cho user
2.5 Xử lý câu lệnh thao tác dữ liệu
• Các bước thực hiện
Bao gồm hai pha thực hiện chính:
• Parse: tương tự như trong xử lý truy vấn
• Execute: yêu câu có thêm các tiến trình mở rộng làm thay đổi dữ liệu
• Pha thực hiện lệnh
• Nếu dữ liệu và các rollback blocks chưa có trong buffer cache, tiến trình Server sẽ đọc dữ liệu từ
các file dữ liệu vào buffer cache
• Tiến trình server process đặt locks đối với các dòng dữ liệu bị thay đổi
• Trong redo log buffer, tiến trình server sẽ ghi lại các thay đổi phục vụ cho việc rollback dữ liệu
• Tiến trình Server lưu lại before-image đối với rollback block và cập nhật block dữ liệu Các thay đổi
này được thực hiện trong database buffer cache
Lưu ý: Các thay đổi đối với blocks sẽ được ghi lại trong bộ nhớ mà chưa được ghi ngay lên đĩa
2.6 Xử lý COMMIT
• Fast COMMIT
Oracle sử dụng Fast COMMIT đảm bảo các thay đổi đã được kết chuyển có thể được khôi phục lại khi
có sự cố
• System Change Number
Khi kết chuyển một giao dịch, Oracle server sẽ gán một system change number (SCN) cho một giao
dịch SCN có tính duy nhất trong CSDL Với việc sử dụng SCN, Oracle server có thể kiểm tra nhất
quán mà không phụ thuộc vào dữ liệu hay thời gian trong hệ điều hành
• Các bước trong xử lý COMMIT
Trang 12• Tiến trình Server sẽ tạo một bản ghi kết chuyển cùng với một SCN (system change number) trong
redo log buffer
• LGWR ghi lại tất cả redo log buffer và cả commit record vào redo log files Oracle server đảm bảo
các thay đổi sẽ không bị mất ngay cả khi Oracle instance bị lỗi
• Thông báo hoàn thành việc COMMIT cho người dùng
• Tiến trình server lưu lại các thông tin xác định giao dịch đã hoàn tất và hủy bỏ các resource locks
giải phóng tài nguyên
• ưu điểm của Fast COMMIT
• Viết tuần tự vào các log files nhanh hơn là viết vào block khác trong data file
• Lưu lại các thông tin thay đổi một cách tối thiểu vào trong các log files cũng như datafile
• Trong trường hợp có nhiều giao dịch yêu cầu COMMIT cùng một lúc, instance sẽ chuyển các redo
lock record thành một lần ghi
• Kích thước của giao dịch không ảnh hưởng tới thời gian thực hiện thao COMMIT
3.1 Xác nhận phân quyền sử dụng
Việc phân quyền sử dụng là cần thiết trong công việc quản trị Có hai user account được tạo tự động
và được gán quyền DBA: SYS và SYSTEM
• SYS: được tạo tự động và gán quyền DBA Mật khẩu truy nhập được nạp vào trong khi cài đặt Có
quyền sở hữu các bảng và các từ điển dữ liệu trong CSDL
• SYSTEM: được tự động tạo ra với mật khẩu ban đầu là manager và cũng được gán quyền DBA
Tuy nhiên, SYSTEM còn được sở hữu cả một số table, view mở rộng chứa các thông tin sử dụng
cho các tools của Oracle
• Các phương thức xác nhận quyền:
Hình vẽ 2 Phương thức xác nhận quyền
3.2 Các công cụ quản trị CSDL Oracle cơ bản
SQL*Plus Line Một tiện ích sử dụng cho việc công quản trị như starting up, shutting
Y
N N
Y
Remote database administration
Local database administration
Have secure connection ?
Use OS Authentication? AuthenticationUse OS
Use a password file
Trang 13Mode down, hoặc phục hồi CSDL
Password File utility Tiện ích sử dụng để tạo file mật khẩu trong CSDL
Trong bài này, một số công cụ được sử dụng cho việc quản trị CSDL sẽ được giới thiệu:
• Universal Installer
• Oracle Enterprise Manager
• Oracle Configuration Assistant
• Oracle Universal Installer
Đưa ra các giải pháp cài đặt trên các nền phù hợp Java (Java-enabled platforms) Quá trình cài đặt sẽ
tự động dò tìm các phụ thuộc giữa các components và platform
Kiến trúc mềm dẻo tối ưu (Optimal Flexible Architecture - OFA): OFA tổ chức các database file theo
kiểu và cách sử dụng OFA cung cấp:
• Phương thức cài đặt các CSDL Oracle và các ứng dụng
• Dễ dàng quản trị: sao lưu, phục hồi
• Nâng cao hiệu quả bằng cách giảm bớt các tranh chấp trên đĩa của các file dữ liệu, file quản trị,…
• Dễ dàng quản trị nhiều Oracle home trên cùng một máy bằng việc phân tách các file trên các
vùng đĩa khác nhau
• Oracle Enterprise Manager
Oracle Enterprise Manager
Oracle Enterprise Manager - OME là phương tiện cho phép có được cái nhìn tổng thể về toàn bộ hệ
thống Trong đó có cây phân cấp và các hình ảnh đồ họa về các đối tượng và quan hệ giữa chúng
trong hệ thống
OME có các tiến trình Intelligent Agent processes cho phép quản lý từ xa các dịch vụ chung -
common services như jobs, events,… một cách dễ dàng
OME cũng bao gồm cả những ứng dụng quản lý chuyên biệt: DBA Management Pack, Advanced
Management Packs
Bên cạnh đó, OME còn cung cấp một lượng lớn các hàm APIs cho phép tích hợp với các hệ thống
quản lý ứng dụng khác, bao gồm cả các hệ thống quản lý của Oracle và không phải của Oracle
Kiến trúc OME
Kiến trúc OME là mở rộng của kiến trúc Client/Server, nó có kiến trúc ba lớp
Lớp thứ nhất chứa các Java-based console và các ứng dụng tích hợp cho phép cài đặt và chạy bởi các
Web browser
Trang 14Lớp thứ hai là Oracle Management Server - OMS Chức năng chính của OMS là xử lý và quản trị tất cả
các tác vụ của hệ thống, tập trung quản lý và phân phối điều khiển giữa các clients và các nút điều
khiển - managed nodes
OEM sử dụng Oracle Enterprise Manager repository để duy trì dữ liệu hệ thống, dữ liệu ứng dụng và
các trạng thái của các thực thể điều khiển phân tán trong hệ thống, cho phép người dùng có thể truy
cập và chia sẻ các vùng dữ liệu lưu trữ
Lớp thứ ba bao gồm các đích như databases, nodes và các dịch vụ quản lý khác
Các dịch vụ chung
OEM có các dịch vụ cho phép quản lý các nodes qua mạng (network)
• Dịch vụ phục hồi - Discovery service: OEM tự động khôi phục (định vị) tất cả các CSDL và các
dịch vụ chạy trên managed nodes, một khi các nodes được xác định Các dịch vụ này bao gồm
Web servers, listeners, machines, parallel servers, video servers, và các services khác
• Job Scheduling System: cho phép thực hiện tự động, lặp lại các tác vụ Hệ thống cho phép tạo và
quản lý các jobs, lên kế hoạch thực hiện chúng, cho phép xem và chia sẻ thông tin xác định các
Jobs với các quản trị hệ thống khác
• Event Management System: cho phép quản lý môi trường mạng (network environment) xử lý các
trường hợp mất dịch vụ, thiếu hoặc hết vùng lưu trữ, và các vấn đề khác như sử dụng tài nguyên
CPU Mỗi khi các event được phát hiện, người quản trị có thể thông báo hoặc sửa nó
• Bảo mật - Security: các tham số bảo mật xác định cho từng services, objects, và administrators
• Shared Repository
OEM là một hệ thống đa người dùng - multiuser system Mỗi quản trị viên có một account riêng để
đăng nhập vào hệ thống Tùy theo việc thiết đặt quyền hạn, mà quản trị viên có thể truy cập vào các
dữ liệu lưu trong kho trung tâm, kho được chia sẻ cho tất cả các quản trị viên của OEM để thực hiện
công việc quản lý
• Oracle Configuration Assistant
Configuration Assistant là công cụ cho phép tạo các shared repositories, đặt lại cấu hình cho các OMS
và thiết đặt các local console (đơn vị điều khiển cục bộ) Configuration Assistant được tự động khởi
động ngay sau khi hoàn tất quá trình cài đặt của Universal Installer Nó cũng có thể được khởi động
bằng tay (chạy lệnh %emrepmgr từ dấu nhắc hệ thống)
• Oracle Enterprise Manager Console
Bao gồm cả cây phân cấp và hình ảnh đồ họa biểu diễn các đối tượng trong hệ thống
tác vụ Việc này cũng có thể thực hiện thông qua mục chọn tương ứng trên menu
Oracle services trong mạng làm việc Navigator cho phép quản trị viên có thể browse các Oracle services, như databases, listeners, nodes, và name servers, qua đó có thể sửa đổi các tính chất của các đối tượng; ví dụ: người dùng có thể thay đổi nội dung của bảng
Trang 15- Job system cho phép thực hiện các tác vụ từ xa liên quan tới listeners, databases Job
system dựa trên các thủ tục trong Tool Control Language (TCL) engine
Hình vẽ 3 Oracle Enterprise Manager Console
hệ về không gian, chức năng, hay cả hai Map view cho phép người sử dụng tập trung vào các
đối tượng cần quản lý
3.3 DBA Management Pack
DBA Management Pack là tập hợp các ứng dụng chuẩn, được cung cấp cùng với OEM bao gồm:
• Instance Manager: điều khiển CSDL sẵn có và định nghĩa việc khởi tạo các tham số đối với mỗi
instance cụ thể
• Security Manager: quản lý người dùng và phân quyền
• Storage Manager: tổ chức các database file và thực hiện quản lý rollback segments
• Schema Manager: tạo và duy trì các objects như tables, indexes, và views
• SQL*Plus Worksheet: giao diện dòng lệnh, cho phép thực hiện các câu lệnh SQL, PL/SQL, các
lệnh của SQL*Plus, và các lệnh DBA đặc biệt như startup và shutdown
• Các Tools và wizards quản lý dữ liệu: để nạp và tổ chức lại dữ liệu trong CSDL
• Các Tools và wizards quản lý sao lưu: để sao lưu và phục hồi CSDL và quản lý các redo log files
Lưu ý : Các ứng dụng này có thể gọi từ OEM hoặc gọi trực tiếp từ hệ điều hành
Trang 164 Quản lý một Oracle Instance
4.1 Start up vμ shut down Oracle Server
Một CSDL Oracle sẽ không sẵn sàng cho tới khi quản trị viên CSDL khởi động Oracle instance và mở
một database Các bước khởi động:
- Khởi động (Start an instance)
- Kết nối với CSDL (Mount the database)
- Mở CSDL (Open the database)
Lệnh khởi động và tắt cơ sở dữ liệu bằng Sqldba (với Oracle 8 là svrmgrl)
Trong sqldba để khởi động database dùng lệnh startup để khởi động Có thể khởi động cơ sở dữ liệu
theo các quá trình tùy thuộc vào tham biên của lênh startup
- Startup nomount: Khởi động instance mà không mount database
- Startup mount: Khởi động instance và mount the database nhưng vẫn đóng nó
- Startup open: Khởi động instance, mount và mở database trong các mode unrestricted mode
(Cho phép tất cả các user có thể truy nhập), restricted mode (Hạn chế với DBA ) Trong quá trình khởi động, Oracle sử dụng các file tham số để lấy các thông số mặc định phục vụ cho
việc khởi tạo Cấp phát vùng nhớ SGA và khởi động các tiến trình nền
Quá trình shut down cũng diễn ra theo ba giai đoạn:
- Đóng CSDL (Close the database)
- Thu hồi kết nối tới CSDL (Dismount the database)
- Dừng (Shut down the database)
Để tắt cơ sở dữ liệu đang hoạt động dùng lệnh shutdown với các tham số normal, immediate, abort
- Shutdown normal: Trong quá trình thực hiện lệnh không có một kết nối mới nào cho phép,
database sẽ đợi cho đến khi các kết nối kết thúc, lần khởi động sau database không yêu cầu bất cứ một thủ tục hồi phục nào
- Shutdown immediate: Trong quá trình thực hiện lệnh, các lệnh từ phía client đều bị kết thúc,
các kết nối tới database đều bị chấm dứt ngay tức khắc, tất các các thao tác và các xử lý chưa commit đều bị rolled back
- Shutdown abort: Trong quá trình thực hiện lệnh, các lệnh từ phía client đều bị kết thúc, các
kết nối tới database đều bị chấm dứt ngay tức khắc, tất các các thao tác và các xử lý chưa commit đều không bị rolled back
4.2 Tạo vμ lưu giữ cấu hình
Các bước tạo và lưu cấu hình:
- Kích hoạt Oracle Enterprise Manager Console
- Truy nhập vào với tên và mật khẩu quản trị hệ thống [sysman]/[manager]@[host]
- Chọn, kích hoạt Oracle Instance Manager trong Oracle Enterprise Manager Console
Trang 17- Chọn mục innitialization parameters (tham số khởi tạo) trong cây phân cấp Giá trị của tham
số sẽ hiện lên và có thể thay đổi được Lưu giữ lại các thay đổi
- Xác nhận các tham số thay đổi
• Tạo và sử dụng các file tham số
File tham số thường là file initsid.ora, đây là file có khuôn dạng text Mặc định, file này được đặt ở
thư mục có đường dẫn $ORACLE_HOME/dbs đối với hệ điều hành UNIX và đặt ở thư mục
NT, file này được đặt ở thư mục có đường dẫn %ORACLE_HOME%\admin\sid\pfile
Các thông số trong file này sẽ được đọc vào trong quá trình khởi động Oracle Enterprise Manager
Console hay Instance Manager cho phép DBA có thể xem và sửa các tham số khởi tạo
• Sử dụng các tham số
Các tham số trong file initsid.ora có thể ảnh hưởng tới hiệu quả sử dụng CSDL Các thông số
trong file tham số bao gồm:
• Kích thước của vùng System Global Area (SGA) để tối ưu hiệu suất
• Đặt mặc định cho database và instance
• Đặt các hạn chế đối với user hayprocess
• Đặt các hạn chế đối với tài nguyên CSDL
• Xác định các thuộc tính vật lý của database, như kích thước của block
• Chỉ ra các control files, archived log files, ALERT file, và trace file locations
4.3 Một số quy tắc đối với các tham số
• Các giá trị được chỉ ra theo khuôn dạng: keyword=giá trị
• Tất cả các tham số đều là tuỳ chọn (không bắt buộc)
• Server đều có giá trị mặc định đối với mỗi tham số Các giá trị này là tuỳ theo hệ điều hành và tuỳ
theo tham số
• Các tham số có thể được chỉ ra theo các thứ tự khác nhau
• Phần chú dẫn được bắt đầu bằng ký hiệu #
• Các tham số là ký tự được đặt trong dấu nháy kép
• Cũng có thể included các file bởi từ khoá IFILE
• Các giá trị là tập hợp được đặt trong dấu ngoặc đơn và được ngăn cách nhau bởi dấu phẩy
Một số tham só cơ bản:
BACKGROUND_DUMP_DEST Xác định nơi tiến trình nền đặt các file để ghi vào (LGWR,
DBWn, )
COMPATIBLE Phiên bản Server tương thích với instance, mặc định là 8.1.0
CONTROL_FILES Tên của các control files
Trang 18DB_BLOCK_BUFFERS Số lượng blocks cached trong SGA
DB_NAME Định danh CSDL từ 8 ký tự trở xuống Tham số này chỉ cần
thiết khi tạo mới một database
SHARED_POOL_SIZE Kích thước của shared pool tính theo đơn vị byte
USER_DUMP_DEST Nơi các file user debugging được tạo thay cho các tiến trình
người sử dụng
Các tham số có thể thay đổi:
IFILE Tên của file tham số được include vào file tham số hiện thời
Cho phép có thể được lồng tối đa là ba cấp
LOG_BUFFER Số byte được cấp phát cho redo log buffer trong SGA
MAX_DUMP_FILE_SIZE Kích thước tối đa của trace files, được xác định bằng số lượng
block của hệ điều hành
PROCESSES Số lượng tối đa các tiến trình hệ điều hành có thể kết nối với
instance
SQL_TRACE Cho phép hoặc không cho phép sử dụng tiện ích SQL trace
đối với mỗi user session
TIMED_STATISTICS Cho phép hoặc không cho phép định thời gian trong các
trace files và trong điều khiển màn hình
Các giai đoạn khởi động và tắt:
Trang 195 Tạo CSDL
5.1 Chuẩn bị
• Chuẩn bị hệ điều hành
Đảm bảo có đủ bộ nhớ cho SGA và thực hiện các tiến trình của Oracle một cách hiệu quả Đảm bảo
có đủ vùng không gian trên đĩa để lưu trữ CSDL, các file log, file điều khiển, các file dữ liệu
Cần có kế hoạch bố trí, phân bổ các file: cần ít nhất hai bản sao các file điều khiển, file log của CSDL
và được đặt ở hai nơi khác nhau
Bên cạnh đó, cần xem xét đến tính chất của dữ liệu lưu trữ để từ đó xác định được cấu trúc thích hợp
cho CSDL nhằm: giảm thiểu việc phân đoạn, giảm thiểu nội dung lưu trữ và vẫn phân tách được các
đối tượng
Cần quan tâm tới tổ chức các file hệ thống, làm sao cho vẫn có thể quản lý một cách dễ dàng khi thêm
thêm mới user, tạo mới CSDL,… Việc này có thể thực hiện được nhờ vào kiến trúc tối ưu mềm dẻo
(Optimal Flexible Architecture -OFA)
Cấu trúc OFA:
• ORACLE_BASE: thư mục gốc
• Phân biệt giữa các product file, các file công cụ và các file cục bộ bằng cách tạo các thư mục
riêng
• Chuẩn bị các file tham số
Việc chẩn bị file tham số cần thiết khi tạo CSDL bằng tay
Đặt SID theo cú pháp: C:\set ORACLE_SID = U16
Sử dụng tiện ích ORADIM để tạo file serrvice, file mật khẩu
C:\>ORADIM -NEW -SID sid [-INTPWD internal_pwd][SRVC svrcname]
[MAXUSERS number][STARTMODE auto,manual][-PFILE filename]
Tạo mới file initSID.ora với các thông số giống như trong file init.ora Thay đổi các thông số trong file
Trang 20parallel_max_servers = 5
log_buffer = 32768
…
Trong các tham số đó, có ít nhất ba tham số cần được khai báo:
• db_name: Tên CSDL Tham số này cần thiết khi tạo mới CSDL với độ dài nhiều nhất 8 ký tự Tên
này phải phù hợp với tên sử dụng trong lệnh CREARE DATABASE
đổi sau khi tạo CSDL
5.2 Tạo CSDL
Có thể tạo CSDL bằng công cụ Database Configuration Assistant hoặc có thể tạo CSDL trực tiếp
bằng tay, thông qua câu lệnh CREATE DATABASE
• Sử dụng Database Configuration Assistant
Database Configuration Assistant cho phép tạo CSDL theo các chế độ:
• Typical: tự động cài đặt một CSDL chuẩn và thiết đặt các file tham số khởi tạo mặc định
• Customer: cho phép người tạo có thể tạo CSDL tuỳ theo ý muốn Ví dụ: người tạo có thể thiết đặt
các file dữ liệu, file điều khiển và file log cho phù hợp Định lại kích thước các vùng tablespace,
extent Đặt các tham số bộ nhớ,
Database Configuration Assistant cho phép chọn môi trường điều hành CSDL
• Xử lý giao dịch trực tuyến (Online transaction processing - OLTP): áp dụng cho hệ thống xử lý
nhiều giao dịch đồng thời (lên đến hàng nghìn, hàng triệu giao dịch đồng thời)
• Hệ thống hỗ trợ quyết định (Decision Support System - DSS): áp dụng cho hệ thống xử lý nhiều
truy vấn phức tạp Cho phép lấy ra một lượng ít bản ghi từ các truy vấn phức tạp
• Tạo CSDL bằng lệnh Script của SQL
Thiết đặt môi trường hệ điều hành: các tham số hệ thống được xác định trong registry của Windows
NT Các tham số hệ thống được đặt trong HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
Các tham số bao gồm:
• ORACLE_HOME: thư mục cài đặt phần mềm ORACLE
• ORACLE_SID: tên của các Instance của Oracle chạy trên cùng một máy Các tên này cần được
đảm bảo là duy nhất
• ORACLE_BASE: không nhất thiết phải có Tham số này được đưa ra để tương thích với OFA
• ORA_NLS33: Là cần thiết khi tập hợp ký tự sử dụng trong CSDL không phải là US7ASCII
• PATH: đường dẫn tìm kiếm Bao gồm luôn cả ORACLE_HOME\BIN
Các bước tạo CSDL:
Connect bằng tên và mật khẩu của SYSDBA
Khởi động Instance (no MOUNT) Ví dụ: SQL>STARTUP NOMOUNT PFILE= initU16.ora
Tạo CSDL bằng lệnh CREATE DATABASE Ví dụ:
Trang 21CREATE DATABASE U16
GROUP 1 ('/DISK3/log1a.rdo',/DISK4/log1b.rdo’) SIZE 1 M,
GROUP 2 ('/DISK3/log2a.rdo',/DISK4/log2b.rdo’) SIZE 1 M
DATAFILE
'/DISK1/system01.dbf' size 50M autoextend on
CHARACTER SET WE8ISO8859P1;
Cú pháp lệnh CREATE DATABASE:
CREATE DATABASE [database]
[CONTROLFILE REUSE]
[LOGFILE [GROUP integer] filespec
[, [GROUP integer] filespec] ]
[CHARACTER SET charset]
[NATIONAL CHARACTER SET charset]
[DATAFILE filespec [autoextend_clause]
- MAXINSTANCES: Số l−ợng lớn nhất các instance có thể đồng thời mount và open CSDL
Trang 22- 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: chuẩn ký tự mà CSDL sử dụng để lưu giữ
các dữ liệu Oracle cung cấp sẵn file script để tạo CSDL đặt tại thư mục: ORACLE_HOME\RDBMS\ADMIN
Các bước tạo CSDL trong Window NT
Dùng Tool tạo script file, sau đó chạy script file này Các bước cụ thể như sau:
1 Chuẩn bị tên database, SID, block size, controll file, data file
2 Dùng Oradim tạo service
3 Tạo parameter file
4 Startup nomount
5 Tạo database (CREATE DATABASE)
6 Tạo tablespace
7 Tạo rollback segment
8 chạy script file
9 Config listener
10 Nối client-server
6 Tạo các khung nhìn từ điển dữ liệu vμ các package chuẩn
6.1 Từ điển dữ liệu
Từ điển dữ liệu là phần rất quan trọng của Oracle database, bao gồm một tập hợp các bảng, khung
nhìn (chỉ đọc) cung cấp các thông tin về những sự kết hợp trong CSDL
Từ điển dữ liệu được cập nhật bởi Oracle server mỗi khi có một câu lệnh định nghĩa dữ liệu (DDL) được
thực hiện và đôi khi là với cả các lệnh thao tác dữ liệu (DML)
Nội dung của từ điển dữ liệu:
• Định nghĩa tất cả các schema objects trong CSDL như(tables, views, indexes, clusters, synonyms,
sequences, procedures, functions, packages, triggers, and so on)
• Quy định vùng không gian cho các schema objects hiện thời được sử dụng
• Giá trị mặc định cho các cột
• Các thông tin về ràng buộc toàn vẹn
• Tên của các người sử dụng
• Privileges và roles được phân cho mỗi người sử dụng
• Các thông tin xác nhận, như quyền truy cập, cập nhật vào các schema objects của người dùng
• Các thông tin CSDL chung khác
Từ điển dữ liệu bao gồm hai phần
Trang 23• Bảng cơ sở - Base table: chứa các thông tin về những sự kết hợp trong CSDL Base table được tạo
tự động bởi Oracle server ngay sau khi tạo xong CSDL Các thông tin trong base table phần lớn
được lưu trữ ở dạng mã hoá Nên khó có thể truy cập trực tiếp được Ví dụ: base table INS$, chứa
thông tin về các chỉ số trong database
• Khung nhìn từ điển dữ liệu - Data dictionary views: Phần lớn các user lấy thông tin từ các khung
nhìn vì ở đây các thông tin đều không ở dạng mã hoá Các thông tin này là các thông tin tổng hợp
được lấy ra từ các base table
Sử dụng từ điển dữ liệu
• Chỉ có Oracle server mới có thể viết, thay đổi nội dung của từ điển dữ liệu Oracle server ghi lại
các thay đổi trong cấu trúc CSDL, xác nhận, gán quyền, cấu trúc dữ liệu
• Người sử dụng chỉ có quyền xem nội dung thông tin của từ điển dữ liệu thông qua câu lệnh SQL
Phân loại khung nhìn từ điển dữ liệu
• DBA: khung nhìn của người quản trị CSDL Đó là tất cả những gì trong các schemas Khung nhìn
này có tiếp đầu ngữ là dba_ Ví dụ: dba_objects; nó cho xem tất cả các khung nhìn tổng thể của
toàn bộ CSDL Chỉ những người sử dụng được gán mức quyền hệ thống mới có thể truy xuất vào
các khung nhìn có tiếp đầu ngữ DBA Ví du:
SELECT owner, object_name, object_type
FROM dba_objects;
• ALL: khung nhìn mở rộng của sử dụng; tức là những gì mà người sử dụng có thể truy cập Khung
nhìn này có tiếp đầu ngữ là all_ Ví dụ: all_objects; nó cho phép xem tất cả các thông tin về
schema object mà người sử dụng có quyền truy cập Ví dụ:
SELECT owner, object_name, object_type
FROM all_objects;
• USER: khung nhìn người sử dụng; tức là những gì trong schema của người sử dụng Khung nhìn
này có tiếp đầu ngữ là user_
SELECT object_name, object_type
Trang 24• Dynamic performance view hay còn gọi là bảng ảo Ghi lại tất cả các hoạt động (activity) của
CSDL hiện thời Các khung nhìn này có tiếp đầu ngữ là V_$, synonym V$
Các bảng cơ sở của từ điển dữ liệu được tạo tự động ngay sau khi CSDL được tạo Trong trường hợp
tạo CSDL bằng tay, ta vẫn có thể tạo được bằng cách chạy file scripts File này được đặt ở thư mục có
đường dẫn %ORACLE_HOME%\rdbms\admin Có 02 file scripts cần quan tâm:
• catalog.sql: tạo các khung nhìn và synonym từ điển dữ liệu chung
• catproc.sql: chạy các scripts cần thiết
6.2 Store Program
Store Program là cac hàm, thủ tục được tạo lập và lưu trữ ngay trong từ điển dữ liệu dưới dạng một
schema object Nó bao gồm một tập hợp các câu lệnh SQL
Sử dụng để truy cập và thao tác đối với dữ liệu trong CSDL thông qua các câu lệnh PL/SQL
Không chỉ chạy với các thủ tục viết bằng PL/SQL, quản trị viên CSDL còn có thể cài đặt Jserver
component cho phép Oracle server có thể thực hiện được các thủ tục viết bằng ngôn ngữ Java Để
thực hiện được việc này, trước tiên cần ánh xạ các tên thủ tục, tham số tương ứng và kiểu trả về sang
ngôn ngữ PL/SQL
Oracle server cho phép tích hợp cả với các thủ tục viết bằng ngôn ngữ C (được đặt trong các thư viện
chung dll)
Việc sử dụng cac Store Program mang lại một số lợi ích:
• Giảm thời gian biên dịch
• Có thể gọi các thủ tục viết bằng ngôn ngữ C/Java bằng lời gọi SQL, PL/SQL
• Đảm bảo việc bảo mật dữ liệu Người sử dụng không truy xuất trực tiếp vào dữ liệu mà thông qua
các thủ tục, hàm
• Các thủ tục là dùng chung, tức là nhiều người dùng chỉ cần dùng cùng một thủ tục để truy cập vào
CSDL
6.3 Package
Package là một tập hợp các biến, hằng, cursors, thủ tục, hàm, ngoại lệ được đặt cùng với nhau trong
trong CSDL tạo thành một đơn vị riêng biệt Người sử dụng hoặc các ứng dụng khác có thể gọi các
hàm, thủ tục trong package để thực hiện các công việc của mình
Một package được chia làm hai phần:
• Phần khai báo: để giao tiếp với bên ngoài, trong phần này có định nghĩa các kiểu, biến, hằng,
exception (ngoại lệ), cursors, và tên các hàm, thủ tục (có đầy đủ thám số và kiểu trả về) trong
package
• Phần thân: Bao gồm các hàm và thủ tục được cài đặt cụ thể theo ngôn ngữ PL/SQL Trong phần
này cũng có khi bao gồm cả các hàm, thủ tục chỉ thực hiện trong package
Các hàm trong package sau khi đã được ghi và biên dịch thì có thể được sử dụng chung cho cả các
ứng dụng khác Lợi điểm chính của package là sau lời gọi, toàn bộ package đều được nạp vào trong
bộ nhớ
Các ứng dụng khác chỉ có thể tham chiếu tới các biến, hàm khai báo trong phần package
specification Cú pháp:
Trang 25EXECUTE | EXEC <tên package>.<tên hàm>[tham số];
Oracle cung cấp một số package có sẵn để thực hiện các công việc đặc biệt
• DBMS_SESSION: để tạo các câu lệnh SQL Ví dụ: SET_ROLE, SET_SQL_TRACE
• DBMS_UTILITY: cung cấp nhiều thủ tục tiện ích Ví dụ: ANALYZE_SCHEMA,
COMPILE_SCHEMA, DB_VERSION
• DBMS_SPACE: cung cấp các thông tin có sẵn về vùng trống segment Ví dụ: UNUSED_SPACE,
FREE_BLOCKS
• DBMS_ROWID: cung cấp thông tin ROWID Ví dụ: ROWID_INFO
• DBMS_SHARED_POOL: Lưu và thôi lưu các package trong shared pool Ví dụ: KEEP, UNKEEP
• DBMS_LOB: cung cấp các thủ tục thao tác trên các kiểu dữ liệu BLOB và CLOB
6.4 Trigger
Trigger là các đoạn chương trình được thực hiện ngầm định bởi Oracle server mỗi khi có một sự kiện
xác định xảy ra Trigger chỉ thực hiện khi sự kiện tương ứng với nó xảy ra Các thủ tục trigger có thể
được viết bởi ngôn ngữ PL/SQL, Java hay C
Sử dụng trigger
• Điều khiển giá trị các cột một cách tự động
• Ngăn chặn các giao dịch không hợp lệ
• Đảm bảo bảo mật dữ liệu
• Đảm bảo toàn vẹn trong CSDL phân tán
• Đảm bảo các ràng buộc tương ứng với quy tắc tác nghiệp
• Đảm bảo tính trong suốt
Các phần của một trigger
• Sự kiện kích hoạt - triggering event: sự kiện database, sự kiện do người sử dụng, câu lệnh SQL
gây ra việc kích hoạt trigger
• Trạng thái trigger - trigger restriction: được xác định bởi một biến logic Trigger chỉ có thể xảy ra
nếu giá trị của nó là TRUE Trigger sẽ không thể thực hiện được nếu trạng thái của nó là FALSE
hay UNKNOWN
• Nội dung trigger - trigger action: tập hợp các câu lệnh sẽ được thực hiện khi trigger được kích hoạt
Ví dụ:
CREATE OR REPLACE TRIGGER log_logon
AFTER LOGON ON DATABASE
WHEN (USER = ’SYS’ OR USER LIKE ’OPS$%’)
BEGIN
INSERT INTO sys.event_log
VALUES (’Logon ’ || USER || ’ at ’
|| TO_CHAR(sysdate, ’YYYY-MM-DD HH24:MI:SS’));
Trang 26COMMIT;
END;
Tên trigger: log_logon
Trigger này sẽ được kích hoạt ngay sau khi người sử dụng logon tới một instance
Trigger này sẽ được kích hoạt nếu người sử dụng là SYS hay bắt đầu bởi OPS$
Khi trigger được kích hoạt nó sẽ thêm mới một dòng dữ liệu vào bảng event_log
7 Bảo trì các file điều khiển - Contron files
7.1 Control file
Control file trong một database là các file nhị phân cần thiết cho việc khởi động và hoạt động của
database Mỗi control file được kết hợp với duy nhất một Oracle database
Control file được cập nhật bởi Oracle server trong quá trình sử dụng database, Các thông tin trong
control file chỉ có thể được sửa đổi bởi Oracle server; DBA hay những người sử dụng khác không cáo
quyền sửa đổi control file
Control file chứa
• Tên của database
• Định danh của database
• Time stamp lúc tạo lập database
• Tên, vị trí của các file dữ liệu
• Thông tin về tablespace
• Log history
• Vị trí và trạng thái của các archived logs
• Vị trí và trạng thái của backups
• Số log sequence number hiện thời
• Thông tin checkpoint
Control file có hai phần
• Reusable - có thể dùng lại
• Not reusable - không thể dùng lại
7.2 Tạo nhiều control file
Cùng với online redo log files, Oracle cho phép có thể có nhiều các control file được mở ra và ghi vào
đồng thời Có thể mở tới 8 control file
Ta có thể tạo nhiều control file theo hai cách
• Tạo nhiều control file ngay sau khi CSDL được tạo lập
• Thêm vào các control file, khi CSDL đã được tạo lập
Các bước tạo control file