Tải bản đầy đủ (.pdf) (14 trang)

Đào tạo Oracle cơ bản - Giáo trình kiến trúc và quản trị Oracle 8i - Phần 3 ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (184.52 KB, 14 trang )

Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 26
COMMIT;
END;
Tên trigger: log_logon
Trigger này sẽ đợc kích hoạt ngay sau khi ngời sử dụng logon tới một instance.
Trigger này sẽ đợc kích hoạt nếu ngời sử dụng là SYS hay bắt đầu bởi OPS$.
Khi trigger đợc kích hoạt nó sẽ thêm mới một dòng dữ liệu vào bảng event_log.

7 Bảo trì các file điều khiển - Contron files
7.1 Control file
Control file trong một database là các file nhị phân cần thiết cho việc khởi động và hoạt động của
database. Mỗi control file đợc kết hợp với duy nhất một Oracle database.
Control file đợc cập nhật bởi Oracle server trong quá trình sử dụng database, Các thông tin trong
control file chỉ có thể đợc sửa đổi bởi Oracle server; DBA hay những ngời sử dụng khác không cáo
quyền sửa đổi control file.
Control file chứa
Tên của database.
Định danh của database.
Time stamp lúc tạo lập database.
Tên, vị trí của các file dữ liệu.
Thông tin về tablespace.
Log history.
Vị trí và trạng thái của các archived logs.
Vị trí và trạng thái của backups.
Số log sequence number hiện thời.
Thông tin checkpoint.
Control file có hai phần
Reusable - có thể dùng lại


Not reusable - không thể dùng lại
7.2 Tạo nhiều control file
Cùng với online redo log files, Oracle cho phép có thể có nhiều các control file đợc mở ra và ghi vào
đồng thời. Có thể mở tới 8 control file.
Ta có thể tạo nhiều control file theo hai cách
Tạo nhiều control file ngay sau khi CSDL đợc tạo lập
Thêm vào các control file, khi CSDL đã đợc tạo lập.
Các bớc tạo control file
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 27
Tắt (shut down) database
Sao chép control file hiện thời
Thêm mới tên control file ở tham số CONTROL_FILES
Khởi động lại database
Mục đích của việc tạo nhiều control file: đảm bảo an toàn trớc những sai, lỗi của chính các file điều
khiển. Một điều cần lu ý là các bản sao của các control file cần đợc đặt tại các vùng đĩa vật lý khác
nhau.
Trong trờng hợp một control file bị lỗi, ta có thể khởi động lại instance và sử dụng bản sao của các
control file mà không cần phải thực hiện khôi phục lại database.
7.3 Lấy thông tin về control file
Thông thờng các thông tin về hệ thống đợc lu trong các base table. Ta có thể dễ dàng lấy đợc
các thông tin liên quan tới các control file bằng câu lệnh SQL. Thông tin về các control file đợc lu
trong base table có synonym là V$controlfile. Ví dụ:
SQL> SELECT name
2 FROM v$controlfile;
NAME
/
DISK1/control01.con

/DISK2/control02.con
2 rows selected.
Để có đợc thông tin về các section khác nhau của cùng một control file, ta có thể xem trong view
V$controlfile_record_section. Ví dụ:
SQL>SELECT type, record_size, records_total, records_used
2 FROM v$controlfile_record_section
3 WHERE type=DATAFILE;
TYPE RECORD_SIZ RECORDS_TO RECORDS_US

DATAFILE 180 30 4
1 row selected.
Ta cũng có thể tham khảo thêm trong các bảng sau:
V$PARAMETER
V$BACKUP
V$DATAFILE
V$TEMPFILE
V$TABLESPACE
V$ARCHIVE
V$LOG
V$LOGFILE
V$LOGHIST
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 28
V$ARCHIVED_LOG
V$DATEBASE
8 Bảo trì các Redo log files
8.1 Redo log file
Oracle Server duy trì các online redo log file nhằm đảm bảo việc giảm thiểu việc mất mát dữ liệu.

