Tablespace Point in Time Recovery
Tablespace Point in Time Recovery
8ZH+HVVH
3ULQFLSDO,QVWUXFWRU
2UDFOH8QLYHUVLW\*HUPDQ\
,Q WKLV HGLWLRQ RI ³28 ([SHUW¶V &RUQHU´ ZH H[DPLQH WKH DGYDQFHG %DFNXS
5HFRYHU\ WHFKQLTXH FDOOHG 7DEOHVSDFH 3RLQW ,Q 7LPH 5HFRYHU\ 763,75 7KLV
UHFRYHU\ WHFKQLTXH PD\ EH XVHIXO LQ GDWDEDVHV ZLWK PXOWLSOH VHWV RI ORJLFDOO\
LQGHSHQGHQW WDEOHVSDFHV HVSHFLDOO\ LI \RX UXQ PXOWLSOH DSSOLFDWLRQV DJDLQVW WKLV
GDWDEDVH HDFK RI ZKRVH GDWD LV VHOIFRQWDLQHG LQ WKHLU RZQ JURXS RI WDEOHVSDFHV
,I D ORJLFDO RU RSHUDWLRQDO HUURU RFFXUV LQ DQ DSSOLFDWLRQ FDXVLQJ ORJLFDO GDWD
LQFRQVLVWHQF\ WKHQ 763,75 HQDEOHV \RX WR ³WXUQ EDFN WKH FORFN´ IRU WKDW
SDUWLFXODUDSSOLFDWLRQOHDYLQJWKHUHPDLQGHURIWKHGDWDEDVHDWWKHFXUUHQWWLPH
DQHDUOLHUSRLQWLQWLPHZKLFKPD\EHH[WUHPHO\XQGHVLUDEOH
763,75&RQFHSWV
8QGHUVWDQGLQJ763,75FRQFHSWVUHTXLUHVVRPHNQRZOHGJHDERXWWZRXQGHUO\LQJ
WHFKQLTXHV XVHG LQ WKH SURFHVV RI 763,75 7KH ILUVW LV 'DWDEDVH 3RLQW ,Q 7LPH
'%3,75
'%3,75HQDEOHV\RXWRUHFRYHUDGDWDEDVHWRVRPHWLPHLQWKHSDVW)RUH[DPSOH
LI D ORJLFDO HUURU RFFXUUHG WRGD\ DW $0 '%3,75 ZRXOG HQDEOH \RX WR
UHVWRUHWKHHQWLUHGDWDEDVHWRWKHVWDWHLWZDVLQDW$0WKHUHE\UHPRYLQJWKH
$0 '%3,75 UHTXLUHV WKH GDWDEDVH WR EH LQ ³DUFKLYHORJ´ PRGH DQ
H[LVWLQJ EDFNXS RI WKH GDWDEDVH FUHDWHG EHIRUH WKH SRLQW LQ WLPH WR ZKLFK \RX
ZLVK WR UHFRYHU PXVW H[LVW DQG DOO WKH DUFKLYHORJV DQG RQOLQH ORJV FUHDWHG IURP
H[LVWDVZHOO7RSHUIRUP'%3,75LQYRNH50$1DVIROORZV
$ export NLS_LANG=american_america.we8iso8859p1
$ export NLS_DATE_FORMAT=’yyyy-mm-dd:hh24:mi:ss’
$ rman target /
RMAN> startup mount
...
RMAN> run {VHWXQWLOWLPH ’2009-01-26:09:59:00’;
RMAN> restore database;
...
RMAN> recover database;
RMAN> ...
RMAN> alter database open resetlogs;}
7KH ³VHW XQWLO WLPH´ FODXVH LQVLGH WKH 50$1 UXQ EORFN LV WKH WLPH LQ WKH
SDVWWRZKLFK\RXUGDWDEDVHZLOOEHUHFRYHUHG50$1XVHVWKLVWLPHWRGHWHUPLQH
IURP ZKLFK EDFNXS WR UHVWRUH WKH GDWDILOHV DV WKH EDFNXS PXVW KDYH EHHQ
FUHDWHG SULRU WR WKH LQWHQGHG UHVWRUH WLPH $OO GDWDILOHV DUH WKHQ UHVWRUHG IURP
WKH VHOHFWHG EDFNXS DIWHU ZKLFK WKH\ DUH UHFRYHUHG XS WR WKH ³XQWLO WLPH´
XVLQJDUFKLYHORJVDQGSRVVLEO\RQOLQHUHGRORJV
,W LV KLJKO\ UHFRPPHQGHG WKDW \RX EDFNXS \RXU FRQWUROILOH DQG \RXU
RQOLQH UHGR ORJILOHV EHIRUH LQYRNLQJ '%3,75 7KH DYDLODELOLW\ RI WKHVH
EDFNXSVHQDEOHVRQHWRSHUIRUPDFRPSOHWHUHFRYHU\WRWKHFXUUHQWSRLQWLQWLPH
LI'%3,75GRHVQRWOHDYHWKHGDWDEDVHLQWKHGHVLUHGVWDWH
DQH[SODQDWLRQLVEH\RXQGWKHVFRSHRIWKLVDUWLFOH
776
776HQDEOHVWKHWUDQVSRUWRIODUJHDPRXQWVRIGDWDIURPRQH2UDFOHGDWDEDVHWR
DQRWKHU LQVWHDG RI FUHDWLQJ ''/ DQG '0/ VWDWHPHQWV IRU HDFK URZ DQG REMHFW LQ
WKH WDEOHVSDFHV 7KLV LV GRQH E\ FRS\LQJ WKH GDWDILOHV IRU D VHW RI RQH RU PRUH
WDEOHVSDFHVIURPWKHVRXUFHWRWKHWDUJHWGDWDEDVHWRJHWKHUZLWKVRPHPHWDGDWD
H[SRUWHG XVLQJ H[S RU H[SGS IURP WKH VRXUFH DQG LPSRUWHG XVLQJ LPS RU
LPSGS WR WKH WDUJHW 7KLV PHWKRG LV YHU\ IDVW FRPSDUHG WR RWKHU PHWKRGV OLNH
H[SRUWLPSRUW EHFDXVH WKH HODSVHG WLPH LV SURSRUWLRQDO WR WKH DPRXQW RI
PHWDGDWDUDWKHUWKDQWKHDPRXQWRIGDWDLQWKHWDEOHVSDFHV
)RU 776 WKH WDEOHVSDFH RU VHW RI WDEOHVSDFHV PXVW EH VHOI FRQWDLQHG PHDQLQJ
WKDW WKH VHJPHQWV LQVLGH WKRVH WDEOHVSDFHV PXVW QRW GHSHQG RQ REMHFWV VWRUHG LQ
RWKHU WDEOHVSDFHV WKDW DUH QRW SDUW RI WKH WUDQVSRUW VHW 7KHUH DUH DOVR VRPH
RWKHU UHVWULFWLRQV <RX FDQ FKHFN LI 776 LV SRVVLEOH ZLWK WKH VHOHFWHG VHW RI
WDEOHVSDFHVDVIROORZV
SQL> select * from sys.transport_set_violations;
+HUH LV DQ H[DPSOH RI D WUDQVSRUWDEOH WDEOHVSDFH H[SRUW WKDW ZRXOG ZRUN ZLWK
DQ\YHUVLRQVWDUWLQJIURP2UDFOH
SQL> alter tablespace humres read only;
$ exp TABLESPACES=humres TRANSPORT_TABLESPACE=y file=humres.dmp
$IWHU SHUIRUPLQJ WKH H[SRUW WKH UHVXOWLQJ ELQDU\ KXPUHVGPS LV FRSLHG WR WKH
DQ\ UHODWHG GDWD ILOHV KHOG H[WHUQDOO\ VXFK DV EILOH OREV IRU WDEOHV LQ WKH
WDEOHVSDFH
2QWKHWDUJHWV\VWHPWKHWUDQVSRUWHGWDEOHVSDFHLV³SOXJJHGLQ´E\LQVHUWLQJWKH
H[SRUWHG PHWDGDWD LQWR WKH 'DWD 'LFWLRQDU\ DQG FRQWUROILOH RI WKH
WDUJHW GDWDEDVH XVLQJ LPSRUW :KHQ 776 LV XVHG E\ 763,75 WKH WDUJHW
GDWDEDVH LV WKH VDPH DV WKH VRXUFH GDWDEDVH UHTXLULQJ WKDW WKH WUDQVSRUWHG
WDEOHVSDFHVEHGURSSHGEHIRUHWKH³SOXJLQ´RFFXUVDVIROORZV
SQL> drop tablespace humres including contents;
$ imp TRANSPORT_TABLESPACE=y TABLESPACES=humres
DATAFILES=’/u01/app/oracle/oradata/orcl/humres01.dbf’
FILE=humres.dmp
0XOWLSOH%ORFN6L]H7766XSSRUW
2UDFOH L LQWURGXFHG VXSSRUW IRU PXOWLSOH EORFN VL]HV LQ WKH VDPH GDWDEDVH
WKHUHE\ HQDEOLQJ 776 XVH ZKHQ WKH VRXUFH DQG WDUJHW GDWDEDVHV KDYH GLIIHUHQW
VWDQGDUGEORFNVL]HV7KLVUHTXLUHVWKHWDUJHWGDWDEDVHWRKDYHDGDWDEDVHEXIIHU
FDFKHZLWKDEORFNVL]HPDWFKLQJWKHEORFNVL]HRIWKHILOHVLQWKHWUDQVSRUWVHWRI
'%BQ.B&$&+(B6,=(SDUDPHWHUVLQWKHWDUJHWGDWDEDVH
&URVV3ODWIRUP7766XSSRUW
2UDFOH J LQWURGXFHG VXSSRUW IRU ³&URVV 3ODWIRUP´ 776 HQDEOLQJ WUDQVSRUW
ZKHQ WKH VRXUFH DQG WDUJHW GDWDEDVHV DUH RQ GLIIHUHQW SODWIRUPV DQG ZKHUH WKH
³(QGLDQQHVV´ RI WKH SODWIRUPV PLJKW GLIIHU 2UDFOH J DOVR LQWURGXFHG 'DWD
3XPS H[SGSLPSGS DV VXFFHVVRU RI H[SLPS %RWK RI WKHVH DGGLWLRQV DUH
EH\RQGWKHVFRSHRIWKLVDUWLFOH
763,756FHQDULR
$IWHUWKLVEULHIRYHUYLHZRI'%3,75DQG776ZHDUHUHDG\WRH[DPLQHDVFHQDULR
ZKHUH763,75ZLOOHQDEOHXVWRVROYHDSUREOHP
DSSOLFDWLRQ 7KH +5 WDEOHV UHVLGH LQ WKH KXPUHV WDEOHVSDFH DQG WKH 6$/(6
WDEOHV LQ WKH VDOHV WDEOHVSDFH &RUUHVSRQGLQJ WR WKH WZR DSSOLFDWLRQV DUH
GDWDEDVHXVHUVKXPUHVDQGVDOHV
SQL> select owner,table_name from dba_tables where
tablespace_name=’HUMRES’;
OWNER TABLE_NAME
------------------------------ ------------------------------
HUMRES EMPLOYEES
HUMRES DEPARTMENTS
SQL> select owner,table_name from dba_tables where
tablespace_name=’SALES’;
OWNER TABLE_NAME
------------------------------ ------------------------------
SALES CUSTOMERS
1RZZHVLPXODWHDORJLFDOHUURULQWKH+XPDQ5HVRXUFHVDSSOLFDWLRQ
SQL> commit;
Commit complete.
7KLVLVRQO\DVLPSOLILHGH[DPSOHRIDORJLFDOHUURUEXWDQ\FRPSOH[ORJLFDOHUURU
LQ WKH +XPDQ 5HVRXUFHV DSSOLFDWLRQ PD\ EH KDQGOHG LQ WKH VDPH ZD\ ,Q
VLWXDWLRQV VXFK DV WKLV RQH \RX PD\ ZLVK WR ³WXUQ EDFN WKH FORFN´ IRU DQ
DSSOLFDWLRQ ZLWKRXW LPSDFWLQJ WKH RWKHU DSSOLFDWLRQV LQ \RXU GDWDEDVH )RU
IROORZV
SQL> commit;
3HUIRUPLQJ D '%3,75 DV D VROXWLRQ WR WKH ORJLFDO FRUUXSWLRQ RI WKH
KXPUHVGHSDUWPHQWV WDEOH ZRXOG FDXVH WKH ORVV RI WKH XSGDWH WR WKH
+XPDQ5HVRXUFHV$SSOLFDWLRQ
RMAN> recover tablespace humres until time
"to_date(’2009-1-27:14:33:00’,’yyyy-mm-dd:hh24:mi:ss’)"
auxiliary destination ’/home/oracle/aux_dir’;
7KH IROORZLQJ RXWSXW VKRZV KRZ PXFK DXWRPDWLRQ LV SURYLGHG E\ 50$1
$OWKRXJKWKLVFRXOGEHGRQHPDQXDOO\50$1PDNHVLWIDUVLPSOHUIRUWKH'%$
1RWH7KHDQQRWDWLRQVLQWKLV50$1RXWSXWDUHH[SODLQHGODWHULQWKHDUWLFOH
Starting recover at 2009-01-27:14:35:38
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=134 device type=DISK
RMAN-05026: WARNING: presuming following set of tablespaces
applies to specified point in time
List of tablespaces expected to have UNDO segments
Tablespace SYSTEM
Tablespace UNDOTBS1
Creating automatic instance, with SID=’myFb’
initialization parameters used for automatic instance:
db_name=ORCL [...]
[...]
sql clone "alter database datafile 6 online";
# make the controlfile point at the restored datafiles, then
recover them
recover clone database tablespace "HUMRES", "SYSTEM", "UNDOTBS1",
"SYSAUX" delete archivelog;
alter clone database open resetlogs;
}
executing Memory Script
executing command: SET until clause
sql statement: alter tablespace HUMRES offline for recover
DEPARTMENT_NAME
------------------------------
Administration
Marketing
Purchasing
Human Resources
Shipping
IT
Public Relations
Sales
[…]
7KH ORJLFDO HUURU LQ WKH +XPDQ 5HVRXUFHV DSSOLFDWLRQ LV FRUUHFWHG DQG WKH ROG
GHSDUWPHQW QDPHV DUH UHVWRUHG DQG QR ORQJHU FRQWDLQ ³0,67$.(´ LQ WKH
GHSDUWPHQWBQDPH FROXPQ %XW WKH XSGDWH WR FXVWRPHU LQ WKH VDOHV
DSSOLFDWLRQWDEOHKDVQRWEHHQLPSDFWHG
CUST_EMAIL
-----------------------------
[email protected]
7R SHUIRUP WKH '%3,75 6WHS GXULQJ WKH 763,75 50$1 UHTXLUHG WKH
GDWDEDVHWREHLQ³DUFKLYHORJ´PRGHDQH[LVWLQJEDFNXSRIWKHGDWDEDVHWKDW
ZDV FUHDWHG EHIRUH WKH SRLQW LQ WLPH IRU UHFRYHU\ DQG DOO WKH DUFKLYHORJV DQG
RQOLQH ORJV FUHDWHG IURP WKH WLPH RI WKH EDFNXS XQWLO WKH SRLQW LQ WLPH RI
UHFRYHU\ $XWREDFNXSVRIWKHFRQWUROILOHDUHDJRRGSUDFWLFHDQGJXDUDQWHHWKDW
DFRQWUROILOHPD\EHUHFRYHUHGWKDWPDWFKHVWKHGDWDEDVHSK\VLFDOVFKHPDDWWKH
SRLQW LQ WLPH ZKHQ UHFRYHU\ HQGV $OVR QHHGHG LV D GLUHFWRU\ VSHFLILHG E\ WKH
DX[LOLDU\ GHVWLQDWLRQ SDUDPHWHU LQ RXU H[DPSOH RQ WKH GDWDEDVH KRVW
ZKHUH50$1SODFHVWKHILOHVRIWKHDXWRPDWLFLQVWDQFH
7KH IROORZLQJ QRWHV UHODWH WR WKH DQQRWDWLRQV LQ WKH 50$1 RXWSXW DERYH DQG
UHSUHVHQWWKHPDLQDXWRPDWHGDFWLRQV
50$1VWDUWHGDQDXWRPDWLFLQVWDQFHLQ1202817VWDWH7KLVLQVWDQFHLV
UDQGRPO\QDPHGDQGH[LVWVRQO\GXULQJWKH763,75
50$1UHVWRUHGDFRQWUROILOHIRUWKDWLQVWDQFHIURPDXWREDFNXSDQG02817('
WKH DX[LOLDU\ GDWDEDVH ZLWK LW 7KLV FRQWUROILOH FRQWDLQV WKH RULJLQDO
QDPHV RI WKH GDWDILOHV ZKLFK DUH PDSSHG WR WKH DX[LOLDU\ GHVWLQDWLRQ
DX[BGLUZLWKWKHVHWQHZQDPHFODXVHV
GDWDILOHV ,Q RUGHU WR GR D 763,75 IRU WKH KXPUHV WDEOHVSDFH RQO\ WKH
GDWDILOHVIRUWKLVWDEOHVSDFHDQGWKHGDWDILOHVIRUWKHPDQGDWRU\WDEOHVSDFHV
V\VWHP V\VDX[ DQG XQGR DUH QHHGHG 7KH GDWDILOH RI WKH KXPUHV
WDEOHVSFDFH JHWV UHVWRUHG WR WKH RULJLQDO ORFDWLRQ QRW WR WKH DX[LOLDU\
GHVWLQDWLRQ WKHUHE\ HOLPLQDWLQJ WKH QHHG WR FRS\ LW $ WHPSILOHIRU WKH
WHPS WDEOHVSDFH LV DOVR FUHDWHG DXWRPDWLFDOO\ $OO RWKHU WDEOHVSDFHV VXFK
DV XVHUV IRU H[DPSOH DUH VNLSSHG DQG WKH WLPH WR UHVWRUH DQG UHFRYHU
WKHPLVVDYHGLQRUGHUWRVSHHGXSWKH763,75
50$1SHUIRUPHGD'%3,75ZLWKWKHDX[LOLDU\GDWDEDVH
50$1 SHUIRUPHG D 776 ZLWK WKH GDWDILOHV DQG PHWDGDWD RI WKH KXPUHV
WDEOHVSDFHZKHUHWKHVRXUFHGDWDEDVHZDVWKHDX[LOLDU\GDWDEDVHRQ
GDWDEDVH
50$1UHPRYHGWKHDX[LOLDU\GDWDEDVHZLWKLWVILOHVDQGWHUPLQDWHGWKH
DXWRPDWLFLQVWDQFH
1RWH 7KH GDWDEDVH ZDV LQ 23(1 PRGH GXULQJ WKH UHFRYHU\ DQG XVHDEOH E\ DOO
SHUIRUPHG XVLQJ 2UDFOH 'DWDEDVH J EXW ZRXOG ZRUN ZLWK YHUVLRQ J LQ
H[DFWO\WKHVDPHZD\
,QFRQFOXVLRQ7DEOHVSDFH3RLQW,Q7LPH5HFRYHU\LVTXLWHHDV\WRSHUIRUPXVLQJ
RQH 50$1 FRPPDQG DQG SURYLGHV EHQHILWV HVSHFLDOO\ ZKHQ PDQ\ DSSOLFDWLRQV
WKH DX[LOLDU\ GDWDEDVH IURP D EDFNXS RI WKH VRXUFH GDWDEDVH DQG
WKHQ SHUIRUPV D FRPELQDWLRQ RI '%3,75 DQG 776 IURP WKH DX[LOLDU\
GDWDEDVH WR WKH VRXUFH GDWDEDVH IRU WKH VSHFLILHG WDEOHVSDFH ,Q HIIHFW
763,75 WUDQVSRUWV D VHW RI RQH RU PRUH WDEOHVSDFHV IURP DQ HDUOLHU SRLQW LQ
WLPHEDFNLQWRWKHLURULJLQDOGDWDEDVHZKLFKLVDWWKHFXUUHQWSRLQWLQWLPH