go to http://oracle.in.th
Showing posts with label database. Show all posts
Showing posts with label database. Show all posts

Wednesday, December 1, 2010

National Character Set แบบ AL16UTF16 กับ UTF8 ต่างกันอย่างไร?

ห่างหายไปนานกับการเขียนบทความลงบล็อค oracle ของเรา ขอต้อนรับต้นเดือนสุดท้ายของปี 2010 นี้ด้วยทริก เล็กๆน้อยๆ นะครับ

วันนี้มีเกร็ดเล็กๆ น้อยๆ ที่เป็นประโยชน์ซึ่งเกี่ยวกับการสร้าง Database โดยใช้ DBCA หรือ Database Configuration Assistant มาให้ทุกท่านได้อ่านกันนะครับ

...ผมเชื่อว่า หลายๆท่านที่กำลังอ่านอยู่ตอนนี้ ต้องเคยได้ลองติดตั้ง Oracle Database หรือ เคยสร้าง Database มากันบ้างแล้วล่ะ ซึ่งขั้นตอนในการสร้าง Database นั้นมันก็ไม่ได้ยากมากมาย เพียงแค่ตั้งค่าให้ถูกต้องเท่านั้นเอง ซึ่งผมนั้นก็ได้ลองติดตั้งด้วยตัวผมเองแล้วเหมือนกัน แต่มีขั้นตอนนึงที่ทำให้ผมชะงักขึ้นมาว่า ...เอ๊ะ จะเลือกอันไหนดีล่ะ ? นั่นคือ ตอนที่ให้ตั้งค่า Database Character set โดยมี National Character Set แบบ AL16UTF16 กับ UTF8 ให้เลือก (ดูตามรูปได้เลยนะครับ)


เอาเป็นว่า แทนที่จะมานั่งเดาเอา ผมก็ search หาเอาซะเลย แล้วดูว่า National Character Set แบบ AL16UTF16 กับ UTF8 มันมีข้อแตกต่างกันอย่างไร?

AL16UTF16
  1. ถ้าข้อมูลเป็นภาษาเอเชีย จะประหยัดพื้นที่กว่า UTF8 ซึ่งจะดีในแง่ของพื้นที่ในฮาร์ดดิสก์ และ I/O แต่ถ้าข้อมูลส่วนใหญ่เป็นภาษาทางยุโรปใช้ UTF8 ดีกว่าเพราะประหยัดพื้นที่กว่า
  2. Oracle มอง AL16UTF16 เป็น fixed-width characters ดังนั้นจะ process เร็วกว่า
  3. ความกว้างสูงสุดของ NCHAR และ NVARCHAR คือ 1000 และ 2000 ตัวอักษร ซึ่งการันตี เพราะเป็น fixed-width
...มาดูฝั่ง UTF8 กันบ้าง

UTF8
  1. ถ้าข้อมูลเป็นภาษาทางยุโรป โดยปกติจะประหยัดพื้นที่กว่า AL16UTF16 (เนื่องจากภาษาทางยุโรปอยู่ในลำดับต้นๆของ Unicode ซึ่งสามารถแทนได้ด้วยข้อมูลเพียง Byte เดียว) และให้ประสิทธิภาพดีกว่าในการ Process
  2. ความยาวสูงสุดของ NCHAR และ NVARCHAR คือ 2000 และ 4000 ซึ่งดูเหมือนจะมากกว่า AL16UTF16 แต่ไม่การันตี เนื่องจาก UTF8 เป็น variable width ถ้าเป็น Character ที่ใช้ Byte เดียวก็จะได้ถึง 4000 bytes แต่ถ้าเป็น Character ที่ใช้ 3 Bytes ก็จะมีได้สูงสุดแค่ 4000/3 ตัวอักษร
...นั่นก็คือข้อแตกต่างของแต่ละตัว ดังนั้นก่อนที่ท่านผู้อ่านทุกท่านจะ set ค่าในการสร้าง database ลองดูรายละเอียดซักนิดนะครับ อย่าเพิ่งกด Next ๆๆ อย่างเดียวนะครับ ;)

อ้างอิง
ข้อเขียนนี้ช่วยฉัน:  

Thursday, August 19, 2010

Oracle Database 11g Installation on IBM-AIX 6

