Tải bản đầy đủ (.docx) (94 trang)

Cài đặt cơ chế nhân bản trong oracle

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.64 MB, 94 trang )

LỜI CẢM ƠN

Thời gian thực tập và làm đồ án tốt nghiệp, em đã nhận được rất nhiều sự
hướng dẫn và giúp đỡ tận tình của các Thầy Cô trường Đại học công nghệ thông tin
và truyền thông. Em xin gửi lời cảm ơn tới quý Thầy Cô trường Đại học công nghệ
thông tin và truyền thông, đặc biệt là các Thầy Cô trong bộ môn Hệ thống thông tin
đã động viên, dạy bảo và hướng dẫn em trong suốt quá trình học tập ở trường.
Em xin gửi lời biết ơn sâu sắc tới Th.S Ngô Thị Lan Phương, người đã cho
em định hướng, tận tình chỉ bảo em trong quá trình học tập, tạo điều kiện cho em
hoàn thành các lần thực tập, đặc biệt là đồ án này.
Mặc dù có nhiều cố gắng để hoàn thành đồ án bằng tất cả năng lực của mình,
tuy nhiên không thể tránh khỏi sự thiếu sót, rất mong nhận được sự châm trước và
những góp ý quý báu của quý Thầy Cô và các bạn.

Em xin chân thành cảm ơn!

Thái Nguyên, ngày 18 tháng 06 năm 2012
Sinh viên thực hiện
Nguyễn Thị Thủy

LỜI CAM ĐOAN
1


Em xin cam đoan nội dung trong đồ án là do em thực hiện, không sao chép
của bất cứ ai. Nội dung đồ án có sự tham khảo từ một số tài liệu, thông tin đã được
đăng tải trên các tác phẩm, tạp trí và được trích dẫn rõ ràng trong danh mục tài liệu
của đồ án.
Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin
chịu hoàn toàn trách nhiệm.


Thái Nguyên, ngày 18 tháng 06 năm 2012
Sinh viên thực hiện
Nguyễn Thị Thủy

MỤC LỤC

2


DANH MỤC HÌNH

3


MỞ ĐẦU
Cơ sở dữ liệu là một trong những ngành được quan tâm nhiều trong khoa học
máy tính của ngành công nghệ thông tin. Từ khi có mô hình cơ sở dữ liệu đầu tiên
4


vào những năm 60 đến nay tuy không phải là chặng đường dài so với các ngành
khoa học khác, nhưng với khoa học máy tính và đặc biệt với cơ sở dữ liệu thì đó là
thời gian đáng kể. Cơ sở dữ liệu đã trải qua nhiều thế hệ của hệ quản trị cơ sở dữ
liệu, và đã có nhiều ứng dụng trong khoa học và trong các ngành kinh tế quốc dân.
Hệ quản trị cơ sở dữ liệu Oracle là một trong những giải pháp tốt nhất, được
công nhận trên thị trường tin học thế giới hiện nay. Oracle đã được nghiên cứu và
phát triển, cho phép người sử dụng khai thác triệt để tiềm năng của hệ thống quản lý
cơ sở dữ liệu.
Cơ sở dữ liệu là thành phần quan trọng nhất trong mọi hệ thống ứng dụng, việc
đảm bảo an toàn do đó cũng trở nên hết sức cần thiết. Sau đây là một số giải pháp an

toàn trên nền tảng cơ sở dữ liệu Oracle:
• Sao lưu CSDL (Backup Database): Sao lưu CSDL ra một nơi an toàn trên
đĩa cứng của một máy chủ khác, hoặc sao lưu ra Tape, CD, DVD.
• Cơ sở dữ liệu dự phòng (Standby Database): Xây dựng một Standby
Database chạy song song với Database chính. Những thay đổi trên Database
chính được liên tục chuyển sang Standby Database.
• Oracle Data Guard: Data Guard cung cấp các dịch vụ để tạo, duy trì, quản
lý và giám sát một hay nhiều Database dự phòng, cho phép hệ thống ứng
dụng vẫn hoạt động khi có sự cố như thảm họa hay hỏng hóc dữ liệu.
• Oracle Real Application Cluster (RAC): Giải pháp hỗ trợ xây dựng một hệ
thống Database gồm nhiều máy chủ xử lý trên cùng một vùng lưu trữ, cung
cấp dịch vụ Database như một Database đơn, hoàn toàn trong suốt cho các
ứng dụng.

CHƯƠNG 1
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE
1.1.

Kiến trúc và quản trị CSDL Oracle

1.1.1. Tổng quan về Oracle

5


