ORACLE 9i - Kiến trúc và quản trị

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ớikí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

www.updatesofts.com

ORACLE 9i – Kiến trúc và Quản trị Trang 3

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ìnhthườ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

www.updatesofts.com

ORACLE 9i – Kiến trúc và Quản trị Trang 4

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 tablespacegiữa các database.99

9.6. TẠO TABLESPACE . 100

www.updatesofts.com

ORACLE 9i – Kiến trúc và Quản trị Trang 5

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

www.updatesofts.com

ORACLE 9i – Kiến trúc và Quản trị Trang 6

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

www.updatesofts.com

ORACLE 9i – Kiến trúc và Quản trị Trang 7

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 Tablespacemớ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

www.updatesofts.com

ORACLE 9i – Kiến trúc và Quản trị Trang 8

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

pdf142 trang | Chuyên mục: Oracle | Chia sẻ: dkS00TYs | Lượt xem: 2601 | Lượt tải: 2download
Tóm tắt nội dung ORACLE 9i - Kiến trúc và quản trị, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ến trúc và Quản trị Trang 135 
2 rows selected. 
Diễn giải một số cột dữ liệu 
Tên cột Diễn giải 
SES_ADDR Địa chỉ của session, lấy được từ V$SESION.SADDR 
XIDUSN Số hiệu của Rollback segment được sử dụng bởi transaction 
UBAFIL, 
UBABLK, 
UBASQN,UBAREC 
Vị trí hiện thời của rollback segment mà transaction sẽ ghi vào 
USED_UBLK Số hiệu block undo được tạo ra bởi transaction 
START_UEXT, 
START_UBAFIL, 
START_UBABLK 
Số hiệu của extent (file, block) thuộc rollback segment mà 
transaction bắt đầu ghi dữ liệu 
11.5.CÁC V;N Đ7 LIÊN QUAN TI ROLLBACK SEGMENT 
11.5.1. Thiếu không gian cho các transactions 
Nguyên nhân 
Do một transaction không được sử dụng nhiều rollback segments nên có thể xảy ra tình 
trạng thiếu vùng không gian cho các rollback segment và gây ra lỗi (ORA-01562). Nguyên 
nhân có thể là một trong các trường hợp sau: 
 Không có đủ không gian trong tablespace (ORA-01560) 
 Số lương các extents trong rollback segment đã đạt tới giá trị MAXEXTENTS và không 
thể bổ sung thêm các extent vào rollback segment (ORA-01628) 
Giải pháp 
Với lỗi ORA-01560: 
 Mở rộng thêm các data files trong tablespace 
 Đặt chế độ cho các data files là AUTOEXTEND 
 Bổ sung mới data file vào tablespace 
Với lỗi ORA-01628: 
 Tăng tham số MAXEXTENTS của rollback segment 
 Huỷ và tạo lại rollback segment với kích thước của extent lớn hơn 
11.5.2. Lỗi đọc dữ liệu không đồng nhất 
Nguyên nhân 
Oracle server cố gắng đảm bảo các câu lệnh sẽ chỉ xử lý trên các dữ liệu đã được commit. Vì 
thế, các dữ liệu chưa commit sẽ không được sử dụng. Trong trường hợp Oracle server không 
tạo được các bản lưu giá trị cũ các dữ liệu (read-consistent image of data), user sẽ nhận 
được lỗi ORA-01555 snapshot too old. Lỗi này xảy ra khi transaction thay đổi các dữ 
liệu đã được commit và: 
 Transaction slot có trong phần rollback header đang được sử dụng 
www.updatesofts.com 
ORACLE 9i – Kiến trúc và Quản trị Trang 136 
 Giá trị ban đầu (before-image) trong rollback segment được ghi đè lên bởi một 
transaction khác 
Giải pháp 
 Tăng chỉ số MINEXTENTS 
 Mở rộng kích thước extent 
 Tăng giá trị OPTIMAL 
11.5.3. Chặn session 
Hình vẽ 57. Chặn session 
Vấn đề 
Khi một extent trong rollback segment được ghi đầy, Oracle server sẽ tiếp tục sử dụng 
extent kế tiếp theo cơ chế xoay vòng. Trong trường hợp extent kế tiếp vẫn đang trong tình 
trạng active, transaction sẽ không sử dụng được nó. Mặt khác, nó cũng không thể bỏ qua 
extent kế tiếp để chuyển tới extent sau nữa nếu nó rỗi. Khi đó, rollback segment sẽ được bổ 
sung thêm các extent. Việc làm này làm cho rollback segment ngày một mở rộng và quản trị 
viên cần phải can thiệp để hạn chế việc mở rộng này. 
Giải pháp 
Quản trị viên database cần thực hiện kiểm tra thông tin của các transaction đang được thực 
hiện thông qua việc lấy thông tin từ các view V$ROLLSTAT, V$TRANSACTION, V$SESSION 
để phát hiện các transaction đang bị cản trở, từ đó thực hiện việc điều chỉnh cho phù hợp. 
Công việc kiểm tra và giám sát này được thực hiện bằng tay bởi người quản trị database. 
Ví dụ: Xem thông tin về các transactions đang được thực hiện 
SVRMGR> SELECT s.sid, s.serial#, t.start_time, t.xidusn, 
s.username 
2> FROM v$session s, v$transaction t, v$rollstat r 
3> WHERE s.saddr = t.ses_addr 
4> AND t.xidusn = r.usn 
www.updatesofts.com 
ORACLE 9i – Kiến trúc và Quản trị Trang 137 
5> AND ((r.curext = t.start_uext-1) OR 
6> ((r.curext = r.extents-1) AND t.start_uext=0)); 
SID SERIAL# START_TIME XIDUSN USERNAME 
--- ------- ------------- ------ -------- 
9 27 10/30/97 21:10:41 2 SYSTEM 
1 row selected. 
www.updatesofts.com 
ORACLE 9i – Kiến trúc và Quản trị Trang 138 
Chương 12. QUẢN LÝ TEMPORARY SEGMENTS 
12.1.TEMPORARY SEGMENTS 
Temporary segments được sử dụng khi Oracle server thực các hiện câu lệnh sắp xếp mà 
không thể sử dụng vùng không gian trong bộ nhớ do không đủ, ví dụ như: 
 SELECT. . . ORDER BY 
 CREATE INDEX 
 SELECT DISTINCT 
 SELECT. . . GROUP BY 
 SELECT. . . UNION 
Dung lượng bộ nhớ cần thiết cho tiến trình sắp xếp được xác định dựa trên tham số khởi tạo 
SORT_AREA_SIZE. Trong một số trường hợp, nhiều thao tác sắp xếp cùng được sử dụng và 
cần nhiều bộ nhớ hơn. Khi này bộ nhớ trong của máy là không thể đáp ứng được và kết quả 
của việc sắp xếp đó cần phải được tạm thời lưu lên đĩa. Vùng đĩa lưu trữ các dữ liệu trung 
gian này chính là temporary segments. 
Temporary segments trong tablespace được Oracle server tạo lập với mục đích sử dụng làm 
vùng nhớ trung gian hỗ trợ thao tác sắp xếp. 
Hình vẽ 58. Temporary segment 
www.updatesofts.com 
ORACLE 9i – Kiến trúc và Quản trị Trang 139 
12.1.1. Phân loại temporary segments 
Các temporary segments có thể được tạo trên một permanent tablespace hoặc trên một 
temporary tablespace. User có thể sử dụng một trong các kiểu tablespaces này để sắp xếp. 
Hình vẽ 59. Phân loại temporary segment 
Temporary Tablespace 
Một temporary tablespace được sử cho các temporary segments tương ứng và không chứa 
bất kỳ segment nào có kiểu khác. Ta có thể tạo các temporary tablespace theo câu lệnh SQL 
sau: 
CREATE TABLESPACE tablespace_name TEMPORARY 
DATAFILE filespec [autoextend_clause] 
[ , filespec [autoextend_clause]] ... 
Một permanent tablespace có thể chuyển đổi thành dạng temporary tablespace bằng cách 
sử dụng câu lệnh: 
ALTER TABLESPACE tablespace_name TEMPORARY 
Lưu ý: với câu lênh trên, tablespace không được phép chứa bất kỳ một đối tượng thường trú 
nào (như: table, store procedure, ...). Một temporary tablespace có thể chuyển đổi lại thành 
permanent tablespace thông qua câu lệnh SQL dưới đây: 
ALTER TABLESPACE tablespace_name PERMANENT 
Oracle server có thể tạo một temporary segment trong một permanent tablespace với số 
điều kiện sau: 
 User thực hiện câu lệnh sắp xếp cần đến vùng không gian trên đĩa. 
 User chạy câu lệnh mà nó đã được gán cho một permanent tablespace để thực hiện 