วันนี้เกิดคึกอยากจะเขียนบล็อคขึ้นมาครับ เพราะว่าพึ่งผ่าน case นี้มาและคิดว่าเป็น case ที่้น้อยคนจะได้เจอ ก็คือการติดตั้ง Oracle Database 11g บน AIX 6 นั่นเอง หลายคนอาจจะพึ่งเคยได้ยินว่า AIX คืออะไร ก็เลยขออธิบายนิดนึงว่ามันคือ OS ของ IBM ซึ่งเป็น Linux base ถ้าอยากรู้จัก AIX มากกว่านี้ก็ลอง search ดูได้เลยครับ

กลับมาในส่วนของเราดีกว่า อย่างที่ทราบๆกันว่า ในการติดตั้ง Oracle Database เนี่ยจะมีขั้นตอนหลักๆอยู่ 2 ขั้นตอนก็คือ

1. การเตรียม pre-requisite ให้พร้อมสำหรับการติดตั้ง Oracle Database
2. การติดตั้ง Oracle Database

ในที่นี้ผมจะกล่าวถึงเฉพาะข้อแรกก็คือการเตรียม pre-requisite นั่นเอง เพราะในส่วนของการติดตั้ง ก็จะสามารถหาอ่านได้จาก blog เก่าๆครับ
การ Install Oracle Database 11g และสร้าง Database

ที่อยากจะพูดถึงเรื่องการเตรียม pre-requisite เนี่ยเพราะว่าในแต่ละ platform ก็จะมี requirement ต่างๆที่เราต้องติดตั้งหรือแก้ไขเพิ่มเติมต่างกันไปและ AIX ก็เช่นกัน ซึ่ง case ที่ผมไปเจอก็คือ AIX นั้นจะติดตั้งมาแบบ default เลย มีการแบ่งพื้นที่ให้แก่ partition ต่างๆแค่นิดเดียว partition ละไม่ถึง 1GB (เอาไฟล์ installer ลงไปยังไม่ได้เลย - -") , swap space ไม่พอและไม่ได้ติดตั้ง fileset ที่จำเป็นสำหรับการติดตั้งเพิ่มเติม (คล้ายๆกับ package ของ linux) ทำให้เราต้องมาจัดการเองทั้งหมด ซึ่งถ้าไม่เคยได้เล่น AIX เลยเนี่ยอาจจะจิตตกได้ เพราะไม่รู้ว่าต้องแก้ไขอย่างไร, หา download fileset จากไหน หรือติดตั้งอย่างไร วันนี้เรามีข้อมูลจากประสบการณ์จริงที่พบมาเล่าสู่กันฟังครับ

1 การเพิ่มพื้นที่ให้แก่ partition ต่างๆ
- เข้าไปที่ Web-based System Manager (WSM) สามารถคลิกขวาที่ partition ที่ต้องการและเลือก properties และเพิ่มขนาดได้เลย ง่ายเกินคาด สามารถใช้ได้กับ /tmp ด้วย

2.การเพิ่ม swap space
- ตรวจสอบดูก่อนว่า swap space นั้นใช้ที่ partition ใด โดยใช้คำสั่ง sysdumpdev -l และดูผลลัพธ์ที่ primary เช่น primary /dev/hd6

- เมื่อทราบแล้วว่า swap space ใช้ path ใดก็ลองตรวจสอบขนาดของมันโดยใช้คำสั่ง lsps -a จะมีการระบุขนาดไว้

- ถ้าต้องการขยายขนาดเพิ่มไปอีก 1GB สามารถทำได้โดยใช้คำสั่ง extendlv hd6 1G

- reboot เครื่องซักรอบนึง แล้วลองตรวจสอบขนาดโดยใช้คำสั่ง lsps -a เช่นเดิม จะพบว่า swap space จะเพิ่มมาอีก 1 GB แล้วครับ

ประเด็นนี้ขออ้างอิงจากน้องที่เข้าไปช่วยกันทำนะครับ โดยได้บันทึกขั้นตอนไว้ในนี้
https://jira.oracle.in.th/browse/ORCL-364

3. การติดตั้ง fileset
- จะมี fileset ที่ต้องติดตั้งเพิ่มเติมอีก 3 ตัวดังนี้
bos.adt.libm
rsct.basic.rte
rsct.compat.clients.rte

- สามารถหาได้จากแผ่นติดตั้ง AIX 6 แผ่นที่ 1 นะครับ ตอนแรกผมก็ไปหาโหลดตั้งนาน เจอแต่ไฟล์ 200-300 MB ทั้งนั้น เหมือนมัดรวมเป็น pack มาให้โหลดกันเลย ถ้าใครต้องไปติดตั้ง Oracle Database อย่าลืมทวงหาแผ่นติดตั้ง AIX 6 นะครับ

- ขั้นตอนการติดตั้งเนี่ยจะต้องทำการ mount แผ่นเข้าไปและใช้ tool ที่ชื่อว่า "SMIT" ในการติดตั้ง fileset เหล่านั้น อยากจะเน้นชื่อเจ้า tool ตัวนี้จริงๆ เพราะมันเปรียบเสมือนพระเจ้าของ System Admin เลยทีเดียว SMIT นั้นย่อมาจาก System Management Interface Tool เป็น tool ครอบจักรวาลเกี่ยวกับการจัดการระบบ ซึ่งในช่วงที่เข้าไปติดตั้งเนี่ยผมมีสโลแกนประจำใจว่า "คิดไม่ออก บอก SMIT" :p

- วิธีการติดตั้งก็ใช้ command ดังนี้ SMIT install_latest หรือจะเข้าจาก SMIT แล้วไปไล่หา option เอาก็ได้

- จะมี interface ขึ้นมาจากนั้นก็เลือก fileset ที่จะติดตั้งตาม wizard ได้เลยครับซึ่งอาจจะปล่อย option ต่างๆให้เป็น default ไปก็ได้จากนั้นกด OK ก็จะเป็นการติดตั้ง

- เมื่อติดตั้งเสร็จแล้วลองตรวจสอบดูโดยใช้คำสั่ง lslpp -l ตามด้วยชื่อ fileset ที่ต้องการตรวจสอบ เช่น lslpp -l bos.adt.libm ก็น่าจะพบว่าติดตั้งเรียบร้อยแล้ว

ทั้ง 3 ข้อที่กล่าวมานั้นเป็นการกล่าวถึงขั้นตอนที่อาจแตกต่างจาก platform อื่นๆ ส่วน pre-requisite บางอย่างเช่น ค่า kernel นั้นก็แก้ได้เช่นเดียวกับ Linux อื่นๆครับ จากนั้นก็จะสามารถติดตั้ง Oracle Database 11g บน AIX 6 ได้แล้วครับ หวังว่าบล็อคนี้จะเป็นประโยชน์ต่อผู้ที่ต้องติดตั้งบน AIX 6 ไม่มากก็น้อยนะครับ :)
ข้อเขียนนี้ช่วยฉัน:  