Thời đại thông tin ngày nay, bài toán cơ bản và cốt yếu là: làm thế nào lưu trữ
thông tin an toàn và chắc chắn đồng thời lại truy cập chính xác và dễ dàng. Theo
thời gian, yêu cầu của bài toán ngày càng cao với lượng thông tin cần lưu trữ, xử lý
ngày càng nhiều và đa dạng.
Oracle Database là phần mềm HQTCSDL được cung cấp bởi công ty Oracle.

Nhìn chung, các HQTCSDL đều có khả năng quản lý một cách tin cậy số lượng lớn
dữ liệu trong môi trường đa người dùng, sao cho nhiều người dùng có thể truy cập
đồng thời cùng một dữ liệu mà vẫn giữ được tính nhất quán của dữ liệu đó.
HQTCSDL cũng cần được bảo vệ chống lại các xâm nhập trái phép và có khả năng
phục hồi dữ liệu khi có lỗi xảy ra.
Bản phát hành gần đây nhất của Oracle Database là 11g, bản này gồm các phiên
bản sau:


Standard Edition One (SE1) cung cấp các tính năng dễ sử dụng, mạnh mẽ

cho các nhóm làm việc, các đơn vị phòng ban và các ứng dụng web.
• Standard Edition (SE) được thiết kế cho các máy chủ đơn hoặc phân tán.
• Enterprise Edition (EE) cung cấp quản lý dữ liệu một cách hiệu quả, tin cậy
và bảo mật cho các ứng dụng xử lý giao dịch trực tuyến (OLTP), các ứng
dụng quản lý nội dung và web 2.0.
Cả 3 phiên của Oracle Database 11g đều được xây dựng dựa trên kiến trúc chung và
hoàn toàn tương thích với nhau. Các phiên bản này đều có khả năng triển khai trên
các hệ điều hành khác nhau (Windows, Linux, Unix) và kèm theo rất nhiều công cụ
hỗ trợ phát triển ứng dụng cũng như các thư viện lập trình.
Chữ “g” trong Oracle Database 11g là viết tắt cụm từ Grid Computing (tính
toán lưới – GC). Đây là kiến trúc mới của ngành công nghệ thông tin trong thiết kế
và cài đặt các hệ thống thông tin. Với GC, nhóm các phần cứng độc lập cùng với
các thành phần phần mềm được kết nối nhau và được phân phối theo yêu cầu thay
đổi của tải công việc (workloads). So với các kiến trúc trước đây, GC cung cấp dịch
vụ có chất lượng cao hơn và chi phí thấp hơn.
6


-


Dịch vụ có chất lượng cao vì GC không có sự cố do một thành phần đơn lẻ

-

gây ra và có một kiến trúc bảo mật mạnh mẽ.
Chi phí thấp do GC gia tăng tối đa khả năng sử dụng các tài nguyên hệ thống.
Các phần cứng hoặc thành phần phần mềm “rãnh rỗi” không còn tận hiến cho
một tác vụ chuyên biệt mà sẽ được cấp phát cho các tác vụ khác có nhu cầu
sử dụng.

Một số hướng nghiên cứu cho những ai có ý định theo Oracle:
-

Database Administrator (Nhà quản trị cơ sở dữ liệu)
Database Developer (Nhà phát triển csdl)
ERP (Giải pháp ERP trong Oracle)
Application server & MiddleWare
1.1.2. Kiến trúc của Oracle

Các thành phần kiến trúc
Oracle Server là một hệ thống quản trị cơ sở dữ liệu đối tượng – quan hệ cho phép
quản lý thông tin một cách toàn diện. Oracle Server bao gồm 2 thành phần chính là:
Oracle Instance và Oracle Database.
• Oracle Instance: bao gồm một cấu trúc bộ nhớ System Global Area (SGA) và
các background process (tiến trình nền) được sử dụng để quản trị cơ sở dữ liệu.
Oracle Instance được xác định qua tham số môi trường ORACLE_SID của hệ
điều hành.

Hình 1.1: Kiến trúc Oracle Server

7


Trong đó:
SAG – System Global Area: là vùng bộ nhớ chia sẻ được sử dụng để lưu trữ
dữ liệu và các thông tin điều khiển của Oracle server. SAG được cấp phát 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) . Vùng nhớ này được giải phóng khi thể hiện (Instance) được tắt
(shutdown) và mỗi thể hiện có một SGA riêng biệt.
SGA bao gồm vài cấu trúc bộ nhớ chính:
+ Shared pool: là một phần của SGA lưu các cấu trúc bộ nhớ chia sẻ.
+ 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 dò tìm lại các thay đổi trong cơ
sở dữ liệu và được thực hiện bởi các background process.


