Oracle 12c ile birlikte dba’ ler olarak aslında bizim en çok beklediğimiz bikaç özellikden biride tablo bazında recover işlemini yapabilmekti. Bu aslında çokda karşılaştığımız “Nasıl yani sadece bir tabloyu dönemiyormusunuz” gibi sorularada cevap olmuş oldu. Ama burda şunu da söylemeden geçemiycem umarım developerların bu özellikden çok da haberleri olmaz. Tabiki çalıştığım veya tanıdığım çok iyi yazılımcılarda var ama olmayanlarda var. Dolayısıyla her yapılan hata sonrasında bu tarz restore taleplerininde kaçınılmaz gibi gözüküyor.
Örneğimize geçmeden önce tablo bazından restore derken temelde neleri kastediyoruz ve ksıtlarımız neler kısaca bunlardan bahsedelim;
• Bir tabloyu restore edebileceğimiz gibi sadece bir partitionı da restore edebiliriz,
• Recover edilen tabloyu yeni bir isimle başka bir tabloya veya bir partitiona insert edebiliriz,
• Recover etmeye çalıştığımız tablonun exportunu alıp database’ de import etmeyebiliriz de,
• Bütün bu işlemleri yapabilmemiz için database archive modde ve read/write olarak açılmış olmalıdır,
• Recover edeceğimiz tabloya ait kullanılabilir bir RMAN backupımız olmalıdır.
Bu işlemi aynı zamanda bir point in time recover işlemi olarak da düşünebilirsiniz dolayısıyla biz point in time recover yaparken nasıl SCN, spesifik bir zaman dilimi veya sequence numarası verebiliyor isek aynı durum burda da geçerlidir. Bu 3 opsiyonu kullanarak da tablomuzu recover edebiliriz.
Tablo bazında recover işlemini yaparken yapılabilecek olası hatalardan da bahsetmek istiyorum. Böylelikle sizinde bu tarz işlemler de karşılaşma ihtimali yüksek olan bazı hataları farketme şansınız olacaktır.
İlk olarak tablo bazında recover ederken set until clause’ unu kullanmadan recover başlatırsanız ;
|
rman target / Recovery Manager: Release 12.1.0.2.0 - Production on Tue Jun 16 14:29:48 2015 Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. connected to target database: T1 (DBID=2690208568) RMAN> run { ALLOCATE CHANNEL ch00 DEVICE TYPE sbt_tape PARMS='ENV=(SBT_LIBRARY=/u01/app/oracle/db/12cR1/lib/libobk.a,NB_ORA_CLIENT=Redhat70, NB_ORA_SERV=veritas))'; ALLOCATE CHANNEL ch01 DEVICE TYPE sbt_tape PARMS='ENV=(SBT_LIBRARY=/u01/app/oracle/db/12cR1/lib/libobk.a,NB_ORA_CLIENT=Redhat70, NB_ORA_SERV=veritas))'; RECOVER TABLE kamil.restore_pdbt11 AUXILIARY DESTINATION '/u03/oradata/t1/restore' DATAPUMP DESTINATION '/u03/oradata/t1/restore' DUMP FILE 'restore_pdbt11.dat'; release channel ch00; release channel ch01; } |
Continue reading →