go to http://oracle.in.th

Wednesday, September 30, 2009

Part2 Motion Detection: Capture Image

ส่วนนี้ผมจะอธิบายคร่าวๆ ถึงการจับภาพที่ได้จากกล้อง โดยมีคลาสสำคัญที่เกี่ยวข้องได้แก่ Camera, Video, BitmapData
ลำดับการทำงาน (วาดภาพน่าจะเข้าใจง่ายขึ้น...             หรอ)

Part2 Motion Detection: Capture Image
อธิบายคร่าวๆ ก่อนเขียน (สงสัยตรงไหนถามเอาละกันครับ)
  • เริ่มแรกกำหนดตัวแปรที่จะใช้ให้เรียบร้อย
  • สร้างปุ่มเมื่อกดกล้องก็เริ่มทำงาน
  • เมื่อโปรแกรมเริ่มทำงานจะทำการเก็บภาพ ทุกๆ 5 นาทีและทุกครั้งที่มีการเคลื่อนไหว
  • เมื่อเก็บภาพได้นำภาพไปแสดงที่หน้าจอจัดระยะห่างกับวางตำแหน่งให้เรียบร้อย
  • ส่งภาพขึ้นเซิร์ฟเวอร์ (sendMsg function)

จากนั้นลงมือเขียนตามแรงศรัทธา

var cam:Camera = Camera.getCamera();
var vid:Video;
var now:BitmapData;
var listCapture:Array = new Array();

var stageWidth = 440;
var stateHeight = 240;
var vidWidth = 160;
var vidHeight = 120;
var fps = 30;

var activeInterval;
var captureInterval;
var camStatusInterval;
var countImage:int = 0;

var txtStatus:TextField = new TextField();
var txtFormat:TextFormat = new TextFormat();
txtFormat.color = 0xC8C8C8;
txtFormat.size = 10;
txtFormat.font = "Arial";
txtStatus.defaultTextFormat = txtFormat;
txtStatus.x = 0;
txtStatus.y = 0;
txtStatus.width = stageWidth;
txtStatus.height = stateHeight;
txtStatus.type = TextFieldType.DYNAMIC;
txtStatus.selectable=false;
txtStatus.text = "status: ";
addChildAt(txtStatus, 0);

var btnStart:Button = new Button();
btnStart.label = "Start Capture";
btnStart.setSize(120, 30);
btnStart.move(250, 40);
btnStart.toggle = true;
btnStart.addEventListener(MouseEvent.CLICK, startCapture);
addChild(btnStart);

if (cam != null) {
setStatus("camera : " + cam.name);
} else {
setStatus("camera not detect");
}

function startCapture(event:MouseEvent):void {
if (btnStart.selected) {
if (cam != null) {
vid = new Video(vidWidth, vidHeight);
cam.setMode(vidWidth, vidHeight, fps, true);
vid.attachCamera(cam);
cam.addEventListener(StatusEvent.STATUS, camStatusHandler);
cam.addEventListener(ActivityEvent.ACTIVITY, camActivityHandler);
} else {
setStatus("camera not detect");
}
btnStart.label = "capture image: ";
btnStart.enabled = false;
}
}

function camStatusHandler(event:StatusEvent):void {
if (!cam.muted) {
addChildAt(vid, 0);
vid.x = 20;
vid.y = 20;
captureInterval = setInterval(capture, 5 * 60 * 1000);
camStatusInterval = setInterval(camStatus, 1000);
} else {
setStatus("camera has't permission");
Security.showSettings(SecurityPanel.CAMERA)
}
}

function camActivityHandler(event:ActivityEvent):void {
if(cam.muted){
setStatus("camera has't permission");
Security.showSettings(SecurityPanel.CAMERA)
}
if (event.activating) {
activeInterval = setInterval(capture, 500);
}
}

function capture():void {
var captureData:BitmapData = new BitmapData(vidWidth, vidHeight);
captureData.draw(vid);
listCapture.push(addChild(new Bitmap(captureData)));
listCapture[listCapture.length-1].x = 20 + (listCapture.length-1)%5 * vidWidth/2;
listCapture[listCapture.length-1].y = vidHeight + 40;
listCapture[listCapture.length-1].width = vidWidth/2;
listCapture[listCapture.length-1].height = vidHeight/2;
++countImage;
sendMsg(captureData);
clearInterval(activeInterval);
}

function camStatus():void {
setStatus("currentFPS: " + (cam.currentFPS) + "\n");
}

function setStatus(status:String):void {
txtStatus.text = status;
}
จากนั้นรันเลย ช่วงนี้ใครเดินผ่านไปผ่านมาแถวโต๊ะผมเก็บภาพไว้หมดหละ ตัดภาพมาบางส่วนเพื่อไม่ให้กระทบต่อความมั่นคงต่อแหล่งที่มาของภาพ!

Capture
ถ้ารู้สึกวิธีนี้ไม่ยืดหยุ่นพอลองใช้แบบของนายคนนี้ แล้ววัดระดับ sensitive เอาก็ได้ครับ ตอนหน้ามาส่งภาพขึ้นเซิร์ฟเวอร์
ข้อเขียนนี้ช่วยฉัน:  

Monday, September 28, 2009

กำหนดการของ Oracle Database 11g Release 2 สำหรับ OS อื่น ๆ

อ้างอิง metalink document #742060.1
Oracle ได้วางกำหนดการของ Oracle Database 11g Release 2 ไว้ดังนี้

ภายในสิ้นปีนี้ 2009
  • HP-UX Itanium
  • Solaris Operating System (SPARC 64-bit)
  • Solaris Operating System (x86-64)
  • AIX 5L Based Systems (64-Bit)
ภายในไตรมาสที่ 2 ปีหน้า 2010
  • Microsoft Windows x86
  • Microsoft Windows x64
  • HP-UX PA-RISC (64-bit)
ภายในไตรมาสที่ 4 ปีหน้า 2010
  • HP OpenVMS Itanium
ภายในไตรมาสที่แรก ปี 2011
  • IBM zSeries Based Linux
กำหนดการยังไม่ออก
  • Linux Itanium
  • Linux on POWER
  • Microsoft Windows Itanium
  • Apple Mac OSX x86-64
ข้อเขียนนี้ช่วยฉัน:  

Enabled/Disabled Password Case Sensitive in Oracle 11g

ใน Oracle 11g นั้น ได้มีการเพิ่ม Feature ที่น่าสนใจเข้ามาอีกอย่างก็คือ การ Enabled/Disabled Password Case Sensitive โดยใช้พารามิเตอร์ที่มีชื่อว่า SEC_CASE_SENSITIVE_LOGON ซึ่งถ้าพารามิเตอร์นี้มีค่าเป็น True จะหมายความว่าตัวอักษรตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่จะมีผลแตกต่างกันใน Password แต่ถ้าค่าเป็น False จะหมายความว่า ตัวอักษรตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่จะมีผลเหมือนกันใน Password ซึ่งการตรวจสอบค่าพารามิเตอร์นี้สามารถทำได้โดยใช้คำสั่ง