Friday, July 9, 2010

Oracle Database Vault

Oracle Database Vault คืออะไร ? ในบทความวันนี้ ผมจะมาอธิบายข้อดีคร่าว ๆ ของการใช้เจ้าตัวนี้ ให้ทุกท่านได้อ่านกันนะครับ

Oracle Database Vault
คือส่วนหนึ่งของ database security ครับ โดยจะทำหน้าจำกัด user ผู้เข้าใช้ database ให้สามารถเข้าได้เฉพาะ user ที่ได้รับอนุญาติหรือเป็น DBA นั่นเองครับ ทั้งนี้เพื่อความปลอดภัยของ application ต่าง ๆ ที่ต้องการ security โดยมีหลักการ security ตามข้อบังคับต่าง ๆ เช่น Sarbanes-Oxley, Payment Card Industry (PCI) Data Security Standard (DSS), Health Insurance Portability and Accountability Act (HIPAA)และ อื่น ๆ ที่เกี่ยวข้องกับ security ใน data integrity และ data privacy โดย Oracle Database Vault จะทำการป้องกันการเข้าใช้ database ตาม environtment ต่างๆที่ต้องการ เช่น วันเวลาที่เข้าใช้, IP Address ของผู้เข้าใช้, ชื่อเข้า application ที่เข้ามาใช้ และการ authentication user ต่าง ๆ

