oracle增加和修改資料檔案
----------增加資料檔案---------
altertablespacetablespace_nameadddatafile'+ASMDISK1/mydbfile.dbf'size10240M;
-------手工改變資料檔案尺寸------
alterdatabasedatafile'+ASMDISK1/mydbfile.dbf'resize2048M;
-------容許資料檔案自動擴充------
alterdatabasedatafile'+ASMDISK1/mydbfile.dbf'autoextendonnext10Mmaxsize30G;
----也可以這樣資料檔案自動擴充----
altertablespacetablespace_nameadddatafile'+ASMDISK1/mydbfile.dbf'size5Mautoextendonnext5Mmaxsize50G;
-------為資料表空間增加復原段-------
createrollbacksegmentrollback_nametablespacetablespace_namestorage(initial3knext3koptimal3kminextents3maxextents3)
alterrollbacksegmentrollback_nameonline;
注這裡的tablespace_name根據實際情況做相應修改由於我的資料庫使用ASM管理所以'+ASMDISK1/mydbfile.dbf'也應根據實際情況而定。
擴容資料檔案問題
擴容資料表空間
1.所添加的裸裝置必須是在兩台伺服器上均可見使用者屬主是Oraclechownoracle:name
2.最好通過SQL指令碼添加這樣一可以仔細檢查檔案名稱是否有錯二可以通過後台執行。
--查詢空間大小--
selecttablespace_name,sum(bytes/1024/1024)fromdba_free_spacegroupbytablespace_name;
3.解決陣列庫誤建資料檔案的方法。
如果檢查中確認某個檔案添加有問題切忌直接在作業系統上通過rm命令直接刪除那樣會對資料庫帶來毀滅性的破壞如要刪除誤建的資料檔案可通過如下步驟來操作
①查詢該檔案的file_id找到file_name等於問題檔案的file_id並記下
selectfile_id,file_namefromdba_data_files;
②確認問題檔案所自主資料庫對象
selectdistinctsegment_name,segment_typefromdba_extents;
(1)對於segment_type=TABLE的需要將每張表逐個做exp匯出然後drop該表
(2)對於segment_type=LOBSEGMENT的還需要確認大欄位所在的表方法如下
selecttable_namefromdba_lobswheresegment_name='(2)查出的segment_name';然後重複步驟(1)刪除對應的Table。
③再次執行步驟①中的查詢確認該檔案中已沒有任何對象存在
4.關閉資料庫並以mount方式重啟在庫中刪除該問題
SQL>shutdownimmediate
SQL>startupmount
SQL>alterdatabasedatafile'問題檔案名稱'offlinedrop;
5.開啟資料庫alterdatabaseopen;
6.通過imp重新匯入所有刪除的表。
本文出自 “welove” 部落格,謝絕轉載!