SQL> show parameter sec_case_sensitive_logon;

โดยค่า Default จะเป็น True อยู่แล้ว แต่สามารถทำการแก้ไขให้เป็น False ได้โดยใช้คำสั่ง

SQL> alter system set sec_case_sensitive_logon=false;

หรือถ้าต้องการแก้ไขกลับให้มีค่าเป็น True ก็สามารถทำได้โดยใช้คำสั่ง

SQL> alter system set sec_case_sensitive_logon=true;

ทดสอบโดยการสร้าง User ชื่อว่า test และมี Password คือ Manager1



ทำการตรวจสอบค่า sec_case_sensitive_logon พบว่ามีค่าเป็น True อยู่ จากนั้นลองทำการ Login เข้า User test โดยใช้ Password Manager1 และ manager1 ผลคือ Manager1 สามารถทำการ Login ได้ตามปกติ แต่ manager1 ไม่สามารทำการ Login ได้



ลองทำการแก้ไขค่า sec_case_sensitive_logon ให้เป็น false และทำการทดสอบแบบเดิมอีกครั้ง คราวนี้จะพบว่าสามารถทำการ Login ด้วย password manager1 ได้แล้วครับ

False value in sec_case_sensitive_logon
ข้อเขียนนี้ช่วยฉัน:  

Saturday, September 26, 2009

Oracle E20 โดย Billy Cripe

Oracle E20 ไม่ใช่น้ำมันแก๊สโซฮอล์ แต่ย่อมาจาก Oracle Enterprise 2.0

Enterprise 2.0 จะเป็นการพยายามนำ Web2.0 เข้ามาใช้ภายในองค์กร
รวมถึงการพยายามจัดหมวดหมู่ข้อมูลที่เป็นแบบ unstructured
(ข้อมูลที่ไม่สามารถจัดเก็บในรูปแบบ relational table ได้)

โดยพยายามใช้เทคโนโลยีเรื่อง Semantic
เข้ามาใช้ในการสื่อความหมายของข้อมูลแบบ unstructured
เพื่อให้ตรงใจกับผู้ที่ต้องการข้อมูลนั้น ๆ มากที่สุด
ซึ่งจะเป็นส่วนหนึ่งของนิยาม Web3.0 ที่เริ่มมีการพูดถึงกันมากขึ้นในเร็ววันนี้

ในที่สุด Enterprise 2.0 จะมาแทนที่การทำ Intranet ภายในองค์กรในยุคเก่า ที่เป็นการสื่อสารทางเดียว ให้เป็นแบบมีส่วนร่วมมากขึ้น

Oracle จึงร่วมมือกับ Accenture ทำ website ชื่อ Enterprise 2.0 TV ขึ้นมา
โดยวันที่ 8 ตุลาคมนี้ ก็จะมี Virtual Conference สามารถเข้าไป register ได้
หรือจะดู PowerPoint ของ Billy Cripe ล่วงหน้าก่อนได้ ข้างล่างนี้


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

Friday, September 25, 2009

[news] Oracle Enterprise Linux 5.4 พร้อมให้ download ผ่าน E-Delivery แล้ว

Oracle Enterprise Linux 5.4
Oracle Enterprise Linux 5.4 พร้อมให้ download ผ่าน E-Delivery แล้ว

สำหรับผู้ที่ทำงานกับ Software Oracle, platform ที่หนี่ไม่พ้นต้องเจอคือ Unix โดยเฉพาะ Linux Platform
เมื่อสัปดาห์ที่แล้ว Oracle ได้ปล่อย Oracle Enterprise Linux 5.4 มาให้ download ผ่าน E-Delivery แล้ว

สามารถ download ได้ที่ http://edelivery.oracle.com/linux
ข้อเขียนนี้ช่วยฉัน:  

[news] Oracle SQL Developer 2.1 Early Adopter 1 (2.1.0.62.61) ออกแล้ว

Oracle SQL Developer 2.1 Early Adopter 1 (2.1.0.62.61)
Oracle SQL Developer 2.1 Early Adopter 1 (2.1.0.62.61)
ออกมาให้ download ทดลองใช้งานแล้ว
เว้นช่วง 2 เดือนหลังจากที่ออก Oracle SQL Developer 1.5.5 เมื่อ July 2009 ที่ผ่านมา
ดูรายละเอียดเพิ่มเติม พร้อม download ได้ที่นี่
ข้อเขียนนี้ช่วยฉัน:  

Annotation Part#1

จาก EJB 2.1 ถ้าหากใครลองเขียนหรือใช้งานดูจะพบว่ามันยุ่งยากมาก ขนาดแค่ Bean เดียวกว่าจะ implement ออกมาก็เหนื่อยแล้ว เพราะมีการ config มากทำให้การใช้งาน EJB 2.1 ค่อนข้างจุกจิก วุ่นวายและยุ่งยาก ที่เป็นเช่นนี้เพราะ การออกแบบ ejb2 ของ sun นั้นได้แบ่ง programmer ออกตาม ตามหน้าที่โดยจะแบ่งหน้าที่เป็น 3 ฝ่ายโดยคร่าวๆดังนี้
  • Programmer: programmer เป็นผู้เขียน beans ทั้งหลายโดยที่แต่ละ beans นั้นจะทำหน้าที่เพียงแค่อย่างใดอย่างหนึ่งเท่านั้น
  • Assembler: assembler นั้นจะเป็นผู้ที่รู้เกี่ยวกับ business logic ดีมากๆ เป็นผู้นำ beans ต่างๆเหล่านี้มาร้อยเรียงกันใหม่จนหลายเป็น services
  • Deployer: เป็นผู้ที่นำ beans ต่างๆเอาเข้าระบบ รวมทั้งเป็นผู้ที่คอย config xml ต่างๆทั้งหมด
จะเห็นว่าถ้าหากในองค์กรเรามี role ต่างๆเหล่านี้ ภาระการ config จะตกอยู่กับ deployer ส่วน programmer นั้นไม่จำเป็นต้อง config เองและไม่ต้องรู้ business เพราะ assembler จะเป็นผู้นำไปร้อยเรียงเอง ซึ่งถ้าถามว่าในองค์กรขนาดเล็กจะมีคนที่ทำหน้าที่อย่างที่ sun กำหนดไหม คำตอบคือไม่ ยกตัวอย่างเช่น software house ในไทย programmer คนเดียวทำงานตั้งแต่ programmer ยัน SA หรือจนไปถึง PM, Consultant ออกไปหาลูกค้าด้วยยังมีเลย ดังนั้นการที่เราจะใช้ ejb2.1 นั้นต้องยุ่งยากมาก ทำให้การแบ่งหน้าที่ตามที่ sun เป็นผู้ออกแบบไว้เป็นไปไม่ได้

