ORACLE’da Data Pump Örnekleri


Data Pump Örnekleri

Öncelikle data pump işlemlerini gerçekleştirmek için eski nesil export/import işleminin aksine oracle içinde bir directory yaratmanız gerekli. Örnekleri gerçekleştirebilmek için SYS kullanıcısı ile sunucu üzerinde çalışmalısınız.

SQL> create or replace directory dump_dir as ‘/yedek/datapump_dizini/’

Ayrıca, exportu alınan kullanıcı için EXPUSR, import edilecek kullanıcı için de IMPUSR isimlerini kullandım. Tablespaceleri de sırasıyla TSEXPUSR ve TSIMPUSR olarak belirledim.

paralel full export almak
———————
$ expdp “‘/ as sysdba'” full=y directory=DUMP_DIR dumpfile=expdpmydbfull_%U.dp logfile=expdpmydbfull.log parallel=4

#Buradaki parallel=4 parametresi ile işlemin 4 ayrı process aracılığıyla ve 4 ayrı dosyada gerçekleşmesi sağlanıyor. Her bir dosyanın içinde ayrı yedekler bulunmakta ama sağlıklı import edebilmeniz için 4 dosyaya da ihtiyacınız var. %U sembolü de Oracle’ın paralel şekilde dosya oluşabilmesi için koyduğu bir sembol (rasgele bir harf veremezsiniz). Bu işlem sonunda ilgili dizinde: expdpmydbfull_01.dp, expdpmydbfull_02.dp, expdpmydbfull_03.dp, expdpmydbfull_04.dp isminde 4 adet dosya oluşacaktır. Importu paralel yapmak zorunda değilsiniz. Zaten data pump import işlemi, eski nesil importa göre 50 kata kadar hızlı olduğu için paralel importa pek ihtiyaç duymayabilirsiniz. Bunun yanında 10.2.0.1 sürümünde DATAPUMP ile import ederken istatistikleri hesaplama işlemi çok uzun sürüyor(bug olabilir). Bu nedenle import sırasında EXCLUDE=STATISTICS demenizde hız açısından yarar var. Import bittikten sonra ilgili tabloların istatistiklerini manuel olarak hesaplatmanız çok daha hızlı olacaktır.


tek tablo exportu

———————
$ expdp “‘/ as sysdba'” tables=EXPUSR.tabloadi directory=DUMP_DIR dumpfile=expdptabloadi.dp logfile=expdptabloadi.log

tek tablo exportunu başka kullanıcıya import etmek
——————————————————-
$ impdp “‘/ as sysdba'” directory=DUMP_DIR dumpfile=expdptabloadi.dp logfile=expdptabloadi.log remap_schema=EXPUSR:IMPUSR

full exporttan, bir schemanın tüm objelerini başka bir şemaya import etmek
————————————————————————–
$ impdp “‘/ as sysdba'” dumpfile=expdpmydbfull_%U.dp schemas=EXPUSR remap_schema=EXPUSR:IMPUSR remap_tablespace=’TSEXPUSR’:’TSIMPUSR’
logfile=impdpimpusr.log directory=DUMP_DIR

#Burada remap_tablespace parametresindeki tırnak işaretlerini ( ‘ ) vermeyi unutmayın.

full exporttan tek bir tabloyu başka bir kullanıcıya import etmek
————————————————————————-
$ impdp “‘/ as sysdba'” directory=DUMP_DIR dumpfile=expdpmydbfull_%U.dp logfile=impdptabloadi.log remap_schema=EXPUSR:IMPUSR remap_tablespace=’TSEXPUSR’:’TSIMPUSR’ tables=expusr.tabloadi

queryli impdp
——————-
$ impdp “‘/ as sysdba'” directory=DUMP_DIR dumpfile=expdptabloadi.dp logfile=impdptabloadi.log
remap_schema=EXPUSR:IMPUSR TABLE_EXISTS_ACTION=replace query=tabloadi:\”where kolonadi1\<1000000 style=”font-weight: bold;”>multiple remap_schema ve remap_tablespace importu
————————————————————————-
$ impdp “‘/ as sysdba'” dumpfile=expdpmydbfull_%U.dp remap_schema=EXPUSR:IMPUSR,EXPUSR_ING:IMPUSR_ING remap_tablespace=’TSEXPUSR’:’TSIMPUSR’,’TSEXPUSRING’:’TSIMPUSRING’ directory=DUMP_DIR

