Forum
Arkadaşlar merhaba;
Benim şuan kullandığım bir veri tabanım var.Yeni bir veri tabanı oluşturup içindeki tabloları aynı özellikte yeni veri tabanına taşımak istiyorum bunu nasıl yapabilirim.
Yeni veritabanına tabloları içindeki veriler ile beraber almak istiyorum. İşletim Sistemi Linux Oracle Enterprise 6.4. Toad 12.1 kullanıyorum.
datapump export import ile yapabilirsiniz
Selam;
Bir kaç tablo taşıyacaksan iki veritabanı arası DBLINK yaratıp içeri alabilirsin. Ancak komple şema, kullanıcı vb. büyük bir veri taşıyacaksan Vasfi'ninde dediği datapump özelliği ile yapmalısın.
Teşekkürler
Merhabalar,
Büyük veriler taşıyacağım için data pump ile yapacağım. Export yada Import yaparken " dumpfile = dosyaadı.dmp " dmp uzantılı dosyayı directory path'ın altında yok sadece log'lar var. Şimdi, dmp uzantılı dosya'yı bulamadığımda export veya import işlemine nasıl yapabilirim? Birde dump file dosyaları fiziksel olarak kopyala yapıştır ile başka bir harici diske taşımam mümkün mü? Taşıdım diyelim daha sonra import yaparken sadece dump file taşımak yeterli mi?
Şimdiden teşekkürler...
Selam;
Sadece log dosyası var ise datapump doğru çalışmamış olabilir. Export komutunu ve oluşan log dosyası içinde yazanları yollayabilirmisin ?
Teşekkürler
Merhabalar,
İki tane veritabanı kurdum. (Oracle Linux Entr. 6.4) Bir tablo oluşturdum içine veride attım. Bu tabloyu bir veritabanından export ile alıp. Diğer, veritabanına import etmek istiyorum. Tablo çok büyük bir tablo değil ama asıl export ve import işlemi yapmadan önce bir deneme yapayım dedim aşağıdaki hatayı alıyorum.
Oracle kullanıcısı ile sisteme bağlandıktan sonra;
mkdir -p /u01/backups/datapump
sqlplus / as sysdba
create or replace directory dp_dir as '/u01/backups/datapump';
grant read,write on directory dp_dir to alparsland1;
expdp alparsland1/<parola>@orcl tables=TASIMA_1 directory=dp_dir dumpfile=D1_D2.dump logfile=expdpD1_D2.log full=Y
bu işlemi yapıyorum ama export kısmında şu hatayı alıyorum.
SP2-0734: unknown command begining "exp alp/12...." - rest of line ignored.
hatayı nette araştırdım fakat çözemedim. SYS kullanıcısı ile aynı işlemi yaptım. Yine aynı hatayı aldım. Yardımcı olabilirseniz sevinirim.
sqlplus içerisinde mi yazıyorsunuz expdp komutunu ??
oracle kullanıcısı ile shell içerisinden çalıştırmalısınız
evet sqlplus içinde çalıştırıyorum yani netten bulduğum örnek'te öyle
Dediğiniz gibi shell'de yaptım. Fakat, bu seferde
ORA-31626, ORA-31633, ORA-06512, ORA-01031 hataları aldım. Export yaptığım dosyayıda directory altında bulamadım???
$expdp alparsland1/<parola>@orcl tables=TASIMA_1 directory=dp_dir dumpfile=D1_D2.dump logfile=expdpD1_D2.log full=Y
Selam;
Komutu sisteme oracle kullanıcı ile bağlandıktan sonra çalıştırman gerekiyor.
Dikkat edeceklerin;
Yedeği döneceğin sistemde TASIMA_1 diye bir tablo olmamalı,
Dump dosyası (D1_D2.dump) Linux üzerinde "/u01/backups/datapump" dizininde olmalı.
full=Y kaldır.
Birde bu şekilde tek bir tablonun yani TASIMA_1 isimli bir tablonun yedekini dönüyorsun doğru mu ?
Teşekkürler
Merhabalar,
Yedeği döneceğim sistemden kastettiğinizi tam olarak anlamadım?. Anladığım, export yaptığım mevcut sistemde TASIMA_1 tablosu olmamalı mı?. Şuan, export aldığım sistemde TASIMA_1 tablosu Toad'ta create ettiğim için var. Dump dosyası Linux üzerinde "......" dizininde olması gerekiyor demişsiniz ama netteki örnekte hiç dump dosyası oluşturmamış "......." dizinin altına gittiğimde de dump dosyası yok. Dump dosyasını kendisi create ediyor sanmıştım. Yedeğini dönme işlemini kendisi yapıyor sanmıştım. Yedek dönme işlemi daha net açıklarsanız sevinirim. Teşekkürler.
Selam;
1. Yedeğin dönüleceği sistemde dönülecek tablo isminde tablo olmamalı olur ise dump dönerken var olduğunu söyleyip atlar. Dönerken kendisi oluşturacağı için tablo yaratmana gerek yok.
2. Yedekten dönme işlemini tablo bazında mı yapacaksın(yeni tek bir tablo), yoksa full veritabanı yedeğimi döneceksin ?
3. Yedek aldığın sistemde (exp) komutunu çalıştırdığında oluşan Backup dosyasını (.dmp) yedeği döneceğin sisteme kopyalamalısın yani yedek dosyasını o yaratığın dump_dir dizinine koymalısın.
4. Kendisi yedek alırken bir dosya oluşturuyor ve sen bu dosyayı yedeğin dönüleceği sisteme kopyalıyorsun. Aksi halde yedeği nereden dönecek ?
Teşekkürler
Selam,
Kendisi create edeceği için yedeğini aldığım sistemde bu tablo olmamalı demişsiniz. Varolan ve içinde veriler olan bir tabloyu export ile alıp başka bir veritabanına import yapmak istiyorum. Sanırım bu noktada bir eksiklik var?. Yedeği dönülecek olan sistem mevcut tablonun ve içinde verilerin olduğu veritabanı olarak anlıyorum. Bu yüzdende export komutu tabloyu kendisi create etmesini anlamadım?.
Selam;
Yedeği aldığınız sistemde bu tablo olmaz ise nasıl yedeğini alacaksınız ?
Dediğim şu;
A makinesinden yedek aldınız ve Table isimli bir tablonuz var. Bunu B makinesine yedekten dönecekseniz B makinesinde döneceğiniz şemada Table isimle bir tablo olmamalı. Olur ise yedekten dönmez ve atlar.
Export aldığınız değil Import çalıştırdığınız sistemde olmamalı.
Teşekkürler.
Selam,
Koray Bey, dediğinizi net olarak anladım. Fakat, bu seferde dumfile'da sıkıntı yaşıyorum. Belirttiğim lokasyonda dump dosyası yok. Dump dosyasını nasıl oluşturacağım? Birde logfile default olarak bir log file dosyası var onu kullansam olur mu yoksa log file kendim oluşturmalımıyım?
$expdp alparsland1/<parola>@orcl tables=TASIMA_1 directory=dp_dir dumpfile=D1_D2.dump logfile=dp.log -> default olarak gelen log dosyası.
Nette gezinirken daha basit bir kod buldum bunuda denedim fakat yukarıdaki karşılaştığım problemlerin aynısı bunun içinde geçerli: dmp uzantılı dosya belirtilen uzantıda yok?
$exp system/manager owner=seyhan file=/export/seyhan.dmp rows=y grants=y indexes=y constraints=y log=dp.log -> default olarak gelen.
kendime uyarlayıp yazdığımda karşıma şöyle birşeyde çıkıyor:
Export file: expdat.dmp > Buraya birşey yazmamı istiyor...
Selam;
$expdp system/<parola>@orcl tables=TASIMA_1 directory=dp_dir dumpfile=D1_D2.dmp logfile=dp.log
Log dosyası kendisi oluşturacaktır var ise üzerine yazar. Komutu yukarıdaki gibi çalıştırabilirsiniz. Bu komut "dp_dir" neresi ise orada bir D1_D2.dmp dosyası oluşturacaktır. Bunu yedeği döneceğiniz sistemde "dp_dir" neresi ise oraya D1_D2.dmp dosyasını kopyalayıp "imp" komutu ile içeri alacaksınız.
Teşekkürler.
Selam,
Aşağıdaki komutu çalıştırdığımda iki tane hata alıyorum. Birde deneme1.dmp dosyasını oluşturmuyor yada ben bulamıyorum? expdpdenem123.log dosyasını oluşturuyor.
$expdp SYSTEM/password@orcl tables=TESTSUNUCU.TASIMA_1 directory=dp_dir dumpfile=deneme1.dmp Logfile=expdpdeneme123.log
ORA-39001: invalid argument value
ORA-39195: at least one schema in the table_filter does not exist. Teşekkürler...
Selam;
Oluşmaz çünkü komut çalışmıyor hata veriyor. Syntax kontrol edermisin ?
Birde rica etsem aşağıdaki sayfadan adımlar bir incelermisin ve ona göre ilerle basit bir tablo exportu yapacaksın...
http://www.koraykey.com/?p=3370
Teşekkürler.
Selam;
SYS yerine system kullanırmısın ayrıca TNS ayarları doğrumu test et? Birde export için DB link kullanma DB link üzerinden direk tabloyu seç örnek olarak aşağıdaki komut gibi.
TNS Test için;
tnsping serviceadı => tnsping ORCL
Tablo Aktarmak için
create table HEDEF_TABLO as select * from KAYNAK_TABLO@ORCL
Teşekkürler