Impor file Oracle DMP ke instalasi baru oracle

29

Seorang klien mengirimi kami database Oracle yang perlu kami uji. Kami tidak menggunakan Oracle atau memiliki keahlian Oracle sendiri.

Kita perlu mengatur basis data sehingga kita dapat terhubung dan men-debug masalah.

Saya melakukan instalasi baru Oracle 9 (versi yang dijalankan klien) dan alat manajemen.

Untuk kehidupan saya, saya tidak bisa mendapatkannya untuk mengimpor data. Seharusnya tidak rumit ini. Saya pasti mendapatkan sesuatu yang salah.

Saya sudah mencoba:

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

dan mendapatkan:

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.

Tapi tidak ada yang muncul di manajer sejauh tabel dalam skema apa pun dan aku sudah kehabisan akal.

RolandoMySQLDBA
sumber
Terima kasih, masalah sebenarnya di sini. Mendapat tempat oracle dan kami harus mengimpor. Sangat berlawanan dengan intuisi dibandingkan dengan, well, hampir semua sistem basis data lainnya
namezero

Jawaban:

28

Anda harus membuat pengguna (atau Skema) terlebih dahulu

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

Kemudian Anda dapat menggunakan sakelar IMP fromuser=dan touser=untuk mengimpor data ke pengguna / skema baru:

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

Semoga itu bisa membantu!

Andrew
sumber
ORA-65096: nama pengguna atau peran umum yang tidak valid
Kvasi
12

Tidak umum membuat tabel sebagai SYS atau SISTEM di Oracle, karena kedua akun tersebut adalah administrator.

Kesalahan berarti bahwa klien Anda membuat tabel sebagai pengguna ABCDE.

Anda harus membuat pengguna itu sebelum mengimpor, maka Anda harus mengimpor data sebagai pengguna itu,

Ini harus menghilangkan kesalahan karena file yang diekspor berisi izin dan informasi lain yang terkait dengan pengguna ABCDEyang tidak ada dalam database.

Periksa pertanyaan ini untuk petunjuk tambahan: Cara menentukan Schemas di dalam file Oracle Data Pump Export.

zendar
sumber
7

Anda harus terlebih dahulu membuat pengguna "ABCDE"

Sesuatu seperti

Dalam SQL * PLUS:

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

Ada banyak pilihan pada "buat pengguna" tetapi ini akan menggunakan default.

Nick Pierpoint
sumber
3

Apakah klien memberikan rincian tentang bagaimana mereka menghasilkan file dump? Secara khusus, apakah Anda yakin bahwa ini adalah ekspor penuh daripada ekspor tingkat skema, ekspor tingkat tablespace, atau ekspor tingkat tabel?

Gua Justin
sumber
Saya punya pertanyaan terkait. Apakah Anda bersedia mengomentarinya? Inilah tautannya: dba.stackexchange.com/questions/130515/…
CodeMed
3

Daripada 'sys / password AS SYSDBA', coba 'sistem / kata sandi'.

Alat Oracle memerlukan pengguna yang sama untuk mengimpor seperti yang dibuat ekspor meskipun sys adalah pengguna "semua kuat".

dacracot
sumber
1

Peringatan diberikan mengenai data yang Anda impor sebenarnya diekspor oleh pengguna SYS sebagai file .dmo. Coba ini..

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

dbname adalah nama basis data yang Anda berikan


sumber
0
c:\\ imp database name/password@oracle9i file=xyz,dmp grants=n ignore=y 
  fromuser=database name touser=database name
vikas
sumber
1
Anda harus mengklarifikasi jawaban Anda dengan menjelaskan cara kerjanya, apa parameternya, apa pun yang benar-benar di luar hanya baris perintah.
Max Vernon