Oracle database: Là một tập hợp các tập tin hệ thống lưu trữ dữ liệu do
người dùng hoặc chương trình đưa vào và thông tin về cấu trúc của CSDL
(metadata). Để có thể truy vấn và cập nhật CSDL, Oracle phải khởi động một
số tiến trình nền và cấp phát một vài vùng nhớ sử dụng trong suốt quá trình
thao tác trên CSDL.
1.1.3. Cấu trúc lưu trữ của CSDL Oracle
Trong hệ quản trị Oracle, một CSDL được cấu thành bởi 2 cấu trúc: lý luận và
vật lý. Cấu trúc lý luận mô tả các vùng nhớ dùng để lưu trữ các đối tượng như
các bảng, các hàm, … Ngược lại, cấu trúc vật lý được xác định bởi các tập tin hệ
thống hình thành nên CSDL.
- Vì vậy 2 cấu trúc dữ liệu này vẫn tồn tại tách biệt nhau, việc quản lý dữ liệu

theo cấu trúc lưu trữ vật lý không gây ảnh hưởng tới cấu trúc logic.
- Oracle database được xác định bởi một tên duy nhất và được quy định trong
tham số DB_NAME của parameter file.
8


Hình 1.2: Cấu trúc database
Cấu trúc vật lý database: Liên quan đến các tập tin được lưu trữ trên thiết bị phần
cứng, các vấn đề lưu trữ dữ liệu, các tham số, nhật ký, lưu vết, sao lưu, … để đảm
bảo hệ thống hoạt động ổn định.

9


Hình 1.3: Cấu trúc lưu trữ CSDL Oracle
Datafile: Oracle lưu trữ dữ liệu trong các datafile (có phần mở rộng *.dbf)
tương ứng với tablespace. Bản chất của một CSDL là một tập hợp các datafiles
được lưu trữ trên các thiết bị khác nhau như đĩa từ, đĩa quang học, …. Các dữ liệu
thuộc cấu trúc logic của database như table, index đều được lưu trữ dưới dạng vật lý
trong các datafiles của database.
+ Mỗi datafile chỉ có thể được sử dụng trong một database.
+ Datafile 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 datafile tạo nên một đơn vị lưu trữ logic của database
tablespace.
+ Một datafile chỉ thuộc về một tablespace.
Dữ liệu trong một datafile được đọc trong lúc thực thi CSDL và được lưu trữ trong
bố nhớ đệm của phần mềm Oracle nhằm tăng tốc độ truy cập. Dữ liệu được thêm
mới hoặc sửu đổi không nhất thiết được ghi ngay lập tức lên datafile. Để giảm số
10



lượng truy cập thiết bị lưu trữ và tăng hiệu quả thực thi, các dữ liệu này được lưu
tạm trong bộ nhớ và được ghi đồng loạt lên các datafile vào một thời điểm định sẵn.
Nhiệm vụ này được đảm trách bởi tiến trình Database Background Writer (DBWn).
Redo Log Files: Các tập tin Redo Log có phần mở rộng *.rdo hoặc *.log. Mỗi
thể hiện CSDL duy trì một tập hợp các tập tin dạng này để ghi lại toàn bộ các giao
dịch (transaction) và các thay đổi trên datafiles. Khi CSDL bị lỗi, các tập tin này
được dùng để phục hồi lại dữ liệu đến thời điểm mẫu tin redo cuối cùng được ghi.
Mỗi CSDL duy trì ít nhất 2 nhóm tập tin Redo Log và mỗi tập tin chỉ thuộc vào một
nhóm. Tại mỗi thời điểm, chỉ một nhóm tập tin ở trạng thái “hiện thời” để ghi nhận
các mẫu tin redo. Khi dung lượng vượt quá giới hạn, nhóm này sẽ chuyển trạng thái
“hiện thời” sang nhóm khác.
Control Files: Mỗi Oracle database đều có ít nhất một control file. Control file
chứa các mục thông tin quy định cấu trúc vật lý của database như:
+ Tên của database
+ Tên và nơi lưu trữ các datafiles hay redo log files
+ Time stamp (mốc thời gian) tạo lập database, …
Các Control Files có phần mở rộng *.ctl. Mỗi thể hiện CSDL có ít nhất một tập tin
dạng này. Nó rất cần thiết cho hoạt động bình thường của CSDL. Các tập tin này
được cập nhập thường xuyên trong quá trình hoạt động của CSDL, vì vậy nó luôn
được đặt vào chế độ ghi khi CSDL được mở. Vì lý do nào đó, các tập tin không truy
cập được, CSDL sẽ hoạt động không đúng. Các Control Files ghi nhận các thông tin
của CSDL như: tên CSDL, các thông tin về tablespace, datafiles, redo log file …
Control file còn được dùng trong thao tác phục hồi dữ liệu.
Archived Redo Log Files: vì Oracle sử dụng xoay vòng các nhóm tập tin redo
log, nên các khả năng một nhóm tập tin đã có chứa các mẫu tin redo bị ghi đè và
như vậy thông tin redo bị thất lạc. Vì vậy, Oracle phải đảm bảo các tập tin này
không bị ghi đề nếu chưa được lưu ra tập tin Archived Redo Log.
Khi một thể hiện CSDL được thực thi dưới chế độ ArchiveLog, tiến trình ARCH

