Forum

Yeni veritabanına t...
 
Bildirimler
Hepsini Temizle

Yeni veritabanına tablo taşıma

20 Yazılar
3 Üyeler
0 Likes
3,463 Görüntüleme
(@Alparslanturkmeno)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

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.

 
Gönderildi : 22/10/2014 17:36

(@vasviuysal)
Gönderiler: 7889
Üye
 

datapump export import ile yapabilirsiniz

http://www.cozumpark.com/blogs/oracle/archive/2012/07/29/oracle-uzerinde-data-pump-ile-export-ve-import.aspx

 
Gönderildi : 22/10/2014 18:19

(@h-koraygunduz)
Gönderiler: 301
Üye
 

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

 
Gönderildi : 22/10/2014 20:03

(@Alparslanturkmeno)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

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... 

 
Gönderildi : 24/10/2014 12:20

(@h-koraygunduz)
Gönderiler: 301
Üye
 

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

 
Gönderildi : 24/10/2014 15:49

(@Alparslanturkmeno)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

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. 

 
Gönderildi : 05/11/2014 17:52

(@vasviuysal)
Gönderiler: 7889
Üye
 

sqlplus içerisinde mi yazıyorsunuz expdp komutunu ??

oracle kullanıcısı ile shell içerisinden çalıştırmalısınız 

 

 
Gönderildi : 05/11/2014 18:00

(@Alparslanturkmeno)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

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

 
Gönderildi : 05/11/2014 18:02

(@h-koraygunduz)
Gönderiler: 301
Üye
 

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

 
Gönderildi : 06/11/2014 02:04

(@Alparslanturkmeno)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

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. 

 
Gönderildi : 06/11/2014 12:51

(@h-koraygunduz)
Gönderiler: 301
Üye
 

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

 
Gönderildi : 06/11/2014 23:52

(@Alparslanturkmeno)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

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?.

 
Gönderildi : 10/11/2014 12:39

(@h-koraygunduz)
Gönderiler: 301
Üye
 

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.

 
Gönderildi : 10/11/2014 13:19

(@Alparslanturkmeno)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

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... 

 
Gönderildi : 10/11/2014 18:31

(@h-koraygunduz)
Gönderiler: 301
Üye
 

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.

 
Gönderildi : 10/11/2014 18:44

(@Alparslanturkmeno)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

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... 

 
Gönderildi : 14/11/2014 19:17

(@h-koraygunduz)
Gönderiler: 301
Üye
 

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.

 
Gönderildi : 14/11/2014 19:21

(@Alparslanturkmeno)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 
Selam,
Export işlemini sorunsuz yapabiliyorum fakat export aldığım tabloyu başka bir veri tabanına dblink üzerinden almak istiyorum. 
$ vim /u01/app/oracle/product/11.2.0.3/db/network/admin/tnsnames.ora dosyasına import edeceğim veritabanında export alacağım veritabanın bağlantı bilgilerini giriyorum. Sonra  $ sqlplus / as sysdba 
SQL> create public database link abc123
2 connect to SYS
3 identified by password
4 using service 'ORCL'; yapıyorum ORA-00933 hatası alıyorum. Yardımcı olabilirseniz sevinirim. 
 
Gönderildi : 17/11/2014 14:34

(@h-koraygunduz)
Gönderiler: 301
Üye
 

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

 
Gönderildi : 17/11/2014 15:15

Sayfa 1 / 2
Paylaş: