當前資料庫裡的資料檔案都是8g,需要擴到32g,資料檔案是建在裸裝置上,lv的容量就只有8g,需要重建lv,再新增資料檔案。
1.查詢哪些資料檔案沒有資料,刪除這些資料檔案:
set pagesize 999
spool liu.sql
select 'alter tablespace '||tablespace_name||' drop datafile '|| file_name||';'
from dba_data_files where file_id not in (select distinct file_id from dba_extents) order by 1;
spool off;
生成的liu.sql 的內容如下: 給資料檔案加單綽號
alter tablespace tbskr_sl drop datafile /dev/rlv_data291;
alter tablespace tbskr_sl drop datafile /dev/rlv_data293;
alter tablespace tbskr_sl drop datafile /dev/rlv_data295;
alter tablespace tbskr_sl drop datafile /dev/rlv_data296;
2.執行指令碼刪除資料檔案
執行過程中出現了這樣兩個報錯,那是因為表空間第乙個資料檔案不能刪除,如果表空間只有乙個資料檔案,這個僅有的資料檔案也不能刪除
alter tablespace tbskr_sl drop datafile '/dev/rlv_data291'
*error at line 1:
ora-03263: cannot drop the first file of tablespace tbskr_sl
alter tablespace tbs_masa drop datafile '/dev/rlv_data480'
*error at line 1:
ora-03261: the tablespace tbs_masa has only one file
3.生成刪除lv的指令碼
cat liu.sql|awk -f"'" ''|awk -f"/dev/r" '' > mklv.sh
改許可權,加魔法位元組,執行指令碼,改rlv的許可權和屬主
7.生成增加資料檔案的指令碼,執行指令碼新增資料檔案,執行指令碼
seq 72 90 > num
cat num| awk ''
建立表空間 使用者 擴容 移動資料檔案
1 建立新的表空間 2 建立使用者 3 通過修改檔案大小與增加檔案的方式擴容表空間 4 人為移動資料檔案,檢驗建立表的效果 1 建立新的表空間 sql create tablespace test data 2 logging 3 datafile opt oracle oradata bisal ...
mysql 的資料檔案
在mysql 中每乙個 資料庫都會在定義好 或者預設 的資料目錄下存在乙個以資料庫名字命名的資料夾,用來存放該資料庫中各種表資料檔案。1 frm 檔案 與表相關的元資料 meta 資訊都存放在 frm 檔案中,包括表結構的定義資訊等。不論是什麼儲存引擎,每乙個表都會有乙個以表名命名的 frm 檔案。...
mysql 的資料檔案
在mysql 中每乙個資料庫都會在定義好 或者預設 的資料目錄下存在乙個以資料庫名字命名的資料夾,用來存放該資料庫中各種表資料檔案。1 frm 檔案 與表相關的元資料 meta 資訊都存放在 frm 檔案中,包括表結構的定義資訊等。不論是什麼儲存引擎,每乙個表都會有乙個以表名命名的 frm 檔案。2...