của Oracle sẽ dùng các tập tin dạng này lưu lại các mẫu tin redo trên nhóm tập tin
redo log.
11


Parameter Files: Tập tin này lưu trữ các thông số cấu hình cho thể hiện và
CSDL như: độ lớn của datablock, đường dẫn đến nới lưu trữ datafiles, độ lớn của
vùng nhớ SGA, số sessions, số processes, … Ngoài ra, CSDL Oracle còn có Server
Parameter File (SPFILE) lưu trữ các thông số khởi động của CSDL, nhà quản trị có
thể thay đổi các thông số trực tiếp trên tập tin nay theo nhu cầu hệ thống.
Alert và Trace Log Files: Mỗi tiến trình nền và máy chủ có thể lưu vết hoạt
động trên một Trace Log File tương ứng. Mỗi khi có một lỗi nội tại trong tiến trình,
thông tin về lỗi đó được ghi ra tập tin. Phần lớn thông tin ghi ra Trace Log File dành
cho nhà quản trị CSDL, các thông tin khác phục vụ cho dịch vụ hỗ trợ của Oracle
(Oracle Support Service). Các thông tin này còn được dùng để điều chỉnh các ứng
dụng và thể hiện CSDL.
Backup Files: Đây là các tập tin có định dạng đặc biệt được định nghĩa bởi
Oracle. Các tập tin này phục vụ cho quá trình khôi phục CSDL mỗi khi có sự cố về
thiết bị lưu trữ hay lỗi do người dùng gây ra.
Cấu trúc logic database: Cấu trúc logic của Oracle database bao gồm các đối
tượng tablespaces, schema object, data blocks, entents, và segments.
Control file cũng được sử dụng đến khi thực hiện khôi phục lại dữ liệu.
Tablespaces: Một database có thể được phân chia về mặt logic gọi là cá
tablespace, Tablespaces thường bao gồm một nhóm các thành phần có quan hệ logic
với nhau.
Database, Tablespaces, và Datafiles chúng có mối quan hệ giữa để thể hiện
qua hình ảnh sau:

12



Hình 1.4: Quan hệ giữa Database, Tablespaces, và Datafiles
Một số điểm ta cần quan tâm:
-

Mỗi database có thể phân chia về mặt logic thành một hay nhiều tablespace.
Mỗi tablespace có thể được tạo nên, về mặt vật lý, bởi một hoặc nhiều

-

datafile.
Kích thước của một tablespace bằng tổng kích thước của các datafile của nó.
Ví dụ: Trong hình vẽ ở trên SYSTEM tablespace có kích thước là 2 MB còn
USERS tablespace có kích thước là 4 MB.

-

Kích thước của database cũng có thể xác định được bằng tổng kích thước của
các tablespace của nó.
Ví dụ: Trong hình vẽ trên thì kích thước của database là 6MB.
Schema và Schema Objects: Là tập hợp các đối tượng (objects) có trong

database. Là các cấu trúc logic cho phép tham chiếu trực tiếp tới dữ liệu trong
database Schema objects bao gồm: tables, views, sequences, stored procedures,
synonyms, indexes, clusters, và database links.
Data Blocks, Extents, and Segments: đ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, và segments.

13



Hình 1.5: Một số đối tượng cấu trúc logic
Oracle Data Blocks: Là mức phân cấp logic thấp nhất, các dữ liệu của Oracle
database được lưu trữ trong các data blocks. Một 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.
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ữ.
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 .
1.1.4. Các công cụ quản trị Oracle
Hiện tại Oracle đã cung cấp rất nhiều công cụ cho phép quản trị CSDL. Ví dụ:
Công cụ

Diễn giải

Server
manager Line
Mode
SQL*Plus
Line Mode

Công cụ quản trị CSDL theo chế độ dòng lệnh
như start, shutdown CSDL, …

Oracle

Enterprise
Manager

Là công cụ có giao diện đồ họa để thực hiện việc
quản trị, điều khiển và thay đổi một hoặc nhiều dabsel

Đây là một tiện ích sử dụng cho việc quản trị
như starting up, shutting down, hoặc phục hồi CSDL.

14


SQL*Loaer
Công cụ
Export và Import

Tiện ích sử dụng để nạp các file bên ngoài vào
trong các bảng của Oracle.
Tiện ích sử dụng để exporting hoặc importing dữ
liệu theo khuôn dạng nào của Oracle.

Password

