最近在看oracle恢複和備份機制。對oracle的beginbackup和endbackup,感覺很新鮮。就做了一些小實驗。結果,一頭霧水。不知道為什麼要有這個技術。
sys@CISCOSYS> alter tablespace users begin backup;sys@CISCOSYS> select file#,status,change# from v$backup;FILE# STATUS CHANGE#---------- ------------------ ----------1 NOT ACTIVE 02 NOT ACTIVE 03 NOT ACTIVE 04 ACTIVE 54652605 ACTIVE 54652606 NOT ACTIVE 07 NOT ACTIVE 08 NOT ACTIVE 52184079 NOT ACTIVE 010 NOT ACTIVE 010 rows selected.v$backup.change#:SCN號,卻不是查詢出來的SCN號?
查詢出4,5,好資料檔案。及找出資料表空間下的一個表,嘗試進行操作。
結果發現可以操作。在此,就不明白既然知道是backup模式,怎麼還允許操作呢)
//查詢某個資料表空間下的表sys@CISCOSYS> select table_name ,TABLESPACE_NAME from dba_tables where TABLESPACE_NAME='USERS' and owner='SCOTT';TABLE_NAME TABLESPACE_NAME------------------------------ ------------------------------DEPT USERSEMP USERSBONUS USERSSALGRADE USERS
發現處於backup 狀態的資料表空間,依然可以修改資料。sys@CISCOSYS> insert into scott.dept values(50,'IT','BeiJing');1 row created.sys@CISCOSYS> commit;Commit complete.
backup最大的作業就是鎖定檔案頭。這有什麼用呢。?疑問
sys@CISCOSYS> alter system checkpoint;System altered.checkpoint 之後,未backup的資料檔案,都重新整理了,但backup的資料檔案依然沒有變化sys@CISCOSYS> select name,checkpoint_change# from v$datafile;NAME CHECKPOINT_CHANGE#------------------------------ ------------------D:\ORACLE\PRODUCT\10.2.0\ORADA 5465836TA\ORCL\SYSTEM01.DBFD:\ORACLE\PRODUCT\10.2.0\ORADA 5465836TA\ORCL\UNDOTBS01.DBFD:\ORACLE\PRODUCT\10.2.0\ORADA 5465836TA\ORCL\SYSAUX01.DBFD:\ORACLE\PRODUCT\10.2.0\ORADA 5465260TA\ORCL\USERS01.DBFD:\ORACLE\PRODUCT\10.2.0\ORADA 5465260TA\ORCL\STD:\ORACLE\PRODUCT\10.2.0\ORADA 5465836TA\ORCL\ADMIN_TBS.DBFD:\ORACLE\PRODUCT\10.2.0\ORADA 5465836TA\ORCL\TBS_STREAM01.DBFD:\ORACLE\PRODUCT\10.2.0\ORADA 5465836TA\ORCL\TBS.DBFD:\ORACLE\PRODUCT\10.2.0\ORADA 5465836TA\ORCL\UNDO99.DBFD:\ORACLE\PRODUCT\10.2.0\ORADA 5465836TA\ORCL\USERS02.DBF10 rows selected.
即使checkpoint檔案頭也不會變。
最後關閉backup模式,所有檔案頭一致了。
sys@CISCOSYS> alter tablespace USERS end backup;Tablespace altered.end bakcup 之後 所有資料檔案的檔案頭一致了。sys@CISCOSYS> select name,checkpoint_change# from v$datafile;NAME CHECKPOINT_CHANGE#------------------------------ ------------------D:\ORACLE\PRODUCT\10.2.0\ORADA 5465836TA\ORCL\SYSTEM01.DBFD:\ORACLE\PRODUCT\10.2.0\ORADA 5465836TA\ORCL\UNDOTBS01.DBFD:\ORACLE\PRODUCT\10.2.0\ORADA 5465836TA\ORCL\SYSAUX01.DBFD:\ORACLE\PRODUCT\10.2.0\ORADA 5465836TA\ORCL\USERS01.DBFD:\ORACLE\PRODUCT\10.2.0\ORADA 5465836TA\ORCL\STD:\ORACLE\PRODUCT\10.2.0\ORADA 5465836TA\ORCL\ADMIN_TBS.DBFD:\ORACLE\PRODUCT\10.2.0\ORADA 5465836TA\ORCL\TBS_STREAM01.DBFD:\ORACLE\PRODUCT\10.2.0\ORADA 5465836TA\ORCL\TBS.DBFD:\ORACLE\PRODUCT\10.2.0\ORADA 5465836TA\ORCL\UNDO99.DBFD:\ORACLE\PRODUCT\10.2.0\ORADA 5465836TA\ORCL\USERS02.DBF10 rows selected.
期間,對資料檔案進行了熱備,恢複時,也沒發現啥用。照樣需要介質恢複datafile4,5才可以啟動。
sys@CISCOSYS> alter database open;alter database open*ERROR at line 1:ORA-01113: file 5 needs media recoveryORA-01110: data file 5: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ST'
本文出自 “簡單” 部落格,請務必保留此出處http://dba10g.blog.51cto.com/764602/1301618