7.1.CONTROL FILES
7.1.1. Giới thiệu control file
Control file là file thông tin dạng nhị phân được sử dụng
cho việc khởi tạo và vận hành database một cách hiệu quả.
Mỗi khi instance được MOUNT (gắn) với một Oracle
database, các thông tin trong control file sẽ được đọc ra, từ đó xác định các
data files và các online redo log files.
Control file được cập nhật liên tục vào database trong suốt
quá trình sử dụng và nó luôn ở trạng thái sẵn sàng (available) mỗi khi database
được OPEN
(mở) hay được MOUNT (gắn) với instance.
Control file cung cấp các thông tin một cách đồng nhất trong
database được sử dụng trong quá trình khôi phục (recovery).
Mỗi control file tại một thời điểm chỉ phục vụ cho một
database. Khi đã có một database sử dụng control file thì các database khác sẽ
không thể truy cập tới control file đó nữa.
7.1.2. Cách
thức đặt tên control file
Tên control file được xác định trong tham số CONTROL_FILES của parameter file. Tên của các control files
được đặt phân cách bởi dấu phẩy (,). Instance phục vụ database
sẽ mở các control file và lấy các thông tin từ đó để có thể điều khiển hoạt động
của database. Trong quá trình hoạt động, Instance cũng sẽ ghi lại các tình trạng
của database.
Để đả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 có thể phân biệt dễ dàng.
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<n><database_name>.ORA
Với:
n là số thứ tự của control file
database_name tên của database
Trong parameter file, các tên của control files được đặt phân
cách nhau bởi các dấu phẩy.
Ví dụ:
control_files = (“C:\ORANT\DATABASE\CTL1KTKB.ORA”, ”C:\ORANT\DATABASE\CTL2KTKB.ORA”)
7.1.3. Kết
hợp nhiều control files
Khi tạo database, ta có thể sử dụng cùng lúc nhiều control
files thông qua việc chỉ rõ tên các control files trong tham số khởi tạo CONTROL_FILES.
Oracle server tạo và cập nhật tất cả danh sách các file liên quan mỗi khi tạo
database.
Oracle khuyến cáo sử dụng ít nhất 02 control files. Các
control files nên được đặt riêng biệt trên các ổ đĩa khác nhau đề phòng sự cố.
Nếu một control file bị hỏng, ta có thể sao chép lại file này rồi khởi động lại
instance.
Để thêm mới một control file hoặc thay đổi số lượng cũng như
nơi đặt các control file, ta thực hiện theo các bước sau:
1. Shutdown database.
2. Sử dụng lệnh của hệ điều hành để sao chép thêm một bản sao của
control file và nên lưu trữ trên một thiết bị khác.
3. Sửa đổi hoặc thêm mới tham số CONTROL_FILES và tên (có đường dẫn) tương ứng với các control files.
4.
Khởi động lại database.
7.1.4. Nội
dung của control file
Các thông tin chứa trong control file bao gồm:
§ Tên database và các định danh (identifications)
§ Tên và nơi chứa các data files, các redo log files
§ Tên các tablespaces trong database
§ Nhãn thời gian tương ứng lúc tạo database
§ Giá trị số hiệu của log sequence hiện thời
§ Thông tin về checkpoint
§ Các thông tin lịch sử (log history)
§ Các thông tin sao lưu của tiện ích Recovery Manager
Control file có thể được chia làm hai loại chính:
§ Có thể tái sử dụng (reused)
§ Không thể tái sử dụng (unreused)
7.1.5. Các
tham số ảnh hưởng tới kích thước của control file
Có một số tham số hệ thống liên quan tới kích thước của
control file
§ MAXLOGFILES
§ MAXLOGMEMBERS
§ MAXLOGHISTORY
§ MAXDATAFILES
§ MAXINSTANCES
Các control files được xác định tự động dựa theo các tham số
khởi tạo tại thời điểm tạo lập database:
CONTROL_FILES = (“C:\ORANT\DATABASE\CTL1KTKB.ORA”, ”C:\ORANT\DATABASE\CTL2KTKB.ORA”)
Tên file kèm theo đường dẫn được đặt luôn trong tham số tạo
database.
Các tham số được chỉ ra trong database có ảnh hưởng tới
control file. Quản trị viên database có thể tạo lại các control file hay thay đổi
các tham số trong database để có thể tăng, giảm kích thước của control file.
Việc tạo mới control file đòi hỏi phải thay đổi kích thước của
control file. Control file lưu trữ các thông tin cần thiết cho Recovery
Manager. Vì thế, khi sử dụng Recovery Manager những phần không tái sử dụng được
trong control file có thể được mở rộng dựa theo số lượng các thành phần.
7.2.QUẢN
TRỊ CONTROL FILE
7.2.1. Tạo
mới control file
Việc tạo mới control files đối với database đôi khi là cần
thiết. Ta hãy xét các tình huống:
§ Ta muốn thay đổi một hay nhiều tham số được thiết lập đối với database
mà các tham số này được chỉ ra ngay từ câu lệnh CREATE
DATABASE như tên database, MAXLOGFILES,
MAXLOGMEMBERS, MAXLOGHISTORY, MAXDATAFILES, và
MAXINSTANCES.
Ví dụ, ta muốn đổi tên database để khỏi xảy
ra xung đột với một database đang có trong hệ thống nhưng trùng tên.
Cú pháp:
CREATE CONTROLFILE [REUSE]
[SET] DATABASE database
LOGFILE [GROUP integer]
filespec [, [GROUP integer] filespec] ...
{RESETLOGS | NORESETLOGS}
DATAFILE filespec [, filespec]
...
[MAXLOGFILES integer]
[MAXLOGMEMBERS integer]
[MAXLOGHISTORY integer]
[MAXDATAFILES integer]
[MAXINSTANCES integer]
[ARCHIVELOG | NOARCHIVELOG]
Với:
REUSE Cho biết CONTROL_FILES có thể được tái
sử dụng, ta không cần quan tâm tới các tham số thuộc loại tuỳ chọn.
SET DATABASE Thay đổi tên của
database. Lưu ý: <Tên>
DATABASE Tên của
database.
LOGFILE danh sách tên của
các redo log file groups
MAXLOGFILES Số lượng tối đa các
redo log file groups
MAXLOGMEMBERS Số lượng tối đa các
members trong một redo
MAXLOGHISTORY Số lượng tối đa các archived redo log file
groups
MAXDATAFILES Số lượng tối đa các
datafiles
MAXINSTANCES Số lượng tối đa các instances có thể kết nối
tới database.
ARCHIVELOG Thiết lập chế độ archiving lưu trữ các redo
log files
Ví dụ:
7.2.2. Tạo
mới control file cho một database đã có sẵn
Việc tạo mới control file được thực hiện theo các bước sau:
1.
Thiết lập danh sách các
datafiles và online redo log files sử dụng trong database. Trong
trường hợp backup database, ta có thể dễ dàng xác định được danh sách các file
này dựa vào thông tin trong dictionary view: V$CONTROLFILE, V$DATAFILE, V$LOGFILE. Trong trường hợp database bị lỗi, quản trị viên
database cần cố gắng xác định đầy đủ các datafiles và online redo log files. Nếu
thiếu bất kỳ một trong số các file trên thì tablespace SYSTEM sẽ không thể khôi
phục lại được và do đó ta không thể khôi phục lại được database.
2.
Shut down (tắt) database nếu nó
đang được mở. Thực hiện shut down ở chế độ normal. Trong trường
hợp không thể tắt normal được thì hãy tắt database theo chế độ IMMEDIATE hoặc ABORT.
5.
Tạo mới control file thông qua
lệnh tạo CONTROL FILES. Khi tạo mới
control file, sử dụng tuỳ chọn RESETLOGS nếu database bị mất bất kỳ một nào online redo log groups. Trong trường
hợp này ta cần khôi phục lại các redo logs bị mất. Ngược lại, ta sử dụng tuỳ chọn
NORESETLOGS.
7.
Sửa đổi các tham số trong
parameter file mà có sử dụng đến trong các control files bao gồm tham số CONTROL_FILES và DB_NAME.
8.
Thực hiện khôi phục database nếu
cần. Ta sẽ bỏ qua bước này trong trường hợp không cần phải khôi phục database. Nếu control file mới tạo có sử dụng tuỳ chọn NORESETLOGS, thì ta có thể khôi phục lại
toàn bộ database. Trong trường hợp tuỳ chọn sử dụng là RESETLOGS, ta cần chỉ ra thêm một tuỳ chọn nữa là USING BACKUP CONTROL FILE. Thủ tục này sẽ thực hiện khôi phục lại các online hoặc archived
redo logs hoặc datafiles.
9.
Open database với control file
vừa tạo. Nếu không thực hiện recovery thì có thể
open database ở chế độ normally.
10. Nếu có sử dụng RESETLOGS trong
lúc tạo control file, thì cần sử dụng thêm câu lệnh ALTER
DATABASE , với tuỳ chọn RESETLOGS.
7.2.3. Một
số lỗi đối với các Control Files
Thiếu file
Sau khi tạo một control file và sử dụng nó để
mở database, kiểm tra alert log để biết liệu Oracle có xác định được có thông
tin gì không đồng nhất giữa data dictionary và control file hay không? Ví dụ như
datafile có kèm theo cả data dictionary nhưng không có danh sách các data dictionary
đi kèm.
Nếu một datafile đã tồn tại trong data
dictionary nhưng chưa có trong control file mới tạo, Oracle sẽ tạo một
placeholder entry trong control file với tên là MISSINGnnnn
(trong đó nnnn là một con số viết dưới dạng thập phân).
Ta xét hai trường hợp có thế xảy ra như sau:
§
Sử dụng tuỳ chọn RESETLOGS trong câu lệnh CREATE
CONTROLFILE sẽ cho phép mở database mà không cần tới tuỳ chọn RESETLOGS.
Điều này chỉ có thế xảy ra nếu tất cả các online redo logs đang trong tình trạng
sẵn sàng.
§
Sử dụng tuỳ chọn RESETLOGS trong câu lệnh CREATE
CONTROLFILE để bắt buộc phải mở database cùng với tuỳ chọn RESETLOGS,
datafile tương ứng với MISSINGnnnn ở chế
độ chỉ đọc hay OFFLINE.
Khi mở database có sử dụng tuỳ chọn RESETLOGS,
và MISSINGnnnn tương ứng với
datafile không ở chế độ chỉ đọc hay offline, ta sẽ không thể truy xuất vào
datafile đó. Trong trường hợp này, tablespace chứa datafile cần được huỷ bỏ (DROP).
Xử lý lỗi xảy ra đối với lệnh CREATE CONTROLFILE
Oracle gửi trả về mã lỗi(các mã lỗi hay xảy
ra là ORA-01173,
ORA-01176, ORA-01177, ORA-01215 hoặc ORA-01216) khi ta cố gắng thực
hiện mount và open database sau khi tạo mới một control
file. Tình huống hay xảy ra nhất là trong câu lệnh CREATE CONTROLFILE mà ta quên
một file hoặc có đưa vào tên file nhưng nó vẫn chưa có trong danh sách. Trong
trường hợp này, ta cần phải khôi phục (RESTORE) lại các files đã được
backup ở bước 3 (phía trên) và lặp lại các thủ tục ở bước 4 (phía trên) lưu ý sử
dụng đúng tên các files.
7.2.4. Huỷ bỏ Control Files
Ta có thể huỷ bỏ các control files khỏi database. Ví dụ, ta thực hiện việc này khi đường
dẫn tới các control file không còn phù hợp nữa. Có một điều lưu ý là tại bất kỳ
thời điểm nào database cũng cần phải có ít nhất là 2 control files.
Các bước thực hiện
2.
Sửa lại tham số CONTROL_FILES
trong parameter file, xoá tên control file cũ và
thay vào đó tên control file mới.
7.3.THÔNG TIN TRẠNG THÁI CỦA CONTROL FILES
Ta có thể xem được các thông tin về control file dựa trên
dictionary views có trong database.
Ví dụ:
SVRMGR> SELECT name
2>FROM v$controlfile;
NAME
-----------------------
/DISK1/control01.con
/DISK2/control02.con
2 rows selected.
SVRMGR> SELECT value
2>FROM v$parameter WHERE name =’control_files’;
VALUE
------------------------
/DISK1/control01.con
/DISK2/control02.con
2 rows selected.
V$CONTROLFILE_RECORD_SECTION chứa các thông tin về các
section.
Ví dụ:
SVRMGR>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.
Cột dữ liệu RECORDS_TO chỉ ra số lượng các
bản ghi được cấp phát cho một section.
Website không bao giờ chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn muốn tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ kinh nghiệm, thủ tục, quy trình, bí kíp thực chiến mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin1_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
HỌC ORACLE DATABASE CƠ BẢN TỪ A-Z - BÀI 7: QUẢN TRỊ CONTROL FILE, Soracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty