一级女人毛片人一女人-一级女性大黄生活片免费-一级女性全黄久久生活片-一级女性全黄生活片免费-国产美女在线一区二区三区-国产美女在线观看

始創于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
您的位置: 網站首頁 > 幫助中心>文章內容

Oracle中表空間與數據文件編號的連續性

發布時間:  2012/8/20 17:27:57

Oracle中表空間編號與數據文件編號都是連續的,不會斷號。如果TS$中表空間出現了斷號,

Oracle在啟動時會進行數據字典和控制文件的校驗,發現不一致時,數據庫不能正常啟動。
-
 

表空間被刪除時ts$表中并不會刪除相關表空間的記錄。只是把表空間的狀態置為3,即INVALID狀態。
如果再次創建同名的表空間,則Oracle會把TS$表中同名表空間的狀態由3置為1,ONLINE狀態。以此
來保證表空間號的連續。

 

Oracle 10g中sql.bsq記錄了ts$的online$列與file$的status$列的含義:
ts$
online$  /* 1 = ONLINE, 2 = OFFLINE, 3 = INVALID */

file$
status$  /* 1 = INVALID, 2 = AVAILABLE */

Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
Connected as SYS

UNDOTBS2,LIANG,Liang這三個表空間被刪除,但ts$中并沒有刪除相關記錄。只是把ONLINE$狀態置為3(INVALID)

SQL> SELECT ts#,name ,online$  FROM  ts$;
TS# NAME        ONLINE$
--- -----------       -------
  0 SYSTEM               1
  1 SYSAUX               1
  2 UNDOTBS1          1
  3 TEMP                   1
  4 USERS                 1
  5 UNDOTBS2          3
  6 EXAMPLE             1
  7 TBS_REPORT       1
  8 LIANG                  3
  9 Liang                   3
10 rows selected

-- 數據文件編號一樣不會被刪除,將刪除的數據文件編號置為1(INVALID狀態)。

SQL> SELECT  file#,status$ FROM  file$;
FILE# STATUS$
----- ------
    1      2
    2      2
    3      2
    4      2
    5      2
    6      2
    7      1
7 rows selected

SQL> SELECT d.file_id,d.tablespace_name, d.file_name  FROM dba_data_files d
  2  order by d.file_id;

FILE_ID TABLESPACE_NAME  FILE_NAME
------- ---------------- ----------------------------------------------------
      1 SYSTEM           D:\Oracle\LIANGWEI\ORADATA\LIANGWEI\SYSTEM01.DBF
      2 SYSAUX           D:\Oracle\LIANGWEI\ORADATA\LIANGWEI\SYSAUX01.DBF
      3 UNDOTBS1         D:\Oracle\LIANGWEI\ORADATA\LIANGWEI\UNDOTBS01.DBF
      4 USERS            D:\Oracle\LIANGWEI\ORADATA\LIANGWEI\USERS01.DBF
      5 EXAMPLE          D:\Oracle\LIANGWEI\ORADATA\LIANGWEI\EXAMPLE01.DBF
      6 TBS_REPORT       D:\Oracle\LIANGWEI\ORADATA\LIANGWEI\TBS_REPORT1.DBF
6 rows selected

SQL> CREATE  tablespace test DATAFILE 'D:\Oracle\TEST02.DBF' SIZE 10M;
Tablespace created

重新創建數據文件時,如果沒有狀態為1(INVALID)的數據文件,Oracle會新分配一個數據文件編號。
如果有狀態為1(INVALID)的數據文件編號,不管新創建的數據文件是否與被刪除的數據文件同名。
Oracle都會重新利用被設置為狀態為1(INVALID)的數據文件編號。以保證數據文件編號的連續性。

新創建數據文件后,發現7號數據文件編號被設置為2(AVAILABLE)

SQL> SELECT  file#,status$ FROM  file$;
FILE# STATUS$
----- -------
    1       2
    2       2
    3       2
    4       2
    5       2
    6       2
    7       2

7 rows selected

SQL> SELECT d.file_id,d.tablespace_name, d.file_name  FROM dba_data_files d order by d.file_id;

FILE_ID TABLESPACE_NAME  FILE_NAME
------- ------------------  ----------------------------------------------------
      1 SYSTEM           D:\Oracle\LIANGWEI\ORADATA\LIANGWEI\SYSTEM01.DBF
      2 SYSAUX           D:\Oracle\LIANGWEI\ORADATA\LIANGWEI\SYSAUX01.DBF
      3 UNDOTBS1      D:\Oracle\LIANGWEI\ORADATA\LIANGWEI\UNDOTBS01.DBF
      4 USERS             D:\Oracle\LIANGWEI\ORADATA\LIANGWEI\USERS01.DBF
      5 EXAMPLE         D:\Oracle\LIANGWEI\ORADATA\LIANGWEI\EXAMPLE01.DBF
      6 TBS_REPORT   D:\Oracle\LIANGWEI\ORADATA\LIANGWEI\TBS_REPORT1.DBF
      7 TEST                D:\Oracle\TEST02.DBF
7 rows selected

新建表空間時,如果ts$中沒有同名,且狀態為3的表空間。Oracle會重新分配一個連續的表空間編號。


SQL> SELECT ts#,name ,online$  FROM  ts$;

TS# NAME      ONLINE$
--- ----------    -------
  0 SYSTEM           1
  1 SYSAUX           1
  2 UNDOTBS1      1
  3 TEMP               1
  4 USERS             1
  5 UNDOTBS2      3
  6 EXAMPLE         1
  7 TBS_REPORT   1
  8 LIANG              3
  9 Liang               3
 10 TEST               1
11 rows selected

如果創建同名的表空間,Oracle會利用原有狀態為3的表空間,同時將狀態置為1.
SQL>  CREATE  tablespace LIANG DATAFILE 'D:\Oracle\TEST01.DBF' SIZE 10M;
Tablespace created

創建同名表空間LIANG后,8號表空間狀態由3變為1.
SQL> SELECT ts#,name ,online$  FROM  ts$;
TS# NAME          ONLINE$
--- ---------- ----------
  0 SYSTEM              1
  1 SYSAUX              1
  2 UNDOTBS1         1
  3 TEMP                  1
  4 USERS                1
  5 UNDOTBS2         3
  6 EXAMPLE            1
  7 TBS_REPORT       1
  8 LIANG                  1
  9 Liang                   3
 10 TEST                   1
11 rows selected

新創建的表空間不能與數據庫中已有的表空間同名。

SQL> CREATE  tablespace TEST DATAFILE 'D:\Oracle\TEST02.DBF' SIZE 10M;
CREATE  tablespace TEST DATAFILE 'D:\Oracle\TEST02.DBF' SIZE 10M
*
第 1 行出現錯誤:
ORA-01543: 表空間 'TEST' 已存在

新創建的數據文件也不能與數據庫中已有的數據文件同名。
SQL> CREATE  tablespace TEST2 DATAFILE 'D:\Oracle\TEST02.DBF' SIZE 10M;
CREATE  tablespace TEST2 DATAFILE 'D:\Oracle\TEST02.DBF' SIZE 10M
*
第 1 行出現錯誤:
ORA-01537: 無法添加文件 'D:\Oracle\TEST02.DBF' - 該文件已是數據庫的一部分


本文出自:億恩科技【www.laynepeng.cn】

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      1
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線