posts - 495,comments - 227,trackbacks - 0

          一.DataFile脫機(jī)或聯(lián)機(jī)兩種方法:

              ① ALTER DATABASE 語句修改單獨(dú)的DataFile

              ② ALTER TABLESPACE 語句修改所有的DataFile

           

              1、在ARCHIVRLOG模式下的更改DataFile狀態(tài)

              ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' ONLINE;

          ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' OFFLINE;

          或者用文件號來表示 :

          SQL>select file#,name,checkpoint_change# from v$datafile; 

          FILE#

          NAME

          CHECKPOINT_CHANGE#

          1

          D:\ORACLE\ORADATA\DBA\SYSTEM01.DBF

          1194854

          2

          D:\ORACLE\ORADATA\DBA\UNDOTBS01.DBF

          1194854

          3

          D:\ORACLE\ORADATA\DBA\SYSAUX01.DBF

          1194854

          4

          D:\ORACLE\ORADATA\DBA\USERS01.DBF

          1194854

          5

          D:\ORACLE\ORADATA\DBA\TEST01.DBF

          1203262

              ALTER DATABASE DATAFILE ONLINE;

          ALTER DATABASE DATAFILE OFFLINE;

              注:只有在ARCHIVELOG模式下才可使用ALTER DATABASE來更改DataFile

           

              2、在NOARCHIVELOG模式下使DataFile脫機(jī)

           

              由于在NOARCHIVELOG模式下,數(shù)據(jù)文件脫機(jī)后會造成數(shù)據(jù)的遺失,所以只能使用ALTER DATABASE語句下帶有DATAFILEOFFLINE DROP子句的選項(xiàng)將該DataFile直接取消,例如該DataFile只包含臨時(shí)段數(shù)據(jù),并沒有備份時(shí)

           

              ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/users3.dbf' OFFLINE DROP;

           

              3、修改TableSpace中所有DataFileTempFile的可用性

           

              ALTER TABLESPACE ... DATAFILE {ONLINE|OFFLINE}

              ALTER TABLESPACE ... TEMPFILE {ONLINE|OFFLINE}

           

          注:修改某TableSpace中的所有數(shù)據(jù)文件,但是TableSpace本身的狀態(tài)不改變。

          我們不能使用'alter database datafile ... offline' 在歸檔模式下,但是 'alter tablespace ... offline' 可以。

          我們不是使用'alter tablespace ... offline'在數(shù)據(jù)庫的read-only模式下,但是'alter database datafile ... offline' 可以。

              總結(jié):

              ① ALTER TABLESPACE可以在數(shù)據(jù)庫裝載狀態(tài)時(shí)發(fā)布,無需打開

              ② 涉及到系統(tǒng)表空間、撤銷表空間、默認(rèn)臨時(shí)表空間時(shí),必須是未打開的數(shù)據(jù)庫

              ③ ALTER DATABASE DATAFILE 語句中必須填入文件全名

          二. 表空間 與 數(shù)據(jù)文件 脫機(jī)的區(qū)別

          1. ALTER TABLESPACE ... OFFLINE

          Does a checkpoint on the datafiles 

          Takes the datafiles offline

          表空間Offline時(shí),數(shù)據(jù)文件的SCN會被凍結(jié),而且表空間的數(shù)據(jù)文件offline/online時(shí)又會發(fā)生文件檢查點(diǎn),使單個(gè)數(shù)據(jù)文件SCN和數(shù)據(jù)庫其他問題不一致。
          表空間online時(shí)Oracle會取得當(dāng)前SCN,解凍offline文件SCN,和當(dāng)前SCN同步。

          tablespace offline有幾種選項(xiàng)可供選擇normal, temporary,immediate, for recovery,而在datafile中則沒有這些選項(xiàng)

          SQL>select dbms_flashback.get_system_change_number from dual;   

          GET_SYSTEM_CHANGE_NUMBER

          ------------------------

                           1203246

          SQL>alter tablespace test offline;   

          Tablespace altered.

          SQL>select file#,name,checkpoint_change# from v$datafile; 

          FILE#

          NAME

          CHECKPOINT_CHANGE#

          1

          D:\ORACLE\ORADATA\DBA\SYSTEM01.DBF

          1194854

          2

          D:\ORACLE\ORADATA\DBA\UNDOTBS01.DBF

          1194854

          3

          D:\ORACLE\ORADATA\DBA\SYSAUX01.DBF

          1194854

          4

          D:\ORACLE\ORADATA\DBA\USERS01.DBF

          1194854

          5

          D:\ORACLE\ORADATA\DBA\TEST01.DBF

          1203262

          SQL>select dbms_flashback.get_system_change_number from dual; 

          GET_SYSTEM_CHANGE_NUMBER

          ------------------------

                           1203328

          SQL>alter tablespace test online;   

          Tablespace altered.

          SQL>select file#,name,checkpoint_change# from v$datafile;   

          FILE#

          NAME

          CHECKPOINT_CHANGE#

          1

          D:\ORACLE\ORADATA\DBA\SYSTEM01.DBF

          1,194,854

          2

          D:\ORACLE\ORADATA\DBA\UNDOTBS01.DBF

          1,194,854

          3

          D:\ORACLE\ORADATA\DBA\SYSAUX01.DBF

          1,194,854

          4

          D:\ORACLE\ORADATA\DBA\USERS01.DBF

          1,194,854

          5

          D:\ORACLE\ORADATA\DBA\TEST01.DBF

          1,203,343

          SQL>select dbms_flashback.get_system_change_number from dual;   

          GET_SYSTEM_CHANGE_NUMBER

          ------------------------

                           1203440

          2.  ALTER DATABASE DATAFILE ... OFFLINE

          單純的offline datafile,將不會觸發(fā)文件檢查點(diǎn),只有針對offline tablespace的時(shí)候才會觸發(fā)文件檢查點(diǎn),這也是為什么online datafile需要media recoveryonline tablespace不需要。

          注:只有在ARCHIVELOG模式下才可使用ALTER DATABASE來更改DataFile

          SQL>select file#,name,checkpoint_change# from v$datafile;   

          FILE#

          NAME

          CHECKPOINT_CHANGE#

          1

          D:\ORACLE\ORADATA\DBA\SYSTEM01.DBF

          1,194,854

          2

          D:\ORACLE\ORADATA\DBA\UNDOTBS01.DBF

          1,194,854

          3

          D:\ORACLE\ORADATA\DBA\SYSAUX01.DBF

          1,194,854

          4

          D:\ORACLE\ORADATA\DBA\USERS01.DBF

          1,194,854

          5

          D:\ORACLE\ORADATA\DBA\TEST01.DBF

          1,203,343

          SQL>select dbms_flashback.get_system_change_number from dual;

          GET_SYSTEM_CHANGE_NUMBER

          ------------------------

                           1219831

          SQL>alter database datafile 5 offline;  

          Database altered.

          SQL>select file#,name,checkpoint_change# from v$datafile;

          FILE#

          NAME

          CHECKPOINT_CHANGE#

          1

          D:\ORACLE\ORADATA\DBA\SYSTEM01.DBF

          1,194,854

          2

          D:\ORACLE\ORADATA\DBA\UNDOTBS01.DBF

          1,194,854

          3

          D:\ORACLE\ORADATA\DBA\SYSAUX01.DBF

          1,194,854

          4

          D:\ORACLE\ORADATA\DBA\USERS01.DBF

          1,194,854

          5

          D:\ORACLE\ORADATA\DBA\TEST01.DBF

          1,203,343

          SQL>select dbms_flashback.get_system_change_number from dual;

          GET_SYSTEM_CHANGE_NUMBER

          ------------------------

                           1219882

          SQL>alter database datafile 5 online;   

          Error at line 1

          ORA-01113: 文件 5 需要介質(zhì)恢復(fù)

          ORA-01110: 數(shù)據(jù)文件 5: 'D:\ORACLE\ORADATA\DBA\TEST01.DBF'

          SQL>recover datafile 5;   

          完成介質(zhì)恢復(fù)  

          SQL>alter database datafile 5 online;   

          Database altered.

          SQL>select file#,name,checkpoint_change# from v$datafile;   

          FILE#

          NAME

          CHECKPOINT_CHANGE#

          1

          D:\ORACLE\ORADATA\DBA\SYSTEM01.DBF

          1,194,854

          2

          D:\ORACLE\ORADATA\DBA\UNDOTBS01.DBF

          1,194,854

          3

          D:\ORACLE\ORADATA\DBA\SYSAUX01.DBF

          1,194,854

          4

          D:\ORACLE\ORADATA\DBA\USERS01.DBF

          1,194,854

          5

          D:\ORACLE\ORADATA\DBA\TEST01.DBF

          1,219,929

          SQL>select dbms_flashback.get_system_change_number from dual;
          GET_SYSTEM_CHANGE_NUMBER

          ------------------------

                           1220043


          posted on 2011-04-07 15:35 SIMONE 閱讀(836) 評論(0)  編輯  收藏 所屬分類: oracle
          主站蜘蛛池模板: 商都县| 乐平市| 固阳县| 岳普湖县| 金塔县| 昌平区| 惠州市| 游戏| 通州市| 日照市| 隆昌县| 渭南市| 太白县| 体育| 于田县| 庆城县| 唐河县| 蓝山县| 万载县| 苏尼特左旗| 界首市| 四子王旗| 冷水江市| 建湖县| 梁河县| 曲阜市| 石台县| 桃园市| 莱阳市| 襄垣县| 汕头市| 安庆市| 华池县| 绥芬河市| 威信县| 延吉市| 开平市| 深圳市| 安岳县| 华亭县| 天气|