โดยการใช้ Oracle Database Vault มีข้อดีดังนี้ครับ
  • Pro-actively safeguard application data stored in the Oracle database คือการป้องกันไม่ให้ผู้ใช้ที่ไม่ผ่านการ authentication เข้ามาใช้ข้อมูลได้
  • Address regulatory requirements คือการแบ่งความรับชอบตามหน้าที่ของ user
  • Restrict ad-hoc access to application data เป็นการป้องกันการใช้ application ที่ไม่ได้รับอนุญาติให้เข้าใช้ ด้วย multi-factor policies
  • Deploy with confidence สามารถติดตั้งได้กับ Oracle E-Business Suite, Oracle PeopleSoft, และ Oracle Siebel CRM
  • Realms เป็นการรวม schemas, object และ role ต่างๆที่ต้องการให้มี secure ไว้ด้วยกัน และกำหนดสิทธิ์ให้เฉพาะบาง user หรือ role มีสิทธิ์เข้าถึงข้อมูลเหล่านั้นได้
  • Command Rules เป็นการกำหนดให้ user สามารถ execute คำสั่งได้บางคำสั่ง
  • Factors เป็นการกำหนดการเข้าถึงข้อมูลโดยใช้ factor ซึ่งจะเก็บค่าต่างๆเช่น user location, database IP address หรือ user's session
  • Rule Sets คือ rule หรือกลุ่มของ rule ที่ใช้ร่วมกับ realms, command rule, factor และ secure application role
  • Secure Application Role เป็น special role ที่สามารถใช้ร่วมกับ rule set ได้
Credit by Ice, Yong

อ้างอิง
ข้อเขียนนี้ช่วยฉัน:  

Tuesday, June 15, 2010

มารู้จักกับ Oracle interMedia กันดีกว่า

Oracle interMedia เป็น feature ที่ทำให้ Oracle Database สามารถที่จะทำการเก็บ บริหารจัด หรือกู้คืนข้อมูลประเภท image, audio, video หรือ media data อื่นๆ โดย Oracle interMedia เพิ่ม reliacility, availability และ data management ในด้านของ multimedia ให้กับ Oracle Database ที่ multimedia เป็นเนื้อหาหรือส่วนต่างๆของ internet, e-commerce และ media-rich application

แต่ Oracle interMedia ไม่ได้ทำการควบคุม media capture หรือ output ของ device เนื่องจากส้วนนี้เป็นหน้าที่ของ application software

โดย Oracle interMedia ทำการบริหารจัดการกับ multimedia โดยรองรับสิ่งต่างๆเหล่านี้
  • การจัดเก็บและการกู้คืน
  • การบริหารจัดการกับ metadata ของ media และ application
  • สามารถที่จะรองรับได้หลาย format
  • สามารถ access ผ่านแบบปกติ และได้กับ web interface
  • ทำการ query ด้วยการใช้ความสัมพันธ์ของข้อมูล
  • ทำการ query ด้วย extracted metadata
  • ทำการ query ด้วยการใช้ media content ที่มี optional specialized indexing
Oracle interMedia รองรับ media content สำหรับ Oracle JDeveloper, Oracle Content Management SDK, Oracle Application Server Porta และ Oracle Partner ด้วย

ตัวอย่างการใช้งาน Oracle interMedia

1. ทำการ connect เข้า database ด้วย sqlplus และทำการ สร้าง table ที่ชื่อว่า "image_table" เพื่อใช้ในการเก็บรูป
connect hr/hr
create table image_table (id number primary key, image ordsys.ordimage);
2. ทำการสร้าง directory ที่เก็บรูปไว้โดย ตั้งให้ตรงกับ directory ที่เก็บรูปไว้อยู่ ด้วย user sys และทำการให้สิทธิในการอ่าน directory แก่ user hr
connect / as sysdba
create or replace directory imagedir as '/home/oracle/quickstart/';
grant read on directory imagedir to hr;
3. ใช้ user hr ในการสร้าง PL/SQL procedure ในการ import รูปเข้ามายัง table
create or replace procedure image_import(dest_id number, filename varchar2) is
img ordsys.ordimage;
ctx raw(64) := null;
begin
delete from image_table where id = dest_id;
insert into image_table (id,image)
values (dest_id, ordsys.ordimage.init())
returning image into img;

img.importFrom(ctx, 'file', 'IMAGEDIR', filename);
update image_table set image=img where id=dest_id;
end;
/
! ที่ IMAGEDIR จะต้องพิมพ์เป็นตัวใหญ่ทั้งหมด แม้ในตอนที่สร้าง directory ขึ้นมาจาพิมพ์ด้วยตัวพิมพ์เล็กก็ตาม

4. ทดลองเรียกใช้ procedure ที่สร้างขึ้นมา
call image_import(1,’book2.jpg’);
call image_import(2,’check.png’);
เสร็จแล้วรูปทั้งสองรูปจะถูกเพิ่มเข้าไปยัง table