และเนื่องจากว่า beans ที่ programmer เขียนขึ้นมานั้นจะไม่สามารถนำมาทดสอบได้เพราะว่ายังไม่มีการ config ไม่มีการนำไป deploy ดังนั้นถ้าหาก deployer ไม่ deploy ให้ก็จะไม่มีทาง check ได้ว่า beans ที่ programmer เขียนนั้นถูกไหมดังนั้นมันเป็นเรื่องที่ยุ่งยากมากเพราะต้องคอยประสานกับอีกฝ่ายทำให้ระยะเวลาการทำงานมากขึ้น แต่การที่ programmer จะมา config เองนั้น เป็นเรื่องที่ปวดตับ (เน้นว่าปวดตับไม่ใช่ปวดหัว) มากกับ programmer ดังนั้นจึงมีคนเสนอมาว่าการ config ต่างๆนั้น แทบจะไม่ได้มีการเปลี่ยนแปลงอะไรเลย

ทำไมเราต้องมาแยกกันด้วยทำไมเราไม่เอา config เหล่านั้นลงใน code เลย ซึ่งแนวคิดนี้ได้ถูกนำไปพัฒนาจนกลายเป็น meta data ที่ใส่ลงไปใน program แต่จะไม่ถูกทำงานตอนเวลา compile time แต่จะถูกอ่านค่าต่างๆเหล่านี้เวลา runtime เพื่ออ่านค่า config เหล่านี้ออกมา ซึ่ง metadata ตัวนี้เราเรียกว่า XDocLet โดยเราเขียนค่า config เหล่านี้ลงใน code จากนั้น XDoclet จะสร้าง (generate) xml config ต่างๆให้หรือว่าแม้กระทั้ง java source code โดยพื้นฐานนี้มาจาก JavaDoc ซึ่งเราสั่งเกตไหมว่าเราสามารถ generate JavaDoc มาจาก source code ได้เลย เพียงแต่เราต้องใส่ comment เข้าไปเพื่อไว้เป็นรายละเอียดของ JavaDoc เท่านั้น เช่น

/**
* Returns an Image object that can then be painted on the screen.
* The url argument must specify an absolute {@link URL}. The name
* argument is a specifier that is relative to the url argument.
* <>
* This method always returns immediately, whether or not the
* image exists. When this applet attempts to draw the image on
* the screen, the data will be loaded. The graphics primitives
* that draw the image will incrementally paint on the screen.
*
* @param url an absolute URL giving the base location of the image
* @param name the location of the image, relative to the url argument
* @return the image at the specified URL
* @see Image
*/
public Image getImage(URL url, String name) {
try {
return getImage(new URL(url, name));
} catch (MalformedURLException e) {
return null;
}
}

ใช้ @ ไปเพื่อให้ JavaDoc Tool อ่านไปเพื่อนำเอาไปใช้ทำ API Doc แต่สังเกตว่าต้องมีการใส่ comment ด้วยเพราะว่าเครื่องหมาย @ นั้นยังไม่รองรับใน J2SE 1.4 ซึ่งอาจจะยังงงๆอยู่ลองดูดังรูปด้านล่าง
 

Annotation - JavaDoc to API Doc
ต่อมา sun ได้นำแนวคิดนี้ไปผนวกกับ java ใน version 5.0 ซึ่งทำให้ EJB 3.0 พลอยได้รับอานิสงส์นี้ไปด้วย จากที่ต้อง config xml ที่แสนปวดตับกลายมาเป็นประกาศการ config เหล่านั้นลงใน java code แทน ซึ่ง java จะเรียก meta data นี้ว่า annotation
Annotation นั้นคือ meta data ที่แทรกลงไปใน code แต่จะไม่ถูก compile เหมือนปกติแต่จะเป็นตัวบ่งบอก ตัว java runtime (JRE) ว่า ขณะ ณ ตอนนั้นให้ทำอะไรซึ่งจะแบ่ง annotation เป็น 3 ประเภทคือ

  • Information for the compiler : เป็น annotation ที่บอก compile เพื่อไว้ใช้สำหรับ detect error หรือ suppress warnings ยกตัวอย่างเช่น


    • @Override เพื่อบ่งบอกว่า method นี้ถูก override มาจาก class แม่
    • @Deprecated เพื่อบ่งบอกว่า method หรือ class
    นี้นั้นควรที่จะหลีกเลี่ยงหรือว่าไม่ควรจะใช้เพราะว่าเป็นอันตรายหรือว่ามี method ที่ดีกว่านี้ให้เลือกใช้

  • Compiler-time and deployment-time processing : เป็น annotation ที่ให้ Software tools อ่าน annotation เหล่านั้นเพื่อนำไปสร้าง file ต่างๆ เช่น xml, javadoc และอื่นๆ
  • Runtime processing : เป็น annotation ที่บ่งบอกให้ JRE นั้นทำงานตอน runtime
ซึ่งเราก็จะมาดูวิธีการสร้างและวิธีการเรียกใช้กันโดยที่เราจะเน้นที่ annotation แบบ Runtime processing เพียงเท่านั้นเพราะว่าใน EJB3.0 นั้นไม่มีการ config xml และ annotation ใน EJB3.0 จะทำงานต่างกันกับ XDoclet เพราะว่าไม่ใช่ annotation แบบ Compiler-time and deployment-time processing แต่เป็นแบบ Runtime processing เรามาลองดูกันเลยดีกว่า แต่ไม่ได้หมายความว่าเราจะไม่สามารถสร้าง annotation แบบ Information for the compiler ได้ เราทำได้โดยไปกำหนด policy ตอนที่เราสร้าง annotation ซึ่งลองไปดู code กันเลยดีกว่า ซึ่งเราจะสร้าง annotation ไว้ทดลองสองตัวคือ

// mytag.Author.java
package mytag;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
public @interface Author {
String name();
}

การสร้าง annotation ใช้ @interface ในการประกาศซึ่งในที่นี้เราตั้งชื่อว่า Author จากนั้นเรากำหนด annotation ของเราให้เป็นแบบ Runtime processing โดยกำหนด policy ดังนี้

@Retention(RetentionPolicy.RUNTIME)

ซึ่งการกำหนด policy นั้นมีด้วยกัน 3 อย่างคือ
  • RetentionPolicy.CLASS: Information for the compiler
  • RetentionPolicy.RUNTIME: Runtime processing
  • RetentionPolicy.SOURCE: Compiler-time and deployment-time processing
จากนั้นก็จะมีการ set element ที่ชื่อว่า name ด้วยซึ่งตรงนี้จะมีกี่อันก็ได้และต้องตั้งตาม syntax นี้

<type> <nameofelement>( );

สังเกตุว่าเหมือนการประกาศ abstract method ธรรมดาเพียงแต่ไม่มีการรับ parameter ใดๆทั้งสิ้นใน method นั้น ใน annotation จะมีแต่การประกาศ element เท่านั้นไม่มีการประกาศ attribute หรือ method ใดๆทั้งสิ้น จากนั้นเราก็มาดู annotation อีกตัวคือ

// mytag.Version.java
package mytag;  
import java.lang.annotation.Retention;  
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
public @interface Version {
  int major();
  int minor();
}

