续: [转]Oracle 表空间与数据文件
續(xù) http://nvd11.blog.163.com/blog/static/20001831220127710369356/
五、數(shù)據(jù)文件
??? 數(shù)據(jù)文件是數(shù)據(jù)庫中最重要的一個(gè)要求,是所有的數(shù)據(jù)庫內(nèi)容存放的地方
??? datafile是按照表空間為組織單位,表空間的構(gòu)成是按照段區(qū)塊為層次---數(shù)據(jù)文件的邏輯結(jié)構(gòu)
??? datafile就是表空間的物理文件。
??? datafile中的內(nèi)容是通過dbwr把data buffer cache中的dirty buffer data 寫入的
??? dbwr觸發(fā):
??? ??? ckpt觸發(fā),dirty buffer 到一定量的時(shí)候,data buffer caceh 的內(nèi)存空間快用完了
?????? 查詢空閑內(nèi)存空間超時(shí),表空間offline/read only,表的drop, truncate 開始執(zhí)備份表空間的時(shí)候 */
??????
??? --查看數(shù)據(jù)文件
??? SQL> select file# ,name,status,enabled,bytes/1024/1024 M from v$datafile;
?
?????? ?FILE# NAME?????????????????????????????????????????????? STATUS? ENABLED???????????? M
??? ---------- -------------------------------------------------- ------- ---------- ----------
?????????? ?1 /u01/app/oracle/oradata/orcl/system01.dbf????????? SYSTEM? READ WRITE??????? 490
?????????? ?2 /u01/app/oracle/oradata/orcl/undotbs01.dbf???????? ONLINE? READ WRITE???????? 30
?????????? ?3 /u01/app/oracle/oradata/orcl/sysaux01.dbf????????? ONLINE? READ WRITE??????? 250
?????????? ?4 /u01/app/oracle/oradata/orcl/users01.dbf?????????? ONLINE? READ WRITE????????? 5
?????????? ?5 /u01/app/oracle/oradata/orcl/example01.dbf???????? ONLINE? READ WRITE??????? 100
?????????? ?6 /u01/app/oracle/oradata/orcl/tbs1_1.dbf??????????? ONLINE? READ WRITE??????? 100
?????????? ?7 /u01/app/oracle/oradata/orcl/tbs1_2.dbf??????????? ONLINE? READ WRITE???????? 60
?????????? ?
??? SQL> select tablespace_name,file_name,user_bytes/1024/1024 M from dba_data_files;
?
??? TABLESPACE_NAME??????????????? FILE_NAME??????????????????????????????????????????????????????? M
??? ------------------------------ ------------------------------------------------------- ----------
??? USERS01??????????????????????? /u01/app/oracle/oradata/orcl/users01.dbf??????????????????? 4.9375
??? SYSAUX???????????????????????? /u01/app/oracle/oradata/orcl/sysaux01.dbf???????????????? 249.9375
??? UNDOTBS1?????????????????????? /u01/app/oracle/oradata/orcl/undotbs01.dbf???????????????? 29.9375
??? SYSTEM???????????????????????? /u01/app/oracle/oradata/orcl/system01.dbf???????????????? 489.9375
??? EXAMPLE??????? ????????????????/u01/app/oracle/oradata/orcl/example01.dbf???????????????? 99.9375
??? TBS1?????????????????????????? /u01/app/oracle/oradata/orcl/tbs1_1.dbf??????????????????? 99.9375
??? TBS1?????????????????????????? /u01/app/oracle/oradata/orcl/tbs1_2.dbf?? ?????????????????59.9375
?
??? --數(shù)據(jù)文件的增加與刪除
??? --為TBS1增加一個(gè)數(shù)據(jù)文件
??? SQL> alter tablespace tbs1 add datafile '/u01/app/oracle/oradata/orcl/tbs1_3.dbf' size 10m autoextend on;
??? --還有一種創(chuàng)建表空間時(shí)不指定大小,而是重用一個(gè)存在的dbf要用resue參數(shù),reuse 是把原有的結(jié)構(gòu)拿來用,里面的數(shù)據(jù)是用不了的,因?yàn)樵缍紱]有了。
???
??? --刪表空間中的數(shù)據(jù)文件,g以后的版本才用以下功能,在之前版本的就只能把表空間給干掉。
??? SQL> alter tablespace tbs1 drop datafile '/u01/app/oracle/oradata/orcl/tbs1_3.dbf';
???
??? --有數(shù)據(jù)的數(shù)據(jù)文件不能刪。第一個(gè)不能刪,如果要?jiǎng)h就把表空間干掉,數(shù)據(jù)文件中有數(shù)據(jù)寫入的文件也不能刪除,如下
??? SQL> alter tablespace tbs1 drop datafile 7;? --7是v$datafile中的file#.
??? alter tablespace tbs1 drop datafile 7
??? *
??? ERROR at line 1:
??? ORA-03262: the file is non-empty
???
??? /*
??? 數(shù)據(jù)文件的日志記錄
?????? 只有temp表空間是nologing? 別的都是logging的
??????? 日志記錄的幾種模式???
?????? ??? nologin????????? 并不是不記錄日志而是記錄的很少
?????????? logging????????? 正常記錄日志信息
?????? ??? force logging??? 記錄的日志比logging還詳細(xì) 記錄信息非常多? 用于DG data guard 容災(zāi)的情況 */
??? SQL> select tablespace_name ,logging,force_logging from dba_tablespaces;
?
??? TABLESPACE_NAME??????????????? LOGGING?? FOR
??? ------------------------------ --------- ---
??? SYSTEM???????????????????????? LOGGING? ?NO
??? UNDOTBS1?????????????????????? LOGGING?? NO
??? SYSAUX???????????????????????? LOGGING?? NO
??? TEMP?????????????????????????? NOLOGGING NO
??? USERS01??????????????????????? LOGGING?? NO
??? EXAMPLE??????????????????????? NOLOGGING NO
??? TBS1????????????????????? ?????LOGGING?? NO
???
??? --修改表空間中日志文件記錄的方式
?????? SQL> alter tablespace tablespace_name nologging | logging | force logging;
???
??? SQL> alter tablespace example logging;
?
??? Tablespace altered.
?
??? SQL> alter tablespace tbs1 force logging;
?
??? Tablespace altered.
?
??? SQL> select tablespace_name ,logging,force_logging from dba_tablespaces;
?
??? TABLESPACE_NAME??????????????? LOGGING?? FOR
??? ------------------------------ --------- ---
??? SYSTEM???????????????????????? LOGGING?? NO
??? UNDOTBS1?????????????????????? LOGGING?? NO
??? SYSAUX???????????????????????? LOGGING?? NO
??? TEMP?????????????????????????? NOLOGGING NO
??? USERS01??????????????????????? LOGGING?? NO
??? EXAMPLE??????????????????????? LOGGING?? NO
??? TBS1?????????????????????????? LOGGING?? YES
???
??? /*
總結(jié)
以上是生活随笔為你收集整理的续: [转]Oracle 表空间与数据文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转]Oracle 表空间与数据文件
- 下一篇: Oracle 入面既一d函数