Redo log file ghi lại tất cả các thay đổi đối với dữ liệu trong vùng database buffer cache.
Redo log file có thể đợc sử dụng trong tình huống khôi phục lại các dữ liệu đã commit nhng cha kịp
ghi ra các data files khi instance gặp phải sự cố.
Cấu trúc của redo log file
Quản trị viên CSDL có thể điều chình Oracle database để duy trì nhiều online redo log file tránh việc
mất mát thông tin CSDL.
Nhóm các online redo log: Là tập hợp nhiều online redo log file giống y hệt nhau. Tiến trình nền
LGWR sẽ đồng thời ghi lại cùng một thông tin vào tất cả các online log file. Oracle Server yều cầu có ít
nhất là 02 online redo log file. Mỗi một online redo log file trong một group gọi là một member (thành
viên)
Tạo lập các redo log file ban đầu
Các online redo log file đợc khởi tạo trong khi CSDL đợc tạo. Có một vài tham số cần quan tâm:
Tham số MAXLOGFILES trong lệnh CREATE DATABASE: ứng với số lợng tối đa các online
redo log groups. Giá trị của MAXLOGFILES tuỳ thuộc vào từng hệ điều hành.
Tham số MAXLOGMEMBERS trong lệnh CREATE DATABASE xác định số lợng tối đa các thành
viên (members) trong mỗi một nhóm (group). Giá trị của MAXLOGMEMBERS tuỳ thuộc vào hệ
điều hành.
Tham số khởi tạo LOG_FILES xác định số lợng tối đa các log groups có thể đợc mở khi
database đang mở.
Tiến trình nền LGWR
Oracle Server ghi lại tất cả các thay đổi đối với CSDL vào vùng đệm redo log buffer. Tiến trình nền
LGWR sẽ thực hiện việc ghi các thay đổi từ redo log buffer ra các online redo log file khi
Một giao dịch commits (kết chuyển)
Redo log buffer đầy
Có lớn hơn 1MB các bản ghi thay đổi trong redo log buffer
Quá thời gian timeout (thông thờng là 3 giây)
Trớc khi DBWn ghi lại các block thay đổi trong database buffer cache ra các data files
Log switches
LGWR ghi ra online redo log file một cách tuần tự. Khi đầy một online redo log file group nó tiếp tục
chuyển sang group khác. Sự kiện LGWR chuyển sang một group khác để ghi khi một online redo log

file group đã đầy gọi là một log switch.
Checkpoint
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 29
Checkpoint hay điểm đánh dâu, tại đó tiến trình nền CKPT cập nhật lại tất các header của tất cả các
data file và control file để phản ánh sự thay đổi.
Checkpoint có thể xảy theo các tình huống
Tại các thời điểm có log switch
Khi Instance bị tắt (normal, immediate, abort)
Xảy ra do đợc định sẵn bởi các tham số: LOG_CHECKPOINT_INTERVAL,
FAST_START_IO_TARGET, LOG_CHECKPOINT_TIMEOUT
Khi có yêu cầu trực tiếp của quản trị viên.
Việc lu trữ các redo log file
Có hai chế độ xử lý các redo log file
NOARCHIVELOG: Trong chế độ này, các online redo log files sẽ bị ghi đè mỗi khi online redo log
file bị đầy, hay xảy ra log switches.
ARCHIVELOG: Các groups ứng với các online redo log files đã đầy sẽ đợc lu giữ. Do tất cả các
thay đổi đối với database đều đợc ghi lại trong online redo log files nên quản trị viên CSDL có thể
cập nhật và khôi phục lại CSDL ngay cả với các dữ liệu cha đợc commit mà không sợ mất mát.
Thông tin về log group
Thông tin về log group đợc lu trong một vài view khác nhau.
V$thread: cho biết số lợng online redo log groups, log group hiện thời, và sequence number tơng
ứng. Ví dụ:
SQL> SELECT groups, current_group#, sequence#
2 FROM v$thread;
GROUPS CURRENT_GR SEQUENCE#

2 1 689

1 row selected.
V$log: cho biết thông tin về các online redo log file.
SQL> SELECT group#, sequence#, bytes, members, status
2 FROM v$log;
GROUP# SEQUENCE# BYTES MEMBERS STATUS