Tiện ích sử dụng để tạo file mật khẩu trong
File
database.
Server Manager Line Mode
User (người sử dụng) có thể vào Server Manager Line Mode theo 2 cách:
C:\svrmgrl
Cách này chỉ vào Server Manager Line Mode mà chưa thực hiện kết nối cụ thể tới

database. Ở các phiên bản cũ, ta gõ svrmgrl30 thay vì svrmgrl.
C:\svgrmrl command=”connect internal/admin”
C:\svgrmrl command=@c:\example.sql
Với Server Manager Line Mode, ta có thể thực hiện câu lệnh SQL hoặc đoạn
lệnh PL/SQL. Các câu lệnh được kết thúc bằng ký tự ‘;’. Sử dụng ký tự ‘ /’ để kết
thúc câu lệnh trong trường hợp đã bấm phím Enter để xuống dòng
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.

15


Hình 1.6: Oracle Enterprise Manager
Kiến trúc OEM: là mở rộng của kiến trúc Client/Server, nó có kiến thứ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.
 Lớ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.
Oracle Configuration Assistant: là công cụ cho phép tạo các shared repositories,
đặt lại cấu hình cho database và thiết đặt cấu hình cho 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. Ta cũng có thể khởi động ứng dụng này
16


bằn 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.
Các công cụ quản trị khác ngoài 2 công cụ quản lý chính trên, Oracle còn hỗ trợ
các bộ công cụ khác như:
-

Instance Manager: dùng để điều khiển database định nghĩa và khởi tạo các

-

tham số liên quan tới các tính chất chất của instance.
Schema Manager: dùng để quản lý các users và phân quyền cho các users này.
Storage Manager: dùng để tổ chức các database files và quản lý các rollback

-

segments.
SQL Worksheet: giao tiếp theo kiểu dòng lệnh, nó cho phép thực hiện các câu


-

lệnh SQL và PL/SQL cũng như là các câu lệnh của Server Manager.
Backup Manager: dùng để sao lưu, phục hồi và bảo trì databases, quản lý các

-

redo log files.
Data Manager: dùng để nạp và tổ chức lại dữ liệu trong database.
1.1.5. Mở/tắt CSDL và Instance (thể hiện)
Mỗi CSDL Oracle ở trạng thái thực thi đều kết hợp với một thể hiện CSDL

(Database Instance). Khi CSDL được khởi động trên một máy chủ, Oracle cấp phát
vùng nhớ SGA và khởi động các tiến trình nền của phần mềm. Sự kết hợp giữa SGA
và các tiến trình được gọi là thể hiện CSDL.
Sau khi khởi động thể hiện, Oracle kết hợp thể hiện đó với CSDL tương ứng,
lúc này ta nói CSDL đã được liên kết (mounted database). Khi đó, CSDL sẵn sàng
được mở (open) để người dùng truy cập.
Chỉ duy nhất nhà quản trị CSDL có quyền khởi động thể hiện và mở CSDL,
cũng như tắt CSDL và giải phóng thể hiện.

17


Chú ý: Việc mở/tắt cơ sở dữ liệu bằn lệnh được thực hiện trong tiện ích SQL*Plus.
a. Mở CSDL

Cách đơn giản nhất để mở CSDL là sử dụng dòng lệnh startup, dòng lệnh này sẽ
đưa CSDL từ trạng thái shutdown lên open.
Trạng thái Nomount: Khởi động Instance không gắn csdl. Không cho phép truy

cập tới csdl và thường chỉ dùng cho việc tạo CSDL hoặc việc tạo lại những control
files. Nếu không có file tham số tồn tại, thì RMAN khởi động Instance với một file
tham số tạm thời. Bạn có thể chạy RESTORE SPFILE để hoàn tác một SPFILE
sao lưu.
Lúc này sử dụng lệnh startup, CSDL sẽ tiếp tục tự động chuyển sang trạng thái
mount.
Trạng thái Mount: Khởi động Instance, sau đó gắn CSDL nhưng không mở nó.
Trạng thái này dành cho những hoạt động của DBA, nhưng không cho phép truy
cập toàn bộ tới CSDL.
Lúc này sử dụng lệnh startup, CSDL sẽ tiếp tục tự động chuyển sang trạng thái
open.
Trạng thái Open: Khởi động instance, gắn và mở CSDL. Điều này cho phép ở chế
độ không bị giới hạn, việc cho phép truy cập với tất cả những người dùng, hoặc ở
chế độ có giới hạn, sự cho phép truy cập dành cho chỉ những người quản trị CSDL.
Nếu CSDL vào trạng thái mount, chúng ta dùng lệnh alter database open; để vào
trạng thái open.
Trạng thái Force: trạng thái ép buộc khởi động instance sau khi startup hoặc
shutdown.
Ngoài cách khởi động thông thường, chúng ta có thể khởi động CSDL ở chế độ hạn
18