5. ตรวจสอบรูปภาพด้วยคำสั่ง select ต่อไปนี้ โดยสามารถใช้ดูได้หลายคุณสมบัติของรูป แต่คำสั่งในตัวอย่างนี้จะเป็นการดูความกว้างความยาวของรูป
SQL> select id,t.image.getheight(),t.image.getwidth() from image t;

ID T.IMAGE.GETHEIGHT() T.IMAGE.GETWIDTH()
---------- ------------------- ------------------
1                 134                572
2                 464                667

ในลิ้งค์อ้างอิงยังมีตัวอย่างการใช้ Oracle interMedia อีก แต่ขอยกตัวอย่างมาเพียงเท่านี้ครับ

Credit by Ice

อ้างอิง
ข้อเขียนนี้ช่วยฉัน:  

Thursday, June 10, 2010

มาลดเวลาการ Start Oracle Database ด้วย Auto Start กันเถอะ

โดยปกติ เวลาผมจะ Start Database นั้น ผมจะ Start แบบ manual มีวันนึงผมก็เริ่มขี้เกียจมา อยากจะให้ Database มัน Start เองเลยหลังจาก Boot OS เสร็จ...ผมเลยไปหาวิธีที่จะให้มัน Auto Start Database หลังจากการ boot OS เลยโดยที่ผมไม่ต้องไปทำ manual start อีกต่อไป วันนี้เลยอยากจะแชร์บทความนี้ไว้ เผื่อใครอยากทำบ้างนะครับ

มาดูวิธีที่จะทำให้ Oracle Database auto start ขึ้นมาหลังจากการ boot OS โดยที่ admin ไม่ต้อง manual start กันเลยดีกว่า

1. login root

2. เข้าไปแก้ที่ /etc/oratab
โดยสังเกตุที่บรรทัด orcl:/oracle/db11201:N
ถ้าเป็น N อยู่ให้เปลี่ยนเป็น Y ดังนี้ orcl:/oracle/db11201:Y

3.สร้างไฟล์ใหม่ชื่อ dbora ไว้ที่ /etc/init.d/ โดยรายละเอียดตามด้านล่าง

#!/bin/sh
#chkconfig: 345 99 10
#description: Oracle auto start-stop script.
#
#Set ORA_HOME to be equivalent to the $ORACLE_HOME
#from which you wish to execute dbstart and dbshut;
#
#Set ORA_OWNER to the user id of the owner of the
#Oracle database in ORA_HOME.

ORA_HOME=/oracle/db11201
ORA_OWNER=oracle

if [ ! -f $ORA_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi

case "$1" in
'start')
#Start the Oracle databases:
#The following command assumes that the oracle login
#will not prompt the user for any values
su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole" &
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME"
touch /var/lock/subsys/dbora
;;
'stop')
#Stop the Oracle databases:
#The following command assumes that the oracle login
#will not prompt the user for any values
su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole" &
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME"
rm -f /var/lock/subsys/dbora
;;
esac

ข้อควรระวัง ต้องแก้ส่วน path ORA_HOME ให้ตรงตามที่เราเซ็ต $ORACLE_HOME ไว้ด้วย

4. ทำการ execute โดยใช้คำสั่งตามด้านล่างนี้

#chmod 750 /etc/init.d/dbora
#ln -s /etc/init.d/dbora /etc/rc.d/rc0.d/K01dbora
#ln -s /etc/init.d/dbora /etc/rc.d/rc3.d/S99dbora
#ln -s /etc/init.d/dbora /etc/rc.d/rc4.d/S99dbora
#ln -s /etc/init.d/dbora /etc/rc.d/rc5.d/S99dbora
#ln -s /etc/init.d/dbora /etc/rc.d/rc6.d/K01dbora

5. ทำการ reboot เครื่องใหม่ ก็เป็นอันเสร็จ

เราจะทราบได้อย่างไรว่าสิ่งที่เราทำไป database ได้ start หรือ shutdown ได้ถูกต้องจริงๆ
  • ตรวจสอบ log file เมื่อเปิดเครื่อง ที่ $ORACLE_HOME/startup.log
  • ตรวจสอบ log file ไฟล์เมื่อปิดเครื่อง ที่ $ORACLE_HOME/shutdown.log

Credit by Bie

อ้างอิงจาก
ข้อเขียนนี้ช่วยฉัน:  

Friday, June 4, 2010

การเลือก Shutdown database ให้เหมาะสม

หลายท่านที่ได้ทำ Database ต้องรู้จักการ Shutdown database อย่างแน่นอน ซึ่งบางคนก็จะใช้แต่คำสั่ง Shutdown immediate แต่คุณรู้ไหมว่าจริง ๆ แล้วการ shutdown นั้น มีหลายแบบแต่ละแบบนั้นมีความแตกต่างกันขึ้นอยู่กับความเหมาะสมของแต่ละงาน ฉะนั้น เรามาดูกันดีกว่าว่า เราควรจะ Shutdown database แบบไหนให้เหมาะสมที่สุด...


Mode ในการ Shutdown database มีด้วยกัน 4 mode ดังนี้

SHUTDOWN NORMAL mode นี้จะเป็น mode ปกติ ที่ต้องรอให้ผู้ใช้ ใช้งานเสร็จทั้งหมดก่อนถึงจะ shutdown ให้
  • หลังทำการรันคำสั่งนี้แล้ว จะไม่อนุญาตให้มีการเชื่อมต่อเข้ามาใหม่ และ จะรอจนกว่าการเชื่อมต่อที่มีอยู่ทำการยกเลิกการเชื่อมต่อก่อนจึงจะ shutdown
  • การ startup ครั้งต่อไป จะไม่มีการทำ instance recovery

SHUTDOWN TRANSACTIONAL mode นี้จะเป็นการ shutdown ไม่ต้องรอให้ผู้ใช้คนอื่นทำ sessions เสร็จก่อน โดยจะทำการปิด sessions ให้เลย แต่ถ้ายังมีการทำ transactions อยู่ก็รอจนกว่าจะทำเสร็จถึงจะปิดให้
  • หลังทำการรันคำสั่งนี้แล้ว จะไม่อนุญาตให้มีการเชื่อมต่อเข้ามาใหม่ รวมถึง transaction ที่ยังไม่ได้รัน
  • จะรอให้ Transaction ที่ทำงานค้างอยู่ทำงานให้เสร็จก่อน จากนั้นจะทำการยกเลิกการเชื่อมต่อทั้งหมด
  • มีประโยชน์สำหรับการป้องกันไม่ให้งานที่ทำอยู่เกิดข้อผิดพลาด เนื่องจากจะรอให้ทำ transaction ต่างๆที่ค้างอยู่เสร็จก่อน
  • การ startup ครั้งต่อไป จะไม่มีการทำ instance recovery

SHUTDOWN IMMEDIATE mode ไม่ต้องรอใน transactions mode นี้จะปิดให้เลยโดยไม่เลย transactions จบ
  • หลังทำการรันคำสั่งนี้แล้ว จะไม่อนุญาตให้มีการเชื่อมต่อเข้ามาใหม่ รวมถึง transaction ที่ยังไม่ได้รัน
  • Transaction ใดๆที่ยังไม่ได้มีการ commit จะถูก roll back ไปทั้งหมด
  • การเชื่อมต่อทั้งหมดจะถูกยกเลิกทันที
  • การ startup ครั้งต่อไป จะไม่มีการทำ instance recovery

SHUTDOWN ABORT mode นี้จะเป็นการ shutdown เร็วที่สุด เพราะ mode นี้จะไม่ต้องรออะไร
  • หลังทำการรันคำสั่งนี้แล้ว จะไม่อนุญาตให้มีการเชื่อมต่อเข้ามาใหม่ รวมถึง transaction ที่ยังไม่ได้รัน
  • SQL Statement ที่กำลังทำงานอยู่จะถูก terminate ทันที
  • Transaction ใดๆที่ยังไม่ได้มีการ commit จะไม่ถูก roll back
  • การเชื่อมต่อทั้งหมดจะถูกยกเลิกทันที
  • การ startup ครั้งต่อไป จะมีการทำ instance recovery

หรือสามารถดูสรุปได้จากตารางด้านล่างครับ

Database Behavior ABORT IMMEDIATE TRANSACTIONAL NORMAL

Permits new user connections

No

No

No

No

Waits until current sessions end

No

No

No

Yes

Waits until current transactions end

No

No

Yes

Yes

Performs a checkpoint and closes open files

No

Yes

Yes

Yes