1 688 1048576 1 CURRENT
2 689 1048576 1 INACTIVE
2 rows selected.
Có các trạng thái:
UNUSED: online redo log file group vẫn cha đợc sử dụng.
CURRENT: là online redo log group hiện thời. Ngầm định online redo log group này là active.
ACTIVE: online redo log group là active (kích hoạt).
CLEARING: log đang đợc tạo lại.
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 30
CLEARING_CURRENT: log file hiện thời đang đợc làm rỗng.Log ở trạng thái này khi có lỗi xảy ra
trong lúc switch.
INACTIVE: online redo log group không còn cần thiết cho vệc khôi phục instance.
V$logfile: tên của các member trong một group.
SQL> SELECT *
2> FROM v$logfile;
GROUP# STATUSMEMBER

1 /DISK3/log1a.rdo
2 /DISK4/log2a.rdo

Điều khiển log switch và checkpoint

Đặt chế độ sử dụng log switch
SQL> ALTER SYSTEM SWITCH LOGFILE;
Đặt chế độ sử dụng checkpoint
SQL> ALTER SYSTEM SWITCH LOGFILE;
8.2 Redo log file group v Redo log file member
Thêm mới Redo log file group
Cú pháp:
ALTER DATABASE [database]
ADD LOGFILE [GROUP integer] filespec
[, [GROUP integer] filespec] ]
GROUP: tên giá trị của group. Nếu bỏ qua tham số này, Oracle Server sẽ tự sinh giá trị phù hợp
Ví dụ:
ALTER DATABASE ADD LOGFILE
(/DISK3/log3a.rdo,
/DISK4/log3b.rdo) size 1M;

Thêm mới Redo log file member
Cú pháp:
ALTER DATABASE [database]
ADD LOGFILE MEMBER
[ filename [REUSE]
[, filename [REUSE]]
TO {GROUP integer
|(filename[, filename] )
}
]
Ví dụ:
ALTER DATABASE ADD LOGFILE MEMBER
/DISK4/log1b.rdo TO GROUP 1,
/DISK4/log2b.rdo TO GROUP 2;

Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 31

Đổi tên redo log file
Cú pháp:
ALTER DATABASE [database]
RENAME FILE filename[, filename]
TO filename[, filename]
Drop một online redo log file group
ALTER DATABASE [database]
DROP LOGFILE
{GROUP integer|(filename[, filename] )}
[,{GROUP integer|(filename[, filename] )}]

Drop một redo log file member
Cú pháp:
ALTER DATABASE [database]
DROP LOGFILE MEMBER filename[, filename]

Làm rỗng các online redo log file
Cú pháp:
ALTER DATABASE [database]
CLEAR [UNARCHIVED] LOGFILE
{GROUP integer|(filename[, filename] )}
[,{GROUP integer|(filename[, filename] )}]

8.3 Phân tích v ghi nhận các redo log file
LogMiner

LogMiner là công cụ cung cấp các thủ tục cho phép xử lý các redo log file và chuyển đổi chúng thành
các câu lệnh SQL tiện lợi cho việc phân tích và thực hiện chúng trong database.
Các thủ tục phân tích redo log file
Phân tích redo log file dựa trên từ điển, do đó cần tạo file từ điển trớc khi phân tích. Tham số
UTL_FILE_DIR chỉ ra đờng dẫn tới file từ điển đợc sử dụng.
Các thủ tục phân tích redo log file nằm trong package DBMS_LOGMNR. Một số thủ tục chính cần
quan tâm:
Tạo file từ điển: DBMS_LOGMNR_D.BUILD
Chỉ ra log file cần phân tích: DBMS_LOGMNR.ADD_LOGFILE
Khởi tạo LogMiner: DBMS_LOGMNR.START_LOGMNR
Dừng LogMiner: DBMS_LOGMNR.END_LOGMNR
Các thông tin phân tích
Các thông tin phân tích đợc đặt trong các view:
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 32
V$LOGMNR_DICTIONARY: thông tin về từ điển đang sử dụng.
V$LOGMNR_PARAMETERS: thông tin về các thông số
V$LOGMNR_CONTENTS: nội dung của các redo log file đợc phân tích