chế (restrict mode) bằng câu lệnh startup restrict. Ở chế độ này, chỉ dành cho những
người dùng có quyền đặc biệt (SYS, SYSTEM, …) mới có thể truy cập CSDL.
b. Tắt CSDL
Một số thao tác yêu cầu nhà quản trị phải đóng CSDL như thay đổi cấu hình, sao
lưu dữ liệu hay nâng cấp phần mềm Oracle. Khi đó, ta sử dụng lệnh shutdown.
Đóng CSDL cũng trải qua một số trạng thái theo quy trình ngược lại so với mở
CSDL. Tuy nhiên, ta chỉ có thể đưa CSDL về trạng thái shutdown mà không dừng
lại ở các trạng thái trung gian được.

- Đóng CSDL: Oracle ghi tất cả thông tin dữ liệu từ SGA ra datafiles và redo log
files. Tiếp theo, tất cả data files và redo log files được đóng lại. Vì thế, CSDL
không còn truy cập được. Tuy nhiên, control files vẫn còn được mở vì CSDL
-

vẫn được liên kết.
Ngắt liên kết (unmount): Oracle ngắt liên kết giữa thể hiện và CSDL. Lúc này,

-

control files được đóng lại và thể hiện vẫn còn trong bộ nhớ.
Tắt thể hiện: Thể hiện được giải phóng khỏi vùng nhớ và các tiến trình nền kết
thúc thực thi.

CSDL Oracle có thể được đóng ở 3 chế độ khác nhau:
Chế độ bình thường (nomarl): dùng lệnh shutdown
Đây là chế độ mặc định, CSDL chỉ tắt khi tất cả các thao tác trên CSDL kết
thúc. Tất cả thay đổi trên dữ liệu đề được ghi lên datafiles. Tuy nhiên, chế độ này ít
dùng vì đòi hỏi Oracle phải chờ đợi tất cả người dùng “log off” khởi CSDL. Nếu
một người dùng nào đó đăng nhập và quên tắt phiên làm việc, CSDL có khả năng
không bao giờ tắt được.
Chế độ tức khắc (immediate): dùng lệnh shutdown immedite
Chế độ này ngăn chặn các truy cập mới, cuộn lại tất cả các giao dịch chưa
hoàn tất và tắt CSDL. Tất cả thay đổi trên CSDL đều được ghi lên datafiles.
Chế độ bỏ dở (abort): dùng lệnh shutdown abort
Đây là cách tắt CSDL ép buộc, cách này ít được sử dụng vì ảnh hưởng đến dữ
liệu, vì mọi thay đổi sẽ không được ghi ra datafiles và các giao dịch không được
cuộn lại. Đây là lựa chọn cuối cùng nếu CSDL không tắt được bằng các chế độ
19



khác.
1.1.6. Oracle Net

Oracle Net là một middleware được cài đặt trên Oracle Client và Oracle Database
Server. Oracle Net cung cấp các giải pháp kết nối trong môi trường tin học không
đồng nhất và phân tán, giúp cho việc cấu hình và quản lý mạng dễ dàng hơn. Oracle
Net cho phép thiết lập một phiên kết nối mạng (Network session) từ một ứng dụng
trình khách (Client Application) đến máy chủ CSDL (Database Server). Một khi
phiên kết nối mạng được thiết lập, Oracle Net đóng vai trò như một kênh trao đổi dữ
liệu giữa ứng dụng khách và máy chủ. Nó có nhiệm vụ thiết lập, quản lý kết nối
mạng và trao đổi các thông điệp (message) giữa trình khách và máy chủ.

Hình 1.7: Oracle Net
Phiên kết nối mạng được thiết lập thông qua Listener module, một tiến trình
độc lập của máy chủ CSDL.
Listener: là một tiến trình chạy trên một máy (có thể độc lập với Oracle server) làm
nhiệm vụ nhận yêu cầu kết nối từ client thay cho một hoặc nhiều database. Khi một
client yêu cầu kết nối, Listener sẽ nhận và giao lại yêu cầu đó cho Oracle server, và
khi kết nối được thiết lập, client và Oracle server sẽ giao tiếp trực tiếp với nhau.
Như vậy chúng ta có thể hiểu nôm na, Listener là lỗ tai của database. Không có

20


Listener cơ sở dữ liệu sẽ không nghe thấy gì, có nghĩa là client không thể kết nối với
database được.

Hình 1.8: Listener
Một số đặc điểm của Listener:

-

Một listener có thể lắng nghe thay cho một hoặc nhiều database, ngược lại một

-