Credit by Yong(@stigmatise)

อ้างอิง
ข้อเขียนนี้ช่วยฉัน:  

Thursday, May 27, 2010

10 อันดับแรก ของระบบฐานข้อมูล ที่น่าจับตามอง


ว่ากันด้วยเรื่องของระบบฐานข้อมูล หรือ Database System ถ้าผู้ที่เริ่มรู้จักหรือสนใจเรื่อง Database ได้ไม่นาน(ย้อนหลังไปซัก 5 ปี) จะไม่รู้ว่า Database นั้น ได้ถือกำเนิดมานานแล้วตั้งแต่ปลาย ๆ ปี 1970 โดยประมาณ ซึ่งพอหันกลับมามองในช่วงปีนี้ ก็ไม่สามารถจะแย้งได้เลยว่า วงการการตลาดของ Database นั้น มันเจริญเติบโตอย่างรวดเร็วเลยทีเดียว ยิ่งในช่วงปีนี้ เหล่าองค์กร Database ต่าง ๆ เกิดการปรับเปลี่ียนตัวผลิตภัณฑ์ของเขาเองเพื่อที่จะพร้อมแข่งขันกับคู่แข่งที่มากขึ้น ๆ ทุกวัน แถมยังมีประสิทธิภาพที่ดีมากขึ้นกว่าสมัยก่อนเป็นอย่างมาก

ฉะนั้นแล้ว สำหรับผู้ที่กำลังมองหา Database ซักตัว มาใช้ทำงานอะไรซักอย่าง บทความนี่้จะช่วยคุณในการ พิจารณา Database ที่ดีที่เหมาะแก่การใช้งานของคุณ โดยเรียงลำดับ 10 อันดับแรกของ Database ที่กำลังมาแรงในปัจจุบัน

1. Oracle
Oracle เริ่มมาตั้งแต่ปี 1979 ซึ่งเป็นองค์กรแรกก็ว่าได้ทีมี Database แบบ Relational database management system หรือที่เรียกย่อ ๆ ว่า RDBMS นั่นเอง โดยผู้ที่เป็นหัวเรือ CEO ของ Oracle จะเป็นใครไปไม่ได้นอกจาก Larry Ellison ซึ่งเป็นผู้ที่ทำให้ Oracle มีองค์กรที่เป็นลูกค้ากว่า 500 องค์กร และเป็นองค์กรที่ทำระบบฐานข้อมูลที่โด่งดังเกือบจะมากที่สุดก็ว่าได้

2. SQL Server
ถ้าพูดถึง Microsoft ที่เป็นบริษัทซอร์ฟแวร์ที่ใคร ๆ ก็รู้จัก ซึ่ง SQL Server ก็ส่วนหนึ่งที่ทำให้ Microsoft มีชื่อเสียงมากขึ้น เพราะ OS ของ Microsoft ก็มีอยู่เกือบทั่วทุกแห่ง และยิ่งถ้าคุณใช้ Microsoft Server แล้วละก็ คุณก็ต้องใช้ SQL Server ควบคู่กันไปเพราะมันทำงานได้ง่ายขึ้นและเหมาะที่จะรันบน Windows ที่ใคร ๆ ก็ใช้ด้วย

3. DB2
สำหรับ DB2 ที่ IBM เป็นเจ้าของนั้น สามารถทำงานได้บนหลายแฟลตฟอร์ม เช่น Linux, UNIX, Windows โดย IBM ได้ทำการพัฒนา DB2 เวอร์ชั่น 9.7 นี้ เพื่อมาแย่งตลาด Oracle โดยยึดแนวคิดที่ว่า "Lower costs. Easy to use. Secure." และเหมาะสำหรับองค์กรที่มีขนาดไม่ใหญ่โตนัก ซึ่งหากต้องการหาระบบจัดการฐานข้อมูลที่ดีและมีประสิทธิภาพสูง ดังนั้น DB2 เวอร์ชั่น 9.7 นี้น่าสนใจมากทีเดียว

4. Sybase
Sybase ยังคงเป็นผู้นำในด้าน Adaptive Server Enterprise หลังจาก 25 ปีแห่งความสำเร็จที่ผ่านมาและการปรับปรุงผลิตภัณฑ์ของ Adaptive Server Enterprise อยู่เรื่อย ๆ แต่เมื่อเร็ว ๆ นี้ Sybase ก็ได้ถูกซื้อโดย SAP ไปซะแล้ว