9 Quản lý Tablespaces v Data files
9.1 Cấu trúc logic của database

Hình vẽ 4 Cấu trúc phân cấp lu trữ CSDL
Kiến trúc lu trữ của Oracle database có hai cấu trúc
Cấu trúc vật lý: database bao gồm tập hợp các control files, online redo files và data files.
Cấu trúc logic: database bao gồm các tablespaces, segments, extents và data blocks.
Tablespace
Khi một database đợc tạo, nó sẽ đợc chia thành nhiều đơn vị logic gọi là các tablespace. Phần dữ

liệu đợc lu giữ ở mức logic là tablespace sẽ tơng ứng với mức vật lý là các data files. Một
tablespace có thể có một hay nhiều data files. Tablespace đợc dùng để:
Điều khiển vùng lu trữ đĩa vật lý cho từng database
Chỉ định từng khoảng đĩa cho từng user
Chỉ định nơi lu trữ dữ liệu
Một tablespace có thể chia nhỏ hơn về mặt logic thành các segments.
Data files
Là cấu trúc vật lý thực sự lu giữ dữ liệu. Các data files có cấu trúc phù hợp với hệ điều hành cụ thể.
Data file có một số tính chất sau:
Một data file chỉ thuộc về một tablespace.
Kích thớc của data file vẫn có thể thay đổi bởi quản trị viên CSDL cả sau khi data file đó đợc tạo
lập.
Segments (phân đoạn)
Là vùng không gian cấp cho một cấu trúc lu trữ logic đặc trng nào đó (ví dụ nh table) trong một
tablespace.
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 33
Một tablespace có thể có nhiều segments
Một segments không thể trải rộng qua nhiều tablespace, tuy nhiên vẫn có thể trải rộng trên nhiều
data files
Một segment đợc tạo bởi một hay nhiều extents (khoảng trống).
Extents (khoảng trống)
Là khoảng trống cấp cho một segment.
Các extents tạo nên một segment
Một extent đợc tạo nên bởi một hay nhiều blocks đặt liên tiếp nhau.
Một extent chỉ nằm trong một data file nhất định.
Data blocks
Oracle Server quản lý không gian lu trữ theo từng đơn vị nhỏ thuộc một data file gọi là block hay data

block.
ở mức nhỏ nhất, dữ liệu đợc lu trong các data blocks. Oracle Server quản lý: cấp phát, đọc, ghi
theo từng đơn vị là data block.
Kích thớc của một data block là xác định đối với từng database. Tham số khởi tạo database,
DB_BLOCK_SIZE quy định kích thớc của block.
Thông thờng, kích thớc của data block là một số nguyên lần kích thớc một block của hệ điều
hành (Ví dụ: Windows FAT32, 1 block của hệ điều hành (cluster)= 4 sector = 4*512 bytes) Điều
này sẽ tối u đợc số lần truy xuất vào ra dữ liệu của hệ điều hành.
Kích thớc tối đa của một block tuỳ thuộc vào hệ điều hành.
9.2 Tablespace
Phân loại tablespace
Tablespace đợc phân ra làm hai loại SYSTEM và non-SYSTEM.
SYSTEM tablespace: đợc tạo và nhất thiết phải có trong mỗi database. Nó lu trữ các từ điển dữ
liệu, bao gồm cả các store program unit. SYSTEM tablespace chứa các SYSTEM rollback
segment và không chứa các dữ liệu của ngời sử dụng.
Non_SYSTEM tablespace: Phân tách các dữ liệu ứng dụng, rollback, temporary. Nó điều khiển
(control) vùng không gian trống dành cho các users object.
Tempoary tablespace
Đợc sử dụng cho việc sắp xếp, làm nơi lu giữ các đối tợng tạm thời
Tempoary không lu giữ các đối tợng thờng chú
Tạo temporary tablespace
Sử dụng câu lệnh: CREATE TEMPORARY TABLESPACE. Ví du:
CREATE TEMPORARY TABLESPACE temp
TEMPFILE /DISK2/temp_01.dbf
SIZE 500M
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 34
EXTENT MANAGEMENT LOCAL