database cũng có thể có nhiều listener.
Khi start nhiều trên một máy, các listener không thể trùng tên nhau hoặc lắng

-

nghe trên cùng một cổng (port), defaul port là 1521.
Listener mặc định là LISTENER.
Thông tin cấu hình của tất cả các listener được lưu trong một file duy nhất là
…\dbhome_1\NETWORK\ADMIN\listener.ora.
Công cụ hỗ trợ kết nối: Các công cụ này được cài đặt mặc định khi chúng ta

cài Oracle server hoặc Oracle client. Sau khi cài được Oracle Application, chúng ta
sẽ tìm thấy công cụ này trong menu Start\Programs\Oracle_home\Configuration
and Migration Tools.
-

Net Configuration Assistant: cho phép cấu hình với những thông số tối thiểu

-

phải có.
Net Manager: cho phép cấu hình đầy đủ hơn các thông số, tuy nhiên không
phải tất cả. Một số thường được cấu hình bằng tay bằng cách chỉnh sửa trực
tiếp vào file cấu hình, và dường như đây là cách nhanh hơn.


Database Service: đối với client thì database là một dịch vụ (service), nó thực thi
công việc thay cho client. Ở đây dịch vụ mà database cung cấp cho client chính là

21


lưu trữ dữ liệu và gọi lại dữ liệu khi cần. Khi kết nối client nhận biết database qua
tên dịch vụ (service name) mặc định là bằng với global database name.
Naming Methods: khi yêu cầu kết nối với Oracle database user phải cung cấp một
chuổi kết nối (connect string) gồm username, password và tên kết nối (connect
identifier). Connect identifier có thể là một chuổi mô tả chi tiết thông tin để kết nối
với database (gọi là connect descriptor) hoặc database service name hay một cái tên
thay thế connect descriptor.
Naming method là phương pháp mà Oracle Net client sử dụng để chuyển một
connect identifier thành connect descriptor khi thực hiện kết nối với database. Cùng
lúc, client có thể chọn sử dụng nhiều naming method khác nhau.
Oracle Net cung cấp các naming methods sau:
- Local Naming: xác định địa chỉ mạng bằng cách sử dụng thông tin cấu hình
(service names và các connect descriptors) lưu trong một file tại mỗi client tên là
tnsnames.ora
- Directory Naming: lưu trữ các connect identifier tập trung trong một LDAPcompliant directory server dùng để truy cập đến database service
- Oracle Names: sử dụng chính database Oracle để lưu tên và địa chỉ của các
database. Client muốn kết nối với database phải kết nối đến Oracle Names server,
sau đó tùy theo tên mà client cung cấp, Oracle Names server sẽ trả lại thông tin địa
chỉ mạng của database server cho client.
- Host Naming: cho phép client sử dụng bí danh (host name alias) để kết nối với
Oracle database server. Tên máy (host name) ánh xạ đến service_names của
database server trong Domain Name System (DNS), Network Information Service
(NIS), hoặc trong file hosts ở thư mục /etc đối với hệ điều hành Linux, Unix hay

%winsys%\drivers\etc với Windows.
- External Naming: sử dụng dịch vụ tên miền của hãng thứ ba (third-party naming
service)
Connect string:
username/password@connect_identifier
22


connect_identifier ở đây thường là một tên thay thế theo các naming method nói ở
trên.
Để có một kết nối tới trình khách hoặc bên thứ 3 (middle-tier), Oracle Net yêu cầu
trình khách biết:
-

Host nơi mà Listener đang chạy
Port mà Listener đang được điều khiển
Protocol mà Listener đang sử dụng
Tên dịch vụ mà Listener đang điều khiển.
1.1.7. Các biện pháp bảo vệ CSDL Oracle.

a. Cấp quyền

Cấp quyền là sự gán quyền cho một người dùng hay chương trình để có thể truy cập
vào một hệ thống hay một đối tượng của hệ thống.
Chứng thực người dùng (authentication) là cơ chế để xác định một người dùng là ai.
Mỗi người dùng được tạo ra có thể được gán 2 loại quyền:
- Quyền đối tượng (Object Privileges): Các quyền này cho phép người dùng
thực hiện các thao tác nào đó trên một đối tượng của CSDL, chẳng hạn quyền
-


SELECT, INSERT, UPDATE, … dữ liệu trong một bảng nào đó.
Quyền hệ thống (System Privileges): Các quyền này cho phép người dùng
thực hiện thao tác nào đó trong CSDL nhưng không gán một đối tượng đã tồn
tại nào, chẳng hạn quyền tạo bảng, tạo view, …
• Lệnh SQL để cấp quyền: Gán quyền đối tượng cho người dùng bằng lệnh
GRANT {danh_sách_quyền\ ALL PRIVILEGES}
ON đối tượng
TO {danh_sách_định_danh_được_cấp\PUBLIC}
[WITH GRANT OPTION]
• Lệnh SQL để thu hồi quyền.

