วันอังคารที่ ๑๑ ธันวาคม พ.ศ. ๒๕๕๐
Web 2.0 Colour Pallete
วันเสาร์ที่ ๘ ธันวาคม พ.ศ. ๒๕๕๐
Creative Liquid Design












Resource : liquidsculpture.com
วันจันทร์ที่ ๓ ธันวาคม พ.ศ. ๒๕๕๐
51 Photoshop Text Effect Tutorials
หายเงียบไปนานทีเดียว หลังจากคราวที่แล้วนำเสนอ Outstanding Web Start Pages เพื่อน ๆ ให้ความสนใจอย่างมาก (เป็นปลื้ม ^_^) ครานี้เลย รวบรวมอีกครั้งกับ 51 เทคนิคการ Design Text หรือตัวอักษรโดยใช้ Photoshop มาฝาก ไม่ต้องพูดพร่ำ ทำเพลงครับ ไปชม และ เลือกดูตามความชอบเลยครับ มันน่าจะมีซักแบบซิน่า...ที่ชอบ
- Aqua Text
Re-create the font style that Mac OSX is famous for.
- 3D Cliff Text
Make text that looks like it’s a part of the land.
- Matrix Style Text
Take the red pill and learn how to create text in the style of The Matrix.
- Brick Text
Create text that looks like it was chipped out of a brick wall.
- Set Your Text On Fire
An advanced tutorial that shows how to create realistic flaming text.
- Explosion Effect
Explode your text with this tutorial.
- Spiderman 3 Style Text
Create text in the style of the Spiderman 3 logo.
- Colorful Light Burst Effect
Create text that looks as if it’s bursting out.
- Web 2.0 Sticker Text Effect
Another Web 2.0 style text effect, but this one looks as if it was a sticker.
- 3D Text
Another tutorial showing how to create 3D text from a different perspective.
- Worn Rubber Stamp Text
Make text look as if were stamped on a page.
- Chalk Text Effect
Text that looks like chalk on asphault.
- Blown Out 3D Text
3D text in the style of 3D films.
- Create A Professional Looking Logo
A tutorial showing how the use of gradients and shadows can create professional looking text.
- Shiny 3D Text
Another 3D tutorial that shows you how to create a reflective logo.
- Reflective Liquid Type
Create text that looks like reflective water.
- Shiny Floor Effect
Make it look like your text is being reflected from a shiny floor.
- Water Text
This tutorial shows you how to create text that looks like water on any background.
- Grungy, Slimey Text
Use this tutorial to make text look as if it emerged from a swamp.
- Chrome Metal Effect
Create a beveled chrome font effect.
- Gold Plated Text
A tutorial showing how to make your text look gold plated.
- Graffiti Text With Photoshop
Create realistic looking graffiti on structures like walls.
- Transparent GLass Lettering
Very shiny and transparent lettering good for many uses.
- Swirl Text
Create a bright swirl using text.
- Highlight and Shadow Effect
Create text with a pixelated, mosaic background.
- Glowing Gel Text
Glowing text that looks like gel.
- 3 Stroked Text
Stylized text that looks layered.
- Icy Cold Effect
Text that looks like ice is creeping up around it.
- Very Stylish 3D Pixel Text
Make pixelated text that looks 3D.
- Chrome Text
Make chrome text that looks like it’s gleaming.
- Rusted Slime Effect
Make your text look like rust is coming down from it.
- Worn and Torn Text Effect
Text that looks worn out and falling apart.
- Dreamy Text Effect
Create text like something out of a dream.
- Schocking Text
A text effect that looks as if bolts of electricity are coming out of it.
- Furry Text
Use brushes to create text in any pattern.
- Realistic Stone Effect
Create text that looks like it was carved out of stone.
- Gutsy Text
Create text that looks like it contains intestines.
- Soft, Plastic Text
Plastic text that looks great on any dark background.
- Turf Text
Blend any style text into turf.
- Diamond Text
Bling out your text with diamonds.
- Molten Lava Blast Effect
Use gradients and layer styles to create molten lava text.
- Mossy Effect
Text that looks as if moss is growing on it.
- Ice Text
Lettering that looks like it’s frozen stiff.
- Plastic Effect
Make your text look like it’s wrapped in shiny plastic.
- Fragmented Tiles Text Effect
Put layered tiles on the inside of your text.
- Zoom Text
Give your text a little zoom blur.
- Pixel Text
Create beveled text without layer styles.
- Image Inside Text
Add an image to the inside of your text.
- Gold And Ruby Text
Make gold text that looks like it contains jewels.
- Girly Bling Text Effect
Sparkling letters in a feminine style.
- Halftone Effect
Surround your text with a halftone style.
Oracle Database Backup (RMAN)
เรื่องราวในตอนนี้(ตอนที่แล้ว)จะเกี่ยวกับการ Backup Oracle database แบบ physical backup โดยจะใช้ utility ที่ชื่อว่า Recovery Manager (RMAN)
ศัพท์ที่เกี่ยวข้องกับการ backup
การ backup หลักๆ แล้วมี 2 แบบ
* Backup database ทั้งก้อน
* Backup แค่เฉพาะบางส่วนของ database เช่น backup เฉพาะบาง tablespace หรือบาง datafile
ประเภทการ backup
* Full backup คือทุกครั้งที่ทำการ backup จะสร้าง backup ด้วยข้อมูลใหม่ทั้งหมด
* Incremental backupคือ backup เฉพาะข้อมูลส่วนที่ต่าง ส่วนที่มีการเปลี่ยนแปลง แต่แบบนี้จะต้องมี backup ตัวเก่าอยู่ก่อนด้วยเพื่อเอาไว้เปรียบเทียบว่ามันต่างกันตรงไหน
Mode การ backup
* Offline backup อาจเรียกว่า consistent backup คือการ backup ขณะที่ database ไม่ได้ถูกทำงาน
* Online backup อาจเรียกว่า inconsistent backup หรือ hot backup คือการ backup ขณะที่ database กำลังทำงานอยู่
Format ของการ backup
* Image Copies รูปแบบนี้จะเหมือนกับการ copy physical file ระดับ os เช่น data file ต้นฉบับมีขนาดเท่าไหร่ backup ก็จะมีขนาดเท่ากัน ข้อเสียของการ backup ในรูปแบบนี้คือเปลืองเนื้อที่
* Backup set รูปแบบนี้เป็น format ของ Oracle โดยเฉพาะ Oracle เลือก backup set รุปแบบนี้เป็น default backup set แตกต่างกับ image copies ตรงที่จะ backup เฉพาะ block ที่มีข้อมูลจัดเก็บอยู่เท่านั้น โดย backup set นั้นเราสามารถกำหนดระดับ set ได้ และกำหนดได้อีกว่าจะเก็บลง media ชนิดไหน disk หรือ tape
Recovery Manager (RMAN)
RMAN คือ utility ที่ถูกติดตั้งมาพร้อมกับ Oracle Database มีไว้เพื่อทำหน้าที่ จัดการ backup, restoring และ recovering database โดยสามารถสั่งงานผ่าน Command หรือ OEM ก็ได้
ศัพท์ที่เกี่ยวข้องกับ RMAN
* Target Database คือ database เป้าหมายที่เราจะทำการ backup
* Channel Process คือ ช่องทางที่ RMAN จะติดต่อกับ target database
* RMAN Repository คือ ที่เก็บข้อมูลของ RMAN โดยจะเก็บรายละเอียดของการ backup ของ instance นั้นๆ ซึ่งโดย default จะเก็บข้อมูลอยู่ control file ของ instance นั้นๆ แต่เราสามารถเปลี่ยนได้โดยการสร้าง database ใหม่ขึ้นมาเพื่อให้เก็บรายละเอียดการ backup แล้วเราอาจกำหนดให้ share ได้นั้นคือถ้ามี database ที่จะ backup หลายตัวก็ใช้ RMAN Repository เดียวกันได้
* flash recovery area คือตำแหน่งที่ instance นั้นๆ ใช้จัดการกับไฟล์ต่างๆที่เกี่ยวกับการ backup เช่น archive log file โดย default path จะเก็บอยู่ทีนี่ หรือ ไฟล์ที่ได้จากคำสั่ง RMAN
* Media managent software คืออุปกรณ์ต่างๆที่ใช้เพื่อ backup ข้อมูล เช่น tape drives การจะใช้อุปกรณ์ภายนอกต่างๆ วิธีใช้ขึ้นอยู่กับผู้ผลิตเป็นผู้กำหนด
* Recovery catalog คือ database ที่เก็บ recovery catalog schema ซึ่งจะเก็บ metadata ที่ RMAN ใช้ทำหน้าที่ backup และ recovery
Parameter ที่ใช้ในการ configure RMAN
* DB_RECOVERY_FILE_DEST_SIZE ใช้กำหนดขนาดพื้นที่ของ flash_recovery ให้ใช้ได้เท่าไหร่
* DB_RECOVERY_FILE_DEST ใช้กำหนด path ที่ใช้จัดเก็บ backup set
View ที่เกี่ยวข้องกับ RMAN
* V$RECOVERY_FILE_DEST เป็น view ที่บอกดูตำแหน่งของ flash recovery
* V$FLASH_RECOVERY_AREA_USAGE เป็น view ที่บอกตำแหน่ง file แต่ละประเภทใช้เนื้อที่ไปเท่าไหร่
Physical File ที่ RMAN สามารถ backup ได้
* Database file = { data file, control file, spfile }
* Archived log file
ส่วน password file, network configure file (tnsname.ora, listener.ora, sqlnet.ora) ไม่สามารถใช้ RMAN backup ได้ พวกนี้เรา manual backup เองได้
คำสั่ง RMAN เบื้องต้น
Start & Exit RMAN
# RMAN target /[@] [nocatalog | catalogname]
# RMAN
RMAN> EXIT
คำสั่ง run script RMAN จากไฟล์
# RMAN target / @file1
RMAN> @file1
คำสั่งตรวจสอบ syntax RMAN
# RMAN CHECKSYNTAX
# RMAN CHECKSYNTAX @file1
คำสั่งเกี่ยวกับ parameter
RMAN> show ;
RMAN> SHOW ALL;
RMAN> CONFIGURE CLEAR;
คำสั่งเกี่ยวกับการจัดการ device อื่น
ระบุอุปกรณ์ที่จะจัดเก็บ
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO ;
ระบุประเภทของการ backup และจะบีบอัดหรือไม่
RMAN> CONFIGURE DEVICE TYPE BACKUP TYPE TO ;
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT ‘/backup/ora_df%t_s%s_s%p’;
บาง media managers ต้องปรับแต่งผ่าน parameter แล้วแต่ผู้ผลิตอุปกรณ์นั้น
RMAN> CONFIGURE CHANNEL DEVICE TYPE SBT PARMS=’ENV=mml_env_settings’;
คำสั่งเกี่ยวกับการ backup data file
RMAN> BACKUP DATABASE;
Backup บาง tablespace
RMAN> BACKUP TABLESPACE system, users, tools;
RMAN> BACKUP DEVICE TYPE sbt MAXSIZE=10M TABLESPACE user, tool;
Backup บาง data file
RMAN> BACKUP DEVICE TYPE sbt DATAFILE 1,2,3,4 DATAFILECOPY ‘/tmp/system.dbf’;
RMAN> BACKUP DEVICE TYPE sbt TABLESPACE user INCLUDE CURRENT CONTROLFILE;
RMAN> BACKUP AS BACKUPSET DATAFILE
’ORACLE_HOME/oradata/trgt/users01.dbf’,
’ORACLE_HOME/oradata/trgt/tools01.dbf’;
เราสามารถกำหนดเรื่องของ incremental backup ได้แต่การทำ incremental backup จะต้องเปรียบเสมือน level 1 ดังนั้นก่อนจะทำได้ต้องมี level 0 ก่อน นั่นคือเมื่อเรา backup ครั้งแรกให้กำหนดเป็น level 0 ก่อน แต่เมื่อทำ incremental backup ไฟล์ backup level0 และ 1 ต้องอยู่ครบเพื่อทำให้สามารถทำการ restore และ recovery ได้อย่างสมบูรณ์
RMAN> BACKUP INCREMENTAL LEVEL [0 | 1] CUMULATIVE DATABASE;
คำสั่งเกี่ยวกับ backup control file
เป็นการ config ว่าจะให้ autobackup control file และ parameter file เมื่อมีการเปลี่ยนแปลงหรือไม่ และเมื่อมีความเสียหาย RMAN จะ recover ให้กับ instance นั้นเอง
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ;
เปลี่ยน default name ของ autobackup
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE to ‘?/oradata/cf_%F’;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE clear;
ถ้าต้องการ override ค่า autobackup เฉพาะ session นั้นๆ (ใช้ใน run block กับ RMAN prompt)
RMAN> SET CONFIGURE AUTOBACKUP FORMAT
Backup copy control file ณ ปัจจุบัน
RMAN> BACKUP CURRENT CONTROLFILE;
RMAN> BACKUP CURRENT CONTROLFILE TO ’/backup/curr_cf.copy’;
Backup copy control file
RMAN> BACKUP AS COPY CURRENT CONTROLFILE FORMAT ‘/tmp/control01.ctl’;
RMAN> BACKUP DEVICE TYPE sbt CONTROLFILECOPY ‘/tmp/control01.ctl’;
คำสั่งเกี่ยวกับ backup parameter file
RMAN> BACKUP SPFILE;
RMAN> BACKUP DEVICE TYPE sbt SPFILE;
คำสั่งเกี่ยวกับ backup archived log file
RMAN> BACKUP ARCHIVELOG …;
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;
RMAN> BACKUP ARCHIVELOG COMPLETION TIME BETWEEN ’SYSDATE-31’ AND ’SYSDATE-7’;
คำสั่ง restore
RMAN> RESTORE DATABASE;
RMAN> RESTORE TABLESPACE users;
RMAN> RESTORE DATAFILE <ชื่อ datafile>;
RMAN> RESTORE DATAFILE 7;
คำสั่ง recovery
RMAN> RECOVER DATABASE;
RMAN> RECOVER TABLESPACE users;
RMAN> RECOVER DATAFILE <ชื่อ datafile>;
RMAN> RECOVER DATAFILE 7;
ตัวอย่างการ backup
Backup Database รวมทั้ง Archivelog file พร้อมให้ delete archive log file ที่ backup แล้วด้วย
# RMAN TARGET backup_admin/backup_admin NOCATALOG
RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;
Backup Database รวมทั้ง Control file พร้อมทั้งให้ delete ไฟล์ backup ที่ล้าหลังด้วย
RMAN> backup incremental level 0 cumulative device type disk tag '%TAG' database include current controlfile;
RMAN> allocate channel for maintenance type disk;
RMAN> delete noprompt obsolete device type disk;
RMAN> release channel;
ตัวอย่างการ restore & recovery
Recovering ทั้ง database
RMAN> STARTUP FORCE MOUNT;
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN;
Recovering เฉพาะบาง tablespace
RMAN> SQL 'ALTER TABLESPACE users OFFLINE';
RMAN> RESTORE TABLESPACE users;
RMAN> RECOVER TABLESPACE users;
RMAN> SQL 'ALTER TABLESPACE users ONLINE';
Recovering Datafiles 7
RMAN> SQL 'ALTER DATABASE DATAFILE 7 OFFLINE';
RMAN> RESTORE DATAFILE 7;
RMAN> RECOVER DATAFILE 7;
RMAN> SQL 'ALTER DATABASE DATAFILE 7 ONLINE';
การทำ Backup Control File to Trace
ทำ Trace ของ Control File เพื่อใช้ในการ recover เมื่อ control file เสียหาย ถ้าใช้ OEM ให้เข้าเมนุ Controlfiles แล้วกดปุ่ม Backup To Trace หรือใช้คำสั่ง
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE; โดยผลลัพธ์จะเก็บอยู่ตามที่ระบุไว้ใน parameter USER_DUMP_DEST
โดย default name: _ora_pid.trc
และ default path: อยู่ที่
วันจันทร์ที่ ๑๙ พฤศจิกายน พ.ศ. ๒๕๕๐
Outstanding Web Start Pages
คราวที่แล้วผมยกตัวอย่าง การสร้างสรรค์งานโลโก้ สวย ๆ แจ่ม ๆ ไป ในหัวข้อ 58 Creative Logos วันนี้เลยจะมาพูดถึงการ Design web และจะยกตัวอย่างเว็บที่โดดเด่นเมื่อแรกพบให้ดูกัน (เว่อร์อีกละ) ก่อนอื่นก็ขอเกริ่นอีกซักหน่อยละกันนะครับ สำหรับเว็บเพจต่าง ๆ ที่เราพบเราเห็นกันมากมาย บนโลก Cyber อันแสนจะใหญ่โตมโหฬาร ในแต่ละวันมีเว็บน้อย เว็บใหญ่ ผุดขึ้นมาราวกับดอกเห็ด ยิ่งทุกวันนี้การที่เราจะมีเว็บ มีบล๊อกเป็นของตัวเอง สร้างง่ายยังกับอะไรดี เมื่อเทียบกับเมื่อก่อน กว่าจะได้เว็บส่วนตัวมาเว็บนึง แทบรากเลือด(5555+) แถมทุกวันนี้ฟรี(มีทั้งแอบแฝง ทั้งแอบอาศัย หรือจะแอบยังงัยก็เพื่อชื่อเสียงทั้งนั้น) ใครไม่อยากฟรี (ก็ยังต้องฟรีไปก่อน 555 เก็บตังค์เมื่อไหร่ “กรูก็ไม่ใช้” ผมละคนนึง...อิอิ) นอกเรื่องอีกแว้วว...
1. Dynamic, interactive, stylish.
LeoBurnett.ca