annotation Version จะมี element ด้วยกันสองตัว annotation Author เราเอามาใช้ในการเก็บชื่อว่าใครเป็นคนเขียน class, method หรือ attribute นี้ขึ้นมา ส่วน annotation Version จะบ่งบอกว่า class, method หรือ attribute นั้นผ่านการปรับปรุงมาถึง version ไหนแล้ว การใช้ annotation มีลักษณะเป็นแบบ location sensitive คือ เมื่อเราเอา annotation ไปแปะไว้ตรงหน้าอะไร ก็จะเป็นการประกาศ annotation ของ สิ่ง นั้น เช่น เอาไว้หน้า class มันก็จะเป็น annotation ของ class นั้นๆ เป็นต้น ซึ่งการประกาศ annotation นั้นสามารถประกาศได้ 2 ชนิดคือ
  • Class Annotation
  • Class Member Annotation
ตอนหน้าเราจะมาดูกันว่า Class Annotation  และ Class Member Annotation เป็นอย่างไร

Reference from : dr. Werasak Suengtaworn

Compose by : @plaumkamon
ข้อเขียนนี้ช่วยฉัน:  

Thursday, September 24, 2009

Oracle Calendar - Update Event ใหม่ ๆ กับเรา

ตอนนี้ Blog ของเรามี Section ใหม่ ที่อยากจะแนะนำในวันนี้ค่ะ

ถ้าใครที่เป็นแฟนพันธ์แท้ Blog.Orecle.in.th ของเรา ต้องสังเกตเห็นอะไรแปลกๆไป
นั่นคือ มี Menu อยู่ทางด้านบน

และที่อยากจะนำเสนอก็คือ Menu Event Calendar ค่ะ

ในเมนูนี้ ถ้ากดเข้าไปก็จะเป็น calendar event ต่างๆของ Oracle นะคะ ไม่ว่าจะเป็น event ในไทย หรือ ต่างประเทศ
เราจะรวบรวม event ดีๆ ที่ไม่ควรพลาดของ oracle อาทิเช่น Webcast ต่างๆที่น่าสนใจ หรือว่า งาน Seminar

ส่วนใครที่ต้องการจะฝากแจ้ง event ก็สามารถ mail มาหาเรา ที่ oracle.in.th@gmail.com ได้ เช่นกันค่ะ
ข้อเขียนนี้ช่วยฉัน:  

Wednesday, September 23, 2009

Oracle กับ WinZip beta 14

วันนี้เห็น WinZip ออก version ใหม่มาให้ download เป็น WinZip 14 beta
จึงเอะใจ, จำได้คุ้น ๆ ว่า version ล่าสุดคือ WinZip 12.x กระโดดที 2 version
เหตุที่โดดจาก WinZip 12 ไป WinZip 14 ก็เพื่อเลี่ยงเลข 13 นี่เอง
เหมือนเวลาขึ้นลิฟต์ไปตามตึกสูง ๆ, ก็ละเลี่ยงชั้น 13 เป็นชั้น 12A บ้าง ชั้น M บ้าง

คราวนี้จึงมานึกดู Oracle Core Technologies ปัจจุบัน version 11
ส่วน Oracle E-Business Suite เป็น version 12 หรือเรียกว่า R12
เมื่อ Software ของ Oracle ต้องเข้าสู่ version 13 จะเลี่ยงอย่างไร?

ถ้าให้เดา Oracle E-Business Suite กำลังจะกลายเป็น Oracle Fusion Application ในไม่กี่ปีนี้
จึงคาดว่าน่าจะเลี่ยง R13 เป็น Oracle Fusion Application ได้เลย

ส่วนฟาก Core Technologies (Database, Application Server, BI) ยังคิดไม่ออกว่า Oracle จะเลี่ยงอย่างไร?
ถ้าเอาง่าย ๆ เหมือน WinZip ก็โดดไปเป็น Oracle Database 14a เป็นต้น
14a, 'a' อันนี้ก็เดาเอาว่าเป็น Artificial Intelligence ล้อเลียนกับ 8i, 9i, 10g, 11g,เป็นต้น
ข้อเขียนนี้ช่วยฉัน:  

Tuesday, September 22, 2009

เก็บตก ภาพบรรยากาศ Oracle DB11g R2 Tech + Sales Seminar

Oracle DB11g R2 Tech + Sales Seminar

เมื่อวันที่ 18 กันยายน 2552 หรือ เมื่อวันศุกร์ที่ผ่านมา ทาง Oracle ได้จัดสัมนาเรื่อง Oracle DB11g R2 Tech + Sales Seminar ที่โรงแรมอโนมา บางกอก กรุงเทพ โดยมีวิทยากร 2 ท่าน คืิอ Mr.Ravi Buddha - Senior Manager, Platform Tech, APAC และ Mr.Raymond Au - Business Deveopment Manager at SAS Institute มาบรรยาย Features ใหม่ๆของ Oracle DB11g R2 และ Techique ในการใช้งาน 11gR2 ได้อย่างมีประสิทธิภาพสูงสุด รวมไปถึง Mr. Raymond ได้บรรยายเกี่ยวกับกลยุทธ์ในการขาย Products ของ Oracle ให้กับผู้ที่เป็น Sales ด้วย

Introduction from Mr.Ravi and Mr.Raymond

โดย Mr.Ravi ได้บรรยายเจาะลึกไปถึง 5 เรื่องหลักๆใน Oracle 11gR2 นี้
  • ASM Cluster File System
  • In Memory Database
  • Online Application Upgrade
  • Database File System
  • Gain insight into what's new in the Grid from Oracle
Mr.Ravi present Oracle 11gR2 in-depth

และ Mr.Raymond บรรยายในส่วนของ Sale Part โดยกล่าวถึง
  • Green light topic
  • Price Performance
  • Manageability
  • Security
  • Oracle in Cloud
Q&A from Mr.Ravi ans Mr.Ramond

และ Mr.Raymond ยังทำให้ผู้ฟังบรรยายทุกคน จำประโยคเด็ดของวันนั้นได้จากคำถามที่ว่า...
ทำไมเราต้องใช้ Oracle? ซึ่งคำตอบก็คือ
"Oracle is the World's Fastest Database and High Performance"

สำหรับผู้ที่สนใจ และอยากได้ Presentation ในวันนั้น สามารถคลิกเพื่อ Download ได้ที่นี่
มีด้วยกันทั้งหมด 4 files แบ่งเป็นตามเนื้อเรื่อง
ข้อเขียนนี้ช่วยฉัน:  

Sunday, September 20, 2009

OUI ใน 11gR2 มี option "Upgrade an existing database" ให้เลือกด้วย

หน้าติดตั้ง Oracle Database 11g Release 2 มี Option นี้ให้เลือกเพิ่ม
  • Create and configure database
  • Install software database only
  • Upgrade an existing database


