
Last Updated (Tuesday, 30 November 1999 07:00) Monday, 12 January 2009 17:01
เครื่อง มือ import (imp) ใช้อ่านไฟล์ที่เกิดจาก เครื่องมือ export (exp) แล้วโหลด database object และ ข้อมูล ใส่ในฐานข้อมูล ตารางจะถูกสร้างขึ้น จากนั้น ข้อมูลจะถูกใส่เข้าไปในตาราง ต่อด้วย index ถูกสร้างเป็นลำดับถัดมา เมื่อโหลด database object เสร็จแล้ว trigger จึงถูก import แล้ว constraints จะถูกปลุก enable ขึ้น แล้วค่อยสร้าง bitmap indexes ที่ต้องเรียงเป็นขั้นตอนเป็นลำดับแบบนี้ เพราะว่า ข้อมูลต้องใส่ในแถวก่อนที่ trigger จะถูก enable ให้ทำงาน เพื่อป้องกัน trigger เกิดทำงาน (Fire) ทุกครั้ง ที่ใส่ข้อมูลลงในแถวใหม่แต่ละแถว Constraints ที่บังคับ integrity relationship และ การขึ้นต่อกัน (dependencies) ระหว่างตาราง จะถูกโหลดหลังจากใส่ข้อมูล ไม่งั้นเดี๋ยวจะเกิดเหตุการณ์ เช่น ข้อมูลในตาราง Employees ต้องการแถวในตาราง Departments ที่สัมพันธ์กัน แต่ดันยังไม่มีแถวข้อมูลในตาราง Departments เลย ก็จะ
เกิด Error ขึ้นในการโหลดข้อมูลได้ ด้วยเหตุนี้ constraints จะถูก disable เอาไว้ระหว่างการ import และ จะ enable อีกครั้ง หลังจาก import เรียบร้อยแล้ว
Import Option
การ import มีอยู่หลายโหมด (Full,User,Table,Tablespace) ซึ่งจะมี import option ได้ ดังต่อไปนี้ เรียงตามลำดับตัวอักษร (ที่อยู่ในวงเล็บ คือค่า default เมื่อไม่ระบุ option นั้นในการเขียน command line )
| parameter | ค่าdefault | ความหมาย |
| buffer | ระบุขนาดในหน่วยไบต์ ของ buffer ที่ถูกใช้ในการใส่ข้อมูล (insert data) | |
| commit | (N) | โดย ดีฟอลต์แล้ว เมื่อโหลดข้อมูลลงตารางแต่ละตารางเสร็จ จึงค่อย commit แล้วค่อยไปโหลดตารางอื่นต่อ แต่ถ้าให้ค่าเป็น Y จะมีการ commit ในการโหลด หลายครั้ง เพื่อป้องกัน undo tablespace ไม่เพียงพอ .ในกรณี เป็นการโหลดตาราง ที่ใหญ่มากๆ |
| compile | (Y) | เมื่อ import เรียบร้อยแล้ว ให้ทำการ compile procedural object เช่น package , procedure , trigger , function ใหม่ แต่ถ้าให้ค่า เป็น N procedural object เหล่านี้จะถูก compile ใหม่เมื่อถูกเรียกใช้ |
| constraints | (Y) | จะให้ import constraint ลงในตารางด้วยหรือไม่ |
| datafiles | ใช้เฉพาะโหมด import tablespace โดยจะให้ระบุว่าลง data file ตัวไหน และ ต้องใช้คู่กับ ออพชั่น transport_tablespace=Y | |
| destroy | (N) | ถ้า มี data files ที่จะถูก import มีชื่อเหมือนกับชื่อ data file ในคำสั่ง CREATE TABLESPACE ใน dump file ก็จะทำการ reuse ไฟล์นั้น กล่าวคือ จะลบข้อมูลใน data files ทิ้งก่อน แล้วค่อย reuse มา import ใหม่ |
| feedback | (0) | ระบุจำนวนแถว ในการแสดงความก้าวหน้าในการ import ในรูปจุด (.) เช่น feeback=10 จะแสดงจุดขึ้นมาเมื่อ import ทุกๆ 10 แถว |
| file | ชื่อไฟล์ dump ที่จะเอามา import สามารถระบุได้หลายๆไฟลื โดยใช้ comma (,) คั่น ระหว่างชื่อไฟล์ | |
| filesize | ใส่ค่าขนาดใหญ่ที่สุดของไฟล์ (ซึ่งเป็นค่าเดียวกับ พารามิเตอร์ filesize ในการ export) | |
| fromuser | ระบุ schema ที่จะเอาออกมา ซึ่งมักใช้คู่กับ พารามิเตอร์ touser ที่ระบุว่า จะเอาข้อมูลเข้า schema ใด แต่ถ้าไม่ระบุพารามิเตอร์ touser ข้อมูลจะ import เข้า schema ที่ระบุไว้ใน fromuser ซึ่งเราระบุได้หลาย shcmea โดยใช้ comma (,) คั่น | |
| full | (N) | ทำการ import ข้อมูลที่อยู่ในไฟล์ออกมาทั้งหมด |
| grant | (Y) | ให้ import สิทธิที่มอบให้กับ object ด้วย |
| help | แสดง ออพชั่น ที่สามารถใช้ได้ในการ import | |
| ignore | (N) | มื่อ เกิด error ขึ้น จะให้สนใจหรือไม่ เช่น ถ้า มีตารางเดิมแล้วก่อนที่จะ import และ เราให้ ignore=Y แถวข้อมูลจะถูกใส่เข้าไปในตารางที่มีอยู่แล้ว แต่ถ้าใช้ ignore=N จะแสดง error ขึ้นมา แล้วแถวข้อมุลจะไม่ถูกใส่เข้าไปในตารางที่มีอยู่แล้ว |
| indexes | (Y) | จะ ให้ import index ด้วยหรือไม่ (ยกเว้น unique index ที่เกิดจาก constraint พวก PRIMARY KEY , UNIQUE ต้องถูกบังคับให้ import เสมอ โดยไม่สนใจ การตั้งค่า พารามิเตอร์ตัวนี้) |
| indexfile | ระบุชื่อไฟล์ที่เขียน create index statement เอาไว้ ซึ่งไฟล์ที่จะใช้ในการสร้าง index หลังจาก import เรียบร้อยแล้ว | |
| log | ระบุชื่อไฟล์ log ที่สร้างขึ้นเพื่อบันทึกเหตุการณ์ระหว่างการ import | |
| parfile | ระบุ ชื่อไฟล์พารามิเตอร์ในการ import ในไฟล์นี้ จะเขียนค่าพารามิเตอร์ที่ใช้ในการ import เอาไว้ (ที่กำลังนั่งอ่านๆอยู่ในหน้านี้แหละ) แทนที่จะมานั่งระบุทีละพารามิเตอร์ใน command line | |
| recordlength | ระบุขนาด record ของ file dump ในหน่วยไบท์ ใช้ในกรณีไฟล์ export ออกมาจาก operating system ที่ใช้ค่า default value ต่างกัน | |
| resumable | (N) | ให้ ใช้การ resumable กรณี พื้นที่ที่จองไว้ เต็มหรือไม่ ถ้าใหเ resumable=Y จะใช้คู่กับพารามิเตอร์ resumable_name และ resumable_timeout |
| resumable_name | ให้ระบุคำพูดที่จะช่วยบอกได้ว่า resumable statement ไหนที่จะถูก suspend | |
| resumable_timeout | (7200 วินาที) | เวลาในหน่วยวินาที ที่จะแก้ไข error ได้ พารามิเตอร์นี้จะมีผล เมื่อตั้งค่า พารามิเตอร์ resumable=Y |
| rows | (Y) | ให้แถวข้อมูลในตารางถูก import เข้ามาด้วยหรือไม่ ถ้า rows=N จะมีแต่ โครงสร้างตาราง เท่านั้นที่ถูก import |
| show | (N) | จะแสดง DDL ที่อยู่ใน dump file โชว์ออกมาด้วยหรือไม่ |
| skip_unusable_indexes | (N) | ให้ยกเว้นไม่ต้อง import indexes ที่เป็นสถานะ unusale ด้วยหรือไม่ |
| statistics | (ALWAYS) |
จะให้ระดับของ optimizer statistic ที่เกิดระหว่างการ import อยู่ในระดับไหน |
| tables | ระบุเฉพาะตารางที่จะ import ออกมา ถ้ามีหลายตารางให้ใช้ comma(,) คั่นระหว่างชื่อตาราง | |
| tablespaces | ระบุรายชื่อ tablespaces ที่จะ import กรณีใช้ transport_tablespace=Y | |
| touser | ระบุชื่อ user (schema) ที่เป็นเป้าหมายในการ import | |
| transport_tablespace | (N) | ถ้าเราระบุให้ transport_tablespace=Y จะ import เฉพาะนิยาม (metadata) ของ transport tablespace |
| tts_owners | ระบุรายชื่อผู้ที่จะเป็นเจ้าของ data ใน transport tablespace ในกรณี พารามิเตอร์ transport_tablespace=Y | |
| userid | ระบุ user/password ของ user ที่จะทำหน้าที่ import อันทรงเกียรตินี้ | |
| volsize | ระบุจำนวนไบท์มากที่สุด ของ ไฟล์ dump ในแต่ะละ tape volume | |
ถ้าต้องการดูว่ามี option parameter อะไรในการ import ของ release เครื่องมือ imp ที่ใช้อยู่ ใช้คำสั่ง
imp help=y
oracle database table oracle database data using pl/sql index oracle tutorial password oracle thailand oracle training thailand database administrator oracle thai oracle dba oracle training oracle consulting oracle consultance thai oracle consultance oracle consulting thailand mysql tuning indexes statistics join column migration rman tables production