tablonun rasgele %5’inin exportunu almak
———————————————————
$ expdp “‘/ as sysdba'” tables=EXPUSR.tabloadi directory=DUMP_DIR dumpfile=expdptabloadi.dp logfile=expdptabloadi.log sample=5

flashback kullanarak geçmiş bir zamana ait verilerin exportunu almak
———————————————————————————————-
$ expdp “‘/ as sysdba'” full=y directory=DUMP_DIR dumpfile=expdpmydbfull_%U.dp logfile=expdpmydbfull.log parallel=4 FLASHBACK_TIME=”TO_TIMESTAMP(
’30-12-2007 00:13:47′,’DD-MM-YYYY HH24:MI:SS’)”

parametre dosyası kullanarak export almak
———————————————————-
$ expdp “‘/ as sysdba'” parfile=parametredosyam(full path i ile birlikte)

## Parametre dosyası kullanmak
özellikle UNIX/Linux ortamlarında bazen işleri kolaylaştırmaktadır. Çünkü, aşağıdaki INCLUDE veya QUERY gibi parametrelerde tırnak işaretleri ve boşluk geçen ifadeleri kullanabilmeniz için bu ortamlarda \ karakterini doğru bir şekilde kullanmaya özen göstermek gerekir. Parametre dosyası içinde ise bu karakteri kullanmanıza gerek kalmaz. Bu nedenle işler kolaylaşır.

parametre dosyası örneği
(1)
——————————
SCHEMAS=(EXPUSR,EXPUSRING)
INCLUDE=TABLE:”LIKE ‘%KUTUK%'”
DIRECTORY=DUMP_DIR
DUMPFILE=expdpusr_usring.dp
LOGFILE=expdpusr_usring.log

parameter file örneği (2)
——————————
full=y
directory=DUMP_DIR
dumpfile=expdpfull.dp
logfile=expdpfull.log
exclude=SCHEMA:”=’SYS'”
exclude=SCHEMA:”=’SYSTEM'”
exclude=SCHEMA:”=’SYSMAN'”
exclude=SCHEMA:”=’WMSYS'”
exclude=SCHEMA:”=’WK_TEST'”
exclude=SCHEMA:”=’WKSYS'”
exclude=SCHEMA:”=’OLAPSYS'”
exclude=SCHEMA:”=’OUTLN'”

sadece metaverinin exportu (1)
—————————————–
$ expdp “‘/ as sysdba'” schemas=ilker dumpfile=expdpilkerobjects.dp logfile=expdpilkerobjects.log include=package,function,procedure,trigger directory=DUMP_DIR

#Fakat burada, include a aldığınız türler dışındaki objelere ihtiyacınız olması durumunda çaresiz kalırsınız.

sadece metaverinin exportu (2)
—————————————–
$ expdp “‘/ as sysdba'” dumpfile=expdpexpusrsource.dp logfile=expdpexpusrsource.log full=y content=METADATA_ONLY directory=DUMP_DIR

# Aldığınız bu exportu başka bir şemaya import ederseniz tüm kayıt desenleri ve objeler yeni şemada bulunur ve tablolarda veri olmaz. Ancak, aşağıdaki gibi sqlfile parametresini de kullanırsanız import işlemi gerçekleşmez ve tüm işlemlerin scripti belirlediğiniz dosyaya yazılır. Siz de buradan örneğin istediğiniz triggerın scriptine erişebilirsiniz.

$ impdp “‘/ as sysdba'” dumpfile=expdpexpusrsource.dp logfile=impdpexpusrsource.log sqlfile=ilker.sql schemas=expusr directory=DUMP_DIR [isterseniz include=function,procedure,package,trigger vs.vs]

export almadan network_link ile import etme
————————————————————
$ impdp dumdum/dumdum directory=DUMP_DIR tables=gecici network_link=todigerdbilker remap_schema=ilker:dumdum remap_tablespace=’TSILKER’:’TSDUMDUM’

“ORACLE’da Data Pump Örnekleri” için bir yorum

  1. Merhabalar,
    Gerçekten çok faydalı oldu sayende exp. imp işini tam anlamıyla çözdüm. Devamını bekleriz. Teşekkürler.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s