ก็คือหลังจากที่ติดตั้ง database software แล้ว, OUI ก็จะเรียก DBUA ให้เราอัตโนมัตินั่นเอง
แต่อย่างไรก็ตาม ก่อนที่จะใช้ DBUA ในการ upgeade database ควรจะ run script ...
เพื่อตรวจสอบความถูกต้องและความพร้อมของ database ต้นทางก่อนเสมอ

ส่วน Create and configure database ก็เป็นการติดตั้ง database พร้อมกับสร้าง database instance ขึ้นมาเลย
Install software database only ก็จะใช้สำหรับติดตั้ง software database อย่างเดียว แต่ยังไม่สร้าง database
ถ้าต้องการที่จะสร้าง database ทีหลัง ก็ให้ run ./dbca ที่อยู่ /bin เท่านั้นเอง
ข้อเขียนนี้ช่วยฉัน:  

Oracle Universal Installer 11gR2 กับ CVU ช่วยแก้ Kernel Parameters

Oracle Universal Installer ของ Oracle Database 11g Release 2 มีอีกหนึ่งคุณสมบัติที่เก่งขึ้น
โดยปกติการติดตั้ง Oracle บน Unix จะต้องปรับแก้ Kernel Parameter อยู่เสมอ ตามนี้

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586

Oracle Universal Installer ใน version นี้สามารถช่วยเราแก้ไขค่า Kernel Parameter ให้เราได้อัติโนมัติ



ให้ click ที่ "Fix & Check Again"



จะมี dialog บอกให้เราไป run script ด้วย user root ที่
/tmp/CVU_11.2.0.1.0_oracle/runfixup.sh







run script เสร็จ ก็ย้อนไป click OK ที่ dialog



เสร็จ, OUI ตามไปแก้ค่าใน Kernel Parameter ให้เราเรียบร้อย
แต่ยังไม่ฉลาดถึงขนาดตาม add packages ที่ยังไม่มี
หวังว่า version ถัด ๆ ไป จะมี feature ที่ OUI ตามติดตั้ง packages ที่ขาด
โดยให้เราใส่แผ่น Enterprise Linux ลงไป
ข้อเขียนนี้ช่วยฉัน:  

Friday, September 18, 2009

Part1 Motion Detection: Introduction

หลายวันก่อนถอย kensington lock มาเป็นแบบที่เค้าใช้กันตามร้านทั่วไป หน้าตาประมาณนี้ (ตรงที่ล็อคดูอ่อนแอมาก)



กลับมาบ้านก็ลองทดสอบ (สังเกตุว่าจะเห็นเป็นรอยเล็กน้อย ไม่รู้เป็นรอยที่มีอยู่แ้ล้ว หรือเป็นรอยตอนที่กำลังทดสอบความแข็งแรงด้วยการดึงแรงๆ ดู)


ระหว่างทดสอบลองหาข้อมูลเจ้า kensington lock ดูก็พบว่ามันสามารถแครกได้เหมือนกันนะ -*- ความกังวลเริ่มเข้าเกาะกุมในจิตใจ

เลยเขียนโปรแกรมป้องกันทาง software อีกชั้น (ตามแนวคิดที่ว่าอยากได้ต้องทำเอง) ถึงอาจจะป้องกันอะไรไม่ได้มากนักแต่คิดว่าสนุกแน่ๆ ถ้าได้เขียน เลยกำหนดความต้องการของเราให้เรียบร้อยก่อน เพื่อตั้งกรอบให้ไม่หลงทางด้วยเวลาจำกัดมากช่วงนี้ โดยโปรแกรมที่ว่าเป็นตัวบันทึกภาพ และสิ่งที่มันต้องทำได้คือ
  • สามารถจับภาพได้ตามเวลาที่กำหนด หรือเมื่อมีการเคลื่อนไหวเกิดขึ้น
  • สามารถอัพโหลดภาพขึ้นไปบนเซิร์ฟเวอร์ได้
เมื่อได้ความต้องการที่กระฉับมาแล้ว ก็วาดแบบคร่าวๆ


ต่อมากำหนดเทคโนโลยีที่ใช้ หลังจากหาข้อมูลซักพัก... คิดว่าเขียน actionscript น่าจะเหมาะกับงานลักษณะแบบนี้มากกว่า

โอเคตอนนี้ทุกอย่างพร้อมแล้วตอนหน้าลงมือทำ
ข้อเขียนนี้ช่วยฉัน:  

Wednesday, September 16, 2009

Export / Import อย่างมืออาชีพ กับ Oracle Data Pump

Oracle Data Pump
Oracle Data Pump Export / Import เป็นเครื่องมือที่ใช้ในการทำการ Export และ Import ข้อมูล ซึ่งถูกพัฒนามาจากเครื่องมือ Export / Import แบบดั้งเดิม ทำให้มีความเร็วในการ Export มากกว่าเดิมประมาณ 2 เท่า และมีความเร็วในการ Import มากกว่าเดิมประมาณ 15-45 เท่า โดยได้มีการนำมาใช้ตั้งแต่ Oracle 10gR1 แล้ว ในส่วนที่เพิ่มเข้ามาจากแบบดั้งเดิมนั้นมีหลายส่วนเช่น


  • สามารถทำงานได้แบบ Parallel แต่จำนวน Process ที่ใช้ในการทำงานจะต้องสอดคล้องกับจำนวนของ Dump File (แบบเดิมนั้นจะมี Dump File เพียงไฟล์เดียว แต่ Data Pump จะมีไฟล์มากกว่า 1 ไฟล์)
  • สามารถทำการ Restart การทำ Export/Import ได้ในกรณีที่เกิดข้อผิดพลาดระหว่างการ Export/Import โดยจะไม่ทำให้ข้อมูลเกิดความเสียหาย
  • ผู้ดูแลฐานข้อมูลสามารถ Monitor การทำ Export/Import ได้จากหลายๆที่ ซึ่งทำให้สะดวกต่อการตรวจสอบความเรียบร้อย
  • ด้วยพารามิเตอร์ NETWORK_LINK ทำให้สามารถทำการ Export ข้อมูลจากเครื่องต้นทางไปยังเครื่องปลายทางที่มีการเชื่อมต่อกันผ่านระบบเครือข่ายได้
  • สามารถเปลี่ยนชื่อของ Datafiles ของต้นฉบับให้เป็นชื่ออื่นได้
  • สามารถทำการคัดกรอง Metadata ได้ โดยใช้ “Exclude” หรือ “INCLUDE” ในคำสั่งได้
  • ผู้ดูแลฐานข้อมูลสามารถทำการประเมินได้ว่าจะต้องใช้พื้นที่ว่างเท่าไรในการ Export โดยยังไม่ต้องลงมือทำ Export จริงๆ
  • ผู้ดูแลฐานข้อมูลสามารถทำการคัดกรองข้อมูลได้โดยใช้คำสั่ง “Select”
  • สามารถใช้งานกับ External Table ได้
ซึ่งในรูปแบบของคำสั่งที่ใช้นั้นมีความคล้ายคลึงกับของเดิม โดย expdp คือการ Export ส่วน impdp คือการ Import สามารถแบ่งได้เป็น 3 แบบคือ