5. MySQL
เป็นระบบจัดการฐานข้อมูลโดยใช้ภาษา SQL แม้ว่า MySQL เป็นซอฟต์แวร์โอเพนซอร์ส แต่แตกต่างจากซอฟต์แวร์โอเพนซอร์สทั่วไป โดยมีการพัฒนาภายใต้บริษัท MySQL AB ในประเทศสวีเดน โดยจัดการ MySQL ทั้งในแบบที่ให้ใช้ฟรี และแบบที่ใช้ในเชิงธุรกิจ แต่อย่างไรก็ตาม ตอนนี้ Oracle ก็ได้ชื่อว่าเป็นเจ้าของ MySQL ไปซะแล้วและ Oracle ได้ประกาศต่อสาธารณะอย่างมุ่งมั่นว่าจะพัฒนาอย่างต่อเนื่องและสนับสนุน MySQL อย่างสุดกำลัง

6. PostgreSQL
PostgreSQL หรือนิยมเรียกว่า โพสต์เกรส (Postgres) เป็นระบบจัดการฐานข้อมูลในลักษณะของซอฟต์แวร์เสรีภายใต้สัญญาอนุญาตบีเอสดี ชื่อเดิมของซอฟต์แวร์คือ โพสต์เกรส ซึ่งต่อมาได้ถูกเปลี่ยนเป็นโพสต์เกรสคิวเอล โดยประกาศออกมาจากทีมหลักในปี 2550 ชื่อของโพสต์เกรสมาจากชื่อ post-Ingres ซึ่งหมายถึงตัวซอฟต์แวร์ที่พัฒนาต่อจากซอฟต์แวร์ชื่ออินเกรส
นั่นเอง

7. Teradata
ถ้าคุณเคยทำฐานข้อมูลในระดับใหญ่ ๆ คุณอาจจะเคยได้ยิน Teradata อยู่บ้าง Teradata เกิดขึ้นเมื่อปี 1970 เป็นผู้ที่วางรากฐานสำหรับคลังข้อมูลแรก ๆ ก่อนที่จะมีอย่างเป็นทางการ ซึ่งผู้เชี่ยวชาญด้านคลังสินค้าหรือ Data warehouse มักจะเรียก Teradata ในความหมายเดียวกับ บริษัทคลังข้อมูลขนาดใหญ่นั่นเอง

8. Informix
เป็นผลิตภัณฑ์อีกตัวหนึ่งของ IBM ที่ถูกพัฒนาออกมาหลายเวอร์ชั่นมาก ตั้งแต่ imited Developer Edition จนถึง entry-level Express Edition หรือ low-maintenance online transaction processing (OLTP) Workgroup Edition และ high-performance OLTP Enterprise Edition โดย Infomix จะยึดหลักที่ว่า "ลูกค้ามักจะได้ต้นทุนต่ำของการบำรุงรักษาและความน่าเชื่อถือสูงที่สุด"

9. Ingres
Ingres เป็นส่วนรากฐานของโอเพ่นซอร์สในตระกูล PostgreSQL และฐานข้อมูลอื่น ๆ หรือเรียดได้ง่าย ๆ ว่า คือ RDBMS (Relational Database Management System) แบบโอเพ่นซอร์สของบริษัทคอมพิวเตอร์ แอสโซซิเอทส์ จำกัด (Computer Associates - CA) ซึ่งเป็นหนึ่งในระบบจัดการฐานข้อมูลเชิงสัมพันธ์หรือ RDBMS อันดับต้นๆ ของโลก

10. Amazon's SimpleDB
ฐานข้อมูลแบบง่ายๆ มีตารางเดียว แต่รองรับปริมาณข้อมูลจำนวนมากได้ โดยทั่วไปแล้ว SimpleDB จะมีการใช้งานที่ใกล้เคียงกับ SQL ตามปรกติ ที่ต่างออกไปคือการทำ Query ต้องอยู่บนตารางเดียวเท่านั้น และสามารถใช้ Expression ได้เพียงพื้นฐาน แต่มีข้อดีคือการเพิ่มขนาดของ SimpleDB นั้นทำได้ค่อนข้างง่ายและที่สำคัญที่สุดคือไม่มีค่าธรรมเนียมขั้นต่ำ

อ้างอิง
ข้อเขียนนี้ช่วยฉัน: