เริ่มต้น Oracle Database ด้วย Oracle Database Express
การติดตั้งและเรียนรู้ Oracle Database XE
เมื่อเรามองกลับไปในมุมมองของคนที่กำลังเริ่มต้นศึกษา Oracle Database การใช้ Oracle Database XE ถือว่าเป็นแนวทางที่ดี
การดาวน์โหลด Oracle XE ไปที่ http://www.oracle.com/technetwork/database/express-edition/overview/index.html เราจะพบ Oracle Database 10g XE และ Oracle Database 11g XE
รูป 1.1: หน้าเว็บ download Oracle XE
บทความนี้ผมขอใช้ Oracle Database 11g XE และสิ่งที่ต้องมีก่อนดาวน์โหลด คือต้องมี OTN account (signup free: https://myprofile.oracle.com/EndUser/faces/profile/createUser.jspx) หลังจากดาวน์โหลด Oracle Database XE สำหรับระบบปฏิบัติการ Windows จะได้ไฟล์ win32_11gR2_OracleXE.zip จากนั้น unzip เราจะได้โฟลเดอร์ DISK1 ใน DISK1 โฟลเดอร์เลือก setup.exe ไฟล์ เพื่อติดตั้ง
รูป 1.2: ขั้นตอนการติดตั้ง Oracle Database XE
เราต้องเลือก I accept the terms in the license agreement เพื่อติดตั้ง (ถ้ามีเวลาลองอ่านรายละเอียดดูนะครับ)
โดยปกติ Destination Folder คือ C:\oraclexe เราสามารถเปลี่ยนได้โดยคลิกที่ Browse… (กรณีนี้ขอเปลี่ยนเป็น D:\oraclexe)
พิมพ์พลาสเวิร์ดสำหรับผู้ใช้ SYS และ SYSTEM
หมายเหตุ: SYS คือ ผู้ใช้ที่เป็นเจ้าของฐานข้อมูล Oracle และเจ้าของพจนานุกรมข้อมูลในฐานข้อมูล Oracle ด้วย
SYSTEM คือ ผู้ใช้ที่มีสิทธ์ในการจัดการ และดูแลฐานข้อมูล Oracle
จะพบว่า Oracle Database XE ต้องการพอร์ต 1521 สำหรับ Listener, 2030 สำหรับ MS Transaction Server, 8080 สำหรับ HTTP
Oracle Database XE จะมีชื่อฐานข้อมูลที่ชื่อว่า XE เมื่อติดตั้งเสร็จแล้ว เลือก Start -> All Programs เราจะพบ
รูป 1.3: เมนูบน Windows หลังติดตั้งเสร็จ
จากรูป 1.3: เลือก Get Started เราจะพบว่า Windows จะเปิด Browser ที่ URL http://127.0.0.1:8080/apex/f?p=nnnn ซึ่งเราจะพบดังรูป 1.4
รูป 1.4: เพจ Oracle Database XE
จากรูป 1.3: เลือก Run SQL Command Line เราจะพบรูป 1.5
รูป 1.5: SQL Command Line
ใน SQL Command Line ทดสอบการติดต่อฐานข้อมูล
SQL> connect / as sysdba
Connected.
SQL> show user;
USER is "SYS"
SQL>
หมายเหตุ: “connect / as sysdba” เท่ากับ “connect sys/password as sysdba” - เมื่อเราติดต่อฐานข้อมูล Oracle ด้วย sys เราจำเป็นต้องใช้ “as sysdba” กรณีนี้เราติดต่อฐานข้อมูลที่เครื่องฐานข้อมูลเอง จึงไม่ต้องผ่าน Listener พร้อมกันนี้ ORACLE_SID ยังระบุชื่อ Instance อีกด้วย
หรือ ผ่าน Listener แบบ Easy Connect Naming
SQL> connect sys/password@localhost:1521/xe as sysdba
Connected.
จากรูป 1.3 เราสามารถหยุดฐานข้อมูลด้วยการเลือก Stop Database
รูป 1.6: การ Stop Database
หากต้องการ stop database ด้วย sqlplus
SQL> shutdown
Database closed.
Database dismounted.
ORACLE instance shut down.
จากรูป 1.3 เราสามารถเริ่มต้นฐานข้อมูลด้วยการเลือก Start Database
รูป 1.7: การ Start Database
หากต้องการ start database ด้วย sqlplus
SQL> startup
ORACLE instance started.
Total System Global Area 803500032 bytes
Fixed Size 1386556 bytes
Variable Size 234883012 bytes
Database Buffers 562036736 bytes
Redo Buffers 5193728 bytes
Database mounted.
Database opened.
จากรูป 1.3: เราสามารถสำรองฐานข้อมูลด้วยการเลือก Backup Database และซ่อมแซมฐานข้อมูลด้วยการใช้ Restore Database
เรียนรู้จากเพจ Oracle Database XE
จากรูป 1.4 สิ่งที่น่าสนใจเราจะเห็นแท็บ Storage, Sessions, Parameters และ APEX เมื่อเลือก Storage เราจะเห็นดังรูป
รูป 1.8: Storage
Tablespace เป็น Logical ที่ประกอบด้วย 1 หรือ หลายๆ physical datafiles หรือ tempfiles ซึ่งแบ่งเป็นประเภท
- Permanent tablespaces ใช้ในการเก็บข้อมูลของ system และผู้ใช้
การหา default Permanent tablespace (ไม่ควรเป็น SYSTEM Tablespace):
SQL> select PROPERTY_VALUE from database_properties where PROPERTY_NAME='DEFAULT_PERMANENT_TABLESPACE';
PROPERTY_VALUE
--------------------------------------------------------------------------------
USERS
- Temporary tablespaces ใช้ในทำงานที่เกี่ยวกับการเรียงข้อมูล สร้าง Index
การหา default Temporary tablespace:
SQL> select PROPERTY_VALUE from database_properties where PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';
PROPERTY_VALUE
--------------------------------------------------------------------------------
TEMP
- Undo tablespace ใช้เก็บข้อมูลก่อนที่จะถูกเปลี่ยนแปลง อย่างเช่นกรณีการสั่งคำสั่ง rollback และเกี่ยวกับการจัดการ read consistency
การหา Undo tablespace
SQL> show parameter undo_tablespace
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_tablespace string UNDOTBS1
แล้ว datafiles หรือ tempfiles
SQL> select tablespace_name, file_name from dba_data_files;
TABLESPACE_NAME FILE_NAME
------------------------------ --------------------------------------------------------------------------------
USERS D:\ORACLEXE\APP\ORACLE\ORADATA\XE\USERS.DBF
UNDOTBS1 D:\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSAUX.DBF
SYSAUX D:\ORACLEXE\APP\ORACLE\ORADATA\XE\UNDOTBS1.DBF
SYSTEM D:\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSTEM.DBF
SQL> select tablespace_name, file_name from dba_temp_files;
TABLESPACE_NAME FILE_NAME
------------------------------ --------------------------------------------------------------------------------
TEMP D:\ORACLEXE\APP\ORACLE\ORADATA\XE\TEMP.DBF
จากรูป 1.8 เราจะพบชื่อ Tablespaces ต่างๆ
- SYSTEM จะถูกสร้างโดยอัตโนมัติเมื่อเราสร้างฐานข้อมูล Oracle ซึ่งใช้ในการเก็บพจนานุกรมข้อมูล(data dictionary)ซึ่งเป็นศูนย์กลางของ tableและview ที่ใช้เป็นข้อมูลอ้างอิงสำหรับฐานข้อมูล ซึ่งอยู่ใน SYS schema (ในฐานข้อมูล Oracle... USER = schema)
- SYSAUX เป็น tablespace เสริมสำหรับ SYSTEM tablespace และถูกสร้างโดยอัตโนมัติเมื่อเราสร้างฐานข้อมูล Oracle
- TEMP ใช้ในการเก็บข้อมูลชั่วคราว เช่นในการทำงานของ SQL ที่ต้องมีการเรียงข้อมูล
- UNDOTBS1 เก็บข้อมูลที่ต้องการใช้ในการ undo
SQL> show parameter undo_tablespace
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_tablespace string UNDOTBS1
- USERS เป็น permanent tablespace ใช้ในการเก็บข้อมูลของผู้ใช้งานทั่วไป (เราสามารถสร้าง permanent tablespace ให้แก่ผู้ใช้งานฐานข้อมูลได้)
SQL> CREATE TABLESPACE TBS_TEST DATAFILE 'D:\ORACLEXE\APP\ORACLE\ORADATA\XE\TBS_TEST01.DBF' SIZE 10M;
Tablespace created.
SQL> CREATE USER DEMO IDENTIFIED BY DEMO DEFAULT TABLESPACE TBS_TEST QUOTA UNLIMITED ON TBS_TEST;
User created.
Parameters พารามิเตอร์เป็นสิ่งที่จำเป็นในการ start ฐานข้อมูล Oracle เมื่อเราเลือกแท็บ Parameters จะพบพารามิเตอร์แค่ค่าต่างๆ ดังรูป 1.9
รูป 1.9: Parameters
บนฐานข้อมูล Oracle มีพารามิเตอร์อยู่หลายตัว เราสามารถเช็คได้จาก V$PARAMETER
SQL> select * from v$parameter;
พารามิเตอร์เป็นสิ่งที่จำเป็นต้องเรียนรู้ และเข้าใจ เมื่อเราต้องการดูแลระบบฐานข้อมูล Oracle หรือ เพื่อในการปรับปรุงประสิทธิภาพฐานข้อมูล Oracle ตัวอย่าง
- db_name ชื่อฐานข้อมูล
- sessions จำนวน Session ที่ถูกจำกัดในฐานข้อมุล
- spfile เป็นตัวบอกว่าใช้งาน Server Parameter File ที่ไหน ...spfile เก็บค่า parameters ของฐานข้อมูล Oracle ที่จำเป็นเมื่อ start ฐานข้อมูล (ไฟล์เป็น binary)
- undo_management ระบุว่าการจัดการ UNDO เป็นแบบไหน Manual หรือ AUTO
- undo_tablespace ระบุว่า UNDO tablespace ที่ใช้ชื่ออะไร
- compatible ระบุการเข้ากันได้ของ software version
- control_files ระบุ control files อยู่ที่ไหน ... control file จะเก็บชื่อฐานข้อมูล datafiles/tempfiles และอื่นๆ ที่จำเป็นสำหรับฐานข้อมูล Oracle
หมายเหตุ: ต้องขอกล่าวคร่าวๆ เกี่ยวกับการจัดการ Oracle Database XE เพราะบทความนี้ ผมต้องการเพียงใช้ Oracle Database XE เข้ามาช่วยในเรียนรู้ Oracle Database
อ้างอิง
Database Express Edition Documentation 11g Release 2 (11.2) Beta http://download.oracle.com/docs/cd/E17781_01/index.htm
เขียนโดย
Surachart Opun
@surachart
การตรวจเช็คฐานข้อมูล Oracle https://docs.google.com/document/d/16wdyd63xgl_Oaq0RCDH2uhw-AJawxh5mhO4AYeXtKvs/edit?hl=en_US&ndplr=1&pli=1