Kiến trúc và quản trị cơ sở dữ liệu Oracle
Bạn đang xem 20 trang mẫu của tài liệu "Kiến trúc và quản trị cơ sở dữ liệu Oracle", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- kien_truc_va_quan_tri_co_so_du_lieu_oracle.pdf
Nội dung text: Kiến trúc và quản trị cơ sở dữ liệu Oracle
- www.updatesofts.com Trân trọng cảm ơn MyloveisThuy đã cung cấp cuốn sách này. ORACLE 9i – Kiến trúc và Quản trị Trang 1
- www.updatesofts.com MỤC LỤC CHƯƠNG 1. CÁC ĐIỂM MỚI TRONG ORACLE 9I 10 CHƯƠNG 2. CÁC THÀNH PHẦN KIẾN TRÚC 15 2.1. KIẾN TRÚC ORACLE SERVER 15 2.1.1. Oracle Instance 15 2.1.2. Oracle database 20 2.1.3. Quản trị cơ sở dữ liệu Oracle 24 2.1.4. Thiết lập các tham số khởi tạo ảnh hưởng tới kích cỡ bộ nhớ SGA 24 2.2. KẾT NỐI TỚI ORACLE SERVER 25 2.2.1. Mô hình kết nối 25 2.2.2. Một số khái niệm cơ bản liên quan đến kết nối 26 2.2.3. Kết nối tới database 26 CHƯƠNG 3. CÁC CÔNG CỤ QUẢN TRỊ ORACLE 28 3.1. CÁC CÔNG CỤ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE 28 3.2. SERVER MANAGER LINE MODE 28 3.2.1. Truy nhập Server Manager Line Mode 28 3.2.2. Phân nhóm các lệnh trong Server manager 29 3.2.3. Diễn giải các lệnh trong Server manager 29 3.3. ORACLE ENTERPRISE MANAGER 30 3.3.1. Kiến trúc OME 30 3.3.2. Các dịch vụ chung 31 3.3.3. Oracle Configuration Assistant 31 3.3.4. Oracle Enterprise Manager Console 31 3.4. CÁC CÔNG CỤ QUẢN TRỊ KHÁC 32 CHƯƠNG 4. TẠO DATABASE 33 4.1. CÁC BƯỚC TẠO DATABASE 33 4.2. CHUẨN BỊ MÔI TRƯỜNG 33 4.2.1. Chuẩn bị hệ điều hành 33 4.2.2. Lên kế hoạch bố trí các file thông tin 33 4.2.3. Optimal Flexible Architecture – OFA 34 4.2.4. Cấu trúc thư mục phần mềm Oracle 35 4.2.5. Biến môi trường 35 4.3. CHUẨN BỊ CÁC THAM SỐ TRONG PARAMETER FILE 36 4.4. CHUẨN BỊ INSTANCE PHỤC VỤ QUẢN TRỊ 37 4.4.1. Tạo một instance 37 4.4.2. Khởi động instance 38 4.4.3. Dừng instance 38 4.4.4. Huỷ instance 39 4.5. TẠO DATABASE 39 4.5.1. Khởi động Instance 39 4.5.2. Lệnh tạo database 39 4.5.3. Oracle Database Assistant 41 4.5.4. File script ví dụ tạo một database 41 4.5.5. Lỗi xảy ra khi tạo database 42 4.5.6. Kết quả sau khi tạo database 42 4.6. TẠO DATA DICTIONARY CHO DATABASE 43 CHƯƠNG 5. QUẢN TRỊ ORACLE DATABASE 44 5.1. PHÂN LOẠI USERS 44 ORACLE 9i – Kiến trúc và Quản trị Trang 2
- www.updatesofts.com 5.1.1. Database Administrators 44 5.1.2. Security Officers 44 5.1.3. Application Developers 45 5.1.4. Database Users 45 5.1.5. Network Administrators 45 5.2. PHƯƠNG THỨC XÁC NHẬN ĐẶC QUYỀN TRUY NHẬP 45 5.2.1. Phương thức xác nhận quyền 45 5.2.2. Xác nhận quyền bởi hệ điều hành 46 5.2.3. Xác nhận quyền bằng file mật khẩu 47 5.2.4. Thay đổi mật khẩu internal 47 5.3. TẠO PARAMETER FILE 48 5.3.1. Sử dụng các tham số 48 5.3.2. Một số quy tắc đối với các tham số 49 5.3.3. 49 5.3.4. Các tham số cơ bản 49 5.4. START VÀ SHUT DOWN DATABASE 50 5.4.1. Các bước Start và Shut down database 50 5.4.2. Start database 52 5.4.3. Thay đổi tính sẵn dùng của database hiện thời 52 5.4.4. Shut down database 53 5.4.5. Thay đổi trạng thái của database 54 5.4.6. Tạm treo và phục hồi Database 55 5.4.7. Đặt chế độ hoạt động tĩnh cho database 56 5.5. ĐẶT TRẠNG THÁI TĨNH CHO DATABASE 56 5.5.1. Đưa Database vào trạng thái tĩnh 56 5.5.2. Phục hồi hệ thống trở lại hoạt động như bình thường 57 5.5.3. Xem trạng thái của database 57 5.6. LẤY CÁC THÔNG TIN VỀ HỆ THỐNG 57 5.6.1. Một số views cần quan tâm 58 5.6.2. Hiển thị giá trị của các thông số hệ thống 58 5.6.3. Tham số hệ thống động (có thể thay đổi) 59 5.6.4. Quản lý session 59 5.6.5. Trace file và ALERT file 60 CHƯƠNG 6. DATA DICTIONARY, VIEWS VÀ PACKAGES 61 6.1. DATA DICTIONARY VÀ VIEWS 61 6.1.1. Data Dictionary 61 6.1.2. Data Dictionary views 62 6.1.3. Sripts quản trị 64 6.2. STORED PROCEDURES VÀ CÁC PACKAGES CHUẨN 65 6.2.1. Giới thiệu chung 65 6.2.2. Stored procedures 65 6.2.3. Packages chuẩn 66 6.2.4. Giới thiệu một số packages chuẩn do Oracle cung cấp 66 6.2.5. Package DBMS_METADATA 68 6.2.6. Package dbms_redefinition 69 6.3. THÔNG TIN VỀ CÁC STORED PROCEDURES 69 CHƯƠNG 7. QUẢN TRỊ CONTROL FILES 72 7.1. CONTROL FILES 72 7.1.1. Giới thiệu control file 72 7.1.2. Cách thức đặt tên control file 72 7.1.3. Kết hợp nhiều control files 72 7.1.4. Nội dung của control file 73 7.1.5. Các tham số ảnh hưởng tới kích thước của control file 74 7.2. QUẢN TRỊ CONTROL FILE 74 7.2.1. Tạo mới control file 74 ORACLE 9i – Kiến trúc và Quản trị Trang 3
- www.updatesofts.com 7.2.2. Tạo mới control file cho một database đã có sẵn 76 7.2.3. Một số lỗi đối với các Control Files 76 7.2.4. Huỷ bỏ Control Files 77 7.3. THÔNG TIN TRẠNG THÁI CỦA CONTROL FILES 78 CHƯƠNG 8. QUẢN LÝ REDO LOG FILES 79 8.1. SỬ DỤNG CÁC REDO LOG FILES 79 8.1.1. Redo log file 79 8.1.2. Online Redo Log Groups 79 8.1.3. Online Redo Log Members 79 8.1.4. Nội dung của Online Redo Log Files (Members) 80 8.1.5. Active và Inactive Online Redo Log Files 80 8.1.6. Thiết lập các Redo Log Files khởi tạo 80 8.2. LGWR, LOG SWITCHES VÀ CHECKPOINTS 81 8.2.1. Redo Log Buffer và Background process LGWR 81 8.2.2. Log Switches 81 8.2.3. Checkpoints 82 8.3. LÊN KẾ HOẠCH SỬ DỤNG REDO LOG FILES 82 8.3.1. Xác định số lượng Online redo log files 82 8.3.2. Nơi đặt các Online Redo Log Files 82 8.3.3. Xác định kích thước cho các Online Redo Log Files 83 8.3.4. Lưu trữ các redo log files 83 8.4. ĐIỀU KHIỂN LƯU TRỮ SAU ĐỐI VỚI PRIMARY/STANDBY 84 8.4.1. Thiết lập tham số ARCHIVE_LAG_TARGET 84 8.4.2. Các yếu tố ảnh hưởng tới tham số ARCHIVE_LAG_TARGET 85 8.5. XÁC ĐỊNH CHẾ ĐỘ LƯU TRỮ 85 8.5.1. Sử dụng lệnh Server Manager 85 8.5.2. Sử dụng thông tin trong data dictionary 86 8.6. ĐIỀU KHIỂN CÁC LOG SWITCHS VÀ CHECKPOINTS 87 8.6.1. Thực hiện log switches 87 8.6.2. Thực hiện checkpoint 87 8.6.3. Điều chỉnh các ngắt quãng checkpoints 87 8.7. QUẢN TRỊ CÁC REDO LOG FILES 88 8.7.1. Bổ sung các online redo log groups 88 8.7.2. Bổ sung các online redo log members 89 8.7.3. Định lại chỗ cho các redo log file 89 8.7.4. Ngừng sử dụng các Online redo log groups 90 8.7.5. Ngừng sử dụng các Online redo log members 91 8.7.6. Xoá rỗng Online redo log file 92 CHƯƠNG 9. QUẢN TRỊ TABLESPACES VÀ DATA FILES 93 9.1. CẤU TRÚC CỦA DATABASE 93 9.1.1. Quan hệ giữa database với các tablespaces và data files 93 9.1.2. Quan hệ giữa segment với các extent và các blocks 94 9.2. PHÂN LOẠI CÁC TABLESPACES 95 9.2.1. Tablespace SYSTEM và non-SYSTEM 95 9.2.2. Tablespaces read-only / read-write 96 9.2.3. Temporary tablespace / permanent tablespace 96 9.3. QUẢN LÝ KHÔNG GIAN TRONG TABLESPACES 97 9.3.1. Dictionary-Managed Tablespaces 97 9.3.2. Locally-Managed Tablespaces 97 9.4. THIẾT LẬP TRẠNG THÁI CHO TABLESPACES 98 9.5. TRAO ĐỔI CÁC TABLESPACES GIỮA DATABASES 98 9.5.1. Một số hạn chế trong việc trao đổi các tablespace: 99 9.5.2. Các bước thực hiện chuyển đổi một tablespace giữa các database 99 9.6. TẠO TABLESPACE 100 ORACLE 9i – Kiến trúc và Quản trị Trang 4
- www.updatesofts.com 9.6.1. Lệnh tạo tablespace 100 9.6.2. Chế độ quản lý các tablespaces 102 9.6.3. Tạo temporary tablespace 102 9.6.4. Các tham số lưu trữ 102 9.7. CÁC THAY ĐỔI ĐỐI VỚI TABLESPACE 103 9.7.1. Chuyển đổi một tablespace thành một temporary tablespace 103 9.7.2. Thêm mới các tablespace 103 9.7.3. Mở rộng data files 104 9.7.4. Thay đổi kích thước data file 104 9.7.5. Chuyển đổi chế độ ONLINE và OFFLINE 105 9.7.6. Di chuyển các data file 106 9.7.7. Tablespace chỉ đọc 107 9.7.8. Huỷ tablespace 107 9.8. THÔNG TIN VỀ CÁC TABLESPACES 108 9.8.1. Xem thông tin tablespace 109 9.8.2. Xem thông tin data files 109 CHƯƠNG 10. CẤU TRÚC LƯU TRỮ 111 10.1. CÁC LOẠI SEGMENTS 111 10.1.1. Table 111 10.1.2. Table partition 111 10.1.3. Cluster 111 10.1.4. Index 111 10.1.5. Index-Organized Table 112 10.1.6. Index Partition 112 10.1.7. Rollback Segment 112 10.1.8. Temporary Segment 112 10.1.9. LOB Segment 112 10.1.10. LOB Index 113 10.1.11. Nested Table 113 10.1.12. Bootstrap Segment 113 10.2. QUẢN LÝ EXTENTS 113 10.2.1. Cấp phát và thu hồi các extents 113 10.2.2. Sử dụng và giải phóng các extent 114 10.2.3. Kết hợp các vùng không gian trống 114 10.3. BLOCK DỮ LIỆU 116 10.3.1. Cấu trúc của block dữ liệu 116 10.3.2. Các tham số sử dụng không gian trong block 117 10.3.3. Sử dụng không gian trong block 118 10.3.4. Phân loại mức độ phân đoạn đối với từng loại segment 118 10.4. THÔNG TIN VỀ CẤU TRÚC LƯU TRỮ 119 10.4.1. Các view lưu trữ thông tin 119 10.4.2. Xem thông tin về các segments 120 10.4.3. Thông tin về các extents 121 10.4.4. Thông tin về các vùng trống 122 CHƯƠNG 11. QUẢN LÝ ROLLBACK SEGMENTS 123 11.1. GIỚI THIỆU ROLLBACK SEGMENTS 123 11.1.1. Khái niệm 123 11.1.2. Mục đích sử dụng segment 123 11.1.3. Phân loại rollback segment 124 11.2. SỬ DỤNG ROLLBACK SEGMENT 125 11.2.1. Sử dụng rollback segment trong các transaction 125 11.2.2. Tăng trưởng đối với các rollback segments 126 11.2.3. Tối ưu các rollback segments 127 11.3. QUẢN LÝ ROLLBACK SEGMENTS 127 11.3.1. Sử dụng rollback segment 127 ORACLE 9i – Kiến trúc và Quản trị Trang 5
- www.updatesofts.com 11.3.2. Tạo rollback segment 128 11.3.3. Thay đổi trạng thái của Rollback segments 129 11.3.4. Instance sử dụng rollback segment 130 11.3.5. Điều chỉnh khả năng lưu trữ của rollback segment 130 11.3.6. Giảm bớt độ rộng của rollback segment 130 11.3.7. Hủy bỏ rollback segment 131 11.3.8. Quản lý undo tự động 131 11.4. THÔNG TIN VỀ CÁC ROLLBACK SEGMENT 132 11.4.1. Xem thông tin chung về các rollback segment 132 11.4.2. Xem thông tin thống kê về rollback segment 133 11.4.3. Thông tin về rollback segment đang active 134 11.5. CÁC VẤN ĐỀ LIÊN QUAN TỚI ROLLBACK SEGMENT 135 11.5.1. Thiếu không gian cho các transactions 135 11.5.2. Lỗi đọc dữ liệu không đồng nhất 135 11.5.3. Chặn session 136 CHƯƠNG 12. QUẢN LÝ TEMPORARY SEGMENTS 138 12.1. TEMPORARY SEGMENTS 138 12.1.1. Phân loại temporary segments 139 12.1.2. Sử dụng các Sort Segments 140 12.1.3. Sort Extent Pool 140 12.2. CẤP PHÁT KHÔNG GIAN CHO TEMPORARY SEGMENT 140 12.3. THÔNG TIN VỀ CÁC TEMPORARY SEGMENT 141 CHƯƠNG 13. CLUSTERS VÀ INDEX-ORGANIZED TABLES 143 13.1. TỔNG QUAN VỀ CLUSTERS VÀ INDEX-ORGANIZED TABLES 143 13.1.1. Cluster 144 13.1.2. Xem xét và chọn lựa Cluster 145 13.1.3. Các kiểu cluster 145 13.1.4. Chọn lựa kiểu cluster 146 13.2. QUẢN LÝ CLUSTER 147 13.2.1. Tạo cluster 147 13.2.2. Tạo Hash Cluster 149 13.2.3. Xác định giá trị SIZE cho cluster 150 13.2.4. Các tham số chỉ định cho hash cluster 150 13.2.5. Sửa đổi các Cluster 151 13.2.6. Xoá Cluster 152 13.3. THÔNG TIN VỀ CÁC CLUSTERS 154 13.3.1. Xác định Cluster và các cột khoá Cluster 154 13.3.2. Lấy thông tin cột khoá của cluster và các cột trong bảng 155 13.3.3. Lấy thông tin cho hash cluster 155 13.4. INDEX-ORGANIZED TABLE 156 13.4.1. Tính chất chung 156 13.4.2. Tạo một index-organized table 157 13.4.3. Hiện tượng ROW OVERFLOW (tràn dòng dữ liệu) 159 13.4.4. Lấy thông tin IOT (Index Orrganized Table) 160 CHƯƠNG 14. QUẢN LÝ CÁC TABLES 161 14.1. TỔNG QUAN VỀ TABLES 161 14.1.1. Phân loại các tables 161 14.1.2. Cấu trúc các dòng dữ liệu (row data) 161 14.2. CÁC KIỂU DỮ LIỆU TRONG TABLE 162 14.2.1. Kiểu dữ liệu vô hướng 162 14.2.2. Tập hợp (collection) 166 14.2.3. Kiểu quan hệ (REF) 167 14.2.4. Kiểu dữ liệu TIMESTAMP 167 ORACLE 9i – Kiến trúc và Quản trị Trang 6
- www.updatesofts.com 14.3. QUẢN LÝ CÁC TABLES 167 14.3.1. Tạo table 167 14.3.2. Thiết lập giá trị PCTFREE và PCTUSED 169 14.3.3. Migration (di trú) và Chaining các dòng dữ liệu 170 14.3.4. Sao chép một tables 170 14.3.5. Quản trị columns trong table 171 14.3.6. Chuyển một Table tới Segment hay Tablespace mới 173 14.3.7. Định nghĩa lại một table đang online 173 14.3.8. Bảng ngoài – External table 175 14.4. CÁC RÀNG BUỘC (CONSTRAINTS) ĐỐI VỚI TABLES 176 14.4.1. Ràng buộc đối với tables 176 14.4.2. Null / Not Null 176 14.4.3. Unique 177 14.4.4. Primary Key 177 14.4.5. Foreign Key ( Referential Key) 177 14.4.6. Check 178 14.5. QUẢN LÝ KHÔNG GIAN LƯU TRỮ TRONG TABLE 178 14.5.1. Thay đổi thông tin lưu trữ và tham số sử dụng Block 178 14.5.2. Cấp phát các extents bằng tay (manually) 179 14.5.3. High Water Mark 180 14.5.4. Thu hồi không gian không sử dụng 181 14.5.5. Truncate một table 182 14.5.6. Xoá table 182 14.5.7. Kiểm tra cấu trúc bảng 183 14.5.8. Phát hiện các rows bị migration 183 14.6. THÔNG TIN VỀ TABLES 184 14.6.1. Thông tin chung về các tables 184 14.6.2. Thông tin về sử dụng block và thông tin chaining 185 CHƯƠNG 15. QUẢN LÝ CÁC INDEXES 186 15.1. PHÂN LOẠI INDEXES 186 15.1.1. Index trên một column và Index trên nhiều columns 186 15.1.2. Unique index và Non-unique index 186 15.1.3. Partitioned index và non-partitioned index 186 15.2. TỔ CHỨC INDEX 186 15.2.1. B-TREE index 186 15.2.2. Reverse Key Index 188 15.2.3. Bitmap Index 189 15.2.4. So sánh giữa B-TREE index và Bitmap index 190 15.3. QUẢN LÝ INDEX 190 15.3.1. Tạo các index 190 15.3.2. Một số cách sử dụng index 193 15.3.3. Tạo Index khoá ngược (reverse key index) 194 15.3.4. Tạo Bitmap index 194 15.3.5. Thay đổi tham số lưu trữ cho index 195 15.3.6. Cấp phát và thu hồi không gian sử dụng của index 195 15.3.7. Xây dựng lại (Rebuild) các index 196 15.3.8. Kiểm tra tính hợp lệ của index 197 15.3.9. Xoá các index 198 15.4. THÔNG TIN VỀ CÁC INDEX 198 15.4.1. Xem thông tin về các index 198 15.4.2. Tìm các cột trong một index 199 CHƯƠNG 16. NẠP VÀ TỔ CHỨC LƯU TRỮ DỮ LIỆU 200 16.1. GIỚI THIỆU CHUNG 200 16.1.1. Tổng quan việc nạp dữ liệu 200 16.1.2. Nạp dữ liệu trực tiếp 201 ORACLE 9i – Kiến trúc và Quản trị Trang 7
- www.updatesofts.com 16.2. NẠP DỮ LIỆU 201 16.2.1. Nạp dữ liệu bằng SQL* Loader 201 16.2.2. Phương pháp nạp dữ liệu 203 16.2.3. So sánh hai phương pháp nạp dữ liệu 204 16.2.4. Nạp dữ liệu đồng thời (Parallel direct load) 205 16.3. NẠP DỮ LIỆU BẰNG SQL*LOADER 207 16.3.1. Sử dụng SLQ*LOADER 207 16.3.2. Parameter file (tệp tham số) 208 16.3.3. Control file (tệp điều khiển) 209 16.3.4. Data file 211 16.3.5. Các thành phần của log file 211 16.3.6. Các file đầu ra khác 211 16.3.7. Các hướng dẫn khi sử dụng load 212 16.4. TỔ CHỨC LẠI DỮ LIỆU BẰNG CÔNG CỤ EXPORT VÀ IMPORT 213 16.4.1. Công cụ dịch chuyển dữ liệu 213 16.4.2. Các chế độ Export 214 16.4.3. Export dữ liệu trực tiếp và Export dữ liệu thông thường 215 16.5. CÔNG CỤ EXPORT 216 16.5.1. Sử dụng công cụ Export 216 16.5.2. Giới thiệu một số chế độ export 218 16.5.3. Các tablespaces trao đổi 220 16.5.4. Một số thông báo khi export: Warning, Error, và Completion Messages 220 16.6. CÔNG CỤ IMPORT 221 16.6.1. Sử dụng công cụ Import 221 16.6.2. Chuyển đổi character set 225 CHƯƠNG 17. QUẢN LÝ USER 226 17.1. USER TRONG DATABASE 226 17.1.1. User và những thành phần liên quan 226 17.1.2. Database schema 227 17.2. QUẢN LÝ USER 227 17.2.1. Các bước thực hiện khi tạo mới user 227 17.2.2. Tạo mới user với cơ chế xác nhận bởi database 228 17.2.3. Thay đổi thuộc tính của user 229 17.2.4. Thay đổi hạn mức (quota) sử dụng tablespace 229 17.2.5. Huỷ User 230 17.3. THÔNG TIN VỀ USER 230 CHƯƠNG 18. QUẢN LÝ THÔNG TIN PROFILES 232 18.1. GIỚI THIỆU PROFILE 232 18.2. QUẢN LÝ PROFILE 233 18.2.1. Tạo Profile 233 18.2.2. Thiết lập các giới hạn về tài nguyên 234 18.2.3. Gán Profile cho User 234 18.2.4. Đặt giới hạn tài nguyên 235 18.2.5. Thay đổi thông tin trong profile 235 18.2.6. Huỷ profile 236 18.2.7. Thông tin về các giới hạn tài nguyên 236 18.3. QUẢN LÝ MẬT KHẨU 237 18.3.1. Tạo profile quản lý mật khẩu 238 18.3.2. Các tham số điều chỉnh mật khẩu 239 18.3.3. Một số đặc điểm chính trong quản lý mật khẩu 239 18.3.4. Hàm cung cấp mật khẩu cho người sử dụng 240 18.3.5. Thông tin về mật khẩu 240 CHƯƠNG 19. CÁC QUYỀN HỆ THỐNG 242 19.1. PHÂN LOẠI QUYỀN 242 ORACLE 9i – Kiến trúc và Quản trị Trang 8
- www.updatesofts.com 19.1.1. Các quyền hệ thống 242 19.1.2. Gán các quyền hệ thống 242 19.1.3. Xác nhận user bằng password file 243 19.1.4. Thông tin về các quyền 244 19.2. QUẢN LÝ QUYỀN 245 19.2.1. Thu hồi các quyền hệ thống 245 19.2.2. Quyền trên các đối tượng 246 19.2.3. Gán các quyền trên đối tượng 247 19.2.4. Thông tin về các quyền 247 19.2.5. Thu hồi các quyền trên đối tượng 248 CHƯƠNG 20. QUẢN LÝ CHỨC DANH (ROLE) 250 20.1. CHỨC DANH (ROLE) TRONG DATABASE 250 20.1.1. Các tính chất của chức danh 250 20.1.2. Lợi ích của việc sử dụng chức danh 250 20.2. QUẢN LÝ CHỨC DANH 251 20.2.1. Tạo và sửa chữa các Chức danh 251 20.2.2. Các chức danh được định nghĩa sẵn 251 20.2.3. Sửa chữa các chức danh 252 20.2.4. Gán các chức danh 253 20.2.5. Thiết lập chức danh mặc định 253 20.2.6. Enable và Disable các chức danh 254 20.2.7. Thu hồi các chức danh từ các user 255 20.2.8. Xoá các chức danh 255 20.3. THÔNG TIN VỀ CÁC CHỨC DANH 255 CHƯƠNG 21. TÍNH NĂNG HỖ TRỢ NGÔN NGỮ QUỐC GIA 257 21.1. NGÔN NGỮ QUỐC GIA 257 21.1.1. Các đặc điểm chính 257 21.1.2. Chọn tập kí tự cho database 257 21.1.3. Tập kí tự và tập kí tự quốc gia của database 258 21.2. CÁC THAM SỐ NLS 259 21.2.1. Lựa chọn tham số 259 21.2.2. Ngôn ngữ phụ thuộc và giá trị territory mặc định 260 21.2.3. Xác định các biến môi trường 260 21.2.4. Chỉ định đặc trưng ngôn ngữ (Language-Dependent) cho từng session 261 21.2.5. Tham số NLS và các hàm SQL 262 21.3. THÔNG TIN VỀ CÁC GIÁ TRỊ NLS ĐƯỢC KHỞI TẠO 264 21.3.1. Thông tin về tập ký tự sử dụng 264 21.3.2. Thông tin về các thiết lập thông số NLS 264 ORACLE 9i – Kiến trúc và Quản trị Trang 9
- www.updatesofts.com Chương 1. CÁC ĐIỂM MỚI TRONG ORACLE 9i Phiên bản Oracle9 i Release 1 (9.0.1) được đưa ra thị trường vào đầu năm 2001 và được cải tiến, bổ sung thêm một số chức năng, đặc điểm mới. Các đặc điểm này đã làm cho việc quản lý database trở nên mềm dẻo, linh hoạt và hiệu quả hơn. Dưới đây, ta sẽ xem xét một số đặc điểm mới này: Cho phép định nghĩa lại cấu trúc của tables đang online Chức năng này được cung cấp trong gói package DBMS_REDEFINITION do Oracle cung cấp, cho phép người dùng có thể định nghĩa lại cấu trúc của một table thông quan câu lệnh DML ngay khi nó đang online. Với các phiên bản trước, Oracle 8i, ta cũng có thể định nghĩa lại cấu trúc của table nhưng trước đó cần phải đặt chế độ offline cho nó. Điều này không thuận tiện cho việc quản trị. Cho phép thực hiện lệnh ANALYZE VALIDATE STRUCTURE tức thời Có thể thực hiện lệnh ANALYZE để tối ưu table ngay cả khi đang có lệnh DML thực hiện trên table. Điều khiển lưu trữ sau Oracle cung cấp cơ chế điều khiển switching đối với các online redo log group dựa theo thời gian ( time-based ). Trong cấu hình primary/standby , tất cả các noncurrent logs tại primary site sẽ được lưu trữ rồi vận chuyển tới standby database. Việc này sẽ hiệu quả khi hạn chế số lượng các redo records. Tạm treo database Oracle9 i cung cấp chức năng suspend/resume . Quản trị viên sử dụng lệnh ALTER SYSTEM SUSPEND để tạm treo database, dừng mọi thao tác truy xuất vào ra đối với các datafiles và control files. Khi database ở trạng thái tạm treo, các thao tác vào ra ( I/O operations ) đang thực hiện sẽ được kết thúc và những truy cập vào database mới phát sinh sẽ được đẩy vào queue. Thực hiện lệnh ALTER SYSTEM RESUME để khôi phục lại tình trạng bình thường của database. Đặt chế độ hoạt động tĩnh cho database Oracle9 i cho phép đưa database vào chế độ hoạt động tĩnh(quiesced state). Theo đó chỉ có các DBA transactions, queries, và các lệnh PL/SQL là được phép thực hiện. Trạng thái này cho phép người dùng thực hiện các thao tác quản trị một cách an toàn. Sự dụng câu lệnh ALTER SYSTEM QUIESCE RESTRICTED để đưa database về chế độ hoạt động tĩnh. Khả năng khôi phục và cấp phát lại không gian Oracle sẽ tự động thực hiện tạm treo (suspending) và sau đó khôi phục (resuming) lại việc thực hiện các thao tác database tốn kém (large database operations) trong trường hợp có lỗi cấp phát không gian. Nhờ vậy mà Oracle database server sẽ có thể tự thực hiện các thao tác hợp lý thay vì việc trả về thông báo lỗi như ở các phiên bản trước. Sau khi các lỗi này được khắc phục database lại được tự động khôi phục bình thường. ORACLE 9i – Kiến trúc và Quản trị Trang 10
- www.updatesofts.com Cho phép lưu trữ trên nhiều đích lưu trữ Số lượng đích lưu trữ tối đa mà ta có thể sử dụng để lưu trữ các online redo log được tăng lên từ 5 tới 10. Tự động quản lý vùng không gian Oracle9 i cho phép quản lý tự động việc giải phóng và sử dụng các vùng không gian có trong các segments được lưu trữ trong các locally managed tablespaces thông qua việc sử dụng mệnh đề SEGMENT SPACE MANAGEMENT có trong câu lệnh CREATE TABLESPACE . Quản trị viên có thể sử dụng chế độ AUTO hoặc MANUAL để chỉ rõ kiểu quản lý không gian mà Oracle sẽ sử dụng. Cập nhật lại các global indexes mỗi khi thực hiện thao tác bảo trì partition Theo mặc định, có thể có một vài phần của một bảng được phân khu (partitioned tables) ở trạng thái không sử dụng (đánh dấu UNUSABLE ) sẽ được nạp vào trong global indexes. Và ta cần xây dựng lại (rebuild) toàn bộ global index. Oracle9 i cho phép thực hiện tự động công việc rebuild này thông qua mệnh đề UPDATE GLOBAL INDEX có trong câu lệnh ALTER TABLE khi thực hiện bảo trì. Cho phép sử dụng đồng thời nhiều kích cỡ block Oracle cho phép sử dụng đồng thời nhiều kích cỡ blocks (multiple block sizes). Kích thước chuẩn (standard block size) được quy định trong tham số khởi tạo DB_BLOCK_SIZE nhưng cũng có thể mở rộng thêm 4 giá trị kích thước block phi chuẩn nữa (nonstandard block sizes). Các kích thước blocks phi chuẩn được chỉ rõ mỗi khi tạo tablespaces. Kích thước block chuẩn được sử dụng cho SYSTEM tablespace và hầu hết các tablespaces khác. Việc hỗ trợ sử dụng nhiều kích cỡ block sẽ cho phép thực hiện trao đổi các tablespaces của các database mà không có cùng một kích thước block. Quản lý động buffer cache Kích thước của buffer cache có trong vùng nhớ System Global Area được quản lý động. Điều này có nghĩa là giá trị của tham số DB_BLOCK_BUFFERS (trong file tham số khởi tạo) có thể được thay thế bởi giá trị có trong tham số khác, tham số DB_CACHE_SIZE . Trong Oracle 9i, buffer cache lại được phân chia thành nhiều bộ đệm con (subcaches) nếu có sử dụng chế độ multiple block sizes. Bốn giá trị kích cỡ block được chỉ ra trong 4 tham số DB_ nK_CACHE_SIZE tương ứng . Quản lý động vùng nhớ SGA Các tham số khởi tạo có thể tác động tới kích cỡ của vùng nhớ SGA. Và ta có thể thay đổi kích cỡ của SGA dễ dàng thông qua câu lệnh ALTER SYSTEM SET . Quản lý việc khôi phục (undo) tự động Oracle sử dụng rollback segments để lưu trữ các thông tin cho khôi phục. Việc phục hồi (undo) bao gồm roll back, undo, và thay đổi (changes) đối với database mỗi khi cần. Oracle 9i cho phép ta tạo riêng một undo tablespace để lưu trữ các thông tin phục hồi này. Việc sử ORACLE 9i – Kiến trúc và Quản trị Trang 11
- www.updatesofts.com dụng undo tablespace sẽ làm giảm bớt tính phức tạp của việc quản trị vùng không gian rollback segment, và cho phép phục hồi lại các thông tin dài mà không sợ bị trùng lên nhau. Quản lý files trong Oracle Một điểm mới trong Oracle 9i là quản lý files. Thông qua các tham số khởi tạo DB_CREATE_FILE_DEST và DB_CREATE_ONLINE_LOG_DEST_ n ta có thể chỉ ra cho hệ thống các đường dẫn cụ thể lưu trữ các file thuộc tablespace, online redo log file hay control file. Oracle luôn đảm bảo quản lý file duy nhất trong hệ thống. Tự động xoá các datafiles Oracle9 i cung cấp một lựa chọn cho phép tự động xoá bỏ (remove) các datafiles mỗi khi tablespace tương ứng bị huỷ thông qua câu lệnh DROP TABLESPAC E. Tuỳ chọn tương tự trong câu lệnh ALTER DATABASE TEMPFIL E cũng được sử dụng để xoá các temporary file tương ứng. Metadata API Một PL/SQL package mới, DBMS_METADATA.GET_DDL , được đưa vào Oracle 9i cho phép ta lấy được các siêu dữ liệu (metadata) – Các thông tin tổng hợp về các schema object. Các bảng ngoài - External tables Oracle9 i cho phép ta truy cập theo kiểu chỉ đọc các dữ liệu trong các bảng ngoài (external tables). External tables là các tables mà không nằm trong database, và có thể ở các khuôn dạng (format) nào đó. Câu lệnh CREATE TABLE ORGANIZATION EXTERNAL được sử dụng để chỉ ra metadata mô tả cho external table tương ứng. Oracle cung cấp điều khiển truy cập ORACLE_LOADER , qua đó cung cấp khả năng ánh xạ dữ liệu tương ứng với cú pháp lệnh trong control file . Tăng cường cho constraint Ta sử dụng mệnh đề USING INDEX trong câu lệnh CREATE TABLE hay ALTER TABLE để cho phép ta chỉ rõ index mỗi khi sử dụng ràng buộc unique key hay primary key. Thêm vào đó, ta cũng có thể ngăn cản việc huỷ (dropping). File tham số trên server Oracle lưu trữ các tham số khởi tạo cho session trong file tham số dưới khuôn dạng văn bản và được đặt tại các client machine. Các tham số khởi tạo của server nằm trong file tham số trên server thường ở khuôn dạng nhị phân và có thể được lưu trong database. Temporary tablespace mặc định Có thể thêm vào mệnh mới DEFAULT TEMPORARY TABLESPACE vào câu lệnh CREATE DATABASE để cho phép tạo temporary tablespace ngay trong thời gian tạo database. Tablespace này sẽ được sử dụng như temporary tablespace mặc định. ORACLE 9i – Kiến trúc và Quản trị Trang 12
- www.updatesofts.com Đặt tên cho transaction Oracle cho phép ta gán tên cho mỗi một transaction. Tên của transaction rất có ích cho việc phân biệt giảm thiểu việc nhầm lẫn giữa các transactions. Một số thay đổi trong Oracle Database Configuration Assistant Oracle Database Configuration Assistant có một số thay đổi trong thiết kế. Theo đó, nó cung cấp các mẫu (templates) giúp cho việc tiết kiệm, giảm bớt việc định nghĩa các object trong database. Người dùng cũng có thể tạo ra các mẫu này thông qua việc sửa đổi các mẫu có sẵn. Khi tạo database bằng công cụ Database Configuration Assistant ta cũng có thể thêm vào ngay hoặc sau đó các khuôn mẫu gọi là các Oracle’s new Sample Schemas. Những schemas này là những ví dụ tài liệu cơ bản trong Oracle. Quản lý việc sử dụng index Ta thêm mệnh đề MONITORING USAGE vào trong câu lệnh ALTER INDEX để có thể xác định và quản lý index khi nó được thực hiện. Liệt kê các phân vùng Oracle 9i giới thiệu sử dụng liệt kê các phân vùng, nó cho phép ta chỉ ra một danh sách các giá trị rời rạc tương ứng với các partitioning column của mỗi phân vùng. Phương thức liệt kê phân vùng (list partitioning method) được đưa ra nhằm mục đích mô hình hoá dữ liệu phân tán đối với các giá trị rời rạc. Việc này khó thực hiện được bằng các phương pháp range partitioning (phân khu theo khoảng giá trị) hay hash partitioning (phân khu theo hàm băm). Phân khu theo hàm băm cho các index-organized tables Oracle 9i cho phép sử dụng phương pháp băm khi phân khu các index-organized tables. Ở các phiên bản trước, việc phân khu cho index-organized tables vẫn thực hiện được nhưng chỉ bằng phương pháp range method. Xử lý các job queue process linh hoạt Các job queue process được tạo một cách linh hoạt và nó chỉ cần tới số hiệu của processes được tạo để thực hiện các jobs của process đó đang sẵn sàng cho việc thực hiện. Tiến trình nền (background process) có tên là CJQ sẽ đảm nhiêm công việc này. Điểm mới trong Database Resource Manager Có một số chức năng mới được thêm vào Database Resource Manager: Có khả năng tạo một active session pool, là nơi lưu chứa được một số lượng lớn nhất các user sessions đồng thời đang được thực hiện. Nếu có nhiều hơn số lượng lớn nhất các sessions cùng được thực hiện thì các sessions mới này sẽ được đưa vào hàng đợi để chờ thực hiện sau. Tuy nhiên ta cũng có thể đưa ra một khoảng thời gian trễ (timeout) để cho phép thực hiện hay huỷ việc thực hiện các sessions mới bổ sung này. Tự động chuyển users từ một nhóm này sang một nhóm khác tuỳ theo sự điều chỉnh của quản trị viên (administrator). Nếu một session được tạo bởi member thuộc một nhóm users nào đó thực hiện trong khoảng thời gian dài hơn thời gian cho phép thì ORACLE 9i – Kiến trúc và Quản trị Trang 13
- www.updatesofts.com session đó có thể được tự động chuyển sang một nhóm khác với những yêu cầu tài nguyên khác. Có khả năng ngăn chặn thực hiện các thao tác mà được dự kiến là sẽ phải chạy trong một thời gian dài hơn là khoảng thời gian cho phép. Có khả năng tạo một undo pool, là nơi chứa một số lượng nhất định vùng không gian dành cho việc khôi phục thông tin (undo). Cơ chế xác thực và nhờ xác thực (Proxy authentication and authorization) Oracle9 i cho phép một server nằm ở lớp giữa (middle-tier) xác nhận hộ một client. Ta có thể thực hiện việc này bằng cách đưa vào mệnh đề GRANT CONNECT THROUGH trong câu lệnh ALTER USER . Ta cũng có thể chỉ rõ vai trò của lớp giữa (middle tier) trong việc kết nối tới client. Application roles Oracle cho phép gán roles cho các application users mà được kích hoạt bằng cách sử dụng PL/SQL package. Sử dụng mệnh đề IDENTIFIED USING package trong câu lệnh CREATE ROLE để thực hiện việc này. ORACLE 9i – Kiến trúc và Quản trị Trang 14
- www.updatesofts.com Chương 2. CÁC THÀNH PHẦN KIẾN TRÚC 2.1. KIN TRÚC ORACLE SERVER 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 hai thành phần chính là Oracle instance và Oracle database . 2.1.1. Oracle Instance 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. Background process Hình vẽ 1. Kiến trúc Oracle Server 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. Để chi tiết hơn, ta sẽ xem xét cụ thể từng thành phần. Share Pool Shared pool là một phần trong SGA và được sử dụng khi thực hiện phân tích câu lệnh (parse phase). Kích thước của Shared pool được xác định bởi tham số SHARED_POOL_SIZE có trong parameter file (file tham số). Các thành phần của Shared pool gồm có: Library cache và Data dictionary cache. ORACLE 9i – Kiến trúc và Quản trị Trang 15
- www.updatesofts.com Hình vẽ 2. Cấu trúc Share Pool Library Cache Library cache lưu trữ thông tin về các câu lệnh SQL được sử dụng gần nhất bao gồm: Nội dung của câu lệnh dạng text (văn bản). Parse tree (cây phân tích) được xây dựng tuỳ thuộc vào câu lệnh. Execution plan (sơ đồ thực hiện lệnh) gồm các bước thực hiện và tối ưu lệnh. Do các thông tin trên đã được lưu trữ trong Library cache nên khi thực hiện lại một câu lệnh truy vấn, trước khi thực hiện câu lệnh, Server process sẽ lấy lại các thông tin đã được phân tích mà không phải phân tích lại câu lệnh. Do vậy, Library cache có thể giúp nâng cao hiệu suất thực hiện lệnh. Data Dictionary Cache Data dictionary cache là một thành phần của Shared pool lưu trữ thông tin của dictionary cache được sử dụng gần nhất như các định nghĩa các bảng, định nghĩa các cột, usernames, passwords, và các privileges (quyền). Trong giai đoạn phân tích lệnh (parse phase), Server process sẽ tìm các thông tin trong dictionary cache để xác định các đối tượng trong câu lệnh SQL và để xác định các mức quyền tương ứng. Trong trường hợp cần thiết, Server process có thể khởi tạo và nạp các thông tin từ các file dữ liệu. Data buffer cache Khi thực hiện một truy vấn, Server process sẽ tìm các blocks cần thiết trong database buffer cache. Nếu không tìm thấy block trong database buffer cache, Server process mới đọc các block từ data file và tạo luôn một bản sao của block đó vào trong vùng nhớ đệm (buffer cache). Như vậy, với các lần truy xuất tới block đó sau này sẽ không cần thiết phải truy xuất vào datafile nữa. Hình vẽ 3. Database buffer cache ORACLE 9i – Kiến trúc và Quản trị Trang 16
- www.updatesofts.com Database buffer cache là vùng nhớ trong SGA sử dụng để lưu trữ các block dữ liệu được sử dụng gần nhất. Tương tự như kích thước của blocks dữ liệu được xác định bởi tham số DB_BLOCK_SIZE, kích thước của vùng đệm trong buffer cache cũng được xác định bởi tham số DB_BLOCK_BUFFERS . Oracle server sử dụng giải thuật least recently used (LRU) algorithm để làm tươi lại vùng nhớ. Theo đó, khi nạp mới một block vào bộ đệm, trong trường hợp bộ đệm đã đầy, Oracle server sẽ loại bớt block ít được sử dụng nhất ra khỏi bộ đệm để nạp block mới vào bộ đệm. Redo log buffer Server process ghi lại các thay đổi của một instance vào redo log buffer, đây cũng là một phần bộ nhớ SGA. Hình vẽ 4. Redo log buffer Có một số đặc điểm cần quan tâm của Redo log buffer: Kích thước được xác định bởi tham số LOG_BUFFER . Lưu trữ các redo records (bản ghi hồi phục) mỗi khi có thay đổi dữ liệu. Redo log buffer được sử dụng một cách thường xuyên và các thay đổi bởi một transaction có thể nằm đan xen với các thay đổi của các transactions khác. Bộ đệm được tổ chức theo kiểu circular buffer (bộ đệm nối vòng) tức là dữ liệu thay đổi sẽ tiếp tục được nạp lên đầu sau khi vùng đệm đã được sử dụng hết. Background process Background process (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. Nó đ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 Background process như: Database Writer ( DBW0 ): Ghi lại các thay đổi trong data 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 database. 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. 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. ORACLE 9i – Kiến trúc và Quản trị Trang 17
- www.updatesofts.com Database Writer (DBW0) Server process ghi lại các dữ liệu thay đổi để rollback và dữ liệu của các block trong buffer cache. Database writer ( DBWR ) ghi các thông tin được đánh dấu thay đổi từ database buffer cache lên các data files nhằm đảm bảo luôn có khoảng trống bộ đệm cần thiết cho việc sử dụng. Hình vẽ 5. Database Writer (DBWR) Với việc sử dụng này, hiệu suất sử dụng database sẽ được cải thiện do Server processes chỉ tạo các thay đổi trên buffer cache, DBWR ghi dữ liệu vào các data file cho tới khi: Số lượng buffers đánh bị dấu đạt tới giá trị ngưỡng. Tiến trình duyệt tất cả buffer mà vẫn không tìm thấy dữ liệu tương ứng. Quá thời gian quy định. Log Writer Log Writer ( LGWR ) là một trong các background process có trách nhiệm quản lý redo log buffer để ghi lại các thông tin trong Redo log buffer vào Redo log file. Redo log buffer là bộ đệm dữ liệu được tổ chức theo kiểu nối vòng. ORACLE 9i – Kiến trúc và Quản trị Trang 18
- www.updatesofts.com Hình vẽ 6. Log Writer (LGWT) LGWR ghi lại dữ liệu một cách tuần tự vào redo log file theo các tình huống sau: Khi redo log buffer đầy Khi xảy ra timeout (thông thường là 3 giây) Trước khi DBWR ghi lại các blocks bị thay đổi trong data buffer cache vào các data files. Khi commit một transaction. System Monitor (SMON) Tiến trình system monitor ( SMON ) thực hiện phục hồi các sự cố (crash recovery) ngay tại thời điểm instance được khởi động (startup), nếu cần thiết. SMON cũng có trách nhiệm dọn dẹp các temporary segments không còn được sử dụng nữa trong dictionary-managed tablespaces. SMON khôi phục lại các transactions bị chết mỗi khi xảy ra sự cố. SMON đều đặn thực hiện kiểm tra và khắc phục các sự cố khi cần. Trong môi trường Oracle Parallel Server, SMON process của một instance có thể thực hiện khôi phục instance trong trường hợp instance hay CPU của máy tính đó gặp sự cố. Process Monitor (PMON) Tiến trình process monitor ( PMON ) thực hiện tiến trình phục hồi mỗi khi có một user process gặp lỗi. PMON có trách nhiệm dọn dẹp database buffer cache và giải phóng tài nguyên mà user process đó sử dụng. Ví dụ, nó thiết lập lại (reset) trạng thái của các bảng đang thực hiện trong transaction, giải phóng các locks trên bảng này, và huỷ bỏ process ID của nó ra khỏi danh sách các active processes. PMON kiểm tra trạng thái của nơi gửi (dispatcher ) và các server processes, khởi động lại (restarts) mỗi khi xảy ra sự cố. PMON cũng còn thực hiện việc đăng ký các thông tin về instance và dispatcher processes với network listener. Tương tự như SMON , PMON được gọi đến mỗi khi xảy ra sự cố trong hệ thống. ORACLE 9i – Kiến trúc và Quản trị Trang 19
- www.updatesofts.com 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. Xảy ra checkpoints khi : Tất cả các dữ liệu trong database buffers đã bị thay đổi tính cho đến thời điểm checkpointed sẽ được background process DBWR n ghi lên data files. Background process CKPT cập nhật phần headers của các data files và các control files. Checkpoints có thể xảy ra đối với tất cả các data files trong database hoặc cũng có thể xảy ra với một data files cụ thể. Checkpoint xảy ra theo các tình huống sau: Mỗi khi có log switch Khi một shut down một database với các chế độ trừ chế độ abort Xảy ra theo như thời gian quy định trong các tham số khởi tạo LOG_CHECKPOINT_INTERVAL và LOG_CHECKPOINT_TIMEOUT Khi có yêu cầu trực tiếp của quản trị viên Thông tin về checkpoint được lưu trữ trong Alert file trong trường hợp các tham số khởi tạo LOG_CHECKPOINTS_TO_ALERT được đặt là TRUE . Và ngược lại với giá trị FALSE . 2.1.2. Oracle database Oracle database là tập hợp các dữ liệu được xem như một đơn vị thành phần (Unit). Database có nhiệm vụ lưu trữ và trả về các thông tin liên quan. 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 Oracle database được xác định bởi tên một tên duy nhất và được quy định trong tham số DB_NAME của parameter file. Hình vẽ 7. Cấu trúc database ORACLE 9i – Kiến trúc và Quản trị Trang 20
- www.updatesofts.com Cấu trúc vật lý database Cấu trúc vật lý bao gồm tập hợp các control file, online redo log file và các datafile: Datafiles Mỗi một Oracle database đều có thể có một hay nhiều datafiles . Các database datafiles chứa toàn bộ dữ liệu trong database. Các dữ liệu thuộc cấu trúc logic của database như tables hay indexes đều được lưu trữ dưới dạng vật lý trong các datafiles của database. Một số tính chất của datafiles: Mỗi datafile chỉ có thể được sử dụng trong một database. 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ích thướ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 DBW n background process. 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 redo entries (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 . 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. ORACLE 9i – Kiến trúc và Quản trị Trang 21
- www.updatesofts.com 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. Cấu trúc logic databse Cấu trúc logic của Oracle database bao gồm các đối tượng tablespaces, schema objects, data blocks, extents, và segments. 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. 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: Hình vẽ 8. 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. 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. ORACLE 9i – Kiến trúc và Quản trị Trang 22
- www.updatesofts.com 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. 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. 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ữ. Extent được sử dụng để lưu trữ các thông tin có cùng kiểu. 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: Mỗi một non-clustered table có một data segment. Các dữ liệu trong một table được lưu trữ trong các extents thuộc data segment đó. Với một Data partitioned table thì mỗi each partition lại tương ứng với một data segment segment. Mỗi Cluster tương ứng với một data segment. Dữ liệu của tất cả các table trong cluster đó đều được lưu trữ trong data segment thuộc Cluster đó. Mỗi một index đều có một index segment lưu trữ các dữ liệu của nó. Trong index partitioned index thì mỗi partition cũng lại tương ứng với một index segment segment. Một hoặc nhiều rollback segments của database được tạo lập bởi người quản trị database để lưu trữ các dữ liệu trung gian phục vụ cho việc khôi phục dữ liệu. rollback Các thông tin trong Rollback segment được sử dụng để: segment Tạo sự đồng nhất các thông tin đọc được từ database Sử dụng trong quá trình khôi phục dữ liệu Phục hồi lại các giao dịch chưa commit đối với mỗi user Temporary segments được tự động tạo bởi Oracle mỗi khi một câu lệnh temporary SQL statement cần đến một vùng nhớ trung gian để thực hiện các công segment việc của mình như sắp xếp dữ liệu. Khi kết thúc câu lệnh đó, các extent thuộc temporary segment sẽ lại được hoàn trả cho hệ thống. Oracle thực hiện cấp phát vùng không gian lưu trữ một cách linh hoạt mỗi khi các extents cấp phát đã sử dụng hết. ORACLE 9i – Kiến trúc và Quản trị Trang 23
- www.updatesofts.com Các cấu trúc vật lý khác Ngoài ra, Oracle Server còn sử dụng các file khác để lưu trữ thông tin. Các file đó bao gồm: 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. 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. 2.1.3. Quản trị cơ sở dữ liệu Oracle Quản trị cơ sở dữ liệu là công việc bảo trì và vận hành Oracle server để nó có thể tiếp nhận và xử lý được tất cả các yêu cầu (requests) từ phía Client. Để làm được điều này, người quản trị viên cơ sở dữ liệu cần phải hiểu được kiến trúc của Oracle database. 2.1.4. Thiết lập các tham số khởi tạo ảnh hưởng tới kích cỡ bộ nhớ SGA Tham số khởi tạo ảnh hưởng tới kích thước bộ nhớ cấp phát cho vùng System Global Area. Ngoại trừ tham số SGA_MAX_SIZE , còn lại các tham số khác đều là tham số động tức là có thể thay đổi giá trị của chúng ngay trong lúc database đang chạy thông qua câu lệnh ALTER SYSTEM . Kích thước của SGA cũng có thể thay đổi được trong quá trình chạy database. Thiết lập tham số cho Buffer Cache Tham số khởi tạo buffer cache quy định kích thước của buffer cache là một phần của SGA. . Ta sử dụng các tham số DB_CACHE_SIZE và một trong những tham số DB_ nK_CACHE_SIZE để cho phép sử dụng chế độ multiple block sizes đối với database. Oracle sẽ tự động gán các giá trị mặc định cho tham số the DB_CACHE_SIZE , còn tham số DB_ nK_CACHE_SIZE sẽ được gán mặc định bằng 0. Kích thước của buffer cache sẽ có ảnh hưởng nhiều tới hiệu suất thực hiện của hệ thống. Kích thước càng lớn thì càng giảm bớt việc đọc và ghi đĩa. Tuy nhiên, kích thước của cache lớn sẽ tốn nhiều bộ nhớ và sẽ có nhiều tốn kém trong việc thực hiện paging (phân trang) hay swapping (trao đổi) bộ nhớ. Tham số DB_CACHE_SIZE Tham số khởi tạo DB_CACHE_SIZE được sử dụng thay thế cho tham số DB_BLOCK_BUFFERS của các phiên bản Oracle trước kia. Tham số DB_CACHE_SIZE quy định kích thước của block buffers chuẩn. Kích thước của một block chuẩn lại được quy định trong tham số DB_BLOCK_SIZE . Tuy vậy, tham số DB_BLOCK_BUFFERS vẫn được sử dụng để tương thích với các phiên bản trước, tuy nhiên giá trị của nó không được sử dụng cho các tham số động. Tham số DB_nK_CACHE_SIZE Chỉ ra kích cỡ là bội số nguyên lần kích thước của block buffers. Nó được chỉ ra bởi các tham số: DB_2K_CACHE_SIZE ORACLE 9i – Kiến trúc và Quản trị Trang 24
- www.updatesofts.com DB_4K_CACHE_SIZE DB_8K_CACHE_SIZE DB_16K_CACHE_SIZE DB_32K_CACHE_SIZE . Mỗi tham số chỉ ra kích cỡ của buffer cache tương ứng với kích cỡ của block. Ví dụ: DB_BLOCK_SIZE=4096 DB_CACHE_SIZE=12M DB_2K_CACHE_SIZE=8M DB_8K_CACHE_SIZE=4M Ở ví dụ này, các tham số chỉ ra kích thước block chuẩn của database là 4K. Kích thước cache tương ứng với kích thước block chuẩn là 12M. Các kích thước mở rộng của cache là 2K và 8K sẽ được đặt lại với giá trị tương ứng là 8M và 4M. Điều chỉnh kích cỡ của Shared Poo l Tham số SHARED_POOL_SIZE trong phiên bản Oracle 9i là tham số động, tức là có thể thay đổi được giá trị của nó (điều này không thể thực hiện được trong các phiên bản trước). Nó cho phép ta thay đổi kích thước của shared pool là một trong các thành phần của SGA. Theo mặc định Oracle cũng chọn một giá trị mặc định phù hợp cho tham số này. Điều chỉnh kích cỡ của Large Pool Tương tự như SHARED_POOL_SIZE, tham số LARGE_POOL_SIZE cũng là một tham số động, nó cho phép ta điều chỉnh kích cỡ của large pool, đây cũng là một thành phần trong SGA. . Giới hạn kích cỡ của SGA Tham số SGA_MAX_SIZE quy định kích cỡ lớn nhất của System Global Area . Ta cũng có thể thay đổi kích cỡ của buffer caches, shared pool và large pool, tuy nhiên việc thay đổi này nên là mở rộng giá trị kích thước cho các thành phần của SGA. Giá trị mở rộng thêm này cũng không nên đặt tới ngưỡng của SGA_MAX_SIZE . Trong trường hợp ta không chỉ rõ giá trị của SGA_MAX_SIZE thì Oracle sẽ tự động gán giá trị này bằng tổng số kích cỡ của các thành phần của SGA lúc ban đầu. 2.2.KT NI TI ORACLE SERVER 2.2.1. Mô hình kết nối Các Client có thể kết nối tới Oracle Server thông qua 03 cách sau: Kết nối trực tiếp: kết nối mà Client nằm trên cùng một máy chủ Oracle server. Kết nối hai lớp (two-tiered) client-server: Client nằm trên một máy tính khác và kết nối trực tiếp tới máy chủ Oracle Server. Kết nối ba lớp (three-tiered): Client nằm trên máy tính khác với máy chủ Oracle Server, nó giao tiếp với một ứng dụng hay một máy chủ mạng (network server) và điều khiển ứng dụng hay máy chủ này kết nối tới Oracle server. ORACLE 9i – Kiến trúc và Quản trị Trang 25
- www.updatesofts.com Hình vẽ 9. Kết nối tới Oracle server 2.2.2. Một số khái niệm cơ bản liên quan đến kết nối Connection (liên kết) Liên kết là đường liên lạc giữa một user process và một Oracle server. Trong trường hợp user sử dụng các tool hoặc các ứng dụng ngay trên cùng một máy với Oracle server, đường liên lạc sẽ được tạo lập ngay trên máy đó. Trong trường hợp user nằm trên một máy khác thì liên kết sẽ sử dụng đường mạng để kết nối tới Oracle server. Session (phiên) Một phiên tương ứng với một liên kết cụ thể của một user tới một Oracle server. Phiên bắt đầu khi user kết nối tới Oracle Server đã được kiểm tra hợp lệ và kết thúc khi user thực hiện log out khỏi Oracle Server hoặc user kết thúc một cách bất thường. Một user cùng một lúc có thể có nhiều phiên làm việc để kết nối tới Oracle Server thông qua các ứng dụng hay các tool khác nhau. Ví du: User có thể đồng thời có các phiên làm việc giữa SQL*Plus, Developer/2000 Form, tới Oracle Server. Lưu ý: Phiên chỉ tạo lập được khi Oracle Server đã sẵn sàng cho việc kết nối của các client. 2.2.3. Kết nối tới database Các bước thực hiện kết nối Để kết nối tới database trước tiên, cần phải tạo liên kết tới Oracle Server. Liên kết tới Oracle Server được tạo theo các bước sau: User sử dụng công cụ SQL*Plus hay sử dụng các công cụ khác của Oracle như Developer/2000 Forms để khởi tạo tiến trình. Trong mô hình Client-Server, các công cụ hay ứng dụng này được chạy trên máy Client. User thực hiện log in vào Oracle server với việc khai báo username, password và tên liên kết tới database. Các ứng dụng tools sẽ tạo một tiến trình để kết nối tới Oracle server qua các tham số này. Tiến trình này được gọi là tiến trình phục vụ. Tiến trình phục vụ sẽ giao tiếp với Oracle server thay cho tiến trình của user chạy trên máy Client. ORACLE 9i – Kiến trúc và Quản trị Trang 26
- www.updatesofts.com Ví dụ thực hiện kết nối tới database Để hiểu rõ hơn về các bước thực hiện kết nối, ta hãy xem xét một ví dụ mô tả việc kết nối tới Oracle database thực hiện bởi một user tại một máy tính khác có kết nối tới máy tính mà Oracle server đang chạy trên đó. Việc kết nối được thực hiện thông qua đường mạng bằng cách sử dụng dịch vụ Oracle Net8. 1. Tại máy chủ, cần đảm bảo Oracle server đang chạy và sẵn sàng đón nhận các tín hiệu từ phía Client. Máy chủ này được gọi là host hay database server . 2. Tại một máy trạm có chạy các ứng dụng (gọi là local machine hay client workstation ) sẽ thực hiện các user process để kết nối tới database. Client application thực hiện thiết lập một kết nối tới server thông qua Net8 driver. 3. Máy chủ server trên đó có các Net8 driver. Server sẽ thực hiện việc nghe và dò tìm tất cả các yêu cầu gửi đến từ phía client và sau đó sẽ tạo một server process tương ứng với user process. 4. Khi user thực hiện một câu lệnh SQL hay commit một transaction. Ví dụ như user dữ liệu trên một dòng trong một table. 5. Server process sẽ nhận về câu lệnh gửi tới từ Client, kiểm tra và phân tích câu lệnh, việc này được thực hiện trong shared pool. Tiếp theo đó, Server process sẽ kiểm tra quyền truy nhập dữ liệu của user. 6. Server process trả về các giá trị dữ liệu yêu cầu từ các dữ liệu có trong datafile hay trong system global area. 7. Server process thay đổi các dữ liệu có trong system global area. DBW n process ghi lại các blocks đã thay đổi ra ổ đĩa. LGWR process sẽ ghi lại ngay lập tức các bản ghi thay đổi vào online redo log file ngay khi transaction được commit. 8. Trong trường hợp transaction thực hiện thành công, server process sẽ gửi thông báo hoàn tất qua đường mạng tới Client. Ngược lại, sẽ có một error message gửi tới Client. ORACLE 9i – Kiến trúc và Quản trị Trang 27
- www.updatesofts.com Chương 3. CÁC CÔNG CỤ QUẢN TRỊ ORACLE 3.1.CÁC CÔNG C QUN TR C S D" LI#U ORACLE Oracle hiện tại đã cung cấp rất nhiều công cụ cho phép quản trị cơ sở dữ liệu. Có thể kể ra sau đây một số công cụ cơ bản sau: Công cụ Diễn giải Server Manager Line Công cụ quản trị cơ sở dữ liệu Oracle theo chế độ dòng lệnh như Mode start (khởi động), shutdown (dừng) database, SQL*Plus Line Mode Đây là một tiện ích sử dụng cho việc công quản trị như starting up, shutting down, hoặc phục hồi database. Oracle Enterprise Là công cụ có giao diện đồ họa để thực hiện việc quản trị, điều Manager khiển và thay đổi một hoặc nhiều database. SQL*Loader 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 . Công cụ Export và Tiện ích sử dụng để exporting hoặc importing dữ liệu theo khuôn Import dạng của Oracle. Password File Tiện ích sử dụng để tạo file mật khẩu trong database. Để thuận tiện, tài liệu sẽ trình bày hai công cụ thường dùng nhất để quản trị cơ sở dữ liệu là: Server Manager Line Mode Oracle Enterprise Manager 3.2.SERVER MANAGER LINE MODE 3.2.1. Truy nhập Server Manager Line Mode User (người sử dụng) có thể vào Server Manager Line Mode theo hai 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 Lưu ý: trong các phiên bản cũ, ta gõ svrmgrl30 thay vì svrmgrl Hoặc: C:\svgrmrl command=”connect internal/admin” C:\svgrmrl command=@c:\example.sql Vào Server Manager Line Mode đồng thời thực hiện lệnh luôn. Kí tự sử dụng trong Server Manager Line Mode 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ởi ký tự chấm phẩy ‘ ; ’ 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. Ngoài ra, ta có thể chạy file script chứa các câu lệnh SQL và PL/SQL. Bằng cách sử dụng ký tự ‘ @ ‘ ở trước tên file script. ORACLE 9i – Kiến trúc và Quản trị Trang 28
- www.updatesofts.com 3.2.2. Phân nhóm các lệnh trong Server manager Loại lệnh Tên lệnh EXIT REMARK Lệnh không cần kết SET nối tới database SHOW SPOOL CONNECT/DISCONNECT DESCRIBE Các lệnh cần đến EXECUTE mức quyền truy SHOW ERRORS nhập SHOW PARAMETER SHOW SGA CONNECT AS SYSDBA Các lệnh cần đến CONNECT AS SYSOPER mức quyền truy ARCHIVE LOG nhập đặc biệt RECOVER DATABASE STARTUP/SHUTDOWN 3.2.3. Diễn giải các lệnh trong Server manager Tên lệnh Diễn giải EXIT Đóng SQL Worksheet, thoát khỏi Server Manager REMARK Thêm vào lời chú dẫn, thường hay sử dụng trong file SQL script SET Thiết lập hoặc thay đổi các tính chất có trong phiên làm việc hiện thời. SHOW Hiển thị các thiết đặt hiện thời SPOOL Cho phép hoặc thôi cho phép chuyển hướng kết xuất dữ liệu ra file CONNECT/ Kết nối hoặc huỷ kết nối tới database DISCONNECT DESCRIBE Xem cấu trúc của một function, package, package body, procedure, table, object, view EXECUTE Thực hiện một dòng lệnh PL/SQL SHOW ERRORS Hiển thị các lỗi phát sinh của thủ tục, hàm hay package SHOW PARAMETER Hiển thị gái trị hiện thời của một hay nhiều tham số đã khởi tạo SHOW SGA Hiển thị thông tin về SGA của Instance hiện thời CONNECT/AS Kết nối tới database với đặc quyền quản trị SYSDBA ARCHIVE LOG Khởi động và dừng việc lưu trữ tự động đối với các file online redo log files, redo log file RECOVER Phục hồi lại một hay nhiều tablespaces DATABASE ORACLE 9i – Kiến trúc và Quản trị Trang 29
- www.updatesofts.com STARTUP/ Khởi động hoặc tắt Oracle instance SHUTDOWN 3.3.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 API 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. OEM Console có trong cả Windows NT và Windows 95. Hình vẽ 10. Oracle Enterprise Manager 3.3.1. 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. 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 9i – Kiến trúc và Quản trị Trang 30
- www.updatesofts.com 3.3.2. Các dịch vụ chung OEM có các dịch vụ cho phép quản lý các nodes trên mạng (network) Dịch vụ phát hiện - Discovery service: OEM tự động phát hiện (định vị) tất cả các database và các dịch vụ chạy trên các 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 và cho phép xem, chia sẻ thông tin xác định Jobs. 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 events đượ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 dịch vụ (services), đối tượng (objects), và từng user quản trị (administrators). Dịch vụ kho lưu trữ chia sẻ (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ý. 3.3.3. 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 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 bằng tay (chạy lệnh %emrepmgr từ dấu nhắc hệ thống). 3.3.4. 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. 1. Các nút có biểu tượng: cho phép gọi các ứng dụng khác để cùng thực hiện việc quản trị các tác vụ (task). 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. 2. Navigator hay object explorer: được tổ chức dưới dạng cây phân cấp. Nó cho phép xem các 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. 3. 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. ORACLE 9i – Kiến trúc và Quản trị Trang 31
- www.updatesofts.com Hình vẽ 11. Oracle Enterprise Manager 4. Menu cho phép khởi tạo các ứng dụng quản trị khác và thực hiện nhiều tác vụ khác nhau. 5. Map hay topographical view cho phép các Oracle services có thể được gộp lại tùy theo quan 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ý. 6. Event system điều khiển và thông báo các trạng thái của hệ thống. 3.4.CÁC CÔNG C QUN TR KHÁC Ngoài hai công cụ chính như đã kể trên, Oracle còn hỗ trợ bộ các công cụ chuẩn 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 của instance. Schema Manager: dùng để tạo lập và quản lý các đối tượng như tables, indexes, và views. Security 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 databases. Ngoài các các công cụ kể trên, Oracle còn hỗ trợ các công cụ làm tăng cường hiệu suất làm việc của DATABASE. Performance Manager: biểu diễn hiệu suất làm việc của database dưới dạng biểu đồ đồ hoạ. Top-Session Manager: hiển thị thông tin chi tiết về các session của 10 session có sử dụng tài nguyên hệ thống, sắp xếp theo thứ tự giảm dần. Công cụ này còn cho phép kill session. Loock Manager: cho biết các thông tin liên quan đến việc khoá (lock) các đối tượng trong database. Các thông tin được biểu diễn dưới dạng đồ hoạ. Tablespaces Manager: công cụ giúp cho dễ dàng quản lý các tablespace có trong database. ORACLE 9i – Kiến trúc và Quản trị Trang 32
- www.updatesofts.com Chương 4. TẠO DATABASE 4.1.CÁC B)C T*O DATABASE Oracle hiện đã hỗ trợ một công cụ cho phép tạo database trên hệ điều hành Windows một cách trực quan. Đó là công cụ Oracle Database Assistant. Tuy nhiên, trong một số trường hợp công cụ này tỏ ra không được thuận tiện lắm. Bên cạnh việc sử dụng công cụ cung cấp sẵn của Oracle để tạo database, Oracle còn cho phép user có thể tạo database mà không sử dụng các công cụ của Oracle. Phương pháp này gọi là tạo database bằng tay – manually. Việc tạo database được tiến hành theo các bước: 1. Quyết định chọn lựa tên instance và tên database duy nhất. Chọn character set – tập ký tự sử dụng trong database. 2. Thiết lập các biến hệ thống. 3. Chuẩn bị file tham số, tạo file mật khẩu (nên có thao tác này). 4. Chuẩn bị instance phục vụ quản trị 5. Tạo database. 6. Chạy scripts để tạo các dictionary cho database. 4.2.CHU+N B MÔI TR),NG 4.2.1. Chuẩn bị hệ điều hành Để tạo database, quản trị viên trước tiên phải có thể truy nhập vào hệ điều hành với đầy đủ quyền. Trước khi tạo database, cần tính toán dung lượng bộ nhớ cho database căn cứ vào cấu hình của Server và đảm bảo có đủ bộ nhớ để thực hiện các tiến trình của Oracle một cách hiệu quả. Tính toán lượng đĩa trống cần thiết cho việc lưu trữ các data files, các control files, các redo log file và các files khác 4.2.2. Lên kế hoạch bố trí các file thông tin Để bảo vệ an toàn cho database, ta cần có kế hoạch bố trí các file thông tin. Control files Để đảm bảo an toàn, một database cần ít nhất 02 control files và được đặt tại hai chỗ khác nhau. Các control files nên được đặt tên khác nhau sao cho dễ dàng có thể phân biệt. Tên của Control files nên được đặt kèm với tên của database cho dễ nhớ, như sau: CTL .ORA Với: n là số thứ tự của control file database_name tên của database Trong parameter file, tên của các control files được đặt phân cách nhau bởi các dấu phẩy. ORACLE 9i – Kiến trúc và Quản trị Trang 33
- www.updatesofts.com Ví dụ: control_files = (“C:\ORANT\DATABASE\CTL1KTKB.ORA”, ”C:\ORANT\DATABASE\CTL2KTKB.ORA”) Online redo log files Online redo log files thông thường bao gồm nhiều nhóm các online redo log files khác nhau. Với mỗi nhóm chứa các bản sao của các redo log file. Tương tự như control file. Các online redo log file cũng nên được đặt ở các nới khác nhau. Cũng giống như Control files, việc đặt tên cho các Online redo log files nên được đặt kèm với tên của database cho dễ nhớ, như sau: LOG .ORA Với: n là số thứ tự của control file database_name tên của database Tên của các control files được đặt phân cách nhau bởi các dấu phẩy. Ví dụ: logfile = ‘C:\ORANT\DATABASE\LOG1KTKB.ORA’ SIZE 1024K, ‘C:\ORANT\DATABASE\LOG2KTKB.ORA’ SIZE 1024K Datafiles Tên của datafiles nên được đặt theo như nội dung của nó. Đối với các data files, ta cần quan tâm tới một số tính chất sau: Giảm thiểu việc phân đoạn trong các data files. Tách riêng các đối tượng trong database như tách các application data, temporary data trên các tablespaces khác nhau. Các datafile được phân chia theo các segment khác nhau. Tên của chúng thường được đặt với đuôi là .DBF còn phần đầu sẽ được phân theo từng loại segment tương ứng. Ví dụ: C:\ORANT\DATABASE\KTKB\SYSTEM01.DBF C:\ORANT\DATABASE\KTKB\RBS01.DBF C:\ORANT\DATABASE\KTKB\RBS02.DBF C:\ORANT\DATABASE\KTKB\USERS01.DBF C:\ORANT\DATABASE\KTKB\TEMP01.DBF C:\ORANT\DATABASE\KTKB\TOOLS01.DBF C:\ORANT\DATABASE\KTKB\INDX01.DBF 4.2.3. Optimal Flexible Architecture – OFA Điều quan trọng khi tạo database là tổ chức các file hệ thống sao cho dễ dàng cho việc quản trị, thêm mới và bổ sung các dữ liệu vào database tận dụng hiệu quả các thao tác vào ra của hệ thống. OFA với các tiện ích giúp cho việc bảo trì database được đơn giản. Cáu trúc của OFA: ORACLE 9i – Kiến trúc và Quản trị Trang 34
- www.updatesofts.com 1. Đặt tên các thiết bị để nó có thể chứa đựng các dữ liệu Oracle server giống như một tập hợp. 2. Phân biệt các file sản phẩm, bao gồm các phần mềm và các công cụ Oracle server, các file quản trị, file script khởi tạo, 3. Lưu lại các phiên bản của các sản phẩm Oracle server 4. Tạo các thư mục lưu trữ dữ liệu Oracle server. 4.2.4. Cấu trúc thư mục phần mềm Oracle Thư mục Diễn giải Bin Chứa các file sản phẩm ở dạng nhị phân Dbs Chứa các file dữ liệu Lib Chứa các file thư viện sản phẩm của Oracle Orainst Chứa chương trình và các file phục vụ cho việc cài đặt Các file server, các file thư viện và các file khác cần thiết cho Rdbms database Plsql PL/SQL và các sản phẩm liên quan Sqlplus SQL*Plus Network Các sản phẩm Oracle Net8 Svrmgrl Server manager Cấu trúc thư mục con Thư mục Diễn giải Admin File scripts quản trị Demo File dữ liệu và các scripts minh hoạ Doc README file Install Các file phục vụ cho việc cài đặt Lib Các thư viện sản phẩm Log Các file log 4.2.5. Biến môi trường Trên hệ điều hành Windows, ta thiết lập các biến môi trường. Các biến này tương ứng với các tham số trong registry như: ORACLE_HOME , ORACLE_SID , NLS_LANG . Để tạo mới database, cần tạo mới biến môi trường ORACLE_SID : C:\set ORACLE_SID = U16 ORACLE 9i – Kiến trúc và Quản trị Trang 35
- www.updatesofts.com 4.3.CHU+N B CÁC THAM S TRONG PARAMETER FILE Khi tạo mới một database, ta cần quan tâm tới việc tạo parameter file. Parameter file chứa các thông tin cần thiết trong database, trong đó quan tâm nhất là các tham số sau: Tham số Diễn giải DB_NAME Tên định danh của database, tối đa 8 ký tự. Tên database phải trùng với giá trị của biến môi trường ORACLE_SID . CONTROL_FILES Liệt kê danh sách các control file sử dụng trong database. Tối thiểu có 01 control file trong database. Tuy nhiên, ta nên tạo 02 control files trở lên để đề phòng hỏng file. Các control files không cần thiết phải tồn tại. Khi tạo database, Oracle sẽ tạo các control files này DB_BLOCK_SIZE Xác định kích thước của một block sử dụng trong database. Kích thước này sẽ không thay đổi được sau khi database đã được tạo lập. Kích thước của các block được tính theo đơn vị K (Kilobytes). Kích thước của block thường được đặt bằng số nguyên lần luỹ thừa của 2. để tương ứng với số nguyên lần các block vật lý của hệ điều hành. Do đó, có thể tối ưu được số lần truy xuất đĩa cứng. Ví dụ: 2K, 4K, 8K, 16K, 32K, tuỳ theo phiên bản của Oracle và hệ điều hành. Thông thường, khi chuẩn bị parameter file của một database sắp được tạo, ta có thể sao chép lại nội dung của parameter file mẫu rồi chỉnh sửa lại một vài thông số trong đó như db_name , control_files , Parameter file mẫu của oracle thường được đặt ở thư mục: \ADMIN\SAMPLES\PFILE Ví dụ về nội dung của file tham số: file InitU16.ora db_name = U16 db_files = 1020 control_files = ("C:\ORANT\database\ctl1U16.ora", "C:\ORANT\database\ctl2U16.ora") db_file_multiblock_read_count = 16 db_block_buffers = 2000 shared_pool_size = 30000000 log_checkpoint_interval = 8000 processes = 100 dml_locks = 200 log_buffer = 65536 sequence_cache_entries = 30 sequence_cache_hash_buckets = 23 #audit_trail = true #timed_statistics = true background_dump_dest = C:\ORANT\rdbms80\trace user_dump_dest = C:\ORANT\rdbms80\trace db_block_size =8192 ORACLE 9i – Kiến trúc và Quản trị Trang 36
- www.updatesofts.com compatible = 8.0.4.0.0 sort_area_size = 65536 log_checkpoint_timeout = 0 remote_login_passwordfile = shared max_dump_file_size = 10240 4.4.CHU+N B INSTANCE PHC V QUN TR Sử dụng công cụ ORADIM để tạo instance phục vụ cho việc tạo database. ORADIM sẽ tạo một service dành riêng cho database. Đây là một công cụ thực hiện ở chế độ dòng lệnh. Công cụ này chỉ cần thiết khi user tạo mới, sửa đổi hay huỷ instance của database bằng tay. Trong trường hợp sử dụng công cụ Oracle Database Configuration Assistant để can thiệp vào database thì không cần thiết phải biết tới công cụ này. ORADIM Oracle Database Configuration Assistant Có thể tạo mới, start, stop, sửa đổi hay Chỉ có thể tạo mới hay huỷ bỏ databse. xoá bỏ instances. Không can thiệp tới Không thể start hay stop database database files Có thể sử dụng để sửa đổi instance Không thể để sửa đổi instance Dùng để tạo password file và service liên Dùng để tạo password file và service liên quan. Không tạo database được quan, instance và cả database Lưu ý: Ở các phiên bản trước của Oracle, công cụ ORADIM có tên là ORADIM80 4.4.1. Tạo một instance Cú pháp: C:\>ORADIM -NEW -SID SID | -SRVC SERVICE_NAME [-INTPWD INTERNAL_PWD] - SHUTTYPE SRVC | INST | SRVC, INST [- MAXUSERS NUMBER][-STARTMODE AUTO | MANUAL][-PFILE FILENAME] Với: -NEW Tạo mới instance phục vụ cho database. -SID SID Tên của instance được tạo (tên này thường được lấy chính là tên của database). -SRVC SERVICE_NAME Tên của service phục vụ database. -INTPWD INTERNAL_PWD Mật khẩu của Internal account sử dụng để quản trị database -MAXUSERS NUMBER Số lượng user tối đa định nghĩa trong password file -STARTMODE AUTO, MANUAL Đặt chế độ khởi động instance phục vụ (khởi động service trên máy chủ server) -PFILE FILENAME ORACLE 9i – Kiến trúc và Quản trị Trang 37
- www.updatesofts.com Chỉ rõ parameter file INIT .ORA -SHUTTYPE SRVC, INST Dừng instance phục vụ (stop service) Ví dụ: C:\> ORADIM -NEW -SID PROD -INTPWD MYPASSWORD1 -STARTMODE AUTO -PFILE C:\ORACLE\ADMIN\PROD\PFILE\INIT.ORA 4.4.2. Khởi động instance Cú pháp: C:\ORADIM -STARTUP -SID SID [-USRPWD USER_PWD] [-STARTTYPE SRVC | INST | SRVC, INST] [-PFILE FILENAME] Với: -STARTUP Khởi động instance phục vụ sẵn sàng cho việc tạo database. -SID SID Tên của instance được tạo (tên này thường được lấy chính là tên của database). -USERPWD USER_PWD Mật khẩu. -STARTTYPE SRVC, INST Chế độ khởi động là service hay instance Ví dụ: C:\> ORADIM -STARTUP -SID PUMA -STARTTYPE SRVC -PFILE C:\ORACLE\ADMIN\PROD\PFILE\INIT.ORA 4.4.3. Dừng instance Cú pháp: C:\>ORADIM -SHUTDOWN -SID SID [-USRPWD USER_PWD] [-SHUTTYPE SRVC | INST | SRVC, INST] [-SHUTMODE A | I | N] Với: -SHUTDOWN Dừng (stop) instance phục vụ. -SID SID Tên của instance được tạo (tên này thường được lấy chính là tên của database). -USERPWD USER_PWD Mật khẩu. -SHUTMODE Xác định chế độ dừng: A – abort mode, I I – Immediate mode, N – Normal mode Ví dụ: C:\> ORADIM -SHUTDOWN -SID PUMA -SHUTTYPE SRVC INST ORACLE 9i – Kiến trúc và Quản trị Trang 38
- www.updatesofts.com 4.4.4. Huỷ instance Cú pháp: C:\>ORADIM -DELETE -SID sid Ví dụ: C:\> ORADIM -DELETE -SID PUMA 4.5.T*O DATABASE 4.5.1. Khởi động Instance Sử dụng user với mức quyền DBA. Dùng công cụ ORADIM để tạo Instance. Khởi động Instance ở chế độ NOMOUNT và chỉ rõ file tham số sử dụng trong chương trình: SVRMGR> STARTUP NOMOUNT \ > PFILE=initU16.ora 4.5.2. Lệnh tạo database Sử dụng câu lệnh CREATE DATABASE để tạo database Cú pháp: CREATE DATABASE [database] [CONTROLFILE REUSE] [LOGFILE [GROUP integer] filespec [, [GROUP integer] filespec] ] [MAXLOGFILES integer] [MAXLOGMEMBERS integer] [MAXLOGHISTORY integer] [MAXDATAFILES integer] [MAXINSTANCES integer] [ARCHIVELOG|NOARCHIVELOG] [CHARACTER SET charset] [NATIONAL CHARACTER SET charset] [DATAFILE filespec [autoextend_clause] [, filespec [autoextend_clause] ]] filespec :== 'filename' [SIZE integer][K|M] [REUSE] autoextend_clause :== [AUTOEXTEND {OFF |ON [NEXT integer[K|M]] [MAXSIZE {UNLIMITED|integer[K|M]}] } ] Với: Database Tên của CSDL cần tạo (tên này giống với tên của tham số DB_NAME trong parameter file) ORACLE 9i – Kiến trúc và Quản trị Trang 39
- www.updatesofts.com CONTROLFILE REUSE Tên file tham số đã tồn tại được tái sử dụng LOGFILE GROUP Tên của log file được sử dụng MAXLOGFILES Số lượng tối đa các log file group cho CSDL MAXLOGMEMBERS Số lượng tối đa các log file member đối với một log file group MAXLOGHISTORY Số lượng tối đa các redo log trong một group DATAFILE filespec Tên file dữ liệu được sử dụng AUTOEXTEND Cho phép hoặc không cho phép mở rộng tự động các file dữ liệu MAXDATAFILES Số lượng tỗi đa các datafiles trong database MAXINSTANCES Số lượng lớn nhất các instance có thể đồng thời mount và open database 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 trữ các dữ liệu Ví dụ: tạo database SPOOL creU16.log STARTUP NOMOUNT PFILE=initU16.ora CREATE DATABASE U16 MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXDATAFILES 100 MAXLOGHISTORY 100 LOGFILE 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; ORACLE 9i – Kiến trúc và Quản trị Trang 40
- www.updatesofts.com 4.5.3. Oracle Database Assistant Để tạo database, Oracle hỗ trợ công cụ rất tiện lợi giúp người quản trị dễ dàng tạo database hơn thông qua giao diện đồ hoạ, đó là công cụ Oracle Database Assistant. Hình vẽ 12. Công cụ tạo hỗ trợ database – Oracle Database Assistant Với công cụ này, người quản trị chỉ việc khai báo các tham số cần thiết cho database. Oracle Database Assistant sẽ tự động kết sinh ra câu lệnh SQL tương ứng với các tham số đã được khai báo. Các câu lệnh SQL có thể được chạy luôn hoặc cũng có thể được lưu lại thành các script files sử dụng sau này. 4.5.4. File script ví dụ tạo một database File sqlu16.bat set ORACLE_SID=U16 C:\ORANT\bin\oradim -new -sid U16 -intpwd oracle -startmode auto -pfile C:\ORANT\database\initU16.ora C:\ORANT\bin\oradim -startup -sid U16 -starttype srvc,inst -usrpwd oracle -pfile C:\ORANT\database\initU16.ora C:\ORANT\bin\svrmgr @U16run.sql File U16run.sql spool C:\ORANT\database\spoolmain set echo on connect INTERNAL/oracle startup nomount pfile=C:\ORANT\database\initU16.ora CREATE DATABASE U16 LOGFILE 'C:\ORANT\database\logU161.ora' SIZE 1024K, 'C:\ORANT\database\logU162.ora' SIZE 1024K MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 DATAFILE 'C:\ORANT\database\Sys1U16.ora' SIZE 50M ORACLE 9i – Kiến trúc và Quản trị Trang 41
- www.updatesofts.com MAXDATAFILES 100 MAXINSTANCES 1 CHARACTER SET WE8ISO8859P1 NATIONAL CHARACTER SET WE8ISO8859P1; spool off File initU16.ora db_name = U16 db_files = 1020 control_files = ("C:\ORANT\database\ctl1U16.ora", "C:\ORANT\database\ctl2U16.ora") db_file_multiblock_read_count = 16 db_block_buffers = 2000 shared_pool_size = 30000000 log_checkpoint_interval = 8000 processes = 100 dml_locks = 200 log_buffer = 65536 sequence_cache_entries = 30 sequence_cache_hash_buckets = 23 #audit_trail = true #timed_statistics = true background_dump_dest = C:\ORANT\rdbms80\trace user_dump_dest = C:\ORANT\rdbms80\trace db_block_size =8192 compatible = 8.0.4.0.0 sort_area_size = 65536 log_checkpoint_timeout = 0 remote_login_passwordfile = shared max_dump_file_size = 10240 4.5.5. Lỗi xảy ra khi tạo database Lỗi xảy ra khi tạo database phần lớn do các nguyên nhân sau: Lỗi cú pháp lệnh tạo database Các file dữ liệu cần tạo lập đã tồn tại Lỗi do hệ điều hành, không có đủ quyền, không đủ chỗ trống, 4.5.6. Kết quả sau khi tạo database Kết thúc các bước trên ta thu được một database với: 02 data files được đặt trong SYSTEM tablespace. Các control files và các redo log files phục vụ cho database Hai user quản trị database và mật khẩu tương ứng là: SYS/change_on_install và SYSTEM/manager 01 Rollback segment SYSTEM Các bảng dữ liệu internal với dữ liệu trống ORACLE 9i – Kiến trúc và Quản trị Trang 42
- www.updatesofts.com 4.6.T*O DATA DICTIONARY CHO DATABASE Trong trường hợp tạo database bằng tay, sau khi tạo xong database, Oracle server sẽ tạo cho ta một database hoàn toàn trống. Các bảng trong database này đều được lưu trữ dưới dạng mã và ta không thể nào quan sát các thông tin trong nó được. Để có thể quan sát được các thông tin trong database. Ta cần tạo data dictionary cho database này. Data dictionary hay còn gọi là từ điển dữ liệu của database là tập hợp các views được thiết lập trong database cung cấp các thông tin về database. Các file tạo data dictionary cho database được Oracle cung cấp sẵn và thường được đặt trong thư mục \RDBMS\ADMIN Các dictionary views được phân loại và đặt trong các file SQL khác nhau. Một số file SQL hay dùng: Tên file SQL Diễn giải CATALOG.SQL Tạo các dictionary views cơ bản, trigger và store procedure cơ sở CATPROC.SQL Tạo các package cơ sở CATREP.SQL Tạo các chức năng Replication cho database Ngoài ra còn có rất nhiều file script khác. ORACLE 9i – Kiến trúc và Quản trị Trang 43
- www.updatesofts.com Chương 5. QUẢN TRỊ ORACLE DATABASE 5.1.PHÂN LO*I USERS Oracle là một hệ quản trị cơ sở dữ liệu lớn, chạy trên môi trường mạng. Để vận hành hệ thống được tốt, có thể có nhiều người sẽ cùng tham gia vào hệ thống với những vai trò khác nhau gọi là các user. Có thể phân ra làm một số loại user chính sau: Database Administrators Security Officers Application Developers Application Administrators Database Users Network Administrators 5.1.1. Database Administrators Do hệ thống Oracle database có thể là rất lớn và có nhiều users cùng tham gia vào hệ thống, và khi đó sẽ có một hay một số người chịu trách nhiệm quản lý hệ thống. Những người có vai trò như vậy được gọi là database administrator (DBA). Mỗi một database cần ít nhất 01 người để thực hiện công việc quản trị. Một database administrator có trách nhiệm thực hiện một số công việc sau: Cài đặt và nâng cấp Oracle server và các công cụ ứng dụng khác. Phân phối hệ thống lưu trữ và lên kế hoạch lưu trữ cho hệ thống cơ sở dữ liệu trong tương lai. Tạo những cấu trúc lưu trữ cơ bản như tablespaces phục vụ cho việc phát triển và hoạt động của các ứng dụng. Tạo các đối tượng trong database như tables, views, indexes sử dụng cho các ứng dụng được thiết kế. Thay đổi cấu trúc database khi cần thiết tuỳ theo các thông tin của các application. Quản lý các users và đảm bảo bảo mật hệ thống. Đảm bảo tương thích về bản quyền, phiên bản với hệ thống Oracle Điều khiển và quản trị các user access truy xuất tới database. QUản lý và tối ưu các truy xuất tới database. Lên kế hoạch backup (sao lưu) và recovery (phục hồi) các thông tin có trong database. Lưu trữ các archive data. Sao lưu và khôi phục database. Cập nhật các công nghệ mới đưa ra các câu hỏi bổ ích. 5.1.2. Security Officers Trong một số trường hợp, hệ thống đòi hỏi chế độ bảo mật cao. Khi đó cần đến một hay một nhóm người chuyên thực hiện công tác bảo vệ database gọi là security officers. Security officer có thể kết nối tới database, điều khiển và quản lý việc truy cập database của các users và bảo mật hệ thống. ORACLE 9i – Kiến trúc và Quản trị Trang 44
- www.updatesofts.com 5.1.3. Application Developers Application developer là người thiết kế và viết các ứng dụng database. Application developer có trách nhiệm thực hiện một số yêu cầu sau: Thiết kế và phát triển ứng dụng database. Thiết kế cấu trúc database cho từng ứng dụng. Đánh giá yêu cầu lưu trữ cho ứng dụng. Quy định các hình thức thay đổi cấu trúc database của ứng dụng. Thiết lập biện pháp bảo mật cho ứng dụng được phát triển. 5.1.4. Database Users Database users tương tác với database thông qua các ứng dụng và các tiện ích. Một user điển hình có thể thực hiện được một số công việc sau: Truy nhập, sửa đổi, và xoá huỷ các dữ liệu được phép Tạo các báo cáo đối với dữ liệu 5.1.5. Network Administrators Đối với database Oracle hoạt đông trên môi trường mạng, khi đó cần có một user thực hiện công việc quản trị mạng. User này có trách nhiệm đảm bảo các ứng dụng Oracle hoạt động trên môi trường mạng được tốt. 5.2.PH)NG TH2C XÁC NH4N Đ6C QUY7N TRUY NH4P 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ự động tạo ra ngay từ khi tạo database và được gán quyền DBA là: SYS và SYSTEM. SYS: được tạo tự động và gán quyền DBA. Mật khẩu mặc định là change_on_install . Có quyền sở hữu các bảng và các từ điển dữ liệu trong database. 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. Quyền DBA : Ngay khi tạo database, Oracle đã tạo sẵn một quyền gọi là "DBA". Quyền này cho phép thực hiện các thao tác quản trị đối với database. Lưu ý: Với quyền DBA, các users này sẽ có thể can thiệp được tới các quyền của các user khác sử dụng trong hệ thống. Vì thế, những quản trị viên database cần thay đổi mật khẩu của mình tránh sử dụng mật khẩu mặc định do Oracle cung cấp vì user khác có thể biết và sử dụng để truy nhập vào hệ thống một cách trái phép, gây xáo trộn hệ thống. 5.2.1. Phương thức xác nhận quyền Trong một số trường hợp quản trị viên database cần đến phương thức xác nhận quyền truy nhập đặc biệt do có thể lúc đó database chưa được mở, ví dụ như với các trường hợp shutdown hoặc startup database. Tuỳ thuộc vào việc quản trị database trên cùng một máy hay ở máy khác mà ta có thể sử dụng cơ chế xác nhận quyền truy nhập database bởi hệ điều hành hay hay password files. ORACLE 9i – Kiến trúc và Quản trị Trang 45
- www.updatesofts.com Hình vẽ 13. Phương thức xác nhận quyền 5.2.2. Xác nhận quyền bởi hệ điều hành Việc xác nhận quyền bởi hệ điều hành được tiến hành theo các bước: 1. Trong hệ điều hành Windows NT tạo một user’s group với tên ORA_ _DBA và một nhóm khác ORA_ _OPER với tương ứng với tên của instance, hoặc ORA_DBA và ORA_OPER (khi này ta không quan tâm tới instance). 2. Thêm một user vào group để khi truy cập vào hệ điều hành, user có thể tự động được xác định quyền DBA. 3. Đặt tham số REMOTE_LOGIN_PASSWORDFILE trong parameter file là NONE . 4. Kết nối tới database với mức quyền SYSDBA hay SYSOPER : CONNECT / AS { SYSDBA|SYSOPER } Ghi chú: NET8 được cài đặt trên các hệ điều hành Windows 95, Windows NT để giúp cho việc xác nhận quyền. Các phiên bản trước của Oracle sử dụng lệnh: CONNECT INTERNAL với cú pháp: CONNECT INTERNAL/pw AS SYSDBA. Lệnh: CONNECT INTERNAL hiện tại vẫn được sử dụng. Với việc xác nhận quyền truy nhập bởi hệ điều hành, ta không cần quan tâm tới các mức quyền (privilege) thay vào đó, ta cần quan tâm tới hai quyền được cung cấp bởi hệ điều hành là OSDBA và OSOPER OSOPER : là quyền cho phép user có thể STARTUP , SHUTDOWN , ALTER DATABASE OPEN/MOUNT , ALTER DATABASE BACKUP , ARCHIVE LOG , và RECOVER , ngoài ra còn có thêm cả quyền RESTRICTED SESSION . OSDBA : là quyền cho phép user có thể có được tất cả các quyền của OSOPER , ngoài ra còn có thêm một số mức quyền phục vụ quản trị database là ADMIN OPTION , và CREATE DATABASE ORACLE 9i – Kiến trúc và Quản trị Trang 46
- www.updatesofts.com 5.2.3. Xác nhận quyền bằng file mật khẩu Oracle hỗ trợ các tiện ích password cho phép kết nối tới Oracle Server sử dụng username và password. Việc truy cập vào database sử dụng password file được hỗ trợ bởi lệnh GRANT . Sử dụng file mật khẩu: 1. Tạo file mật khẩu bằng lệnh: orapwd file= password= entries= Với: fname là tên file mật khẩu password là mật khẩu của SYS hay INTERNAL entries là số lượng tối đa các quản trị viên được phép 2. Đặt tham số REMOTE_LOGIN_PASSWORDFILE là EXCLUSIVE hoặc SHARED . Với: EXCLUSIVE chỉ một instance có thể sử dụng file mật khẩu SHARED nhiều instance có thể dùng file mật khẩu 3. Gán quyền cho user GRANT SYSDBA TO admin; GRANT SYSOPER TO admin 4. Kết nối tới database theo cú pháp: SVRMGRL>CONNECT internal/admin AS SYSDBA Xem thông tin về các member trong file mật khẩu Thông tin về các member trong file mật khẩu được lưu trong view: V$PWFILE_USER . Nó cho biết có những user nào được gán quyền SYSDBA hay SYSOPER . Diễn giải một số cột trong V$PWFILE_USER : USERNAME Tên user SYSDBA Cột này nhận giá trị TRUE thì User này được gán quyền SYSDBA SYSOPER Cột này nhận giá trị TRUE thì User này được gán quyền SYSOPER Khi kết nối với database theo mức quyền SYSDBA hay SYSOPER , user đó sẽ được kết nối tới các schema mặc định, với SYSDBA thì shema mặc định là SYS , với SYSOPER thì shema mặc định là PUBLIC . 5.2.4. Thay đổi mật khẩu internal Sử dụng tiện ích ORADIM để tạo lại file mật khẩu. C:\>ORADIM -NEW -SID sid [-INTPWD internal_pwd][SRVC svrcname][MAXUSERS n][STARTMODE auto, manual][-PFILE filename] Với: ORACLE 9i – Kiến trúc và Quản trị Trang 47
- www.updatesofts.com sid tên instance internal_pwd mật khẩu internal account svrcname tên service n số lượng tối đa file mật khẩu auto or manual chế độ khởi động service là: manual hay automatic filename cho phép sử dụng file mật khẩu không phải là mặc định Để thay đổi mật khẩu INTERNAL ta thực hiện theo các bước sau: 1. Xoá mật khẩu cũ C:\> ORADIM -DELETE -SID sid 2. Tạo mật khẩu mới C:\> ORADIM -NEW -SID sid -INTPWD internal_pwd - MAXUSERS N 5.3.T*O PARAMETER FILE Hình vẽ 14. Khởi tạo tham số File tham số thông thường có tên init .ora . Theo mặc định, file tham số được đặt trong thư mục %ORACLE_HOME%\DATABASE . File tham số chỉ được đọc một lần khi khởi động instance. Khi thay đổi nội dung của file tham số, để sử dụng được các giá trị mới cần shut down rồi sau đó restart lại instance. 5.3.1. Sử dụng các tham số Các tham số có thể ảnh hưởng tới hiệu quả sử dụng database. 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 hay process. Đặt các hạn chế đối với tài nguyên database. ORACLE 9i – Kiến trúc và Quản trị Trang 48
- www.updatesofts.com 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. 5.3.2. 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: = . Một số tham số đều là tuỳ chọn và một số khác là bắt buộc ví dụ như DB_NAME . 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 không cần phải tuân theo một thứ tự nào cả (đặt trước, sau không quan trọng). 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 (,). 5.3.3. 5.3.4. Các tham số cơ bản Tham số Diễn giải CONTROL_FILES Tên của các control files. DB_BLOCK_BUFFERS Số lượng các data blocks được cach trong SGA. DB_BLOCK_SIZE Kích thước của một data block. Kích thước này nên được chọn bằng số số nguyên lần mũ 2, có thể là 2K, 4K, 8K, 16K và 32K tuỳ theo phiên bản của Oracle và của Hệ điều hành. DB_NAME Định danh database từ 8 ký tự trở xuống. Tham số này chỉ cần thiết khi tạo mới một database. 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. OPEN_CURSOR Số lượng cursor tối đa được đồng thời mở. ROLLBACK_SEGMENTS Số lượng rollback segments được sử dụng cho mỗi instance 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. SHARED_POOL_SIZE Kích thước của Shared Pool ORACLE 9i – Kiến trúc và Quản trị Trang 49
- www.updatesofts.com Ví dụ một parametersfile: Hình vẽ 15. File tham số ví dụ 5.4.START VÀ SHUT DOWN DATABASE 5.4.1. Các bước Start và Shut down database Start Instance ở chế độ Nomount Ta có thể khởi động một Instance mà không cần thiết phải gắn với một database cụ thể. Khi khởi động Instance, các công việc sau đây sẽ được thực hiện: Đọc file tham số : init .ora Thu xếp vùng bộ nhớ SGA Khởi động các background process Mở các trace file và các Alert file Lưu ý: Tên database nằm trong tham số DB_NAME của file tham số. Câu lệnh: STARTUP NOMOUNT; Start Instance ở chế độ mount Để thực hiện một vài thao tác đặc biệt khi vận hành database, ta có thể khởi động một instance và mount database nhưng chưa mở database. Ví dụ như: Đổi tên datafiles Enable hoặc Disable các redo log files Thực hiện phục hồi dữ liệu (recovery). Các công việc khi mount database: Gắn database với một instance đã khởi động Định vị và mở các control files theo như thông số có trong file tham số Đọc nội dung của control file và xác định trạng thái cho các data files và các redo log files. ORACLE 9i – Kiến trúc và Quản trị Trang 50
- www.updatesofts.com Câu lệnh: STARTUP MOUNT; Start Instance ở chế độ open Sau khi databsae đã được mở, những người sử dụng hợp lệ có thể kết nối tới database và thực hiện các thao tác truy nhập vào database. Việc mở database diễn ra theo hai bước: Mở các online data files Mở các online redo log files. Câu lệnh: STARTUP OPEN; Hình vẽ 16. Các bước khởi động và dừng Instance Khôi phục Instance Trong một số trường hợp Instance có thể gặp lỗi và không thể làm việc được. Ví dụ như: có lỗi hệ thống xảy ra. Việc khôi phục Instance sẽ được thực hiện theo các bước sau: Khôi phục lại tất cả các dữ liệu có thể khôi phục được (dữ liệu chưa được lưu vào data files nhưng đã lưu vào trong online redo log files) Mở database. Khôi phục lại tất cả các transaction chưa được commit. Close database Đây là bước đầu tiên khi tắt hẳn một database. Sau khi đóng database, tất cả các dữ liệu còn trong bộ đệm (redo log buffer cache) sẽ được ghi ra file (online redo log file). Các control file vẫn được mở. Dismount database Dissmount database sẽ đóng nốt các control file thuộc database đang mở. Shoutdown Instance Đây là bước cuối cùng, intance sẽ được tắt hẳn. Các trace file và Alert file của instance bị đóng. Các background process bị dừng và vùng nhớ SGA cấp cho instance bị thu hồi. ORACLE 9i – Kiến trúc và Quản trị Trang 51
- www.updatesofts.com 5.4.2. Start database Cú pháp: STARTUP [FORCE] [RESTRICT] [PFILE=filename] [EXCLUSIVE | PARALLEL | SHARED] [OPEN [RECOVER][database]|MOUNT |NOMOUNT] Với: OPEN cho phép các users truy cập vào database. MOUNT mounts database sẵn sàng cho các thao tác DBA, người sử dụng chưa truy cập được database. NOMOUNT Bố trí SGA và khởi động các background process, chưa sẵn sàng cho DBA. EXCLUSIVE chỉ cho phép instance hiện thời truy cập vào database. PARALLEL cho phép nhiều instances cùng được gắn với database (sử dụng Oracle Parallel Server) SHARED tương tự như PARALLEL. PFILE=parfile cho phép sử dụng file tham số không phải là mặc định để xác định cấu hình cho instance. FORCE huỷ bỏ các instance đang chạy trước đó, khởi động instance bình thường. RESTRICT chỉ cho phép các users truy cập với chế độ RESTRICTED. SESSION quyền truy nhập vào database. RECOVER bắt đầu khôi phục dữ liệu khi database. 5.4.3. Thay đổi tính sẵn dùng của database hiện thời Khởi động database ở chế độ NOMOUNT Thực hiện sửa đổi database theo lệnh: ALTER database { MOUNT | OPEN | OPEN READ ONLY | OPEN READ WRITTE} Với: MOUNT Gắn database với instance. Lúc này ta chỉ có thể thực hiện các thao tác quản trị trên database mà chưa thể sử dụng database được. OPEN READ WRITE Mở database, sẵn sàng cho việc sử dụng database, cả đọc lẫn ghi. OPEN READ ONLY Mở database nhưng chỉ cho đọc database như sử dụng các câu lệnh truy vấn chẳng hạn. Các thao tác ghi không thể thực hiện được. Tuỳ chọn này được sử dụng khi ta cần sao chép các redo log files của database. OPEN Tương tự như OPEN READ ONLY, đây là biểu diễn mặc định của OPEN READ WRITE. ORACLE 9i – Kiến trúc và Quản trị Trang 52
- www.updatesofts.com 5.4.4. Shut down database Có một số chế độ tắt database tương ứng với các khả năng khác nhau. Hình vẽ 17. So sánh các chế độ tắt database Cú pháp: SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ] Với: NORMAL Không cho tạo thêm các connection tới database, chờ cho connection hiện thời kết thúc thì shutdown database. TRANSACTION Không cho phát sinh thêm các transaction, chờ cho transaction hiện thời kết thúc thì shutdown database. IMMEDIATE Kết thúc luôn transaction hiện thời nhưng vẫn chờ hệ thống commit hay rollback rồi mới shutdown database. ABORT Shutdown database tức thời không đòi hỏi bất cứ điều kiện gì. Tương ứng với các cách tắt database trên, ta có biểu đồ về thời gian như sau: ORACLE 9i – Kiến trúc và Quản trị Trang 53
- www.updatesofts.com Hình vẽ 18. So sánh thời gian giữa các cách tắt database Hình vẽ trên so sánh tiêu tốn về thời gian khi thực hiện một thao tác chuyển đổi dữ liệu: 1. Thực hiện truy vấn để lấy dữ liệu 2. Thực hiện lệnh INSERT và DELETE để cập nhật và chuyển đổi dữ liệu 3. Phát lệnh COMMIT để cập nhật dữ liệu vào database 4. Huỷ bỏ liên kết tới database. 5.4.5. Thay đổi trạng thái của database Cú pháp: ALTER system { SUSPEND | RESUME } SUSPEND Đưa database vào trạng thái treo. Tạm thời không cho phép thực hiện các thao tác vào ra đối với datafiles và control files. Thao tác này được thực hiện khi ta chuẩn bị backup database. RESUME Ngược lại với SUSPEND, thao tác này sẽ đưa database trở lại trạng thái bình thường sau khi đã backup xong database. Ví dụ: SQL> ALTER SYSTEM SUSPEND; System altered SQL> SELECT database_status FROM v$instance; DATABASE_STATUS SUSPENDED SQL> ALTER SYSTEM RESUME; System altered SQL> SELECT database_status FROM v$instance; ORACLE 9i – Kiến trúc và Quản trị Trang 54
- www.updatesofts.com DATABASE_STATUS ACTIVE 5.4.6. Tạm treo và phục hồi Database Oracle9 i cung cấp chức năng suspend/resume. Quản trị viên sử dụng lệnh ALTER SYSTEM SUSPEND để tạm treo database, dừng mọi thao tác truy xuất vào ra đối với các datafiles và control files. Khi database ở trạng thái tạm treo, các thao tác vào ra ( I/O operations ) đang thực hiện sẽ được kết thúc và những truy cập vào database mới phát sinh sẽ được đẩy vào queue. Thực hiện lệnh ALTER SYSTEM RESUME để khôi phục lại tình trạng bình thường của database. Ta sử dụng lệnh ALTER SYSTEM SUSPEND để tạm treo một database, ngăn thực hiện các thao tác vào ra ( I/O ) đối với các datafiles và control files. Do đó, cho phép database có thể dễ dàng thực hiện các thao tác back up. Khi thực hiện việc treo database tất cả các thao tác vào ra đang có sẽ được tiếp tục cho phép thực hiện cho đến khi hoàn tất, các phép thao tác vào ra mới phát sinh sau này sẽ được tạm thời đưa vào queue chờ xử lý sau. Lệnh suspend (tạm treo) database được thực hiện đối với database chứ không phải chỉ đối với instance. Do vậy, ở trong môi trường Oracle Real Application Clusters, một khi lệnh suspend được phát ra thì sau đó một cơ chế khoá sẽ được thiết lập và chặn tất cả các yêu cầu gửi tới instance. Sử dụng lệnh ALTER SYSTEM RESUME để phục hồi (resume) lại các hoạt động thông thường của database. Ta cũng có thể chỉ rõ SUSPEND và RESUME từ các instances khác nhau. Ví dụ, nếu các instances 1, 2, và 3 đang chạy, và ta phát lệnh ALTER SYSTEM SUSPEND từ instance 1 , sau đó ta cũng có thể phát lệnh RESUME từ các instances 1, 2 , hay 3 đều như nhau. Khả năng suspend/resume là rất hữu ích cho hệ thống nó cho phép ta thực hiện mirror một ổ đĩa hay một file rồi sau đó sử dụng vào việc sao lưu, phục hồi dữ liệu cho toàn bộ hệ thống. . Tuy vậy, đặc điểm suspend/resume không thay thế cho các thao tác normal shutdown database vì khi đó việc sao chép database được suspend có thể chứa cả các dữ liệu cập nhật chưa được commit . Cau lệnh sau minh hoạ việc sử dụng lệnh ALTER SYSTEM SUSPEND/RESUME . Sử dụng thông tin cung cấp trong V$INSTANCE để biết được trạng thái của database . SQL> ALTER SYSTEM SUSPEND; System altered SQL> SELECT DATABASE_STATUS FROM V$INSTANCE; DATABASE_STATUS SUSPENDED SQL> ALTER SYSTEM RESUME; System altered SQL> SELECT DATABASE_STATUS FROM V$INSTANCE; DATABASE_STATUS ACTIVE ORACLE 9i – Kiến trúc và Quản trị Trang 55
- www.updatesofts.com 5.4.7. Đặt chế độ hoạt động tĩnh cho database Oracle9 i cho phép đưa database vào chế độ hoạt động tĩnh ( quiesced state ), Theo đó chỉ cáo các DBA transactions, queries , và các lệnh PL/SQL là được phép thực hiện. Trạng thái này cho phép người dùng thực hiện các thao tác quản trị một cách an toàn. Sự dụng câu lệnh ALTER SYSTEM QUIESCE RESTRICTED để đưa database về chế độ hoạt động tĩnh. 5.5. Đ6T TR*NG THÁI TĨNH CHO DATABASE Có nhiều khi ta cần phải đưa database vào trạng thái mà chỉ có các DBA transactions , queries (truy vấn), fetches (tìm kiếm dữ liệu), hay các câu lệnh PL/SQL là được phép thực hiện. Chế độ này được gọi là quiesced state - tạm dịch là chế độ tĩnh. Chế độ này cho phép quản trị viên có thể thực hiện một số thao tác không an toàn lắm trên database bao gồm các thao tác sau đây: Các thao tác có thể gặp lỗi nếu đồng thời có một user transactions truy cập vào cùng một đối tượng. Ví dụ như khi thay đổi table, thêm mới cột dữ liệu vào một table đang có và không yêu cầu khoá ( no-wait lock is required ). Các thao tác không mong muốn gây ảnh hưởng tức thì giữa các user transactions xảy ra đồng thời. Ví dụ khi có một thủ tục chứa nhiều bước thao tác trên một table chẳng hạn như table ban đầu được export dữ liệu, rồi bị xoá đi và cuối cùng lại được import dữ liệu trở lại. Cùng lúc đó có user khác muốn truy cập vào table và ngay tại thời điểm table vừa bị huỷ. Khi này sẽ phát sinh lỗi hệ thống. Nếu không áp dụng trạng thái tĩnh cho database, thì ta cần phải shutdown database rồi open lại nó ở chế độ restrict. Và việc này sẽ trở nên nghiêm trọng hơn khi hệ thống yêu cầu phải chạy liên tục 24 x 7. Áp dụng chế độ tĩnh cho database sẽ giảm bớt đi các hạn chế vì restriction vì nó loại bớt đi được các xấu xảy ra với database. 5.5.1. Đưa Database vào trạng thái tĩnh Để đưa database vào trạng thái tĩnh, đơn giản ta chỉ cần sử dụng lệnh: ALTER SYSTEM QUIESCE RESTRICTED Tất cả các non-DBA active sessions sẽ được tiếp tục xử lý cho tới khi chúng chuyển sang trạng thái inactive . Một session được xem là active nếu lúc đó nó đang có các phép thực như transaction, query, fetch, hay đang xử lý một câu lệnh PL/SQL ; hoặc cũng có thể là session đó đang nắm giữ phần tài nguyên chia sẻ ( shared resources) . Khi tất cả các non-DBA sessions chuyển sang trạng thái inactive, câu lệnh ALTER SYSTEM QUIESCE RESTRICTED kết thúc và database được xem như là chuyển sang trạng thái tĩnh quiesce state. Trong môi trường Oracle Real Application Clusters , câu lệnh này có ảnh hưởng tới tất cả các instances, chứ không chỉ là đối với instance nơi phát ra câu lệnh. Lệnh ALTER SYSTEM QUIESCE RESTRICTED có thể phải chờ trong một thời gian khá dài để cho active sessions chuyển sang trạng thái inactive. Nếu ta huỷ bỏ yêu cầu, hoặc nếu session bị kết thúc một cách đột ngột vì nhiều lý do khác nhau thì Oracle sẽ tự động phục hồi lại (undo) trạng thái trước khi thực hiện lệnh. Nếu một truy vấn được đưa ra bởi các Oracle Call Interface (OCI), thì câu lệnh ALTER SYSTEM QUIESCE RESTRICTED sẽ không chờ fetch hết tất cả các dữ liệu mà chỉ chờ fetch xong dòng dữ liệu hiện thời mà thôi. ORACLE 9i – Kiến trúc và Quản trị Trang 56