1 การ Export/Import แบบเจาะจงตาราง

2 การ Export/Import แบบเจาะจง Schema

3 การ Export/Import ทั้ง Database (แบบ Full)


รูปแบบของคำสั่งจะเป็นดังนี้

1 การ Export/Import แบบเจาะจงตาราง 

expdp user/password@SID tables=table_name directory=_directory_ dumpfile=filename.dmp logfile=logname.log

impdp user/password@SID tables=table_name directory=_directory_ dumpfile=filename.dmp logfile=logname.log

2 การ Export/Import แบบเจาะจง Schema

expdp user/password@SID schemas=schema_name directory=_directory_ dumpfile=filename.dmp logfile=logname.log

impdp user/password@SID schemas=schema_name directory=_directory_ dumpfile=filename.dmp logfile=logname.log

3 การ Export/Import แบบทั้ง Database (แบบ Full)

User ที่จะทำการ Export/Import แบบ Full ได้นั้นจะต้องเป็น User ที่มีสิทธิ์ในการ Export/Import Full Database เท่านั้น ในที่นี้ยกตัวอย่างเป็น User: Sys Password: manager1 และพารามิเตอร์ full จะเป็นตัวบอกว่าจะทำการ Export/Import แบบ Full

expdp sys/manager1@SID full=Y directory=_directory_ dumpfile=filename.dmp logfile=logname.log

impdp sys/manager1@SID full=Y directory=_directory_ dumpfile=filename.dmp logfile=logname.log

สรุปประเด็น

  • Oracle Data Pump มีการพัฒนามาใช้ตั้งแต่ Oracle 10gR1
  • ทำหน้าที่ในการ Export ข้อมูลและ Import ลงฐานข้อมูลอื่นเช่นเดียวกับเครื่องมือ Export/Import แบบดั้งเดิม แต่มีประสิทธิภาพมากกว่า เนื่องจากมีการเพิ่มความสามารถด้านต่างๆเข้าไป
  • การ Export โดยใช้ Data Pump ทำได้เร็วกว่าเดิมประมาณ 2 เท่า
  • การ Import โดยใช้ Data Pump ทำได้เร็วกว่าเดิมประมาณ 15-45 เท่า
  • รูปแบบคำสั่งที่ใช้จะมี 3 แบบด้วยกันคือ 1)การ Export/Import ในระดับ Table 2) การ Export/Import ในระดับ Schema 3) การ Export/Import ทั้งฐานข้อมูล
  • การ Export จะใช้คำสั่งที่ขึ้นต้นด้วย expdp username/password@sid ตามด้วยพารามิเตอร์ต่างๆ
  • การ Import จะใช้คำสั่งที่ขึ้นต้นด้วย impdp username/password@sid ตามด้วยพารามิเตอร์ต่างๆ

Created By: Pinant Thammanajit
ข้อเขียนนี้ช่วยฉัน:  

Tuesday, September 15, 2009

การใช้ Xmanager กับ Enterprise Linux 5 เพื่อติดตั้ง Oracle Software

การใช้ Xmanager เป็นเครื่องมือในการดึงหน้าจอการติดตั้งมาทำที่ client
เพื่อติดตั้ง Oracle บน Linux
ถ้า Linux เป็น Enterprise Linux 5 ขึ้นไป แล้วเลือก "Execution Command" ตาม default ของ Linux

/usr/X11R6/bin/xterm -ls -display $DISPLAY



จะพบ error

[oracle@rhel5u4 ~]$ /usr/bin/xterm -ls -display 192.168.65.1:0
/usr/bin/xterm Xt error: Can't open display: 192.168.65.1:0
[oracle@rhel5u4 ~]$ 


ให้แก้ปัญหาโดยเปลี่ยน "Execution Command" จาก default

/usr/X11R6/bin/xterm -ls -display $DISPLAY

เป็น


/usr/bin/xterm -ls -display $DISPLAY

ก็จะใช้งานได้ตามปกติ
สาเหตุก็คือ xterm เปลี่ยน path นั่นเอง




ถ้าใครมั่นใจว่าทำถูกแล้วแต่ terminal ไม่ขึ้น ให้ลองปิด firewall ในเครื่องด้วยครับ
ข้อเขียนนี้ช่วยฉัน:  

Sunday, September 13, 2009

Oracle Univeral Installer ใน Database 11g Release 2 ใหญ่กว่า 800x600

หน้า screen ของ Oracle Univeral Installer (OUI) ใน Database 11g Release 2
มีขนาดใหญ่กว่า resolution 800x600


จะเห็นว่าถ้าทำใน VMware ด้วย resolution 800x600 จะหาปุ่ม Next, Cancel ไม่เจอ

ต่อไปนี้ก็ต้องปรับ Linux ใน VMware ให้เป็น 1024x768 แทน
แต่การจะปรับ 1024x768ใน VMware ได้ ก็จะต้องติดตั้ง VMware Tools ก่อนเสมอ
หรือไม่อีกวิธีก็คือใช้ Tool เช่น Xmanager ดึง screen การติดตั้งมา run ที่ client แทน
ข้อเขียนนี้ช่วยฉัน:  

Saturday, September 12, 2009

เกร็ดการติดตั้งเตรียม VMware และ Linux เพื่อติดตั้ง Oracle Software

การทำงานกับ Oracle Products มีความจำเป็นที่ต้องใช้ VMware มาช่วยจำลอง OS ในการทดสอบงานเป็นประจำ
โดยเฉพาะการติดตั้ง Software Oracle บน Linux Platform
มักจะจำเป็นต้องเตรียมเรื่อง Linux Package Requirements เป็นประจำ
เช่นข้างล่าง เป็นรายการ packages ที่ต้องเตรียม สำหรับการติดตั้ง Oracle Database 11g Release 2

binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
elfutils-libelf-devel-static-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-common-2.5
glibc-devel-2.5
glibc-headers-2.5
kernel-headers-2.6.18
ksh-20060214
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.2
libgomp-4.1.2
libstdc++-4.1.2
libstdc++-devel-4.1.2
make-3.81
sysstat-7.0.2
unixODBC-2.2.11
unixODBC-devel-2.2.11

การเตรียม package สามารถทำได้ 2 วิธีคือ
1. ติดตั้ง Linux โดยไม่ customize package (Customize later), แล้วจึงค่อยตาม add package ทีละตัวเอง

2. เลือก package ที่รู้อยู่แล้ว ว่าจำเป็นต้องใช้ระหว่างติดตั้ง (Customize now)



จากประสบการณ์ การเลือกแบบที่ 2 จะทำให้ทำงานได้ไวกว่ามาก
เนื่องจากการติดตั้ง Linux เลือก "Customize later" แล้วมาทยอยติดตั้ง package เพิ่มทีหลัง
ปัญหาที่จะพบคือ package ที่ติดตั้ง มักจะติด dependencies กัน เช่น
จะติด gcc* ได้ ต้องติด glibc* ก่อน
จะติด glibc* ก็ต้องติด package something ก่อน
ดังนั้นการไล่ตาม packages ให้ครบทุกตัว เป็นงานที่เสียเวลาพอสมควร
จึงแนะนำว่าใช้แบบที่ 2 (Customize now) ดีกว่า

Packages ที่ควรจะเพิ่มใน Linuxเพื่อเลี่ยงปัญหา dependencies ก็คือเรื่อง Legacy Software Development
ส่วน packages อื่น ๆ ที่จำไม่ได้ว่าอยู่หน้าไหน จะไป add manual ทีหลังก็ได้
จะไม่ยากแล้ว เพราะ packages อื่น ๆ เหล่านั้นจะไม่มี dependencies


ทีนี้ VMware version หลัง ๆ ก็ฉลาด ดันมี features ที่ชื่อว่า "Easy Install"
เมื่อเรากำหนดเลือก ISO สำหรับการติดตั้งแล้ว (ตามรูปข้างล่าง) และตอบ wizard ไปจนเสร็จ


VMware ก็จะจัดการติดตั้ง Linux ให้เสร็จด้วย click เดียว
โดย VMware จะเลือก mode ในการติดตั้งทุกอย่างเป็น default ทั้งหมดแทนเรา
เราไม่ต้องคอยตอบ dialog box ที่ popup มาถาม ซึ่งก็จะเลือก "Cuztomize later" ให้เรา
ดังนั้น Easy Install จึงทำให้เราทำงานช้าลง เพราะต้องไล่ตาม package dependencies อีก

ผมก็เลยหาวิธีการปิด feature Easy Install
วิธีการก็คือว่า เลือก "I will install the operating system later" เท่านั้น


ก็จะปิด Easy Install ทำให้สามารถกลับมาใช้ วิธีที่ 2 (Customize now) ได้เหมือนเดิม
ข้อเขียนนี้ช่วยฉัน:  

Thursday, September 10, 2009

PowerPoint สรุปการทำ Database Migration ไปยัง Database 11g Release 2

PowerPoint สรุปการทำ Database Migration ไปยัง Database 11g Release 2

download ที่ Part 1 of 2 PDF (~5.7M)
หรือดูจาก iframe ข้างล่างก็ได้



download ที่ Part 2 of 2 PDF (~3.4M)
หรือดูจาก iframe ข้างล่างก็ได้



ส่วนเอกสารการ Upgrade ฉบับเต็มดูได้ที่
ข้อเขียนนี้ช่วยฉัน:  

รูปถ่ายจากงาน The Distribution Bootcamp ประเทศไทย


รูปถ่ายจากงาน The Distribution Bootcamp ประเทศไทย
มี Oracle Distributors ครบทั้ง 3 รายมาร่วมในงานนี้
  • A-Host
  • The Value Systems
  • และ DataOne
เครดิตรูปภาพจาก grow uP with Oracle Blog
ข้อเขียนนี้ช่วยฉัน:  

Wednesday, September 9, 2009

สมัครวันนี้เพื่อรับ Oracle Magazine ส่งตรงถึงบ้านคุณ, ฟรี!!!

คุณกำลังมองหานิตยสารดี ๆ ซักเล่ม ที่มีบทความดี ๆ ของ Oracle อยู่รึเปล่า?

Oracle Magazine cover
Oracle Magazine เป็น นิตยสารที่ทาง Oracle ได้ทำขึ้นมาสำหรับผู้ที่สนใจ โดยมีเนื้อหาเกี่ยวกับ เทคโนโลยีใหม่ ๆ ของ Oracle, Features, ข่าวสารอัพเดท, Techniques, Tips & Tricks ต่าง ๆ ในการใช้งาน Oracle ฯลฯ

ซึ่งนิตสารนี้ จะออกทุก ๆ 3 เดือน และไม่ต้องมีการเสียค่าใช้จ่ายใด ๆ เพียงแค่คุณไปสมัครกับทางเว็บไซต์ Oracle เท่านี้ คุณก็จะได้รับ นิตสารที่มีเนื้อหาดีๆ อัพเดท ข่าวสารใหม่ๆ เกี่ยวกับ Oracle ได้ถึงบ้านคุณเลยทีเดียว

สามารถดูรายละเอียด ของ นิตยสาร Oracle Magazine และ เนื้อหาต่าง ๆ ได้ที่นี่ค่ะ Oracle Magazine 

ขั้นตอน วิธีการสมัครสมาชิกเพื่อรับ นิตยสาร Oracle Magazine มีดังนี้
1. เข้าไปที่เว็บ Oracle Magazine Subscription เพื่อสมัครสมาชิก
1.1 เลือกประเทศ ให้เป็น "Thailand"
1.2 เลือกที่ "I want a new subscription." เพื่อสมัครสมาชิกใหม่ ส่วน 3 ช่องข้างล่าง สำหรับผู้ที่ต้องการเปลี่ยนที่อยู่
1.3 กดปุ่ม Continue เพื่อไปหน้าต่อไป


Step 1 - Select Country
2. ในหน้าที่ 2 ทาง Oracle จะให้เรากรอกข้อมูลเกี่ยวกับ ประวัติส่วนตัว , ที่อยู่, และข้อมูลของบริษัท
แต่ในการกรอกเอกสารนี้ ต้องกรอกที่อยู่จริง เพื่อที่ทาง Oracle จะได้ส่งเอกสารให้คุณได้ถูกต้อง และอย่าลืมใส่ Email ที่ถูกต้อง
เพราะ Oracle เค้าจะส่ง Account Number มาให้เราผ่านทาง Email นี้ เพื่อใช้ในการ เปลี่ยนข้อมูลต่างๆ

Step 2 - Fill in information form
2.1 ในช่องนี้ ถ้าคุณต้องการรับข่าวสารเกี่ยวกับ Oracle หรือ โปรโมชั่นต่างๆ ให้ ติ๊กถูกที่ช่องนี้ แต่ถ้าไม่ต้องการรับ ไม่ต้องติ๊กค่ะ

2.2 ถ้าคุณไม่ต้องการแชร์รายชื่ออีเมลล์ กับทาง Oracle ให้ติ๊กถูกค่ะ

Step 3 - Prefers to receive an email
2.3 หลังจากนั้น จะเป็นการ ใส่ข้อมูลต่างๆ เกี่ยวกับความสนใจของเรา และ ข้อมูลของบริษัท เมื่อใส่เสร็จ ให้ลงมากดปุ่ม Submit ด้านล่างเลยค่ะ

Step 4 - Fill in more detail

3. ตอนนี้ คุณได้ สมัคร Oracle Magazine เป็นที่เรียบร้อยแล้ว และ นิตยสารจะส่งมาตามที่อยู่ที่คุณได้กรอกไว้ ภายใน 6-8 อาทิตย์ ค่ะ

Step 5 - Finished subscribe

ส่วนใครที่อยากช่วยลดโลกร้อน จะอ่านผ่าน online ก็ไปที่ URL นี้ได้เลย http://www.oracle.com/oramag/index.html
ไว้บทความหน้า จะมาบอกวิธีสมัคร Profit Magazine ซึ่งเป็นนิตยสารที่หน้าสนใจอีกเล่มนึง ที่คุณไม่ควรพลาดค่ะ
ข้อเขียนนี้ช่วยฉัน:  

Tuesday, September 8, 2009

ความหมายของเลข version ใน Oracle Database

ช่วงนี้ ถ้าใครได้ติดตามข่าวสารแวดวงของ Oracle ก็จะทราบว่า Oracle ได้เปิดตัว Oracle Database 11g Release 2 ออกมาให้ใช้งานดาวน์โหลดกันไปแล้ว ซึ่งชื่อเต็มๆของเวอร์ชั่นนี้ก็คือ Oracle Database 11.2.0.1.0

แต่คุณทราบหรือไม่ว่า Release Numbers หรือ หมายเลขรุ่น(เวอร์ชั่น) ที่ตามหลังมายาวๆเนี่ย มันมาจากอะไรบ้าง? และ หมายความว่าอย่างไร?

oracle database release number


ตามรูปด้านบน จะเห็นว่า Release Number ที่แสดงออกมาคือ 11.1.0.1.0 ซึ่งในแต่ล่ะค่า จะมีความหมายต่างกัน เรียงลำดับจากซ้ายไปขวา
  • 11 คือ Major database release number แสดงถึง รุ่นฐานข้อมูลหลัก เช่น 9i, 10g, และ 11g เป็นต้น
  • 1 คือ Database maintenance release number แสดงถึง Release ของการออกใน version นั้น ๆ เช่น 11g Release 1 หรือ 11g Release 2 เป็นต้น
  • 0 คือ Application server release number แสดงถึง เลขรุ่นของ Application Server ซึ่งเลขนี้จะใช้สำหรับ Product Database โดยค่าจะเป็น 0 เสมอ
  • 1 คือ Component specific release number (or patch set release) แสดงถึงรุ่นของ patch set ที่ใช้ในการ fix bugs เช่น ถ้า 10g Release 2, ควรจะ patch ให้เป็น 10.2.0.4 ซึ่งเป็นรุ่นที่ patched ล่าสุด และจะมี bug น้อยที่สุด
  • 0 คือ Platform specific release number แสดงถึง เลขรุ่นของแพลตฟอร์ม
ข้อเขียนนี้ช่วยฉัน:  

Monday, September 7, 2009

วิธีแก้ปัญหาภาษาไทย แสดงเป็น ¿¿¿ ใน Oracle Discoverer Plus 10g

หลายคนเคยพบปัญหาเรื่องภาษาไทยใน Oracle Discoverer Plus 10g

คือ เมื่อมีการใส่ Title หรือ Header ที่เป็นภาษาไทยแล้ว พอทำการ Save as เป็นอีก Workbook แล้วเปิดใหม่ ค่าภาษาไทยที่ได้ใส่ไว้ จะแสดงออกมาเป็น ตัว ¿¿¿¿¿¿¿¿¿¿¿¿

เรามาดู วิธีเปลี่ยนตัว ¿¿¿¿¿ ให้เป็น ภาษาไทยในแบบที่เราต้องการ ตาม Step ด้านล่างนี้


1. เข้าไปที่ Start > Control Panel > Regional and Language Options

Step1 - go to Regional and Language Options
2. เลือกที่แท็บ Regional Options แล้ว เปลี่ยนค่าในช่อง Standards and format และ ช่อง Loaction

Step2 - Select Regional Options tab
3. ช่อง Standards and format ให้เลือกค่า Thai และ ช่อง Location ให้เลือกเป็น Thailand
กด Apply หรือ OK แล้ว Restart เครื่อง

Step3 - Change Standards and format and Location
4. เมื่อเครื่อง Restart เสร็จ คุณก็สามารถ ใส่ภาษาไทยลงใน Title หรือ Header ได้แล้ว

Step4 - Restart and Run Program

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

Sunday, September 6, 2009

ScreenShot การติดตั้ง Oracle Database 11g Release 2

ScreenShot การติดตั้ง Oracle Database 11g Release 2 แบบละเอียด

Oracle Database 11g Release 2 เปิดตัวออกมาใหม่แบบนี้ จะรอช้าอยู่ทำไม เรามาลองเล่นกันดีกว่า ว่ามัน Feature ใหม่ๆ อะไรบ้าง..

เรามาติดตั้ง Oracle Database 11g Release 2 ในเครื่องเรา ตามวิธี ขั้นตอน Screen Shot ง่ายๆตามด้านล่างนี้ได้เลย




ถามถึง account ใน metalink เพื่อแจ้งเตือนเรื่อง critical security ถ้าไม่ระบุก็เอา checkbox ออก
เอา checkbox ออก ก็จะมี dialog มาเตือนเราอีกที
ถามว่าจะติดตั้ง
  • ติดตั้งและสร้าง database
  • ติดตั้งอย่างเดียว
  • upgrade จาก version เก่า
มี mode ให้เลือกว่ากำลังจะติดตั้ง
  • ในเครื่อง desktop
  • ในเครื่อง server

ติดตั้งแบบ


  • single instance (ธรรมดา)
  • RAC

เลือกการติดตั้งแบบ
  • typical, จะไม่ต้องตอบ dialog มาก ยึดค่า default เป็นหลัก
  • advanced, ระบุรายละเอียดการติดตั้งเอง
เลือกภาษา
เลือก edition การติดตั้งให้สอดคล้องกับ license ที่ซื้อ
  • enterprise edition
  • standard edition
  • standard edition one
ระบุ ORACLE_BASE และ ORACLE_HOME path
ระบุ Oracle Inventory path, ใช้เก็บว่า server นั้น ๆ ได้เคยติดตั้ง oracle products อะไรไปแล้วบ้าง
ระบุประเภทของ database ที่ต้องการใช้งาน
  • OLTP
  • OLAP
ระบุชื่อ database
เลือก character set ให้เป็น TH8TISASCII
ให้ระบุ email notification ใน Enterprise Manager
ระบุ path ที่เก็บ data files
ให้ backup อัตโนมัติ?
ระบุ password ของ schema ที่สำคัญ
ระบุ group
สรุปรายละเอียดการติดตั้ง
รอ...
รอ...
กำลังสร้าง database
database สร้างเสร็จแล้ว
เนื่องจากเป็นการติดตั้งใน UNIX จึงต้อง run root เพื่อจัดการเรื่อง permission
run orainstRoot.sh สำหรับเครื่องที่ติดตั้ง oracle ครั้งแรก เพื่อกำหนด permission สำหรับ Oracle Inventory

run root


ติดตั้งพร้อมสร้าง database สำเร็จ
ทดลองเข้า Enterprise Manager
หน้า Enterprise Manager ของ 11g Release 2
ดู version ของ Enterprise Manager
ข้อเขียนนี้ช่วยฉัน: