นำเข้าไฟล์ Oracle DMP ไปยัง oracle ใหม่


29

ลูกค้าส่งฐานข้อมูล Oracle ที่เราต้องทดสอบ เราไม่ใช้ Oracle หรือมีความเชี่ยวชาญเฉพาะด้านของ Oracle

เราจำเป็นต้องตั้งค่าฐานข้อมูลเพื่อให้เราสามารถเชื่อมต่อกับมันและแก้ปัญหาได้

ฉันติดตั้ง Oracle 9 ใหม่ (เวอร์ชันที่ไคลเอ็นต์กำลังทำงาน) และเครื่องมือการจัดการ

สำหรับชีวิตของฉันฉันไม่สามารถนำเข้าข้อมูลได้ ไม่ควรซับซ้อนขนาดนี้ ฉันต้องทำอะไรผิด

ฉันได้พยายาม:

imp 'sys/password AS SYSDBA' file=c:\database.dmp full=yes log=implog.txt

และได้รับ:

Connected to: Personal Oracle9i Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

Export file created by EXPORT:V09.02.00 via conventional path

Warning: the objects were exported by SYSTEM, not by you

import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
. importing SYSTEM's objects into SYS
. importing ABCDE's objects into ABCDE
IMP-00003: ORACLE error 1435 encountered
ORA-01435: user does not exist
Import terminated successfully with warnings.

แต่ไม่มีอะไรปรากฏขึ้นในผู้จัดการเท่าที่ตารางในสคีมาใด ๆ และฉันก็ใกล้ถึงจุดสิ้นสุดแล้ว


ขอบคุณปัญหาตรงนี้ มี oracle dump และเราต้องนำเข้า เทียบได้ง่ายกับระบบฐานข้อมูลอื่น ๆ อย่างแท้จริง
namezero

คำตอบ:


28

คุณจะต้องสร้างผู้ใช้ (หรือสคีมา) ก่อน

C:\>sqlplus system/password

SQL> create user CLIENT_TEST identified by client_test_password;
SQL> grant connect, unlimited tablespace, resource to CLIENT_TEST;
SQL> exit

จากนั้นคุณสามารถใช้ สวิตช์fromuser=และtouser=IMP เพื่อนำเข้าข้อมูลไปยังผู้ใช้ / สคีมาใหม่:

C:\>imp system/password FROMUSER=ABCDE TOUSER=client_test file=c:\database.dmp full=yes

หวังว่าจะช่วย!


ORA-65096: ผู้ใช้ทั่วไปหรือชื่อบทบาทที่ไม่ถูกต้อง
Kvasi

12

ไม่ใช่เรื่องปกติที่จะสร้างตารางเป็น SYS หรือ SYSTEM ใน Oracle เนื่องจากทั้งสองบัญชีเป็นผู้ดูแลระบบ

ABCDEข้อผิดพลาดหมายความว่าลูกค้าของคุณสร้างตารางเป็นผู้ใช้

คุณควรสร้างผู้ใช้นั้นก่อนนำเข้าจากนั้นคุณควรนำเข้าข้อมูลในฐานะผู้ใช้นั้น

สิ่งนี้ควรกำจัดข้อผิดพลาดเนื่องจากไฟล์ที่ส่งออกมีสิทธิ์และข้อมูลอื่น ๆ ที่เกี่ยวข้องกับผู้ใช้ABCDEที่ไม่มีอยู่ในฐานข้อมูล

ตรวจสอบคำถามนี้เพื่อขอคำแนะนำเพิ่มเติม: วิธีกำหนด Schemas ภายในไฟล์ Oracle Data Pump Export


7

คุณต้องสร้างผู้ใช้ "ABCDE" ก่อน

สิ่งที่ต้องการ

ใน SQL * PLUS:

create user ABCDE identified by password;
grant connect, resource to ABCDE;

มีตัวเลือกมากมายที่ "สร้างผู้ใช้" แต่สิ่งนี้จะใช้ค่าเริ่มต้น


3

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


ฉันมีคำถามที่เกี่ยวข้อง คุณยินดีที่จะแสดงความคิดเห็นกับมัน? นี่คือลิงค์: dba.stackexchange.com/questions/130515/…
CodeMed

3

แทนที่จะเป็น 'sys / password AS SYSDBA' ให้ลอง 'system / password'

เครื่องมือของออราเคิลต้องการให้ผู้ใช้รายเดียวกันนำเข้าเมื่อสร้างการส่งออกแม้ว่า sys จะเป็นผู้ใช้ที่ "มีประสิทธิภาพ"


1

ได้รับคำเตือนเกี่ยวกับข้อมูลที่คุณกำลังนำเข้าจริง ๆ แล้วส่งออกโดยผู้ใช้ SYS เป็นไฟล์. dmo ลองนี้ ..

C:\oracle\ora92\bin>imp sys/pwd@dbname file=c:\database.dmp full=yes

dbname เป็นชื่อฐานข้อมูลที่คุณระบุ


0
c:\\ imp database name/password@oracle9i file=xyz,dmp grants=n ignore=y 
  fromuser=database name touser=database name

1
คุณควรชี้แจงคำตอบของคุณโดยอธิบายว่ามันทำงานอย่างไรพารามิเตอร์คืออะไรมีอะไรมากกว่าแค่บรรทัดคำสั่ง
Max Vernon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.