หลังจากที่เราได้ทำการติดตั้ง
Oracle Client Software เรียบร้อยแล้ว
คำถามที่เกิดต่อมาก็คือว่า
"Oracle
client หรือ Program ที่ถูกพัฒนาขึ้นมาจะรู้ได้อย่างไรว่าจะต้องติดต่อกับ
database ตัวไหน อยู่บนเครื่องอะไร ใช้ Protocol อะไร, Port number
อะไร"
การที่
Oracle client จะรู้ได้อย่างไรนั้นก็คงต้องมีการบอกรายละเอียดต่าง
ๆ เหล่านั้นกับ Oracle client เราเรียกวิธีการนี้ว่า "Naming"
ซึ่งก็คือการบอกกล่าวรายละเอียดที่ Oracle client ควรรู้
วิธีการ
Naming นี้ ก็จะอยู่หลายวิธีให้เราเลือกใช้ตามว่าเหมาะสม แต่ในกรณี
เอกสารฉบับนี้จะขอกล่าวเฉพาะวิธีการที่เรียกว่า "local naming"
Local
naming คืออะไร?
Local
naming คือการจัดเก็บรายละเอียดต่าง ๆ ในการติดต่อ Oracle Database
ลักษณะ text file โดยจะมีการจัดเก็บไว้ที่ที่เดียวกันกับ Oracle
client Software ( เครื่องเดียวกัน ) โดยชื่อ file ที่ใช้ในการจัดเก็บนั้นจะมีชื่อว่า
"tnsnames.ora" และจะอยู่ภายใต้ "$ORACLE_HOME/network/admin"
(ดูรายละเอียดความแตกต่างของการจัดเก็บ file tnsnames.ora ของ Oracle
แต่ละ version ได้ที่ paper
นี้นะครับ)
**
$ORACLE_HOME คือตำแหน่งที่เราเลือกติดตั้ง Oracle client
อย่างที่เรากล่าวในเบื้องต้น
ว่า file tnsnames.ora เป็น text file นั้นก็หมายความว่า เราก็สามารถใช้
notepad หรือ vi ทำการแก้ไขได้ถ้าเรารู้ syntax ของ file นี้ดีพอ
( ซึ่งสำหรับท่านที่ชื่นชอบวิธีการแบบ นี้แนะนำลองอ่าน paper
นี้ ดูนะครับ)
แต่สำหรับบทความนี้
เราจะใช้ utility ที่ทาง Oracle ได้มีมาให้แล้ว นั่นก็คือ "Net8
configuration Assistant" ซึ่งหลายท่านบอกว่า เป็นวิธีการที่ง่ายแสนง่าย
และก็เหมาะอย่างยิ่งสำหรับท่านที่เริ่มต้นใช้งาน Oracle Technology
Starting
การเริ่มต้นสามารถทำได้โดย
click ที่ icon ของ "Net8 configuration Assistant"
Start
-> Program -> Oracle ORACLE_HOME -> Network Administration
-> Net8 configuration Assistant
จากนั้นเราก็จะเห็นหน้าจอดังนี้
นอกจากนั้น
เจ้าตัว "Net8 configuration Assistant" สามารถช่วยให้เราแก้ไข
เพิ่มเติม configuration file ที่เกี่ยวข้องกับ Oracle Network อื่นๆ
ได้อย่างง่ายๆ ไม่ว่าจะเป็น listerner.ora, sqlnet.ora, tnsnames.ora
โดยเราไม่ต้องเปิดดู manual ว่า syntax ของ file เป็นอย่างไรบ้าง
ในเอกสารนี้เราต้องการ
configure โดยใช้การ naming แบบที่เป็น "local naming"
ฉะนั้นเราจะเลือก "Local Net Services Name Configuration"
จากนั้นกด next
จากหน้าจอนี้จะสังเกตได้ว่า
เราสามารถเพิ่มเติม หรือเราจะกลับมาแก้ไข ลบ หรือเปลี่ยนแปลง ภายหลัง
ก็สามารถทำได้
และเราก็ยังคงใช้บริการ Net8 configuration Assistant ได้
ในตัวอย่างนี้เราต้องการเพิ่มรายชื่อ
ฉะนั้นเราจึงเลือก Add และ กด next
เนื่องจาก
database ที่เราต้องการติดต่อด้วยเป็น 8.1.7 เราจึงเลือก "Oracle8i
database or service" จากนั้นกด next เพื่อไปขั้นตอนต่อไป
ในกรณีของ
Oracle 8i ในช่องนี้ก็จะเป็นชื่อ service name ซึ่งโดยปกติ ก็จะเป็นชื่อเดียวกันกับ
Global database name ซึ่งเราจะกำหนดตอน create database แต่ถ้าคุณไม่ได้เป็นคนสร้าง
database เอง แนะนำให้ถาม DBA ซึ่งเป็นผู้ดูแล database ตัวที่คุณต้องการใช้งานก่อนนะครับ
(เพราะเขาควรจะเป็นคนที่รู้ดีที่สุด)
ในตัวอย่างนี้เราใช้ชื่อว่า
"viper" จากนั้น กด next เพื่อไปยังขั้นตอนต่อไป
ส่วนหน้าจอนี้ก็เป็นการเลือก
Network Protocol ที่เรากำลังใช้งานอยู่ และเราต้องการติดต่อกับ
database ด้วย Network protocol นั้น
แต่สังเกตว่าตั้งแต่ยุคของ
internet เริ่มมีบทบาทกับเรามากขึ้น องค์กรทั่วไปก็จะมีการใช้งาน
TCP กันเป็นส่วนใหญ่ ในตัวอย่างนี้ก็เช่นกัน เราจึงเลือก TCP จากนั้นกด
next เพื่อไปยังขั้นตอนต่อไป
เนื่องจาก
Network protocal ที่เราเลือกเป็น TCP/IP ฉะนั้นก็ต้องมีการกำหนดชื่อของเครื่อง
หรือ IP Address ของเครื่องที่เราได้ติดตั้งและ Startup Database
ไว้แล้ว
ในตัวอย่างจะเป็นการกำหนดให้เราติดต่อกับ
Database ที่ทำงานอยู่บนเครื่อง demo2.exzilla.net และมี listener
คอยรับ Request จากฝั่ง client ที่ port number 1521 ซึ่งเป็น standard
port number
จากนั้น
กด next เพื่อไปยังขั้นตอนต่อไป
และเพื่อให้เรามั่นใจได้ว่าที่เราเลือกๆ
มาสามารถทำงานได้จริง ในขั้นตอนนี้ก็ควรเลือก yes, perform a test
เพื่อทำการตรวจสอบสิ่งที่เรากำหนดมาทั้งหมดก่อนที่จะใช้งานจริง
เลือก
yes, perform a test จากนั้น กด next เพื่อไปยังขั้นตอนต่อไป
อ้าว
เกิดอะไรขึ้น ?
Connecting...ORA-01017:
invalid username/password; logon denied
The
test did not succeed.
Some
of the information you provided may be incorrect.
Press
Back to review the information provided for net service name,
or Change Login to change username.
โดยปกติ
"net8 configuration Assistant" จะมีการกำหนดให้ user=scott
และ password=tiger
และจากข้อความด้านบน
อาจจะเป็นไปได้ว่า user ชื่อ scott ไม่มี หรือ password อาจเป็นอย่างอื่นที่ไม่ใช่
tiger
กด
"Change Login"
ซึ่งในตัวอย่างนี้
Database ที่เรากำลังทดสอบอยู่ ไม่ได้มีการสร้าง user ชื่อ scott
ไว้ และโดยทั่วไป Database นี้เพิ่งจะถูกสร้างขึ้นมาใหม่ ซึ่งจะมี
user ชื่อ system และ password เป็น manager มาให้
เราจึงใช้
user=manager และ password=manager และกด OK เพื่อทดสอบอีกครั้ง
และจากหน้าจอ
ก็แสดงว่า เราผ่านการทดสอบด้วยดี จากนั้น
กด next เพื่อไปยังขั้นตอนต่อไป
เลือก
Alias ที่เราต้องการ โดยชื่อนี้เป็นชื่ออะไรที่เราต้องการก็ได้ แต่ในทางปฏิบัติ
ก็ควรตั้งชื่อให้ตรงกับ Service name หรือ database name เพื่อจะได้จำได้ง่าย
ๆ และชื่อนี้จะเป็นชื่อที่เราใช้ในการอ้างถึงในการทำงานต่อไป
อย่างเช่น
ถ้าเราใช้งาน SQL*Plus วิธีการอ้างก็จะเป็นอย่างนี้
$
sqlplus system/manger@viper
ถ้าเราต้องการเพิ่มชื่อ
Alias เพียงชื่อเดียวก็เป็นอันว่าเรียบร้อย
เลือก
"No" จากนั้น กด next เพื่อไปยังขั้นตอนต่อไป
กด
next เพื่อไปยังขั้นตอนต่อไป
และก็กลับมายังหน้าจอแรก
อีกครั้ง กด Finish เพื่อเป็นการสิ้นสุด
นอกจากนั้น
หลังจากเราสร้าง และทดสอบ alias โดยใช้ "Net8 configuration
Assistant" แล้ว
เรายังสามารถใช้คำสั่ง
tnsping ทำการทดสอบได้อีกด้วย
ตัวอย่างเช่น
|
D:\Oracle\des_817\bin>tnsping
viper
..
Attempting
to contact (ADDRESS=(PROTOCOL=TCP)(HOST=demo2.exzilla.net)(PORT=1521))
OK
(70 msec)
D:\Oracle\des_817\bin>
|
และมาถึงขั้นตอนนี้
เราก็พร้อมที่จะใช้งาน Program ฝั่ง client ได้แล้ว อย่างเช่น เราต้องการใช้งาน
SQL*Plus วิธีการเรียกใช้ก็จะเป็นดังนี้
| D:\Oracle\des_817\bin>
sqlplus system/manager@viper |
More
information:
Oracle9i
Net Services Administrator's Guide
Release 1 (9.0.1)
Part Number A90154-01
" http://otn.oracle.com
"
|