เริ่มต้น 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  

http://surachartopun.com

@surachart

การตรวจเช็คฐานข้อมูล Oracle https://docs.google.com/document/d/16wdyd63xgl_Oaq0RCDH2uhw-AJawxh5mhO4AYeXtKvs/edit?hl=en_US&ndplr=1&pli=1