2. Browsing a site in a new way.
Dontclick.it
3. Using enhanced interface design.
pr0jects.com
4. Offering another perspective.
Davor Vaneijk


5. Using visual communication.
One Laptop per Child
6. Using the power of visual elements.
73dpi.net

7. Using Huge Tag Clouds.
Search the Beat

8. Dynamic interaction & artwork.
Vault49

9. Interactive & user-friendly.
Shopcomposition.com
10. Typography in use.
Quite unusual


11. Using a text marker-effect.
Andy Rutledge


12. Experiment with your sites.
Shaun Inman

13. Let users explore the page.
Rinzen




KEEN


14. Minimalism and attention to small details.
The Tangerine Tree
15. Using uncommon solutions.
Nonstep

วันศุกร์ที่ ๑๖ พฤศจิกายน พ.ศ. ๒๕๕๐
58 Creative Logos
วันอังคารที่ ๑๓ พฤศจิกายน พ.ศ. ๒๕๕๐
Oracle DB Backup & Recovery Concept
หลังจากที่โม้เรื่องไร้สาระเรื่อยเปื่อย มาหลายวัน เห็นทีต้องมีสาระกับเขาบ้างแล้ว
วันนี้ไปอ่านเรื่องการ Backup database มาจาก Oracle and Java Blog
ก็ี้เลยจะยกเรื่องการ Backup Oracle Database มาโม้ซะหน่อย (ตามภาษาเกรียนน้อยอย่างผมละค๊าบ)
ว่าแล้วเราก็เข้าเรื่องกันเลยดีกว่า ยาวหน่อยนะครับ ทน ๆ อ่านกันหน่อยละกัน 555+
การดูแล Oracle Database หรือจะเป็น Database หน้าไหนก็ตาม
สิ่งที่ขาดไม่ได้ในการดูแล database นั่นคือเรื่องของการ backup database
ผมเคยใช้เวลาค้นหาเรื่องเกี่ยวกับการ backup ซักระยะแล้ว ก็เริ่มหงุดหงิดกับบทความภาษาไทย ที่บอกไม่ละเอียดเลย มีบอกนั่นนิดมีบอกนี่หน่อย พอกันทีครับไป otn ดีกว่า มือใหม่อย่างผมก็นั่งงมอยู่ซักพักก็เริ่มจับหลักได้
ผมจึงตั้งใจจะเขียนเรื่องการ backup database โดยแบ่งออกมาได้เป็น 3 ตอน
1. Oracle Database Backup & Recovery Concept
2. Oracle Database Backup (RMAN)
3. Oracle Database Recovery
สำหรับตอนนี้เป็นตอนแรกผมอยากให้เข้าใจ concept ของการทำ backup & recovery database กันก่อนให้เข้าใจก่อนว่า failure สามารถเกิดได้ในเหตุการณ์ไหนบ้าง
Backup และ Recovery จะเกี่ยวข้องกับยุทธวิธีและขั้นตอนการป้องกันข้อมูลไม่ให้สูญหายและคืนสภาพให้กับ database เมื่อข้อมูลเสียหาย
Backup คือการ copy ข้อมูลจาก database เพื่อนำมาใช้สร้าง database เมื่อ database มีข้อมูลเสียหาย แบ่งได้เป็น 2 ประเภท
- Physical backup คือการ backup ข้อมูลจาก physical file เช่น data file, control file, archive redo log file วิธีการ backup มี 2 วิธี
- Manual Backup คือการเราเข้าไป copy physical database file แต่ต้องทำขณะที่ shutdown database อยู่
- Recovery Manager (RMAN) เป็น utility ที่ Oracle ทำขึ้นมาเพื่อทำหน้าที่ backup restore and recovery โดยเฉพาะสามารถทำได้ขณะที่ database กำลัง online อยู่
- Logical backup คือการ backup พวกข้อมูลที่เป็น Logical เช่น Tables, stored procedures ซึ่งอาจใช้ Oracle export utility
เป้าหมายของการทำ backup
- Mean Time Between Failure (MTBF) หมายถึงเพิ่มเวลาเมื่อเกิด database failure แต่ User ยังสามารถทำงานต่อไปได้โดยไม่รู้สึกว่า database failure
- Mean Time To Recover (MTTR) คือการใช้เวลาให้น้อยที่สุดในการ recovery database
- ป้องกันไม่ให้เกิด Database Failure
- เมื่อ Recovery กลับมาแล้วข้อมูลควรเสียหายน้อยที่สุด และต้องใช้งานได้เหมือนเดิม
Database Failure ที่อาจเกิดขึ้นได้
- Statement Failure สาเหตุเกิดจาก
- syntax ไม่ถูกต้อง
- application logic failure
- User ไม่มีสิทธิ์ส่งคำสั่งนั้น
- User ใช้พื้นที่ tablespace เกิน quota ที่กำหนด ถ้าเกิดปัญหาในข้อนี้สามารถแก้ได้โดยให้ dba เพิ่ม quota ให้ user แต่เราสามารถดักให้ error ที่เกิดขึ้นนี้หน่วงเวลาออกไปได้โดยเข้าไปกำหนดใน parameter RESUMABLE_TIME=xxx (วินาที) ซึ่งในระหว่างนี้ให้ dba เข้าไปเพิ่ม quota ให้กับ user ที่เกิดปัญหาหลังจากนั้น statement ที่ error นั้นสามารถทำงานต่อไปได้ failure ประเภทนี้ที่ไม่ต้องมี backup และไม่ต้องทำ recovery เพราะไม่มีผลกระทบอะไรกับ database Oracle สามารถจัดการกับปัญหาที่เกิดขึ้นทั้งหมดได้
- User Process Failure สาเหตุเกิดจาก
- User ที่ disconnect database แบบผิดปกติ เช่น user ทำ transaction ต่างๆอยู่แล้วยังไม่ commit เกิดข้อผิดพลาดขึ้นใน application ทำให้ application ต้องหยุดการทำงานไปทำให้ user ออกจาก database แบบผิดปกติ ซึ่งถ้าเกิดความผิดปกติประเภทนี้ เราจะรู้ได้ทันทีจาก background process Process Moniter (PMON) โดยสิ่งที่ Oracle จะแก้ไขปัญหานี้คือ Oracle จะ rollback transaction ที่ทำค้างของ User คนนั้น และปลดล็อคคืนให้กับระบบ failure ประเภทนี้ไม่ต้องมี backup และไม่ต้องทำ recovery
- Network Failure สาเหตุเกิดจาก
- Listener Fails เมื่อเกิดเหตุการณ์นี้ client จะไม่สามารถเข้ามาใช้งาน Oracle Database ได้เลย เป็น failure ที่เล็กน้อยแต่เป็นปัญหาใหญ่ การป้องกันไม่ให้เกิด failure ประเภทนี้คือ สร้างเส้นทางสำรองให้กับ listener ทำโดยสร้าง listener process อีก 1 ตัว แล้วเลือก option connection fail over เป็น advance option จากนั้นเราต้องทำให้ client รู้จัก listener รู้จักกับเส้นทางสำรองผ่าน listener โดยการ config tnsname.ora
- ระบบ network fails ปัญหาอย่างนี้ไม่เกี่ยวข้องกับข้อมูลของ database เลยไม่ต้องมี backup ไว้
- User Error สาเหตุเกิดจาก
- ความผิดพลาดจาก user เอง เช่นการลบ table ผิดซึ่งพบได้บ่อยมาก ใน Oracle Database 10g จึงได้เพิ่ม feature ใหม่เข้ามาคือ flashback ซึ่งสามารถเอา table ที่ถูกลบไปแล้วกลับมาได้ด้วย user คนนั้นเอง แต่ก็ต้องดูด้วยว่าข้อมูลที่จะ flashback กลับมานั้นยังอยู่ใน undo table หรือไม่ ตัวอย่างการใช้คำสั่ง flashback
- Media Failure อาจเกิดขึ้นกับ disk ที่ไม่ว่ากรณีใดๆ เมื่อเกิดขึ้นแล้วต้องมี backup และต้องทำ recovery ให้กับ database
- Instance Failure สาเหตุอาจเกิดจาก
- ไฟดับ
- Hardware failure
- Background processes Failure
- Emergency shutdown เช่นการส่งคำสั่ง shutdown ABORT และ start FORCE Failure ประเภทนี้ต้องมี backup เพื่อเอาไว้ recovery Failure ประเภทนี้ Oracle สามารถตรวจเจอได้เอง
SQL> DROP Table hr.job_history;
Table dropped.
SQL> FLASHBACK TABLE hr.job_history TO BEFORE DROP;
Flashback complete.
ตารางที่ลบไปแล้วจะถูกเปลี่ยนชื่อโดยขึ้นต้นว่า bin ถ้าเราต้องลบ table ที่อยู่ใน recycle bin คำสั่ง PURGE
ตัวอย่างการใช้คำสั่ง purge
SQL> purge recyclebin ; อันนี้ลบทั้งหมด
SQL> purge table ... ;
SQL> purge index ... ;
Failure ประเภทนี้อาจต้องใช้ backup เพื่อทำ recovery เพราะว่าถ้าใช้ คำสั่ง PURGE จะทำให้ table ที่อยู่ใน recycle bin จะถูกลบไปถาวร
การที่ Instance Failure มีโอกาสสูงที่จะทำให้ข้อมูลไม่ synchonize กันเพราะเมื่อมีการส่งคำสั่ง update เข้ามามีผลทำให้ข้อมูลมีการเปลี่ยนแปลง ข้อมูลที่เปลี่ยนแปลงจะถูกเก็บลงใน redo log buffer แล้วเมื่อ user ส่ง commit เข้ามาข้อมูลที่เปลี่ยนแปลงจึงถูกเขียนลงใน redo log file แต่ยังไม่เขียนข้อมูลที่เปลี่ยนแปลงลงใน data file มันจะรอจนถึงกระบรวนการ checkpoint ให้ background process Database Writer (DBWR) เขียนข้อมูลลง data file ให้เป็นข้อมูลเดียวกันระหว่าง redo log file กับ data file ข้อมูลทั้งสอง file จึง synchonize กัน แต่ถ้าระหว่างนี้ เกิดเหตุการณ์ที่ทำให้เกิด Instace Failure ทำให้ข้อมูลที่ถูกเปลี่ยนแปลงล่าสุดจริงๆอยู่ที่ redo log file แต่ Oracle สามารถตรวจจับความผิดปกติตรงนี้ได้และแก้ไขให้เราแต่ต้องอาศัยให้ dba startup database ให้
ขั้นตอนการทำงานของ Instance Recovery
ข้อมูลตัวสำคัญที่บอกว่าข้อมูล synchonize กันหรือไม่นั่นค่าของ SCN (System Change Number) ค่า SCN จะบอกว่า ณ ตอนนี้ข้อมูลมีการเปลี่ยนแปลงไปครั้งที่เท่าไหร่แล้ว SCN จะเกิดขึ้นทุกครั้งที่มีการ commit Database จะสร้างเลข SCN ขึ้นมา 1 ตัวและบวกเพิ่มขึ้นไปเรื่อยๆ แล้วเก็บลงใน data file, control file, redo log group
ตัวอย่าง Instance Failure
ใน redo log group กับ control file ค่า SCN ล่าสุดคือ 143 แต่ data file ค่า SCN ล่าสุดคือ 140 จะเห็นว่าค่าตอนนี้ไม่ synchonize กัน ซึ่ง background process ที่จะมา stamp ให้ค่า SCN ตรงกันคือ background process Check Point (CKPT) เมื่อมา stamp แล้วเห็นว่าค่า SCN ไม่ตรงกันก็บอกให้รู้แล้วว่า Instance Failure จึงต้องทำ Instance Recovery จากนั้นจะไปเรียกให้ SMON ให้ทำงาน โดย SMON จะทำอยู่ 2 operation นั่นคือ Row forward กับ transaction ที่ commit แล้วคือเอาข้อมูลที่อยู่ใน redo log file ไป update ใน datafile ให้แล้ว, Row backward กับ transaction นั้นถูก rollback หรือถูก force ให้ rollback คือไปเอาข้อมูลใน undo data มาใส่ใน table เหมือนเดิม- การทำ Instance จะต้องมีจุดเริ่มทำซึ่งจะเกี่ยวข้องกับ checkpoint คือเริ่มทำในตำแหน่งที่ยังไม่ถูกทำ check point เป็นต้นมา จะเห็นว่า checkpoint ถี่ก็มีข้อดีคือ recvoery เร็วขึ้น แต่ก็ทำให้ performance ตกลงเช่นกันเมื่อทำ checkpoint การจะดูว่าควร checkpoint ถี่แค่ไหนให้ดูจาก MTTR
Mean Time To Recovery (MTTR) ระยะเวลาในการทำ recovery
เราสามารถเข้าไปกำหนดได้ว่าเมื่อมีการ recovery ให้ใช้เวลาเท่าไหร่ ถ้าเข้าไปดูที่ OEM จะมีบอกรายละเอียดด้วยว่าถ้ามีการ recovery ต้องใช้เวลาประมาณเท่าไหร่ หรือเราเข้าไปกำหนดได้ใน Parameter FAST_START_MTTR_TARGET ถ้าเรากำหนดค่าน้อยจะมีผลทำให้ checkpoint บ่อยขึ้น แต่ถ้าใส่ค่ามากจะมีผลทำให้ checkpoint นานขึ้น ซึ่งค่ามากที่สุดคือ 3600 วินาที (1 ชั่วโมง) ค่า default คือ 0 (disable) ซึ่งตรงนี้ถ้าเป็น disable Oracle จะเข้าไปดู paramter ตัวอื่นที่เกี่ยวข้องด้วยคือ LOG_CHECKPOINT_TIMEOUT (วินาที)
การวางแผนเรื่องการ backup
- ควรมีตารางการ backup เช่น ทุกๆวัน, ทุกๆวันพุธ, ทุกเดือน ซึ่งตรงนี้จะถี่แค่ไหนขึ้นอยู่กับ data ว่ามีการเปลี่ยนแปลงบ่อยแค่ไหน
- ควรทำ Multiplex Control Files ถ้าไม่มี control files Instance Database จะ statup ไม่ขึ้น
- ควรทำ Multiplex Redo log groups
- Production System ควร run อยู่ใน ArchivedLog mode เพื่อป้องกัน loss data
- สร้าง redundancy ให้กับระบบของเราด้วยการใช้ RAID-based เพื่อให้ระบบสามารถทำงานต่อไปได้เมื่อ disk failure และแถมยังเป็นการการรันตีว่าข้อมูลจะไม่สูญหายไปเมื่อ disk failure
- ทำการ backup เป็นประจำเพื่อเมื่อถึงเวลาที่ต้องทำการ recovery จะได้กลับไปจุดที่ทำการ backup ครั้งล่าสุดได้ไม่ไกลจากช่วงเวลาปัจจุบันนัก
- รักษาอุปกรณ์เก็บข้อมูล และมั่นทดสอบว่าข้อมูลที่เก็บอยู่สามารถใช้งานได้จริง
- run noarchivelog mode เมื่อคุณแน่ใจว่าระบบมีเวลา downtime
- หลังจากมีการเปลี่ยนแปลงโครงสร้างของ database ควรมีการ backup control file อยู่เสมอ
- ควรมีการ backup ลงใน tape และ tape ก็ควร backup อีกเช่นกัน
- ควรมี 2 copies ของ archived redo logs อันนึงเก็บไว้ใน disk และอีกอันเก็บไว้ในอุปกรณ์เก็บข้อมูลอย่างอื่น เพื่อที่ว่าเมื่อมีปัญหาจะได้ดึง archived redo log ที่อยู่ใน disk มาใช้งานได้อย่างรวดเร็วหรือถ้ามีปัญหาอีกก็ดึงจากอุปกรณ์เก็บข้อมูลภายนอก
- ไฟล์ที่เราควร backup ได้แก่ data files, log files, control files, spfile หรือ init.ora, sqlnet.ora, tnsnames.ora, listener.ora และ password file
- เก็บมี copy backup อันเก่าไว้ด้วย เผื่อที่ว่า backup ปัจจุบันใช้งานไม่ได้ขึ้นมา(ซึ่งมีโอกาสเป็นไปได้)
- script backup ควรมีเก็บ log file ได้ด้วยเผื่อมี error เกิดขึ้นระหว่างการ backup จะได้รู้
- แต่ละ application ควรมีการใช้งานแยก tablespace กันเพื่อที่ว่าถ้า tablespace ใดมีปัญหาเกิดขึ้น application อื่นๆยังคงใช้งานได้ต่อ
- ใช้ snapshot technology เพื่อเก็บ system backup เพราะว่ามัน backup ได้อย่างรวดเร็วกับ database ขนาดใหญ่
- ใช้ data pump export utility เพื่อช่วยในการสนับสนุนการ backup
Control Files
เป็น file ควบคุมเก็บสถานะการทำงานของ database โดยสิ่งที่ Control File เก็บเช่น mode การทำงานของ database, เก็บ physical structure เช่นว่า data file กี่ตัวอยู่ path อะไรที่ไหนบ้าง
Control File จะถูกอ่านเมื่อ startup database MOUNT mode แต่ยังไม่ตรวจสอบความถูกต้องของ control file ซึ่งถ้าไม่มี control file จะ startup database ได้แค่ NOMOUNT mode ดังนั้น Oracle จึงแนะนำว่าควรทำ Multiplex Control files ทั้งหมด 3 file และแต่ละตัวควรอยู่คนละ disk กัน ซึ่งตรงนี้ถ้าใช้ DBCA เป็นตัว create database จะสร้าง control file ให้ทั้งหมด 3 file
การทำ Multiplex Control Files ต้องทำ 2 ขั้นตอนคือ
- ทำในระดับ Database เข้าไปแก้ไข parameter CONTROL_FILE (static parameter) ต้อง shutdown ก่อนจึงจะเห็นผล
ex. CONTROL_FILES=’’,’’ - ทำในระดับ OS เริ่มแรกให้ shutdown database ก่อนจากนั้นเข้าไป copy control file ที่ใช้งานอยู่ปัจจุบัน แล้วไปวางใน path ที่ระบุไว้ใน parameter แล้วเปลี่ยนชื่อให้ตรงกับค่าใน paramter ด้วย จากนั้น startup database แล้วเข้าตรวจสอบความถูกต้อง โดยดูได้จาก view V$CONTROLFILE ข้อดีของการทำ Multiplex Control Files คือถ้ามี Control File ตัวใดตัวหนึ่งเสียหายไปอีกตัวสามารถทำงานแทนกันได้โดย Database จะไปอ่าน Control File ที่ยังใช้งานได้อยู่จาก paramter CONTROL_FILES
Redo Log Files
เป็น file ที่เก็บข้อมูลที่เปลี่ยนแปลง โดยจะมี background process log writer (LGWR) ทำหน้าที่เขียน redo log file ให้ก่อนที่จะเขียนลงใน redo log file จะมี memory ตัวนึงที่เก็บข้อมูลที่เปลี่ยนแปลงอยู่เรียกว่า redo log buffer และจะเขียนลงใน redo log เมื่อมีคำสั่ง commit หรือเหตุการณ์อื่นๆ
โครงสร้างของ redo log จะเป็น group ในแต่ละ group จะมี redo log file เป็น member ถ้าใช้ DBCA เป็นตัว create database จะสร้าง redo log group ให้ 3 group และ redo log file ให้ group ละ 1 file ซึ่งเป็นค่า default ของ DBCA แต่อย่างนี้ยังไม่เป็น Multiplex redo log file จะเป็น Multiplex redo log file ก็ต่อเมื่อในแต่ละ redo log group มีมากกว่า 1 redo log file และถ้าให้ดีแต่ละ member ควรจะแยกอยู่กันคนละ disk
ข้อดีของการทำ Multiplex Redo Log File คือ ถ้า member ใดใน group นั้นเสียหายไป Database ก็ยังทำงานได้อยู่เพราะยังมี member อีกตัวทำงานแทนกันได้ และถ้าให้ดี member ที่อยู่ใน group
Note: ถ้าใช้ DBCA สร้าง database จะมี mulitplex control file แต่ไม่มี multiplex redo log file
Archived Log Files
เป็น file ที่เก็บ copy ของ redo log file ก่อนที่ LGWR จะเขียนทับลงใน redo log file path ที่เก็บ archive log file โดย default จะเก็บอยู่ที่ตำแหน่งเดียวกับ flash recovery area ดูได้จาก parameter DB_RECOVERY_FILE_DEST ตำแหน่งที่ 10
เราสามารถกำหนด path ของ archive log file เพิ่มเติมได้ นอกจากจะเก็บลงใน default path ยังสามารถกำหนดได้เองอีก 9 path จาก parameter LOG_ARCHIVE_DEST_<1-10>=""เท่ากับเป็นการ copy archive log file เพิ่มขึ้นเหมือนเป็นการ backup ซึ่งกันและกัน วิธีนี้จะมีประโยชน์ในกรณีที่ archive log file default ใช้งานไม่ได้ database จะย้ายไปใช้อีก path ให้
โดย default archive log file จะมีก็ต่อเมื่อเรา enable archivelog mode แต่ค่า default จะเป็น disable
การตรวจว่า database ขณะนี้ run อยู่ใน mode อะไร
SQL> select archiver from v$instance;
--ถ้าค่าคือ STARTED=archivedlog mode หรือ STOPPED=noarchivedlog mode
หรือ
SQL> select name, log_mode FROM v$database;
หรือ
SQL>ARCHIVE LOG LIST; --ถ้าอยู่ใน archivedlog mode จะแสดงรายละเอียดออกมา
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 18
Next log sequence to archive 20
Current log sequence 20
การเปลี่ยน mode database ให้เป็น archivelog mode หรือ noarchivelog mode
SQL> shutdown
SQL> startup mount
SQL> ALTER DATABASE [ARCHIVELOG | NOARCHIVELOG]
SQL> ALTER DATABASE OPEN;
สำหรับตอนนี้ขอจบไว้เพียงแค่นี้ครับ ตอนหน้าเทคนิคเน้นๆทำ backup ให้เห็นกันจะๆครับ



























































