วันอาทิตย์ที่ 19 กรกฎาคม พ.ศ. 2552

Oracle Database Newbie: Overview โครงสร้าง Physical



โครงสร้าง Physical ของ oracle database ประกอบไปด้วย datafiles, control files, redo log files, archived redo log files, parameter files, alert และ trace files.

Oracle database ต้องมี datafile เพื่อเก็บข้อมูลของ database ซึ่งข้อมูลนั้นจะมองเป็น logical อันได้แก่ tables และ indexes เป็นต้น
สิ่งที่ควรรู้เกี่ยวกับ datafile:
- 1 หรือ หลาย datafiles รวมกัน ในเป็น logical เราเรียกว่า tablespace
- 1 datafile อยู่บน tablespace เดียวเท่านั้น แต่ 1 tablespace มี datafile 1 หรือ มากกว่า 1 ได้
- Datafiles สามารถให้ตัวมันเองขยายขนาดได้ auto เมื่อมีการใช้งานจนเต็ม
ข้อมูลในdatafile จะถูกอ่านเมื่อจำเป็นเท่านั้น เพราะเมื่อมีการอ่าน oracleจะเก็บข้อมูลเหล่านี้ ใน memory cache ของ database เช่น เมื่อเราต้องการข้อมูลใน Table แล้วข้อมูลนั้นไม่อยู่ใน memory cache มันจะอ่านจาก datafile และเก็บไว้ใน memory.
การเปลี่ยนแปลงข้อมูล และข้อมูลใหม่ จะไม่ได้ถูกเขียนลง datafiles ทันทีทันใด ข้อมูลจะอยู่ใน memory และเขียนลง datafiles ทั้งหมดโดยทีเดียวด้วย background process ที่เรียกว่า database writer process (DBWn)

Oracle database ต้องมี control file ซึ่งจะเก็บข้อมูลโครงสร้าง physical ของ database อันได้แก่
- ชื่อ database
- ชื่อ และ location ของ datafiles และ redolog files
- เวลามี database ถูกสร้าง
Oracle database สามารถมี control file ได้หลาย file
เมื่อ มีการเพิ่ม datafile หรือ redo log file; control files จะถูกเปลี่ยนแปลงข้อมูลเพื่อให้รู้ว่ามีการเพิ่ม datafile หรือ redo log file ซึ่งจะมีประโยชน์มากตอน database recovery
เราสามารถ backup control file จาก ”alter database backup” และยังสร้าง script สำหรับ สร้าง control files
alter database backup controlfile to 'controlfile_backup' reuse;
alter database backup controlfile to trace as 'controlfile_script' reuse;

อย่างไรก็ตาม เราควรจะ “CONFIGURE CONTROLFILE AUTOBACKUP ON”
Oracle จะทำการ auto backup control files และ server parameter file (SPFILE) ทุกครั้งที่มี backup รวมทั้งเมื่อ metadata ใน control file มีการเปลี่ยนแปลง

Online Redo Log Files
Oracle database ต้องมีอย่างน้อย 2 redo log group และ 1 redo log group มี 1 redo log file ซึ่งมันจะเก็บข้อมูลทุกอย่างที่มีการเปลี่ยนแปลงใน database (หรือ เรียกว่า transaction log)
เราสามารถมี หลาย redo log file ใน 1 redo log group

Archived Redo Log Files
Archived Redo Log Files เป็น offline file ที่ถูกก๊อปปี้ มาจาก Online redo log file. Oracle จะทำการบันทึก online redo log files เป็น Archived redo log files เมื่อ oracle database เป็น ARCHIVELOG mode
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
Parameter Files
Parameter Files จะเก็บ configuration parameters สำหรับ instance และ database ซึ่งประกอบไปด้วย parameter file(PFILE) และ server parameter file (SPFILE) และ server parameter file จะมีข้อดีกว่า
- สามารถเปลี่ยนแปลง บาง Parameter ในขณะที่ Instance ยังทำงาน
- เป็นศูนย์กลางของ parameter file จากทุกๆ Instance ใน Oracle Real Application Cluster Database

Alert and Trace Log Files
แต่ละ server และ background process สามารถเขียน trace file
เมื่อเกิด Internal error บน process นั้นๆ process นั้นจะเขียนข้อมูลเกี่ยวกับ error ลง trace file
ข้อมูลใน trace file สามารถนำไป พิจารณาในการ ปรับปรุง application หรือ Instance ให้ดีขึ้น
ทุก database มี alert log ซึ่งจะเก็บข้อความเกี่ยวกับ
- internal errors (ORA-600), block corruption errors (ORA-1578), และ deadlock errors (ORA-60)
- SQL เช่น CREATE/ALTER/DROP DATABASE/TABLESPACE และจาก Oracle Enterprise Manager หรือ SQL*Plus ที่เกี่ยวกับ STARTUP, SHUTDOWN, ARCHIVE LOG, RECOVER
- Errors เกี่ยวกับ shared server และ dispatcher processes
- Errors ขณะที่ materialized view (refresh)
บน 11g trace file และ alert file จะถูกเก็บที่ Automatic Diagnostic Repository (ADR) Home

Password File
Database สามารถใช้ password file ในการติดต่อ database กับ SYSDBA or SYSOPER privileges.

Backup Files
Backup files ไม่ได้เป็น database files ในทาง technique แต่มันประโยชน์ และถูกใช้ในการ recover database เมื่อ database มีปัญหา หรือข้อมูลมีปัญหา

1 ความคิดเห็น:

Tom Condo กล่าวว่า...

ขอบคุณค่าา กำลังหาคำตอบอยู่พอดีเลยย