sắp xếp. 
Khi một permanent tablespace được sử dụng cho việc sắp xếp, một instance có thể có một 
hoặc nhiều temporary segment trong tablespace. 
Một temporary segment sẽ được hủy bởi tiến trình nền SMON khi kết thúc câu lệnh sắp xếp 
và vùng không gian đã cấp phát sẽ được giải phóng để cho các đối tượng khác của database 
www.updatesofts.com 
ORACLE 9i – Kiến trúc và Quản trị Trang 140 
sử dụng. Permanent tablespaces được sử dụng cho việc sắp xếp, có ba vùng không gian 
trong tablespace có thể được phân vùng khác nhau. Thông thường, mỗi tablespace nên 
được sử dụng cho từng tiến trình sắp xếp khác nhau. 
Khi một temporary tablespaces được sử dụng cho các temporary segments, Instance chỉ tạo 
một segment dùng để sắp xếp cho tablespace. Một vài transactions cần đến sắp xếp trên ổ 
đĩa có thể sử dụng cùng segment. Tuy nhiên, một extent thì không thể cùng chia sẻ đồng 
thời cho nhiều transactions khác nhau. 
12.1.2. Sử dụng các Sort Segments 
Sort segment được tạo bởi câu lệnh sắp xếp đầu tiên sử dụng tới temporary tablespace cho 
việc sắp xếp. Và sort segment chỉ bị hủy khi tắt (shutdown) database. Việc này làm giảm bớt 
số lần cấp phát và thu hồi các sort segments phục vụ cho công việc sắp xếp, làm tăng năng 
suất hệ thống. Oracle không hạn chế số lượng các extents cấp phát cho mỗi sort segment 
thuộc một temporary tablespace. 
12.1.3. Sort Extent Pool 
Oracle server lưu lại chi tiết sort segment trong vùng Sort Extent Pool của vùng nhớ SGA, 
mỗi câu lệnh cần tới các vùng trống để thực hiện sắp xếp có thể tìm các extent rỗi trong 
vùng nhớ này. 
12.2.C;P PHÁT KHÔNG GIAN CHO TEMPORARY SEGMENT 
Temporary tablespaces được sử dụng để tăng hiệu quả sắp xếp dữ liệu. Kích thước của các 
extents trong temporary segment được xác định bởi DEFAULT STORAGE clause của 
tablespace tương ứng. 
Do lượng dữ liệu ghi lên temporary segment bằng phần nguyên lần giá trị 
SORT_AREA_SIZE. Do vậy, ta nên đặt INITIAL = NEXT = (n*SORT_AREA_SIZE)+ 
DB_BLOCK_SIZE 
Giá trị PCTINCREASE=0, để đảm bảo các extents có cùng kích thước. 
www.updatesofts.com 
ORACLE 9i – Kiến trúc và Quản trị Trang 141 
12.3.THÔNG TIN V7 CÁC TEMPORARY SEGMENT 
Hình vẽ 60. Thu nhận thông tin về database instance 
Ta có thể lấy được các thông tin về temporary segment trong một số bảng từ điển dữ liệu: 
DBA_SEGMENTS: chứa thông tin về tất cả các loại segments trong database. 
V$SORT_SEGMENT: cho biết trạng thái của các sort extent pool (vùng không gian sắp xếp). 
Với từ điển dữ liệu này, ta có thể biết được những thông tin sau: 
Tên cột Diễn giải 
TABLESPACE_NAME Tên temporary tablespace 
EXTENT_SIZE Kích thước của extent 
TOTAL_EXTENTS Tổng số các extents 
TOTAL_BLOCKS Tổng số các blocks 
USED_EXTENTS Số lượng extents đã sử dụng 
USED_BLOCKS Số lượng blocks đã sử dụng 
FREE_EXTENTS Số lượng extents còn trống 
FREE_BLOCKS Số lượng blocks còn trống 
MAX_SORT_SIZE Kích thước tối đa của vùng dữ liệu sắp xếp 
MAX_SORT_BLOCKS Số lượng blocks tối đa dùng để sắp xếp dữ liệu 
Ví dụ: 
SVRMGR> SELECT tablespace_name, extent_size, 
2> total_extents, max_sort_blocks 
3> FROM v$sort_segment; 
TABLESPACE_NAME EXTENT_SIZ TOTAL_EXTE MAX_SORT_B 
--------------- ---------- ---------- ---------- 
TEMP 128 1 128 
1 row selected. 
www.updatesofts.com 
ORACLE 9i – Kiến trúc và Quản trị Trang 142 
MAX_SORT_SIZE và MAX_SORT_BLOCKS là số lượng các extents và các blocks sử dụng bởi 
phép sắp xếp lớn nhất. Thông tin này là hữu ích trong việc điều chỉnh kích thước của 
temporary tablespace 
V$SORT_USAGE: cho biết thông tin về các sắp xếp hiện có của instance, ta kết hợp với 
V$SESSION để biết thêm các thông tin: 
Ví dụ: 
SVRMGR> SELECT s.username, u."USER", u.tablespace, 
2> u.contents, u.extents, u.blocks 
3> FROM v$session s,v$sort_usage u 
4> WHERE s.saddr=u.session_addr; 
USERNAME USER TABLESPACE CONTENTS EXTENTS BLOCKS 
-------- ----- ---------- --------- ------- ------ 
SYSTEM SYS TEMP TEMPORARY 1 128 
1 row selected. 

File đính kèm:

  • pdfORACLE 9i - Kiến trúc và quản trị.pdf
Tài liệu liên quan