REVOKE [GRANT OPTION FOR] {ds_quyền\ALL PRIVILEGES}
ON
đối tượng
FROM {danh_sách_định_danh_được_cấp\PUBLIC}
[RESTRICT\CASCADE]
b. Quản lý người 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ó 2 user accounts
được tự động tạo ra ngay từ khi tạo database và được gán quyền DBA (Database
23


Administrator) là: SYS và SYSTEM.
Các bước thực hiện tạo mới người dùng:
-

Lựa chọn username (tên user dùng để truy cập CSDL) và cơ chế xác nhận

-


đối với user này.
Chỉ ra các tablespaces cho user dùng để lưu trữ dữ liệu.
Gán các default tablespace và temporary tablespace.
Phân bổ hạn mức sử dụng trên từng tablespace.
Phân quyền truy nhập (privileges – quyền hoặc role – vai trò) cho user vừa
tạo lập.

Cú pháp:
CREATE USER tên_user
IDENTIFIED {BY mật_khẩu | EXTERNALLY}
[ DEFAULT TABLESPACE tên_tablespace ]
[ TEMPORARY TABLESPACE tên_ tblsp]
[ QUOTA {số_nguyên [K | M ] | UNLIMITED } ON tablespace
[QUOTA {số_nguyên[K |M] |UNLIMITED} ON tên_tablespace ] ...]

Thay đổi mật khẩu người dùng:
Cú pháp:
ALTER USER tên_user [ IDENTIFIED {BY mật_khẩu | EXTERNALLY }]

Xóa người dùng:
Cú pháp: DROP USER tên_user [CASCADE]
c. Quản lý quyền
• Quyền hệ thống: Oracle có khoảng 140 quyền hệ thống và con số này đang

tiếp tục tăng lên. Các quyền hệ thống có thể chia ra như sau:
- Các quyền cho phép thực hiện các thao tác truy cập, tạo dung lượng lưu trữ
-

trên hệ thống ví dụ như: CREATE SESSION, CREATE TABLESPACE.

Các quyền cho phép quản lý các đối tượng thuộc về một người dùng ví dụ:

-

CREATE TABLE.
Các quyên cho phép quản lý các đối tượng trong bất cứ một schema nào, ví

dụ như câu lệnh: CREATE ANY TABLE.
• Quyền đối tượng
Quyền trên đối tượng được gán cho người dùng là thao tác mà người dùng có
24


thể thực hiện trên đối tượng đó. Bảng dưới đây liệt kê các quyền thông dụng có thể
được gán trên một đối tượng.
Quyền

Table

ALTER

X

DELETE

X

View

Procedure


X

EXECUTE

X

INSERT

X

X

SELECT

X

X

UPDATE

X

X

Cú pháp gán các quyền trên đối tượng:
GRANT { quyền_đối_tg [(ds_cột)][, quyền_đối_tg [(ds_cột)] ]...|ALL[PRIVILEGES]}
ON [tên_schema.]tên_đối_tượng
TO {tên_user|tên_role|PUBLIC}[, {tên_user|tên_role|PUBLIC} ]...
[WITH GRANT OPTION]


Cú pháp thu hồi các quyền trên đối tượng:
REVOKE {quyền_đối_tượng [, quyền_đối_tượng] … \ALL [PRIVILEGES]}
ON
[tên_schema.] tên_đối_tượng
FROM
{tên_user\tên_role\PUBLIC}
[,tên_user\tên_role\PUBLIC}

CONSTRAINTS].

]

[CASCADE

d. Quản lý Role (vai trò)
 Khái niệm Role

Giả sử một CSDL được cấp M quyền như nhau cho N users có cùng chức năng
trong hệ thống, như vậy hệ thống cần thực hiện N*M thao tác gán quyền. Hơn nữa,
sau một thời gian giả sử hệ thống cần thu hồi một quyền nào đó trên N users này,
hệ thống phải thực hiện N thao tác thu quyền. Mặt khác, các thao tác gán quyền và
thu quyền này là như nhau cho mỗi user, việc này có thể dẫn đến sự nhàm chán và
mất thời gian trong công việc. Ý tưởng ở đây là sử dụng một nhóm các quyền, nhóm
này sẽ được gán cho các users có cùng chức năng trong hệ thống và việc gán hay
thu hồi quyền trên một nhóm sẽ ảnh hưởng trực tiếp đến các user thuộc nhóm nào
đó. Vì thế, công việc gán quyền sẽ trở lên nhẹ nhàng và linh động hơn.
Theo ý tưởng đó, Oracle cung cấp một công cụ cho phép quản lý một cách dễ
25



×