oracle 關於-資料檔案
資料檔案
1.一個資料檔案僅僅關係一個資料庫,Oracle資料檔案與資料庫之間對應聯絡是一對一聯絡,當然反過資料庫與資料檔案是一對多聯絡.
2.資料檔案能夠積極伸展,當資料儲存必需更多儲存空間時候,即便儲存資料的資料隨儲存資料量增大,資料檔案也能夠積極增長,以中意資料儲存必需.
3.一個或多個資料檔案構成一個邏輯單元,稱之為表空間.Oracle資料檔案與表空間之間對應聯絡也是一對一聯絡,當然反過表空間與資料檔案對應聯絡是一對多的聯絡.
主要分類:
system01.dbf:記錄系統執行資訊,包含所有資料庫字典,PL/SQL程式程式碼及其他系統資訊
undotbs01.dbf:存放回退資訊,即DML操作後的舊資料資訊
sysaux01.dbf:system檔案的輔助檔案,存放支援oracle系統活動的多種工具如logminer
users01.dbf:新建使用者未指定儲存空間是,預設資料存放在該檔案中
example01.dbf:存放示例資料資訊。
表空間
我們知道schema就是使用者中包含物件,物件中存放著表、檢視、包、函式、同義詞等。
物件的邏輯結構存放在表空間中,表空間是由一個或多個資料檔案構成。物件的內容存放在資料檔案中。
那麼表空間自己的結構:
邏輯結構是:先由表空間分配段空間,由段空間分配區,區下面才是記憶體塊。
物理結構就是:由邏輯結構區空間下的記憶體塊構成作業系統塊,在由OS塊構成資料檔案。邏輯結構中的區空間直接決定物理物件中的區空間大小。
通常一個資料庫由多個表空間構成,每個表空間儲存不同特性的資料
一個正常執行的資料庫通常包括下面這些表空間:
--system 存放資料字典資訊,是資料庫必須的表空間,也是建立資料庫時第一個被建立的表空間
--sysaux 存放除了資料字典之外的一些系統管理輔助資訊,是10g新增加的表空間,用於分擔系統表空間的負荷
--undo 存放自動管理的回滾段資訊,提供事務的回滾功能
--temp 存放使用者排序時的臨時資料
--index 存放使用者表上的索引資訊
--其他 存放各種不同的使用者表資料
除了system和sysaux表空間必須在建立資料庫的時候建立外,其他表空間都可以在資料庫生成後由DBA建立並進行管理,通常對系統表空間的管理任務較少。
建立表空間的一些定義
登入的使用者必須具有create tablespace許可權(Dba role、sysdba、sysoper,這寫許可權也都是可以的)
確認建立smallfile 還是 bigfile (一般超過T級別大小的檔案推薦使用bigfile)
確認新建資料檔案所在磁碟的IO是否飽和。
檢視建立表空間定義大小檔案預設值 SQL> desc database_properties Name Null? Type ----------------------------------------- -------- ---------------------------- PROPERTY_NAME NOT NULL VARCHAR2(30) PROPERTY_VALUE VARCHAR2(4000) DESCRIPTION VARCHAR2(4000)
SQL> SQL> select property_name,property_value from database_properties where property_name like '%TBS%';
PROPERTY_NAME ------------------------------ PROPERTY_VALUE -------------------------------------------------------------------------------- DEFAULT_TBS_TYPE SMALLFILE SQL> 修改預設值
SQL> alter database set default bigfile tablespace;
Database altered.
SQL> select property_name,property_value from database_properties where property_name like '%TBS%';
PROPERTY_NAME ------------------------------ PROPERTY_VALUE -------------------------------------------------------------------------------- DEFAULT_TBS_TYPE BIGFILE
SQL> |
建立表空間語句的一些定義
SQL> create smallfile|bigfile tablespace <name> datafile <path> size <> logging|nologging …. 具體的可以檢視官方文件 http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7003.htm#SQLRF01403
其中需要注意的是 datafile(資料檔案路徑與名字) 中路徑要具備oracle寫的許可權
|
表空間的空間管理
從oacle8i開始,空間管理方法有以下兩種:
資料字典管理表空間:(現在10G以後已經不支援資料字典管理了)
--是以前一直被沿用的空間管理方法,從9i開始逐漸被淘汰
--使用資料字典表Uet$和Fet$描述和管理表空間中空閒空間和使用空間
--當空間被分配或者釋放時,相應的資料字典資訊被更新
本地管理表空間:
--直接在各個表空間上管理空閒空間和使用空間
--使用儲存在表空間上的Bitmap標示空閒空間和使用空間的資訊
--Bitmap中的每位描述一個block或者一組block的狀態
--從9i開始成為預設的表空間屬性
檢視錶空間使用哪種方式管理 SQL> select tablespace_name,extent_management from dba_tablespaces;
TABLESPACE_NAME EXTENT_MAN ------------------------------ ---------- SYSTEM LOCAL UNDOTBS1 LOCAL SYSAUX LOCAL TEMP LOCAL USERS LOCAL
SQL>
|
表空間的狀態
Read Write – 讀寫
Read Only— 只讀
Offline— 離線
Online-- 聯機
檢視所有表空間的狀態 SQL> select b.tablespace_name,v.file#,v.status,v.enabled from dba_data_files d,v$datafile v where d.file_id=v.file#;
TABLESPACE_NAME FILE# STATUS ENABLED ------------------------------ ---------- ------- ---------- SYSTEM 1 SYSTEM READ WRITE UNDOTBS1 2 ONLINE READ WRITE SYSAUX 3 ONLINE READ WRITE USERS 4 ONLINE READ WRITE 設定成只讀 SQL> alter database users read only;
對於幾個重要的表空間
|
System 必須online 必須read write |
Sysaux 可以offline 不能 read only |
Undo 不能offline 不能 read only |
改變表空間名稱
在open狀態下將qqq1表空間改名為qqq2 SQL> alter tablespace qqq1 rename to qqq2;
下列表空間是不能被改名的 System 、sysaux 下面的最好不要去改 database_properties檢視中DEFAULT_TEMP_TABLESPACE與DEFAULT_PERMANENT_TABLESPACE定義的表空間 undo_tablespace引數定義的表空間。
|
改變表空間大小
方法:
1、啟動資料檔案大小的自動擴充套件
2、手工改變資料檔案大小
3、為表空間增加資料檔案
方法1:自動擴充套件
檢視錶空間是否自動擴充套件 SQL> select tablespace_name,file_name,autoextensible from dba_data_files;
TABLESPACE_NAME FILE_NAME AUT ------------------------------ --------------------------------------------------------------------------------------------------------- SYSTEM +DATA/fengzi/datafile/system.277.842187103 YES
UNDOTBS1 +DATA/fengzi/datafile/undotbs1.278.842187181 YES
SYSAUX +DATA/fengzi/datafile/sysaux.279.842187235 YES
USERS +DATA/fengzi/datafile/users.281.842187289 NO
SQL> 修改為自動擴充套件 SQL> alter tablespace users autoextend on; alter tablespace users autoextend on * ERROR at line 1: ORA-32773: operation not supported for smallfile tablespace USERS 小檔案是不能進行自動擴充套件的
直接將資料檔案改為自動擴充套件 SQL> alter database datafile '+DATA/fengzi/datafile/users.281.842187289' autoextend on next 5M maxsize 1T; Database altered. SQL> |
方法2:修改資料檔案大小(不推薦使用)
首先要將自動擴充套件關閉 SQL> alter database datafile '+DATA/fengzi/datafile/users.281.842187289' autoextend off; Database altered. SQL> 檢視資料檔案大小 SQL> select file_name,bytes/1024/1024 "size" from dba_data_files; FILE_NAME size -------------------------------------------------------------------------------------------------------------------------------------------------------- +DATA/fengzi/datafile/system.277.842187103 480 +DATA/fengzi/datafile/undotbs1.278.842187181 200 +DATA/fengzi/datafile/sysaux.279.842187235 260 +DATA/fengzi/datafile/users.281.842187289 25
SQL> 檢視檔案號 SQL> select name,file# from v$datafile;
NAME FILE# --------------------------------------------------------- ---------- +DATA/fengzi/datafile/system.277.842187103 1 +DATA/fengzi/datafile/undotbs1.278.842187181 2 +DATA/fengzi/datafile/sysaux.279.842187235 3 +DATA/fengzi/datafile/users.281.842187289 4
修改資料檔案大小
SQL> alter database datafile 4 resize 52M;
Database altered.
SQL>
|
方法3:增加資料檔案
為表空間新增一個資料檔案並開啟自動擴充套件 SQL> alter tablespace users add datafile '+data/fengzi/datafile/users2.dbf' size 10m autoextend on;
|
對於表空間中的資料檔案的重新命名和重定位
前提條件
1、資料庫必須在mount或者open狀態
2、在歸檔模式下
3、要修改的資料檔案可以被offline (open狀態下)
SQL> select tablespace_name,file_name from dba_data_files;
TABLESPACE_NAME FILE_NAME ------------------------------ ------------------------------------------------------------------------------------ SYSTEM +DATA/fengzi/datafile/system.277.842187103
UNDOTBS1 +DATA/fengzi/datafile/undotbs1.278.842187181
SYSAUX +DATA/fengzi/datafile/sysaux.279.842187235
USERS +DATA/fengzi/datafile/users.281.842187289
SQL> 將想要重新命名的檔案離線 SQL> alter tablespace users offline;
Tablespace altered.
SQL> 使用ASMCMD工具重新命名離線檔案 [oracle@dongyang ~]$ echo $ORACLE_SID +ASM [oracle@dongyang ~]$ asmcmd ASMCMD> cd data/fengzi/datafile ASMCMD> mkalias USERS.281.842187289 users2.dbf 使用SQL重新命名指定檔案 SQL> alter database rename file '+DATA/fengzi/datafile/users.281.842187289' to '+DATA/fengzi/datafile/users2.dbf'; Database altered. SQL> 使表空間中資料檔案聯機 SQL> alter tablespace users online; (有時候要求介質恢復,recover tablespace users; 就可以) SQL> select tablespace_name,file_name from dba_data_files;
TABLESPACE_NAME FILE_NAME ------------------------------ ------------------------------------------------------------------------------------ SYSTEM +DATA/fengzi/datafile/system.277.842187103
UNDOTBS1 +DATA/fengzi/datafile/undotbs1.278.842187181
SYSAUX +DATA/fengzi/datafile/sysaux.279.842187235
USERS +DATA/fengzi/datafile/users2.dbf
SQL>
檔案系統: SQL> alter tablespace users offline; SQL> ho cp /u01/app/oracle/oradata/fengzi/users1.dbf /u01/app/oracle/oradata/fengzi/ttt.dbf SQL> alter database rename file '/u01/app/oracle/oradata/fengzi/users1.dbf ' to '/u01/app/oracle/oradata/fengzi/ttt.dbf '; SQL> alter tablespace users online; |
刪除表空間
drop tablespace tablespace_name including contents and datafiles;
including contents:用於刪除表空間同時刪除表空間上的所有段 including contents and datafiles:刪除表空間、資料檔案以及表空間上段的資訊,同時刪除OS中的資料檔案 |
獲取表空間及資料檔案資訊
相關檢視
表空間資訊:
DBA_TABLESPACES
V$TABLESPACE
資料檔案資訊:
DBA_DATA_FILES
V$DATAFILE
臨時資料檔案資訊:
DBA_TEMP_FILES
V$TEMPFILE
臨時表空間組:
DBA_TABLESPACE_GROUPS
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29532781/viewspace-1134344/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 資料檔案回收Oracle
- 2.5.10.2 關於資料庫時區檔案資料庫
- Oracle資料檔案和臨時檔案的管理Oracle
- 基於Docker部署Oracle、MySQL等資料庫的資料檔案持久化DockerOracleMySql資料庫持久化
- oracle資料庫的配置檔案Oracle資料庫
- oracle 線上rename資料檔案Oracle
- 4.3.2.3 關於PDB$SEED資料檔案的屬性
- 修改Oracle資料檔名及資料檔案存放路徑Oracle
- oracle徹底刪除資料檔案Oracle
- oracle uncatalog資料庫備份檔案Oracle資料庫
- 關於Docx動態控制word模板檔案的資料
- oracle dg庫資料檔案空間不足Oracle
- Oracle10g刪除資料檔案Oracle
- 【Oracle】如何修改資料檔案和日誌檔案的路徑Oracle
- 1.4.1. 關於Oracle 資料庫版本號Oracle資料庫
- Oracle案例11——Oracle表空間資料庫檔案收縮Oracle資料庫
- 關於丟失表空間資料檔案的處理方式
- 關於SQLServer的tempdb的資料檔案暴增問題(1)SQLServer
- oracle11g修改資料檔案路徑Oracle
- oracle 普通表空間資料檔案壞塊Oracle
- oracle 修改資料檔案位置(路徑)(移動)Oracle
- 分析Oracle資料庫日誌檔案(三)EPOracle資料庫
- 分析Oracle資料庫日誌檔案(二)DOOracle資料庫
- 分析Oracle資料庫日誌檔案(一)HBOracle資料庫
- oracle 修改資料檔案路徑(四種方式)Oracle
- 關於Oracle資料庫的時間查詢Oracle資料庫
- 3.1.2.1 關於資料庫初始化引數檔案和啟動的關係資料庫
- 12C關於CDB、PDB線上移動資料檔案、線上重新命名資料檔案的操作說明
- Oracle使用RMAN將普通資料檔案轉成ASMOracleASM
- Oracle DG備庫手動管理新增資料檔案Oracle
- 關於檔案的open方法
- 關於oracle資料庫訊號量的問題Oracle資料庫
- Oracle資料庫歸檔模式的開啟和關閉Oracle資料庫模式
- 關於如何根據shp檔案篩選csv某個省份資料集
- ORACLE RAC ASM資料檔案遷移OMF檔案報錯ORA-01276解決OracleASM
- oracle dg庫資料檔案建立失敗ORA-01111Oracle
- linux下恢復誤刪除oracle的資料檔案LinuxOracle
- 【LOG】Oracle資料庫清理日誌、跟蹤檔案利器Oracle資料庫
- 關於Java使用MinIO檔案伺服器操作檔案Java伺服器