使用oracle procedure儲存過程自動擴充套件表空間空間tablespace_自動化運維
引子:
近期在某運營商客戶運維資料庫時,多次需要擴充套件可用空間不足的表空間,而我在具體操作時,需要消耗很多無謂時間,不停的重複同樣的動作,極大消減了工作效率;試想如果透過自動化指令碼實現,可以明顯提升工作熱情,當然我這個指令碼還只是雛形,請大家多指正與批評,需要不停的修正,方可滿足生產環境的複雜因素。
結論:
1,還要考慮生產環境擴充套件表空間所用檔案系統不同路徑的複雜問題2,還要考慮併發控制此自動化運維指令碼的複雜問題
3,還要考慮其它一些問題,比如要過濾不需要擴充套件的表空間,比如:針對RAC資料庫,UNDO表空間以及SYSTEM和USER以及SYSAUX表空間
4,透過dbms_job或dbms_scheduler定期排程其自動化指令碼,即可定期自動化擴充套件空間不足的表空間
具體實現:
1,儲存過程程式碼
create or replace procedure proc_autoextend_tbs
as
log_file1 utl_file.file_type;
cursor cur_tbs is
SELECT
dfs.tablespace_name,
round(Dfs.Free_Space/Ddf.Total_Space,2)*100
from
(
SELECT
tablespace_name,
SUM(bytes/1024/1024/1024) total_space
FROM
dba_data_files
GROUP BY
tablespace_name
)
ddf,
(
SELECT
tablespace_name,
SUM(bytes/1024/1024/1024) free_space
FROM
dba_free_space
GROUP BY
tablespace_name
)
dfs
WHERE
dfs.tablespace_name=ddf.tablespace_name;
v_tbs v$datafile.name%type;
v_ratio number;
v_str varchar2(10);
begin
open cur_tbs;
loop
fetch cur_tbs into v_tbs,v_ratio;
exit when cur_tbs%notfound;
if v_ratio<=20 then
v_str:=dbms_random.string('a',4);
execute immediate 'alter tablespace '||v_tbs||' add datafile '||''''||'/oracle/oradata/guowang/'||v_str||'.dbf'||''''||' size 10m autoextend off';
dbms_output.put_line(v_tbs||' '||v_ratio||' free ratio is low,please add space');
log_file1:=utl_file.fopen('DIR_TBS','test_log.txt','a');
utl_file.new_line(log_file1,1);
utl_file.put(log_file1,'tablespace '||v_tbs||' already extend space');
utl_file.fclose(log_file1);
end if;
end loop;
close cur_tbs;
end;
/
2,執行儲存過程
SQL> exec proc_autoextend_tbs;
SYSAUX 15 free ratio is low,please add space
USERS 16 free ratio is low,please add space
SYSTEM 1 free ratio is low,please add space
PL/SQL procedure successfully completed.
3,檢視作業系統日誌
[oracle@seconary tbs_dir]$ more test_log.txt
tablespace SYSAUX already extend space
tablespace USERS already extend space
tablespace SYSTEM already extend space
專案經驗:
聯絡方式:
個人簡介
8年oracle從業經驗,具備豐富的oracle技能,目前在國內北京某專業oracle服務公司從事高階技術顧問。
服務過的客戶:
中國電信
中國移動
中國聯通
中國電通
國家電網
四川達州商業銀行
湖南老百姓大藥房
山西省公安廳
中國郵政
北京302醫院
河北廊坊新奧集團公司
專案經驗:
中國電信3G專案AAA系統資料庫部署及最佳化
中國聯通4G資料庫效能分析與最佳化
中國聯通4G資料庫效能分析與最佳化
中國聯通CRM資料庫效能最佳化
中國移動10086電商平臺資料庫部署及最佳化
湖南老百姓大藥房ERR資料庫sql最佳化專案
四川達州商業銀行TCBS核心業務系統資料庫模型設計和RAC部署及最佳化
四川達州商業銀行TCBS核心業務系統後端批處理儲存過程功能模組編寫及最佳化
北京高鐵訊號監控系統RAC資料庫部署及最佳化
河南宇通客車資料庫效能最佳化
中國電信電商平臺核心採購模組表模型設計及最佳化
中國郵政儲蓄系統資料庫效能最佳化及sql最佳化
北京302醫院資料庫遷移實施
河北廊坊新奧data guard部署及最佳化
山西公安廳身份證審計資料庫系統故障評估
國家電網上海災備專案4 node rac+adg
貴州移動crm及客服資料庫效能最佳化專案
貴州移動crm及客服務資料庫sql稽核專案
深圳穆迪軟體有限公司資料庫效能最佳化專案
貴州移動crm及客服資料庫效能最佳化專案
貴州移動crm及客服務資料庫sql稽核專案
深圳穆迪軟體有限公司資料庫效能最佳化專案
聯絡方式:
手機:18201115468
qq : 305076427
qq微博: wisdomone1
新浪微博:wisdomone9
qq群:275813900
itpub部落格名稱:wisdomone1 http://blog.itpub.net/9240380/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-1786975/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 查詢表空間是否具備自動擴充套件空間套件
- 表空間自動擴充套件 AUTOALLOCATE 的擴充套件規律套件
- 增加自動擴充套件臨時表空間及改變預設表空間套件
- 獲取表空間是否可自動擴充套件的SQL套件SQL
- 測試oracle表空間自動擴充套件特性與分配固定size的關係(儲存屬性)Oracle套件
- Oracle 自動化運維-Python表空間郵件預警Oracle運維Python
- [DB2]表空間之DMS、自動儲存的DMS表空間DB2
- 擴充套件表空間套件
- 【實驗】修改資料庫檔案為自動擴充套件以達到表空間自動擴充套件的目的資料庫套件
- 華納雲:如何配置oracle表空間自動擴容?Oracle
- oracle UNDO表空間一個bug——undo表空間快速擴充套件Oracle套件
- Linux 自動增加oracle 表空間LinuxOracle
- 大檔案表空間受作業系統限制無法自動擴充套件作業系統套件
- Oracle9i自動分段空間管理改善分段儲存Oracle
- linux自動增加表空間Linux
- 表空間擴充套件過程 停電導致異常中斷, 無法啟動套件
- Oracle 10g 物理DataGuard擴充套件表空間Oracle 10g套件
- Oracle 自動段空間管理(ASSM)OracleSSM
- ubuntu 擴充套件磁碟空間Ubuntu套件
- ORA-01659錯誤,主要是表空間不夠,設定自動擴充套件套件
- DB2 檢視錶空間是否自動儲存DB2
- 自動undo表空間模式下切換新的undo表空間模式
- Oracle資料檔案自動擴充套件會充分利用最後剩餘空間Oracle套件
- 利用可恢復空間分配技術自動分配表空間
- 有限螢幕的無限空間 -從空間角度談移動介面擴充套件套件
- 使用命令擴充套件vmdk磁碟空間套件
- mysql空間擴充套件 VS PostGISMySql套件
- 擴充套件邏輯卷空間套件
- PostgreSQL空間切割(st_split)功能擴充套件-空間物件網格化SQL套件物件
- Oracle表移動表空間Oracle
- oracle 表移動表空間Oracle
- UNDO表空間自動調優原則
- oracle 新增儲存自動擴充套件資料檔案流程(auto)Oracle套件
- oracle 修改表空間儲存路徑Oracle
- Brtools擴oracle表空間Oracle
- Oracle表空間擴容Oracle
- 表空間無法擴充套件問題處理套件
- oracle 表空間、段、資料擴充和資料塊——來自網路Oracle