Các thông tin trong redo log file chỉ được sử dụng để khôi phục lại database trong trường hợp hệ thống gặp sự cố và không cho phép viết trực tiếp dữ liệu trong database lên các datafiles
Trang 1LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
TÌM HIỂU NHỮNG TÍNH NĂNG MỚI
TRONG ORACLE 10g
Cần Thơ 12, 2008
Trang 2LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
TÌM HIỂU NHỮNG TÍNH NĂNG MỚI
TRONG ORACLE 10g
Mã số đề tài:15
Có thể tìm hiểu luận văn tại:
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
Trang 3I.1 Đặt vấn đề 8
I.2 Phạm vi đề tài 8
I.3 Phương pháp nghiên cứu 9
I.4 Hướng giải quyết 9
Chương II CƠ SỞ LÍ THUYẾT 10
II.1 GIỚI THIỆU HỆ QUẢN TRN CƠ SỞ DỮ LIỆU ORACLE 10g 10
II.1.1 Lịch Sử hình thành và sự phát triển 10
II.1.3 Giới thiệu kiến trúc Oracle 10g 11
II.1.3.1 Cấu trúc CSDL Oracle 11
II.1.3.2 Cấu trúc bộ nhớ Cache 15
II.2 NHỮNG TÍNH NĂNG MỚI CỦA ORACLE 10g 16
II.2.1 Cơ sở dữ liệu dạng khung lưới 16
II.2.2 Cài đặt đơn giản và dễ dàng 16
II.2.3 Cấu hình đơn giản, nhiều tính năng 16
II.2.4 Loading and uploading data 20
II.2.4.1 Chuyển đổi Tablespace giữa các Platforms 20
II.2.4.2 Giới thiệu tổng quan về Data Pump 21
II.2.5 Cơ sở dữ liệu tự quản lý 28
II.2.6 Bộ công cụ tư vấn thông minh 28
II.2.7 Lập lịch với Scheduler 29
II.2.8 Hổ trợ các cơ Sở dữ liệu lớn 29
II.2.9 Chia tải với Tablespace SYSAUX 29
II.2.10 Sao lưu và phục hồi dữ liệu (Recovery Manager- RMAN) 30
II.2.10.1 Các chức năng và thành phần trong RMAN 30
II.10.2 Kiểu kết nối với RMAN 31
II.10.3 Câu lệnh trong RMAN 34
II.2.11 Nâng cao tính năng cho FLASHBACK 37
II.2.11.1 Giới thiệu Flashback 37
II.2.11.2 Thiết lập môi trường, cấu hình 39
II.11.3 Khôi phục dữ liệu mức ‘bản ghi’ (row level) 45
II.2.11.4 Khôi phục dữ liệu mức ‘bảng’ (table level) 47
II.2.11.5 Khôi phục toàn bộ cơ sở dữ liệu (database level) 53
II.2.11.6 Một số chú ý 56
II.3 NGÔN NGỮ LẬP TRÌNH 60
Trang 4II.3.1 Sự lựa chọn ngôn ngữ lập trình VB.net 60
II.3.2 Ngôn ngữ lập trình VB.net 60
II.3.3 Ngôn ngữ VB.net và những ngôn ngữ khác 60
II.3.3.1 Một số đối tượng VB.net sử dụng trong đề tài 61
Chương III ỨNG DỤNG 61
III.1 KẾT QUẢ ĐIỀU TRA THU THẬP THÔNG TIN 62
III.1.1 Mô tả hệ thông 62
III.1.2 Các loại hình gởi tiết kiệm và phương pháp tính lãi: 63
III.1.3 Một số mẫu kết xuất chính: 64
III.2 THIẾT KẾ CHƯƠNG TRÌNH 67
III.2.1 Mô hình quan niệm dữ liệu MCD 67
III.2.2 Mô hình luân lý dữ liệu MLD 74
III.2.3 Mô hình vật lý dữ liệu MPD 75
III.2.4 Lưu đồ dòng dữ liệu DFD 80
III.2.5 Giải thuật và lưu đồ 83
III.2.6 Kết quả chương trình 88
III.2.7 Thảo luận những vấn đề chưa giải quyết được 94
III.2.7.1 Thảo luận kết quả đạt được 94
III.2.7.2 Vấn đề chưa giải quyết được 94
KẾT LUẬN VÀ ĐỀ NGHN 95
TÀI LIỆU THAM KHẢO 96
PHỤ LỤC 97
Trang 5em đã trưởng thành và chững chạc hơn rất nhiều Trải qua 4 năm sống cuộc sống sinh viên, tuy phải sống xa gia đình nhưng vẫn lạc quan, vui vẻ và quyết tâm học tốt để sau này giúp ích cho bản thân, gia đình và xã hội Qua đây, con xin chân thành cám ơn Cha
Mẹ đã sinh ra và nuôi dưỡng con khôn lớn nên người, luôn quan tâm chăm sóc con lúc gặp khó khăn
Qua đây trân trọng gửi đến:
Quý thầy cô Trường Đại Học Cần Thơ nhất là thầy cô Khoa CNTT & TT lời cám ơn chân thành, sâu sắc nhất
Chân thành cám ơn Thạc sĩ Nguyễn Thái Nghe – Giáo viên hướng dẫn đã nhiệt tình hướng dẫn và giúp đỡ trong quá trình thực hiện đề tài này
Xin cám ơn Thư viện Khoa CNTT&TT đã cung cấp tài liệu cho em trong quá trình làm luận văn này
Cám ơn thật nhiều đến các bạn cùng lớp đã trao đổi và giúp đỡ và động viên rất nhiều trong suốt thời gian làm luận văn
Cần Thơ, tháng 12/2008
Lê Phước Khiêm
Trang 6KÝ HIỆU VÀ VIẾT TẮT
MCD: Modèle Conceptuel des Données
MLD: Modèle Logique des Données
MPD: Modèle Physique des Données
DFD: Data Flow Diagram
CSDL: Cơ sở dữ liệu
Cập nhật: các thao tác thêm, sửa, xóa
SQL: Structured Query Language
TGTK: Tiền gởi tiết kiệm
STK: Sổ tiết kiệm
Trang 7tiết kiệm là một thành phần trong hệ thông ngân hàng Vì vậy việc xây dụng ứng dụng này là vấn đề cần thiết Các chức năng của hệ thống phải được thiết kế đúng với yêu cầu thực tế hiện nay và có thể phát triển về sau
Trong thời gian thực hiện đề tài, tôi đã ứng dụng được những kiến thức đã học trên ghế nhà trường và tích lũy được nhiều kinh nghiệm trong việc xây dựng mô hình
hệ thống bằng phương pháp MERISE, lập trình bằng ngôn ngữ VB.net để truy vấn dữ liệu từ CSDL Oracle
Trang 8ABSTRACT
Oracle databases as an administrative database capable of managing a data volume is very large and security is very high, processed quickly and efficiently Especially Oracle 10g has many new features are integrated in order to meet the demands of increasing users Therefore Oracle databases is a management database can meet the requirements set out in a banking system, in which Saving Acount Management system is a component in the banking system So the building applications this problem is necessary The functions of the system must be designed properly with the requirements of the situation today and may develop later
During the implementation of the topic, I've been applying the knowledge learned on the school chairs and accumulated much experience in the construction of a model system using methods MERISE, programming language VB.net to query data from Oracle Database
Trang 9nguyên tắc quản lý khách hàng tập trung, khách hàng có thể gởi và rút tiền tại nhiều chi nhánh Với quy mô hoạt động rộng lớn như vậy, ngân hàng cần có một mạng lưới phục
vụ nhanh chóng, chính xác và hiệu quả đáp ứng mọi nhu cầu của khách hàng
Bộ phận tiền gửi tiết kiệm (TGTK) của ngân hàng cần một hệ thống thông tin để quản lý việc mở/đóng các sổ tiết kiệm (STK) và lên kế hoạch chi trả lãi/vốn cho khách hàng
Mục tiêu chính của đề tài này là “Tìm hiểu những tính năng mới trong Oracle
10g” và xây dựng ứng dụng minh họa “Quản lý tiền gởi tiết kiệm”
I.2 Ph ạ m vi đề tài
Đề tài ‘Tìm hiểu những tính năng mới của Oracle 10g’ Với hai phạm vi nội
dung như sau:
Oracle Recovery Manager, Oracle Flasback,…
- Phần lí thuyết phải đảm bảo các yêu cầu sau:
10g và viết thành tập tài liệu tham khảo
- Phần ứng dụng phải đảm bảo các chức năng sau:
Trang 10- Phần ứng dụng phải đảm bảo các yêu cầu sau:
• Đảm bảo tính chính xác
• Đảm bảo an toàn, bảo mật
Nghiên cứu và vận dụng lý thuyết phân tích hệ thống để tìm hiểu hệ thống hiện tại, phân tích, xây dựng mô hình tổng thể và mô hình chi tiết phục vụ cho đề tài
Nắm vững các nguyên tắt, nguyên lý cơ sở dữ liệu như các ràng buộc, mối quan
hệ giữa các bảng dữ liệu, khoá chính, khoá ngoại…để thiết kế cơ sở dữ liệu
Nghiên cứu một số ngôn ngữ lập trình, trên cơ sở lựa chọn một ngôn ngữ lập trình phù hợp cho ứng dụng
Nghiên cứu hệ quản trị cơ sở dữ liệu Oracle 10g và ứng dụng cơ sở dữ liệu Oracle 10g vào chương trình ứng dụng quản lí tiền gởi tiết kiệm
I.4 H ướ ng gi ả i quy ế t
Phân chia thời gian, công việc hợp lý cho quá trình làm luận văn Lên kế hoạch
và báo cáo tiến độ làm việc, từ đó xem xét và điều chỉnh tiến độ cho phù hợp Trong quá trình làm việc tranh thủ sự quan tâm giúp đỡ của giáo viên hướng dẫn cũng như các anh chị làm việc tại bộ phận giao dịch Cần phải:
Trang 11• 1978 Phiên bản Oracle v1 đầu tiên, chạy trên hệ điều hành PDP-11 của máy RSX (dòng của hãng DEC), khả năng sử dụng bộ nhớ tối đa là 128
KB
Viết bằng ngôn ngữ Assemblỵ
ra bên ngòaị
thương mại đầu tiên sử dụng ngôn ngữ SQL
còn chạy được trên Vax/VMS
chạy trên các máy mainframes, minicomputers, và PC's (portable codebase) Phiên bản Oracle đầu tiên thể làm việc theo "transactional" Oracle v3 được viết bằng C
chạy trên nhiều Hệ Điều Hành, và cũng là phiên bản đầu tiên chạy theo
Oracle Financial Applications
Parallel Server
Development Environment (CDE)
object-relational
Trang 12• 1998 Phát hành phiên bản trên Intel Linux
Advanced Analytic Service
Một hệ quản trị cơ sở dữ liệu (DBMS) là một chương trình lưu trữ, truy xuất và sửa đổi dữ liệu trong CSDL dựa trên các truy vấn
Phân loại cơ sở dữ liệu:
II.1.3 Giới thiệu kiến trúc Oracle 10g
II.1.3.1 Cấu trúc CSDL Oracle
Oracle database được xem xét dưới hai góc độ cấu trúc logic và cấu trúc vật lý Tuy vậy, hai 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
Hình 1 Cấu trúc database
Trang 13+ Bên cạnh đó, datafiles cũng còn có một số tính chất cho phép tự động mở rộng kíchthước mỗi khi database hết chỗ lưu trữ dữ liệu
+ Một hay nhiều datafiles tạo nên một đơn vị lưu trữ logic của database gọi là tablespace
+ Một datafile chỉ thuộc về một tablespace
Dữ liệu trong một datafile có thể đọc ra và lưu vào vùng nhớ bộ đệm của Oracle Ví dụ: khi một user muốn truy cập dữ liệu trong một table thuộc database Trong trường hợp thông tin yêu cầu không có trong cache memory hiện thời, nó sẽ
được đọc trực tiếp từ các datafiles ra và lưu trữ vào trong bộ nhớ
Tuy nhiên, việc bổ sung hay thêm mới dữ liệu vào database không nhất thiết phải ghi ngay vào các datafile Các dữ liệu có thể tạm thời ghi vào bộ nhớ để giảm thiểu việc truy xuất tới bộ nhớ ngoài (ổ đĩa) làm tăng hiệu năng sử dụng hệ thống Công việc ghi dữ liệu này được thực hiện bởi DBWn background process
b Redo Log Files: Mỗi Oracle database đều có một tập hợp từ 02 redo log files
trở lên Các redo log files trong database thường được gọi là database's redo log Một redo log được tạo thành từ nhiều redoentries (gọi là các redo records)
Chức năng chính của redo log là ghi lại tất cả các thay đổi đối với dữ liệu trong database Redo log files được sử dụng để bảo vệ database khỏi những hỏng hóc do sự
cố Oracle cho phép sử dụng cùng một lúc nhiều redo log gọi là multiplexed redo log
để cùng lưu trữ các bản sao của redo log trên các ổ đĩa khác nhau
Các thông tin trong redo log file chỉ được sử dụng để khôi phục lại database trong trường hợp hệ thống gặp sự cố và không cho phép viết trực tiếp dữ liệu trong database lên các datafiles trong database Ví dụ: khi có sự cố xảy ra như mất điện bất chợt chẳng hạn, các dữ liệu trong bộ nhớ không thể ghi trực tiếp lên các datafiles và gây ra hiện tượng mất dữ liệu Tuy nhiên, tất cả các dữ liệu bị mất này đều có thể khôi phục lại ngay khi database được mở trở lại Việc này có thể thực hiện được thông qua việc sử dụng ngay chính các thông tin mới nhất có trong các redo log files thuộc datafiles Oracle sẽ khôi phục lại các database cho đến thời điểm trước khi xảy ra sự
cố Công việc khôi phục dữ liệu từ các redo log được gọi là rolling forward
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
Trang 14+ 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,
Mỗi khi nào một instance của Oracle database được mở, control file của nó sẽ
được sử dụng để xác định data files và các redo log files đi kèm Khi các thành phần
vật lý cả database bị thay đổi (ví dụ như, tạo mới datafile hay redo log file), Control file sẽ được tự động thay đổi tương ứng bởi Oracle Control file cũng được sử dụng
đến khi thực hiện khôi phục lại dữ liệu
Ngoài ra, còn có các file quan trong khác để chạy thành công database:
+ Parameter file: Parameter file chỉ ra các tham số được sử dụng trong database
Người quản trị database có thể sửa đổi một vài thông tin có trong file này Các tham số trong parameter file được viết ở dạng văn bản
+ Password file: Xác định quyền của từng user trong database Cho phép người
sử dụng khởi động và tắt một Oracle instance
+ Backup files: đựoc sử dụng để phục hồi CSDL
+ Archire log files: chứa sự việc xảy ra trong lịch sữ thay đổi hay phục hồi dữ
liệu được tạo ra từ tùy trường hợp Việc sử dụng chúng cũng như backup CSDL, bạn có thể tìm lại được những dữ liệu đã mất
+ Trace file: Một số dịch vụ và các tiến trình ngầm ghi vào trace file Khi một
lỗi bên trong được phát hiện bởi một tiến trình, tiến trình kết xuất thông tin về lỗi tới trace file Những thông tin được ghi vào một trace file sẽ được người quản tri CSDL tham khảo
+ Alert log files: là truờng hợp đặt biệt của trace file Nó cũng được biết như là
những bảng ghi cảnh giác Những bảng ghi cảnh giác của CSDL là bản ghi theo thứ tự thời gian của những thông báo và lỗi
2 Cấu trúc logic
Cấu trúc logic của Oracle database bao gồm các đối tượng tablespaces, schema
a.Tablespaces:
Một database có thể được phân chia về mặt logic thành các đơn vị gọi là các tablespaces, Tablespaces thường bao gồm một nhóm các thành phần có quan hệ logic với nhau
b Databases, Tablespaces, và Datafiles:
Mối quan hệ giữa các databases, tablespaces, và datafiles có thể được minh hoạ bởi hình vẽ sau:
Trang 15Hình.2. Quan hệ giữa database, tablespace và datafile
Có 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 datafiles
+ Kích thước của một tablespace bằng tổng kích thước của các datafiles 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 tablespaces của nó Ví dụ: trong hình vẽ trên thì kích thước của database là 6 MB
c.Schema và Schema Objects: Schema là tập hợp các đối tượng (objects) có
trong database Schema objects 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 các cấu trúc như tables, views, sequences, stored procedures, synonyms, indexes, clusters, và database links
d Data Blocks, Extents, and Segments
Oracle đ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
e 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 Kích thước của một data block được chỉ ra cho mỗi Oracle database ngay khi database được tạo lập Database sử dụng, cấp phát
và giải phóng vùng không gian lưu trữ thông qua các Oracle data blocks
f 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 baogồm một số data blocks liên tiếp nhau, cùng được lưu trữ tại một thiết bị lưu giữ Extent được sử dụng để lưu trữ các thông tin có cùng kiểu
Trang 16g 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 Segment có thể được phân chia theo nhiều loại khác nhau:
+ Data segment
+ Index segment
+ Undo segment
+ Temporary segment
II.1.3.2 Cấu trúc bộ nhớ Cache
Oracle instance bao gồm một cấu trúc bộ nhớ System Global Area (SGA) và các
background processes (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
System Global Area - SGA
SGA 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 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 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
+ Large pool:
+ Java pool:
+ Stream pool: được sử dụng bởi Oracle Streams
Trang 17- ASM (Automatic Storage Management) là 1 tính năng mới đáng chú ý của Oracle10g giúp DBA nhẹ nhàng hơn trong quản lý các Oracle files, tối ưu trong sử dụng I/O và yên tâm hơn nhờ cơ chế Mirroring giúp bảo toàn dữ liệu thêm 1 mức
- Oracle Enterprise Manager Grid Control là một công cụ quản lý tập trung Với giao diện web (web-based) được cài đặt dễ dàng, cấu hình đơn giản, OEM Grid Control cung cấp khả năng quản lý ‘từ xa’ rất hữu hiệu Với OEM Grid Control bạn không chỉ quản trị Oracle Database mà bạn còn có thể quản trị Application Server, Hosts, Oracle Applications…
- Ngoài ra nó Oracle Database 10g còn cung cấp một số các chức năng khác như
hỗ trợ các nhóm phần mềm chạy trên các platform khác nhau, tự động quản lý tải trong môi trường RAC (Real Application Clusters), quản lý tài nguyên người sử dụng…
II.2.2 Cài đặt đơn giản và dễ dàng
Với Oracle 10g công tác cài đặt & cấu hình DB server sẽ đơn giản hơn rất nhiều nhờ sự tích hợp của một bộ các tính năng như ASM (Automatic Storage Management), OEM Database Control, Email Notification, Backup Schedule… trong cùng 1 giao diện (khi cài đặt)
Trong Oracle 10g bạn chỉ cần 1 CD-ROM để cài đặt Oracle software thay vì 3 CD-ROM như với Oracle9i
Yêu cầu phần cứng:
+ 512 MB RAM + 1 GB swap space (gấp đôi dung lượng bộ nhớ RAM)
+ 400 MB disk space cho thư mục tạm (/tmp or \Temp)
+ 1.5 GB disk space cho phần mềm Oracle + 1.5 GB disk space cho preconfigured database
Yêu cầu hệ điều hành: chạy trên nhiều hệ điều hành khác nhau tưng ứng với từng Oracle Database cho từng hệ điều hành
II.2.3 Cấu hình đơn giản, nhiều tính năng
Oracle Database 10g giới thiệu một số cải tiến về cấu trúc và chức năng trong các công cụ dùng để cấu hình và quản lý CSDL
Database Configuration Assistant (DBCA)
Trang 18Database Configuration Assistant là một công cụ cho phép bạn tạo, thay
đổi cấu hình hoặc xoá CSDL Ngoài ra DBCA còn cho phép bạn quản lý các
CSDL mẫu
Khi bạn tạo một CSDL mới với DBCA, DBCA sẽ cung cấp những thiết lập cần thiết để cấu hình nên CSDL, cũng như tự động tạo và thống kê nhưng thành phần, thông tin bắt buộc phải có trong CSDL Sau đây là một số bước quang trọng trong qua trình tạo CSDL bằng công cụ DBCA:
Hình 3 Chọn Create a Database
Hình 4 Chọn General Purpose
Trang 19Hình 5 Đặt tên CSDL và tên Oracle System Indentifer
Hình 6 Chọn hình thức lưu trữ
Trang 20Hình 7 Chỉ đường dẫn cho Flash Recovery Area
Database control
Với Oracle10g, công cụ quản trị Oracle Enterprise Manager được phát triển thành công cụ quản trị Grid Control Công cụ quản trị Grid control cho phép người quản trị có thể quản trị trực quan hơn thông qua giao diện website thân thiện và cho phép quản trị hệ thống nhiều cơ sở dữ liệu từ một môi trường thống nhất
Người quản trị CSDL có thể sử dụng Database Control cho các mục đích:
+ Giám sát quá trình thực thi
+ Quản lý các cảnh báo được thông báo trước
+ Điều khiển quản lý wizard và advisor
+ Quản trị người dùng và các thành phần của CSDL
+ Sao lưu và phục hồi CSDL
+ Quản lý không gian lưu trữ…
Mỗi Database 10g có một Database Control riêng Bạn sẽ dùng Enterprise Manager Database Control để quản lý database
Trang 21Hình 8 Giao diện Grid Manager Control
II.2.4 Loading and uploading data
Oracle Database 10g cung cấp cho ta một công cụ mới là Data Dump dùng để di chuyển dữ liệu giữa các CSDL, về bản chất thì nó giống với công cụ Export (EXP)/Import (IMP) của Oracle 9i, tuy nhiên tốc độ của Data Dump nhanh hơn ít nhất hai lần so với EXP/IMP
II.2.4.1 Chuyển đổi Tablespace giữa các Platforms
Cross-Platform Transportable Tablespaces
Phiên bản mới này của Oracle cho phép việc chuyển đổi tablespace giữa các Oracle database có cùng kiến trúc và cùng hệ điều hành
Oracle Database 10g cũng cho phép chuyển tablespace giữa các platform Điều
này làm đơn giản hóa việc phân phối dữ liệu từ data warehouse đến data marts thường chạy trên những platform nhỏ hơn Database cũng có thể chuyển đổi giữa các platform Danh sách các platform hỗ trợ được liệt kê sau đây:
Trang 22Solaris[tm] OE (32-bit) HP-UX (64-bit) Microsoft Windows IA (64-bit)
Microsoft Windows IA (32-bit) HP-UX IA (64-bit) Linux 64-bit for AMD
AMD
Hình 9 Danh sách các platform hỗ trợ
II.2.4.2 Giới thiệu tổng quan về Data Pump
Data Pump là công cụ mới trong Oracle Database 10g cho phép nhanh chóng
truyền dữ liệu giữa các Oracle database Data Pump có thể được truy cập thông qua PL/SQL package DBMS_DATAPUMP Do đó, có thể xây dựng các ứng dụng chuyển
đổi dữ liệu với Oracle Data Pump
Oracle Database 10g giới thiệu công cụ mới để hỗ trợ import và export:
+ Công cụ dạng dòng lệnh: expdp và impdp
+ Công cụ giao diện web truy cập thông qua Database Control
Data Pump Export và Import là các công cụ mới và độc lập trong Oracle
Mỗi thao tác Data Pump đều sử dụng một master table (MT), là table được tạo trong schema của người sử dụng đang chạy Data Pump job MT theo dõi hoạt động của các job MT được tạo ra khi Data Pump job bắt đầu thực hiện và được tự động xóa khi công việc kết thúc
Có 3 loại Data Pump file:
+ Dump files chứa dữ liệu và metadata cần chuyển
+ Log files chứa các messages liên kết với các thao tác
+ SQL files chứa các kết quả của thao tác SQLFILE
Các file này được truy cập thông qua đường dẫn tương đối Oracle Directory path Oracle không hỗ trợ đường dẫn tuyệt đối nhằm tăng tính an toàn dữ liệu
Sau đây là một số thao tác Import và Export bằng dòng lệnh (command line) và bằng Grid Manager Control:
Trước hết bạn cần phải tạo thư mục lưu các file Import, Export Để làm được
điều này bạn cần phải đăng nhập bằng tài khoản DBA hoặc User có quyền CREATE ANY DIRECTORY
Đầu tiên Start > Programs > Oracle - OraDb10g_home1 > Application Development > SQL Plus Đăng nhập với tài khoản là system
Trang 23Hình 10 Đăng nhập SQLPlus
Tạo một thư mục và gán quyền Read và Write lên người dùng Ở đây chúng ta gán quyền cho user có tên là nganhang
Hình 11 Thực hiện tạo thư mục và gán quyền Read Write
Chúng ta có hai cách thực hiện Import hay Export:
a.Bằng dòng lệnh:
Thực hiện export bảng nganhang.co_lai_suat:
expdp system/khiem@nganhang TABLES=nganhang.co_lai_suat
DUMPFILE=data:table.dmp NOLOGFILE=y
Trang 24Hình 12 Tthực hiện export bảng nganhang.co_lai_suat
Thực hiện import bảng nganhang.co_lai_suat Trước hết chúng ta xóa bảng
nganhang.co_lai_suat để co thể thấy rõ hơn quá trình import dữ liệu
impdp system/khiem@nganhang TABLES=nganhang.co_lai_suat
DUMPFILE=data:table.dmp NOLOGFILE=y
Hình 13 Tthưc hiện import bảng nganhang.co_lai_suat
dung lượng đĩa cần sử dụng để Export
expdp system/khiem@nganhang DIRECTORY=data ESTIMATE_ONLY=y
TABLES=nganhang.co_lai_suat
Trang 25Hình 14 Chọn Maintenance tab và chọn Impor
Ngoài ra bạn có thể import hay export toàn bộ database, schema, file,
log,… Bằng cách truyền các tham số full=y, schema=tên schema, file=tên file, log=ten log,……
b.Bằng Grid Control
Đăng nhập Grid Control bằng tài khoản system
Hình 15 Chọn Maintenance tab và chọn Impor
Hình 16 Chọn Database
Trang 26Hình 17 Chỉ thư mục Directory Object và đặt tên log File
Hình 18 Chỉ thư mục Directory Object và đặt tên file import
Hình 19 Đặt tên Job và chọn Immediately trên Job Schedule tab
Trang 27Hình 20 Export Review
Hình 21 Hệ thống bắt đầu xử lí
Hình 22 Thông báo kết quả xử lí
Trang 28Hình 23 Xem chi tiết nội dung quá trình Export từ file log
Phần Import tương tự như trên nhưng có vài bước khác so với các bước trên như sau:
Hình 24 Chỉ thư mục Directory Object và tên file import
Hình 25 Quá trình đọc file import
Trang 29Hình 26 Chỉ định tên Schema đích
Các bước còn lại giống quá trình import
II.2.5 Cơ sở dữ liệu tự quản lý
Oracle Database 10g gần như là một CSDL ‘tự quản lý’ (selff-managing) vì nó tích hợp rất nhiều tính năng ‘tự động’ như tự động quản lý/cấp phát/tinh chỉnh bộ nhớ (Automatic memory management, bao gồm cả SGA & PGA), tự động Theo dõi & Phân tích thông tin hệ thống của database (ADDM-Automatic Database Diagnostic Monitor, AWR-Automatic Workload Repository), tự động thu thập/phân tích thông tin thống kế của các objects cho Optimizer nhờ GATHER_STATS_JOB, …
Hình 27 Mô hình CSDL tự quản lí
II.2.6 Bộ công cụ tư vấn thông minh
Oracle Database 10g cung cấp các bộ công cụ trợ giúp thông minh và tự động như Memory Advisor, MTTR Advisor, Undo Advisor…, mục đích của bộ công cụ này
là hỗ trợ cho người quản trị CSDL cấu hình lại, tinh chỉnh CSDL nhằm nâng cao hiệu suất hoạt động của CSDL.Ví dụ một cách đơn giản như: thay vì phải theo dõi sát sao,
Trang 30thực hiện thủ công và phải thử đi thử lại rất nhiều lần chỉ là cho một tham số khởi tạo, nay nhờ Advisor ta có thể biết chính xác parameter này nên đặt như nào thì hiệu quả
Đáng chú ý hơn cả là các Advisors giúp Tuning câu lệnh PL/SQL tốt hơn, đơn giản
hơn, không mất thêm chi phí thay vì phải sử dụng các tool của các hãng thứ Ba như SQL Tuning Advisor, SQL Access Advisor, Segment Advisor
II.2.7 Lập lịch với Scheduler
Nếu trước đây cơ chế JOB của Oracle gây cản trở trong một vài tình huống mà trong đó việc yêu cầu chạy lịch tự động với một số yêu cầu như không chạy vào các ngày cuối tuần, ngoài giờ làm việc hàng ngày…thì hiện tại với Scheduler mới, Oracle
đã hỗ trợ một số tính năng đầy đủ hơn như các tính năng chạy lịch thông thường của
Unix hay Windows
Hình 28 Lập lịch biểu
II.2.8 Hổ trợ các cơ Sở dữ liệu lớn
Với các database cực lớn như Data Warehouse, Web Clickstream…thì việc quản lý các tablespace lớn với hàng chục thậm chí hàng trăm, hàng nghìn data files là một tác vụ phức tạp, khó khăn, dễ sai sót và không tối ưu Với Oracle Database 10g trong các trường hợp như thế này bạn chỉ cần chọn BIGFILE Tablespace với khả năng
hỗ trợ 1 Big data file lên tới 128 TB Với khả năng này 1 Oracle Database có thể có kích cỡ lên tới 8 Exabytes Ngoài ra Oracle Database 10g còn cung cấp một số các tính năng, kiến trúc mới nhằm tăng khả năng quản lý các CSDL dạng cực lớn như: Temporary tablespace group, List-partitioned index-organized tables, Hash-Partitioned Global Indexes…
II.2.9 Chia tải với Tablespace SYSAUX
Trước Oracle9i, mọi tính năng (features, components) của Oracle database & đi kèm với nó là các database objects đều cư trú trên SYSTEM tablespace, tạo ra ‘sức ép’ (pressure) rất lớn hay sự phân mảnh (fragmentation) rất lớn cho tablespace này Với Oracle10g bạn sẽ có thêm 1 tablespace hệ thống (system-owned tablespace), nhiệm vụ của tablespace này là để chia tải cho SYSTEM tablespace Trong môi trường RAC (Real Application Cluster) nó cũng giảm cho bạn việc phải tạo thêm quá nhiều Raw Devices cho từng tablespaces
Tablespace này là một tablespace bắt buộc phải có trong CSDL và nó được tạo
ra trong quá trình tạo CSDL
Trang 31các script trong CSDL
giảm dung lượng của các file sao lưu
and V$COPY_CORRUPTION dynamic views)
Phục hồi block hoặc tập hợp các block bị hỏng trong một data file mà không cần phục hồi cả data file
Quản lý tự động các thao tác sao lưu và phục hồi dữ liệu
Tăng khả năng thực thi:
Trang 32• Enterprise Manager Database Control Console (bảng điều khiển CSDL) cung cấp giao diện đồ họa cho hầu hết các tính năng được sử dụng của RMAN
Channel (Server process)
• Được cung cấp khi RMAN kết nối tới target database nhằm thực thi việc
backup, restore, recovery thông qua một giao diện PL/SQL
Target database
RMAN
(độ lớn, vị trí, trạng thái) sẽ được cung cấp cho RMAN
RMAN Repository
recovery được gọi là RMAN metadata
recovery catalog (option)
Media Management Library (MML)
Auxiliary Database
hoặc thực thi tablespace point-in-time recovery
Recovery Catalog
target database Một recovery catalog có thể lưu trữ được các thông tin từ nhiều target database Ngoài ra recovery catalog còn lưu trữ các RMAN script, đây là một chuỗi các câu lệnh RMAN dùng cho các nhiệm vụ sao lưu hay được sử dụng
II.10.2 Kiểu kết nối với RMAN
Sử dụng Recovery Manager để kết nối tới các kiểu CSDL sau:
Target database:
Bạn chỉ có thể kết nối tới target database với quyền SYSDBA
Recovery catalog database:
Đây là một CSDL tuỳ chọn Bạn kết nối tới recovery catalog database khi muốn nhận các thông tin được lưu trữ trong nó
Auxiliary database:Một auxiliary database có thể là một trong các kiểu sau
point-in-time recovery (TSPITR)
Trang 33Hình 30 Sơ đồ kết nối RMAN
Một channel phải được cấp phát trước khi bạn chạy câu lệnh sao lưu và phục hồi
dữ liệu Mỗi một channel được cấp phát sẽ thiết lập một kết nối từ RMAN executable tới target database Một Oracle process sẽ được tạo ra tương ứng với mỗi channel được cấp phát
Mỗi một câu lệnh BACKUP, COPY, RESTORE, or RECOVER được sử dụng trong RMAN cần ít nhất một channel Số lượng channel được cấp phát là mức độ lớn nhất của các tiến trình song song trong quá trình sao lưu, phục hồi dữ liệu
Có thể thực thi câu lệnh: ALLOCATE CHANNEL FOR MAINTENANCE để cấp phát manual một channel trước khi thực thi các câu lệnh CHANGE, DELETE hoặc CROSSCHECK Nếu thiết lập cấp phát tự động bằng câu lệnh CONFIGURE thì không cần phải cấp phát bằng tay nữa
Trang 34Mỗi channel thường chỉ tương thích với một loại thiết bị đầu ra
Hình 33 Sơ đồ cấp phát Chanel
Cấp phát channel manual hoặc tự động:
RMAN cấu hình tự động cấp phát các channel thao tác với đĩa (đây là giá trị mặc định), chúng ta có thể sử dụng câu lệnh CONFIGURE để thay đổi điều này
Hình 34 Cấp phát Chanel tự động
Câu lệnh ALLOCATE CHANNEL chạy trong khối lệnh RUN và câu lệnh ALLOCATE CHANNEL FOR MAINTENANCE được sử dụng để cấp phát channel manual Cấp phát channel manual sẽ ghi đè việc cấp phát tự động
Hình 35 Cấp phát Chanel Manual
RMAN chỉ sử dụng một trong hai loại hình trên để thực hiện các nhiệm vụ của
nó (do tính năng của hai loại cấp phát này là hoàn toàn riêng biệt)
Cấu hình cơ chế song song:
Hình 36 Cấu hình cơ chế song song
Trang 35Định dạng tên cho các file backup
Hình 38 Chỉ định dung lượng tối đa cho backup piece
Chỉ định các tùy chọn điều khiển cho việc cấp phát channel để thay đổi các giá trị mặc định
CONNECT: chỉ ra kết nối đến target instance
FORMAT: định dạng tên của backup piece
MAXOPENFILES: số lượng file đầu vào lớn nhất mà câu lệnh BACKUP có thể
mở tại bất kỳ thời gian nào (mặc định là 8)
MAXPIECESIZE: kích thước lớn nhất cho mỗi backup piece được tạo trong channel
DURATION: tổng thời gian chạy backup job:
điểm thời gian có hiệu lực
gian yêu cầu
động giảm tốc độ các tiến trình khác nếu việc sao lưu có nguy cơ kết thúc
muộn hơn so với thời gian đã chỉ định
II.10.3 Câu lệnh trong RMAN
RMAN có hai kiểu câu lệnh chính:
Stand-alone
• Đánh từng câu lệnh thi hành ngay lập tức
Trang 36• CREATE SCRIPT, DELETE SCRIPT, REPLACE SCRIPT
Jobs
và không câu lệnh nào trong khối lệnh được thực thi
Stand-alone hoặc job
Chỉ định số các bản backup copy được tạo
Giới hạn dung lượng của các bản backup set
Cấu hình tự động sao lưu control files
Ví dụ
Trang 37Hình 40 Chỉ định dung lượng tối đa cho backup piece
Sử dụng câu lệnh LIST, REPORT để xem thông tin về các bản sao lưu:
LIST BACKUP OF DATABASE;
LIST BACKUP OF DATAFILE “/db01/ORADATA/u03/user01.dbf”
LIST COPY OF TABLESPACE “SYSTEM”;
Trang 38Hình 41 Danh sách các lần backup database
II.2.11 Nâng cao tính năng cho FLASHBACK
Chức năng Flash Backup và Recovery sẽ làm đơn giản việc quản lý dung lượng trống ổ đĩa và các file có liên quan đến việc sao lưu và phục hồi, bởi chúng sẽ được quản lý trong Flash Recovery Area Ta không cần phải chỉ định tên cho các bản sao lưu
mà RMAN sẽ đặt tên tự động Khi được sử dụng, RMAN sẽ tự động sử dụng Oracle Manager Files (OMF) cho các file sao lưu
Khi một file được viết xuống Flash Recovery Area nhưng dung lượng ổ cứng không còn đủ cho file nữa thì Oracle Database sẽ xoá một file trong danh sách những file đã quá hạn và gửi một thông báo xuống alert log file
Mặc định, RMAN sẽ tự động đặt các file sao lưu vào trong Flash Recovery Area khi ta thiết lập tham số DB_RECOVERY_FILE_DEST
II.2.11.1 Giới thiệu Flashback
Tính năng Oracle Flashback đã có từ phiên bản Oracle9i tuy nhiên bắt đầu từ Oracle10g tính năng này được nâng cao rất nhiều nhờ khả năng Flashback Transaction Query, Flashback Drop và đặc biệt là Flashback Database
Tính năng Flashback chỉ áp dụng khi có sai sót chủ quan của con người, không
được áp dụng khi gặp sự cố về phần cứng, thiết bị lưu trữ…(media failures) Cụ thể
Flashback chỉ áp dụng khi các data Files vẫn còn khả năng sử dụng, chưa hỏng (corrupted), không bị thất lạc (loss)
Tính năng Flashback có thể chia làm 3 nhóm chính:
Trang 39Bảng cấp độ sử dung cơ chế FlashBack:
Hình 42 Bảng cấp độ sử dung cơ chế FlashBack
Tính năng Flashback Database rất hữu dụng khi bạn ‘lỡ’ làm hỏng dữ liệu mức database (như truncate table, drop user…) Khi đó thay vì phải restore & recovery toàn
bộ database, bản chỉ đơn giản chạy Flashback Database với thời gian thực hiện nhanh hơn nhiều & thao tác thực hiện cũng đơn giản hơn nhiều
Tuy nhiên nếu database của bạn bị hỏng ở mức physical (như mất data files, hỏng data files…) thì bắt buộc bạn phải sử dụng các phương pháp restore&recover truyền thống
Kiến trúc FlashBack
Khi bạn kích hoạt Flashback Database, background process Recovery Writer (RVWR) sẽ được kích hoạt theo và ghi dữ liệu thay đổi từ Flashback Buffer xuống Flashback Logs
Như trên hình vẽ bạn sẽ nhìn thấy Flashback Logs được ghi theo cơ chế quay vòng (circular), có nghĩa là dữ liệu của nó sẽ bị ghi đè vào một thời điểm nào đấy (Retention Target của Flashback Database ‘chạm’ ngưỡng’)
Chú ý: hiện tại Oracle không sử dụng cơ chế lưu trữ (Archive) đối với Flashback Logs
Trang 40Hình 43 Kiến trúc FlashBack
II.2.11.2 Thiết lập môi trường, cấu hình
Toàn bộ tính năng Flashback mức bản ghi và Flashback Table (mức bảng dữ liệu) đều sử dụng dữ liệu được lưu lại (retained) trong UNDO tablespace để xem/khôi phục lại Oracle khuyến cáo nên quản lý UNDO tablespace ở chế độ tự động (UNDO_MANAGEMENT=AUTO trong init file)
Trong khi đó Flashback Drop table (mức bảng dữ liệu) lại sử dụng dữ liệu được lưu trong 1 vùng dữ liệu đặc biệt gọi là RECYCLE BIN trong tablespace của user sở hữu table bị xóa đó
Dữ liệu được lưu trong UNDO tablespace bao lâu phụ thuộc vào giá trị UNDO_RETENTION (khi tạo hoặc thay đổi undo tablespace) Giá trị ngầm định là 900giây Để có thể lưu trữ dữ liệu bị xóa lâu hơn, bạn phải tăng gái trị của tham số này tương ứng (theo giây)
Tuy nhiên Oracle vẫn có thể ‘ghi đè’ dữ liệu được lưu trữ trong UNDO tablespace khi cần thiết (kể cả trong trường hợp bạn thiết lập UNDO_RETENTION) Chính vì vậy nếu muốn lưu trữ dữ liệu bị xóa trong khoảng thời gian dài hơn hoặc vĩnh viễn (phụ thuộc khả năng ổ cứng) thì phải sử dụng & thiết lập tính năng RETENTION GUARANTEE của Undo tablespace (ví dụ Alter tablespace undotbs1 retention guarantee)
Oracle tự động thiết lập chế độ RECYCLE BIN cho database (tham số RECYCLE_BIN=ON) Tức là mỗi khi bạn drop 1 thì table đó tự động được lưu trong RECYCLE BIN Để xóa bỏ chế độ này, hoặc bạn có thể sử dụng câu lệnh alter system set recycble_bin=off scope=both;
Trước tiên bạn nên đảm bảo UNDO tablespace của bạn ở chế độ AUTO: SELECT name,value FROM v$parameter WHERE name=‘undo_management’;