Adım 1: Hedef ve kaynak veritabanında işletim sistemi byte sıralamasını buluyoruz.
SQL > select * from v$transportable_platform
order by platform_id;
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT
----------------- -------------------------- -------------------------
1 Solaris[tm] OE (32-bit) Big
2 Solaris[tm] OE (64-bit) Big
3 HP-UX (64-bit) Big
4 HP-UX IA (64-bit) Big
5 HP Tru64 UNIX Little
6 AIX-Based Systems (64-bit) Big
7 Microsoft Windows IA (32-bit) Little
8 Microsoft Windows IA (64-bit) Little
9 IBM zSeries Based Linux Big
10 Linux IA (32-bit) Little
11 Linux IA (64-bit) Little
12 MS Windows 64-bit for AMD Little
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT
----------------- -------------------------- -------------------------
1 Solaris[tm] OE (32-bit) Big
2 Solaris[tm] OE (64-bit) Big
3 HP-UX (64-bit) Big
4 HP-UX IA (64-bit) Big
5 HP Tru64 UNIX Little
6 AIX-Based Systems (64-bit) Big
7 Microsoft Windows IA (32-bit) Little
8 Microsoft Windows IA (64-bit) Little
9 IBM zSeries Based Linux Big
10 Linux IA (32-bit) Little
11 Linux IA (64-bit) Little
12 MS Windows 64-bit for AMD Little
Örneğimizde kullanılacak olan“test_user_tbs” adındaki taşınabilir tablespace, LINUX1 adlı Linux 64 bit(Little endian) makineden, SOLARIS1 adlı Solaris 64 bit (BIG endian) makineye taşınacaktır. Her iki platformda farklı endian formatında işletim sistemleridir. “test_user_tbs” tablespacenin Linux üzerindeki fiziksel veri dosyası ismi “test_user_tbs01.dbf” dir.
Adım 2: Tablespace “READ ONLY” moduna getirilmektedir.
SQL> alter tablespace test_user_tbs read only;
Adım 3: Taşınabilir tablespace big endian formatına dönüştürülerek kaynak platformdaki geçici bir dizinde saklanacaktır. Bu döünüştürme işlemi için alttaki komut çalıştırılır.
$ rman / target
RMAN > convert tablespace test_user_tbs
to platform 'Solaris[tm] OE (64-bit)'
format='/tmp/transport_solaris/test_user_tbs01.dbf';
Adım 4: Export datapump özelliğini kullanarak metadatayı ihraç ediyoruz. Bu amaçla önce sanal bir dizin oluşturuyoruz.
Adım 4: Export datapump özelliğini kullanarak metadatayı ihraç ediyoruz. Bu amaçla önce sanal bir dizin oluşturuyoruz.
$ sqplus / as sysdba
SQL> create directory export_dir as '/u01/app/';
SQL>exit
$ expdp system/password TRANSPORT_TABLESPACES=test_user_tbs TRANSPORT_FULL_CHECK=Y DIRECTORY=export_dir DUMPFILE=expdp_test_user_tbs.dmp logfile= expdp_test_user_tbs.logAdım 5: Veri dosyalarını Linux üzerindeki /tmp/transport_solaris dizini içinden hedef Solaris sistemde veri dosyalarının bulunduğu dizine örneğin aşağıdaki gibi taşıyoruz. Bunun yanında exp_test_user_tbs.dmp adlı export dosyasıda Linux platformundan Solaris platformuna taşınmalıdır.
$ scp /tmp/transport_solaris/* solaris1:/u01/app/oracle/oradata/orcl/
$ scp /u01/app/* solaris1:/u01/app/
$ scp /u01/app/* solaris1:/u01/app/
Adım 6: Tablespace veritabanına iliştirilerek ihraç işlemi başlatılır. Import datapump özelliğini kullanarak metadata ihracına başlamadan önce gerekli sanal dizin oluşturulmalı ve işlemi yapacak kullanıcıya gerekli izinler verilmelidir. Ayrıca export dosyasının bu sanal dizinin işaret ettiği fiziksel lokasyonda yer alıp almadığı son kez kontrol edilmelidir.
SQL> create directory import_dir as '/u01/app/';
SQL> grant read,write on directory import_dir to test_user;
$ impdp test_user/password TRANSPORT_DATAFILES='test_user_tbs01.dbf' DIRECTORY=import_dir DUMPFILE=expdp_test_user_tbs.dmp log= impdp_test_user_tbs.log
$ impdp test_user/password TRANSPORT_DATAFILES='test_user_tbs01.dbf' DIRECTORY=import_dir DUMPFILE=expdp_test_user_tbs.dmp log= impdp_test_user_tbs.log
Adım 7: Tablespace read/write moduna döndürülür.
SQL> ALTER TABLESPACE TEST_USER_TBS READ WRITE;
Artık Solaris platformundaki Oracle 10g R2 veritabanı “test_user_tbs” adında yeni bir tablespace sahibidir ve bu tablespace içindeki tüm objeler erişilebilirdir.
Farklı endian yapısındaki platfomlar arasında taşınabilir tablespace meta verisinin ithal ve ihraç işlemleri için aşağıdakilerin gözönünde bulundurulması gerekmektedir.
1. Kaynak ve hedef veritabanı aynı karakter setinde ve ulusal karakter setinde olmalıdır.
2. Kaynak ve hedef platformlar v$transportable_platform sorgusu içinde yer almalıdır. Aksi durumda CONVERT işlemi yapılamaz.
3. Hedef veritabanında aynı isimde tablespace ve veri dosyaları bulunmamalıdır.
4. Hedef ve kaynak veritabanlarının COMPATIBILITY seviyesi en az Oracle 10g R1 veya daha üst sürümde olmalıdır.
0 yorum:
Yorum Gönder