Oracle DMP dosyasını yeni bir oracle kurulumuna aktarma


29

Bir müşteri bize, test etmemiz gereken bir Oracle veritabanı gönderdi. Oracle kullanmıyoruz veya şirket içi Oracle uzmanlığına sahip değiliz.

Veritabanını kurmamız gerekiyor, böylece ona bağlanıp bir hata ayıklayabiliriz.

Yeni bir Oracle 9 yüklemesi yaptım (istemcinin çalıştığı sürüm) ve yönetim araçları.

Hayatım boyunca veriyi içeri alamıyorum. Bu kadar karmaşık olmamalı. Yanlış bir şeyler bulmalıyım.

Denedim:

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

ve var:

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.

Ancak yöneticide hiçbir şemadaki tablolara kadar hiçbir şey görünmüyor ve ben aklım başımda.


Teşekkürler, burada kesin sorun. Bir kehanet anlaşması var ve almak zorundayız. Neredeyse diğer tüm veritabanı sistemlerine kıyasla son derece
zekice

Yanıtlar:


28

Önce bir kullanıcı (veya Şema) oluşturmanız gerekir.

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

Ardından , verileri yeni kullanıcı / şemaya aktarmak için fromuser=ve touser=IMP anahtarlarını kullanabilirsiniz:

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

Umarım yardımcı olur!


ORA-65096: geçersiz ortak kullanıcı veya rol adı
Kvasi

12

Oracle'da SYS veya SYSTEM olarak tablo oluşturmak yaygın değildir, çünkü bu iki hesap yöneticidir.

Hata, müşterinizin kullanıcı olarak tablo oluşturduğu anlamına gelir ABCDE.

İçe aktarmadan önce bu kullanıcıyı oluşturmalısınız, ardından bu kullanıcı olarak verileri içe aktarmalısınız.

Dışa aktarılan dosya, ABCDEveritabanında bulunmayan kullanıcıyla ilgili izinler ve diğer bilgiler içerdiğinden bu hatayı gidermelidir .

Ek ipuçları için bu soruyu kontrol edin: Oracle Data Pump Export dosyasındaki şemalar nasıl belirlenir?


7

İlk önce "ABCDE" kullanıcısını yaratmanız gerekir.

Gibi bir şey

SQL * PLUS'ta:

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

"Kullanıcı oluştur" ile ilgili bir squillion seçeneği var, ancak bu varsayılanları kullanır.


3

Müşteri, döküm dosyasını nasıl oluşturduklarının ayrıntılarını verdi mi? Özellikle, bunun bir şema düzeyinde dışa aktarma, bir tablo alanı düzeyinde dışa aktarma veya bir tablo düzeyinde dışa aktarma yerine tam bir dışa aktarma olduğundan emin misiniz?


Ben ilgili bir sorum var. Bu konuda yorum yapmak ister misiniz? İşte link: dba.stackexchange.com/questions/130515/…
CodeMed

3

'Sys / password AS SYSDBA' yerine, 'system / password' komutunu deneyin.

Oracle'ın aracı, sys "tümüyle güçlü" kullanıcı olsa bile, dışa aktarmanın oluşturduğu gibi aynı kullanıcının içe aktarılmasını gerektirir.


1

Almakta olduğunuz verilerin aslında SYS kullanıcısı tarafından .dmo dosyası olarak alındığına dair uyarı verildi. Bunu dene..

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

dbname, sağladığınız veritabanı adıdır.


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

1
Bunun nasıl çalıştığını, parametrelerin ne olduğunu, sadece bir komut satırının ötesindeki her şeyi açıklayarak cevabınızı netleştirmelisiniz .
Max Vernon
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.