UNIFORM SIZE CREATE TEMPORARY TABLESPACE temp
TEMPFILE /DISK2/temp_01.dbf
SIZE 500M
EXTENT MANAGEMENT LOCAL
UNIFORM SIZE 10M;
Sử dụng Oracle Enterprise Manager:
- Vào tablespace folder, bấm chuột phải rồi chọn Create.
- Chọn page General của cửa sổ Create tablespace. Đặt tuỳ chọn là temporary.
- Bấm ADD để tạo các data file tơng ứng cho tablespace.
- Bấm nút Create, tablespace temporary sẽ đợc tạo lập.
Tạo một tablespace
Cú pháp:
CREATE TABLESPACE tablespace
DATAFILE datafile_clause]
[, datafile_clause]
[MINIMUM EXTENT integer[K|M]]
[LOGGING|NOLOGGING]
[DEFAULT storage_clause ]
[ONLINE|OFFLINE]
[PERMANENT|TEMPORARY]
[extent_management_clause]
DATAFILE: tên của các data files thuộc vào tablespace.
MINIMUM EXTENT: đảm bảo kích thớc của các segments trong tablespace là một số
nguyên. (ký hiệu K hoậc M tơng ứng với kilobytes hay megabytes)
LOGGING: chỉ ra rằng tất cả các bảng, indexes, partitions trong tablespace sẽ thay đổi việc
viết vào redo log.
NOLOGGING: ngợc với LOGGING
DEFAULT: chỉ ra các tham số lu trữ mặc định đối với các đối tợng đợc tạo trong tablespace.
ONLINE: tablespace có thể dùng đợc ngay sau khi tạo.
OFFLINE: tablespace cha thể dùng đợc ngay sau khi tạo

PERMANENT: tablespace có thể lu giữ các đối tợng thờng chú.
TEMPORARY: tablespace chỉ sử dụng để chứa các đối tợng trung gian (temporary)
extent_management_clause: cách thức quản lý các extents của tablespace

datafile_clause :== filename
{SIZE integer[K|M] [REUSE] | REUSE }
[autoextend_clause]
SIZE: kích thớc của file (xác định theo đơn vị K hay M)
REUSE: sử dụng file có sẵn
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 35
Autoextend_clause: cho phép hay không cho phép mở rộng các file dữ liệu
Huỷ bỏ tablespace
Sử dụng câu lệnh:
DROP TABLESPACE tablespace
[INCLUDING CONTENTS [CASCADE CONSTRAINTS]]
- INCLUDING CONTENTS: drop tất cả các segments trong tablespace
- CASCADE CONSTRAINTS: drop tất cả các tham chiếu ràng buộc toàn vẹn tới các bảng bên
ngoài tablespace
Ví dụ:
DROP TABLESPACE app_data INCLUDING CONTENTS;
Sử dụng Oracle Enterprise Manager:
- Vào tablespace folder, chọn tablespace cần thay đổi.
- Bấm chuột phải rồi chọn Remove
- Bấm Yes để hoàn tất công việc

9.3 Quản lý tablespace
Quản lý không gian trong tablespace

Có thể quản lý các extent trong tablespace theo hai chế độ:
Quản lý bằng các từ điển: Oracle server sẽ cập nhật bảng tơng ứng trong từ điển dữ liệu mỗi khi
extent đợc cấp phát (allocated) hay thu hồi (deallocated).
Quản lý cục bộ: Oracle server ánh xạ trạng thái của mỗi block với một nhóm các bits của một
extent gọi là bitmap.
Đặt chế độ quản lý theo kiểu từ điển hay cục bộ theo mệnh đề:
extent_management_clause :==
[ EXTENT MANAGEMENT
{ DICTIONARY | LOCAL
{ AUTOALLOCATE | UNIFORM [SIZE integer[K|M]] } } ]
DICTIONARY: tablespace đợc quản lý theo chế độ từ điển
LOCAL: tablespace đợc quản lý theo chế độ cục bộ
AUTOALLOCATE: hệ thống sẽ tự động có chế độ quản lý phù hợp.
UNIFORM: table space đợc quản lý với các extents đồng nhất, có cùng kích thớc.
Thay đổi, điều chỉnh khả năng lu trữ của tablespace
Sử dụng câu lệnh:
ALTER TABLESPACE tablespace
{ MINIMUM EXTENT integer[K|M]
| DEFAULT storage_clause }
Ví dụ:
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 36
ALTER TABLESPACE app_data
MINIMUM EXTENT 2M;

ALTER TABLESPACE app_data
DEFAULT STORAGE (
INITIAL 2M

NEXT 2M
MAXEXTENTS 999 );
Sử dụng Oracle Enterprise Manager :
- Vào tablespace folder, chọn tablespace cần thay đổi.
- Trong page Extents sẽ hiện ra các thông số tơng ứng của table space.
- Điều chỉnh các thông số này cho phù hợp rồi chọn Apply.
Đặt chế độ hoạt động cho tablespace, online hay offline
Khi tablespace là online, ngời sử dụng có thể truy cập dữ liệu vào tablespace. Trong trờng hợp
offline, ngời dùng sẽ không thể truy cập vào đó. Vì nhiều lý do khác nhau: để quản lý quyền truy
nhập của ngời dung, tạo dữ liệu backup, phục hồi lại tablespace trong khi database đang mở, di
chuyển các datafile trong khi database đang mở, Quản trị viên có thể đặt lại chế độ hoạt động của
tablespace là online hay offline.
Sử dụng câu lệnh:
ALTER TABLESPACE tablespace
{ONLINE
|OFFLINE [NORMAL|TEMPORARY|IMMEDIATE|FOR RECOVER]}
với các tuỳ chọn:
- NORMAL: đẩy toàn bộ data files trong tablespace ra khỏi vùng SGA
- TEMPORARY: thực hiện kiểm tra các online data files trong tablespace.
- IMMEDIATE: bỏ qua các thao tác kiểm tra cần thiết
- FOR RECOVER: sử dụng khi phục hồi tablespace.
Ví du:
ALTER TABLESPACE app_data OFFLINE;
TABLESPACE app_data ONLINE;
Sử dụng Oracle Enterprise Manager:
- Vào tablespace folder, chọn tablespace cần thay đổi.
- Bấm chuột phải rồi chọn offline
- Bấm Yes để hoàn tất công việc
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i


Đo tạo kiến trúc v quản trị ORACLE 8i Trang 37
Đặt trạng thái Read-only cho tablespace
Sử dụng câu lệnh:
ALTER TABLESPACE tablespace READ [ONLY | WRITE]
Ví du:
ALTER TABLESPACE app_data READ ONLY;
Sử dụng Oracle Enterprise Manager:
- Vào tablespace folder, chọn tablespace cần thay đổi.
- Bấm chuột phải rồi chọn Make Read-Only
- Bấm Yes để hoàn tất công việc
Thay đổi kích thớc của data files
Sử dụng câu lệnh:
Thêm mới data file
ALTER TABLESPACE tablespace
ADD DATAFILE filespec [autoextend_clause]
[, filespec [autoextend_clause]]

autoextend_clause :== [ AUTOEXTEND { OFF|ON[NEXT integer[K|M]]
[MAXSIZE UNLIMITED | integer[K|M]] } ]

- AUTOEXTEND OFF|ON: tự động thay đổi kích thớc của data file
- NEXT: vùng đĩa cấp phát cho data file khi cần thêm các extents
- MAXSIZE: vùng đĩa tối đa đợc cấp cho data file
- UNLIMITED: không hạn chế cấp phát không gian đĩa cho data file
Ví dụ:
ALTER TABLESPACE app_data
ADD DATAFILE /DISK6/app_data_04.dbf
SIZE 200M
AUTOEXTEND ON

