Đào tạo Oracle cơ bản - Giáo trình kiến trúc và quản trị Oracle 8i
Mụ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 OracleServer . 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 Redolog 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ớ đốivới segment. 41
Simpo PDF Merge and Split Unregistered Version - www.simpopdf.com
Công ty cổ phần tài ngân - BFC
Giáo trình kiến trúc vàquản trị Oracle 8i
Đào tạo kiến trúc vàquản trị ORACLE 8iwww.ebook.edu.vnTrang 3
11 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ànvẹ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ụngmớ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
ENT rbs01 SHRINK TO 4M; • Sử dụng Oracle Enterprise Manager: Simpo PDF Merge and Split Unregistered Version - Công ty cổ phần tμi ngân - BFC Giáo trình kiến trúc vμ quản trị Oracle 8i Đμo tạo kiến trúc vμ quản trị ORACLE 8i Trang 45 - Chọn rollback segment cần thu nhỏ - Bấm chuột phải rồi chọn Shring - Nhập kích th−ớc mới rồi bấm OK • Thay đổi trạng thái của rollback segment • Sử dụng câu lênh: ALTER ROLLBACK SEGMENT rollback_segment OFFLINE | ONLINE; Ví dụ: ALTER ROLLBACK SEGMENT rbs01 OFFLINE; • Sử dụng Oracle Enterprise Manager: - Chọn rollback segment cần thu nhỏ - Bấm chuột phải rồi chọn Take Offline hoặc Take Offline - Yes để đồng ý. • Huỷ bỏ rollback segment • Sử dụng câu lênh: DROP ROLLBACK SEGMENT rollback_segment; Ví dụ: DROP ROLLBACK SEGMENT rbs01; • Sử dụng Oracle Enterprise Manager: - Chọn rollback segment cần thu nhỏ - Bấm chuột phải rồi chọn Remove. (Chỉ remove đ−ợc khi rollback segment ở trạng thái offfline) - Yes để đồng ý. 11.3 Thông tin về rollback segment Thông tin cụ thể của rollback segment có thể lấy đ−ợc trong view: DBA_ROLLBACK_SEGS. Ngoài ra, thông tin về rollback segment còn có thể lấy đ−ợc từ view: V$ROLLSTAT, V$ROLLNAME Ví dụ: lấy thông tin về tất cả các rollback segment sử dụng trong database SQL> SELECT segment_name, tablespace_name, owner, status 2 FROM dba_rollback_segs; SEGMENT_NAME TABLESPACE_NAME OWNER STATUS -------------- ----------------- ------ --------------- SYSTEM SYSTEM SYS ONLINE RBS1 RBS SYS ONLINE RBS2 RBS SYS ONLINE RBS3 RBS SYS OFFLINE Simpo PDF Merge and Split Unregistered Version - Công ty cổ phần tμi ngân - BFC Giáo trình kiến trúc vμ quản trị Oracle 8i Đμo tạo kiến trúc vμ quản trị ORACLE 8i Trang 46 4 rows selected. 12 Quản lý Tables 12.1 Table - Phân loại table • Table Table là nơi l−u giữ dữ liệu của database. Các dòng dữ liệu trong table đ−ợc l−u giữ theo một trật tự tuỳ thuộc vào tính chất của table. • Patitioned Table Để tăng c−ờng tính sẵn dùng (availability) và mở rộng (scalability) đối với các bảng hay đ−ợc sử dụng đồng thời (hight concurrent usage). Dữ liệu trong một bảng có thể đ−ợc l−u giữ thành nhiều vùng riêng biệt gọi là partition. Các partition này có thể thuộc các tablespace khác nhau. Oracle Server hỗ trợ việc quản lý các phân vùng của table bằng các giá trị khoá hay các hàm băm. • Index-Organized Table Trong index-organized table, dữ liệu trong index đ−ợc l−u trữ theo các giá trị khoá. Do đó không cần phải có lookup table để xác định dòng dữ liệu. Có thể truy xuất trực tiếp tới dữ liêu. • Clustered Table Clustered table là một kiểu của table, cho phép l−u giữ dữ liệu một cách tối −u. Clustered table đ−ợc tạo bởi nhóm các table cùng có chung các data blocks. Các table này có thể có chung các cột dữ liệu. Dòng dữ liệu trong cluster có thể đ−ợc truy xuất theo index hay theo hàm băm. • Cấu trúc dòng dữ liệu trong table Dòng dữ liệu đ−ợc l−u giữ trong các database blocks d−ới dạng các bản ghi có độ dài có thể thay đổi (variable-length records). Các cột t−ơng ứng trên một dòng dữ liệu đ−ợc l−u trữ theo nh− thứ tự lúc định nghĩa bảng. Các cột nhận giá trị NULL sẽ không đ−ợc l−u trữ. Nh− vậy, số cột dữ liệu giữa các dòng khác nhau có thể là khác nhau. Cấu trúc mỗi dòng dữ liệu trong table: • Phần đầu: L−u giữ số l−ợng cột dữ liệu trên dòng đó, các thông tin ràng buộc, và các trạng thái lock của dòng đó. • Phần dữ liệu: Với mỗi cột, Oracle server l−u giữ độ rộng của cột và giá trị của cột đó tiếp ngay sau. Simpo PDF Merge and Split Unregistered Version - Công ty cổ phần tμi ngân - BFC Giáo trình kiến trúc vμ quản trị Oracle 8i Đμo tạo kiến trúc vμ quản trị ORACLE 8i Trang 47 Hình vẽ 6 Cấu trúc dòng dữ liệu trong table Dịch chuyển dòng dữ liệu (Row migration): Khi phần trăm không gian trống quá nhỏ, có thể sẽ không đủ chỗ trống cho việc l−u giữ dòng dữ liệu (trong tr−ờng hợp nó đ−ợc update). Khi đó Oracle Server sẽ di chuyển toàn bộ dòng dữ liệu đó sang một block mới. Gộp dòng dữ liệu(Row Chaining): Row chaining xảy ra khi dòng dữ liệu quá lớn để đặt vừa một block. Khi đó, Oracle Server sẽ chia dòng dữ liệu đó thành nhiều khúc (chunks) gọi là các row pieces. Mỗi một row piece sẽ đ−ợc đặt trong block. Các row piece đ−ợc gộp lại với nhau. 12.2 Quản lý table • Tạo table • Sử dụng câu lệnh: CREATE TABLE [schema.] table (column datatype [ , column datatype ] ...) [TABLESPACE tablespace ] [ PCTFREE integer ] [ PCTUSED integer ] [ INITRANS integer ] [ MAXTRANS integer ] [ STORAGE storage-clause ] [LOGGING | NOLOGGING] [CACHE | NOCACHE] ] - TABLESPACE: tên của tablespace l−u giữ table - PCTFREE: phần trăm không gian trống thuộc block trên mỗi dòng dữ liệu - PCTUSED: vùng trống nhỏ nhất đ−ợc sử dụng trên một block - INITRANS: số l−ợng transactions entries cho mỗi block - MAXTRANS: số l−ợng tối đa các transactions entries cho mỗi block - STORAGE: cách thức các vùng trống (extents) đ−ợc cấp phát cho mỗi table. - LOGGING: việc tạo table đ−ợc l−u vào trong redo log file Simpo PDF Merge and Split Unregistered Version - Công ty cổ phần tμi ngân - BFC Giáo trình kiến trúc vμ quản trị Oracle 8i Đμo tạo kiến trúc vμ quản trị ORACLE 8i Trang 48 - CACHE: dữ liệu trong table có thể đ−ợc truy xuất qua cache Ví dụ: CREATE TABLE employee( id NUMBER(7), last_name VARCHAR2(25), dept_id NUMBER(7)) PCTFREE 20 PCTUSED 50 STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50) TABLESPACE data; Có thể tạo table bằng cách copy từ một bảng khác theo cú pháp: CREATE TABLE [schema.]table [ LOGGING | NOLOGGING ] ... AS subquery • Sử dụng Schema manager: - Chọn mục Object/Create trong menu bar - Chọn kiểu Object t−ơng ứng là table, sử dụng Table Wizard để tạo table. • Temporary table (bảng trung gian) Temporary table l−u giữ giá trị của dữ liệu tồn tại trong khoảng thời gian của transaction hay session. • Tạo temporary table: CREATE GLOBAL TEMPORARY TABLE • Đặt chế độ tồn tại cho dòng dữ liệu trong temprary table - ON COMMIT DELETE ROWS: dòng dữ liệu chỉ tồn tại trong transsaction - ON COMMIT PRESERVE ROWS: dòng dữ liệu tồn tại trong cả session. • Thay đổi các tham số l−u trữ trong table • Sử dụng câu lệnh: ALTER TABLE [schema.]table {[ storage-clause ] [ PCTFREE integer ] [ PCTUSED integer ] [ INITRANS integer ] [ MAXTRANS integer]} Ví dụ: ALTER TABLE summit.employee PCTFREE 30 PCTUSED 50 STORAGE(NEXT 500K MINEXTENTS 2 MAXEXTENTS 100); Simpo PDF Merge and Split Unregistered Version - Công ty cổ phần tμi ngân - BFC Giáo trình kiến trúc vμ quản trị Oracle 8i Đμo tạo kiến trúc vμ quản trị ORACLE 8i Trang 49 • Sử dụng Oracle Enterprise Manager: - Chọn Table t−ơng ứng - Thay đổi các giá trị t−ơng ứng trong page Storage - Chọn Apply để hoàn tất công việc • Cấp phát các Extents (vùng trống) bằng tay Ta có thể cấp phát các extents bằng tay để điều khiển việc phân bổ các extents của một table giữa các file. Đồng thời tránh việc mở rộng tự động đối với các bảng. Cú pháp: ALTER TABLE [schema.]table ALLOCATE EXTENT [ ([SIZE integer [K|M]] [ DATAFILE ‘filename’ ]) ] Ví dụ: ALTER TABLE summit.employee ALLOCATE EXTENT(SIZE 500K DATAFILE ‘/DISK3/DATA01.DBF’); Việc thay đổi các tham số l−u trữ trong table có thể cải thiện việc sử dụng không gian và giảm thiểu việc dịch chuyển dữ liệu. • High-water mark Mỗi table có một high-water mark (mức cao nhất) dùng để xác định block cuối cùng trong một table. Khi dữ liệu đ−ợc nạp vào bảng, high-water mark sẽ dịch chuyển tới block cuối cùng. Và nó sẽ không đ−ợc dịch chuyển lại khi dữ liệu bị xoá đi. Việc scan dữ liệu của Oracle Server sẽ diễn ra cho tới khi nó gặp đ−ợc high-water mark của bảng đó. Ta có thể xác định đ−ợc high-water mark dựa vào hàm xây dựng sẵn bởi Oracle: DBMS_SPACE.UNUSED_SPACE. • Thu hồi vùng trống đã cấp phát Cú pháp: ALTER TABLE [schema.]table DEALLOCATE UNUSED [KEEP integer [ K|M ] ] - KEEP: Oracle Server giải phóng vùng nhớ không sử dụng nh−ng sẽ giữ lại một số byte quá high-water mark Ví dụ: ALTER TABLE summit.employee DEALLOCATE UNUSED; • Truncate table Truncate table sẽ xoá tất cả các dòng dữ liệu trong bảng và giải phóng vùng không gian sử dụng. High-water mark sẽ đ−ợc đ−a về block đầu tiên. Cú pháp: TRUNCATE TABLE [schema.] table Simpo PDF Merge and Split Unregistered Version - Công ty cổ phần tμi ngân - BFC Giáo trình kiến trúc vμ quản trị Oracle 8i Đμo tạo kiến trúc vμ quản trị ORACLE 8i Trang 50 [{DROP | REUSE} STORAGE] Ví dụ: TRUNCATE TABLE summit.employee; • Drop table Cú pháp: DROP TABLE [schema.] table [CASCADE CONSTRAINTS] - CASCADE CONSTRAINTS: Xoá các ngoại khoá nằm trong các bảng khác tr−ớc khi xoá bảng. Ví dụ: DROP TABLE summit.department CASCADE CONSTRAINTS; • Thay đổi tính chất của table Ta có thể thay đổi một số tính chất của bảng: drop column, constraints, default value,… thông qua câu lệnh ALTER TABLE. 12.3 Thông tin về table Thông tin về table đ−ợc l−u giữ trong các view từ điển đữ liệu: DBA_OBJECTS, DAB_SEGMENTS, DBA_TABLES. Ví dụ: lấy thông tin về các bảng sở hữu bởi SUMMIT SQL> SELECT t.table_name, o.data_object_id, 2 s.header_file, s.header_block 3 FROM dba_tables t, dba_objects o, dba_segments s 4 WHERE t.owner=o.owner 5 AND t.table_name=o.object_name 6 AND t.owner=s.owner 7 AND t.table_name=s.segment_name 8 AND t.owner=’SUMMIT’; TABLE_NAME DATA_OBJECT_ID HEADER_FILE HEADER_BLOCK ---------- -------------- ----------- ------------ CUSTOMER 12743 2 902 DEPARTMENT 12745 2 912 EMPLOYEE 12748 2 927 IMAGE 12751 2 942 INVENTORY 12753 2 952 ITEM 12755 2 962 LONG_TEXT 12758 2 977 ORDERS 12760 2 987 PRODUCT 12762 2 997 REGION 12765 2 1012 TITLE 12768 2 1027 WAREHOUSE 12770 2 1037 12 rows selected. Simpo PDF Merge and Split Unregistered Version -
File đính kèm:
- Đào tạo Oracle cơ bản - Giáo trình kiến trúc và quản trị Oracle 8i.pdf