Đà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

pdf52 trang | Chuyên mục: Oracle | Chia sẻ: dkS00TYs | Lượt xem: 2568 | Lượt tải: 2download
Tóm tắt nội dung Đào tạo Oracle cơ bản - Giáo trình kiến trúc và quản trị Oracle 8i, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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:

  • pdfĐào tạo Oracle cơ bản - Giáo trình kiến trúc và quản trị Oracle 8i.pdf