NEXT 10M
MAXSIZE 500M;
Thay đổi kích thớc data file hiện có
ALTER DATABASE [database]
DATAFILE filename[, filename] autoextend_clause
Sử dụng Oracle Enterprise Manager:
- Vào datafiles folder, chọn data file cần thay đổi.
- Đặt tuỳ chọn Enable Auto Extend trong page Auto Extend. Định kích thớc mới
- Bấm Apply để hoàn tất công việc

Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 38
Với cách làm trên, Oracle sẽ tự động thay đổi kích thớc của data files cho phù hợp. Ta cũng có thể
thay đổi kích thớc của data files một cách trực tiếp:
ALTER DATABASE [database]
DATAFILE filename[, filename]
RESIZE integer[K|M]
Bổ sung data files vào tablespace
Sử dụng câu lệnh:
ALTER TABLESPACE tablespace
ADD DATAFILE filespec [autoextend_clause]
[, filespec [autoextend_clause]]
ví dụ:
ALTER TABLESPACE app_data
ADD DATAFILE /DISK5/app_data_03.dbf
SIZE 200M;
Sử dụng Oracle Enterprise Manager:
- Vào tablespace folder, chọn tablespace cần thay đổi.

- Bấm chuột phải rồi chọn Add Datafiles.
- Page General sẽ hiện lên một bảng cho phép nạp mới một data file.
- Chọn Create.
Di chuyển các data file
Sử dụng câu lệnh:
ALTER TABESPACE tablespace
RENAME DATAFILE filename[, filename]
TO filename[, filename]
Ví dụ:
ALTER TABLESPACE app_data
RENAME
DATAFILE /DISK4/app_data_01.dbf
TO /DISK5/app_data_01.dbf;
Các bớc:
- Đặt chế độ offline cho tablespace
- Di chuyển file dữ liệu tơng ứng bằng hệ điều hành
- Chạy câu lệnh trên
- Đặt lại chế độ offline cho tablespace
Hoặc:
ALTER DATABASE [database]
RENAME FILE filename[, filename]
TO filename[, filename]
Ví dụ:
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 39
ALTER DATABASE
RENAME FILE /DISK1/system_01.dbf
TO /DISK2/system_01.dbf;

Cách làm:
- Tắt database
- Di chuyển file dữ liệu tơng ứng bằng hệ điều hành
- Mount lại với hệ điều hành
- Thực hiện câu lệnh ở trên
- Mở lại database
Các thông tin từ điển dữ liệu
Để có thể có các thông tin cần thiết ta có thể tham khảo một số view sau:
Thông tin về tablespace: DBA_TABLESPACES, V$TABLESPACE
Thông tin về data files: DBA_DATA_FILES, V$DATAFILE
Thông tin về các file trung gian: DATA_TEMP_FILES, V$TEMPFILE

10 Cấu trúc lu trữ
10.1 Các cấu trúc lu trữ chính của Oracle
Cấu trúc lu trữ
Chơng trớc đã trình bày cấu trúc lu trữ trong Oracle. Cấu trúc lu trữ bao gồm hai mức physical và
logic. ở mức logic, database bao gồm nhiều tablespaces. Mỗi tablespace lại tiếp tục đợc chia thành
nhiều segments. Phần này sẽ giới thiệu chủ yếu về các segments.
Thông tin về cấu trúc lu trữ
Thông tin về cấu trúc lu trữ đợc lu giữ trong từ điển dữ liệu. Ta có thể dùng câu lệnh SQL để lấy
đợc các thông tin này. Các thông tin này có thể lấy đợc từ các view: DBA_TABLESPACES,
DBA_SEGMENTS, DBA_DATà_FILES, DBA_EXTENTS, DBA_FREE_SPACE.
Ví dụ:
Xem số lợng extents và blocks cấp phát cho một segment
SQL> SELECT segment_name,tablespace_name,extents,blocks
2 FROM dba_segments
3 WHERE owner=SCOTT;
SEGMENT_NAME TABLESPACE_NAME EXTENTS BLOCKS

EMP DATA01 5 55

DEPT DATA01 1 5
BONUS DATA01 1 5
SALGRADE DATA01 1 5
5 rows selected.

×