監控或統計多套資料庫的儲存容量與備份
為了減少監控或同級多套資料庫儲存容量或者備份檢查的工作量,可以考慮使用一個專門做監控伺服器,
透過配置一些需要到的配置表,然後以sh指令碼或者儲存過程形式固化採集多套庫的儲存容量情況或者備份情況的
方式,形成簡易的採集流程,大大簡化了重複而繁瑣的資料庫管理工作。
配置方法:
1、監控伺服器;
2、監控伺服器通往各個被監控伺服器dblink的配置表,(如下 suxing.conf11g_dblink_tab或者suxing.CONF_BACKUPCHECK_DBLINK_TAB)
----由於兩個配置表的功能有所差異,所以分開兩個配置表;
3、專門作監控的使用者;
4、指令碼或者儲存過程(如下多個伺服器容量統計指令碼和多個伺服器備份檢查結果採集指令碼);
5、存放採集資料的表(如下 suxing.space_gather11G_tab或者 suxing.db_backup_check_alltab)。
#####多個伺服器容量統計指令碼:
declare
v_sql varchar2(4000);
begin
for rec in (select * from suxing.conf11g_dblink_tab) loop
v_sql :='insert into suxing.space_gather11G_tab
select * from (
with
I as (select instance_name from v$instance@'||rec.db_link||'),
A as (select round(sum(bytes)/1024/1024/1024,2) aa from dba_data_files@'||rec.db_link||'),
B as (select round(sum(bytes)/1024/1024/1024,2) bb from dba_free_space@'||rec.db_link||'),
C as (select round(sum(BYTES / 1024 / 1024 / 1024), 2) cc
from v$datafile@'||rec.db_link||' a, v$tablespace@'||rec.db_link||' b
where a.TS# = b.TS#
and a.CREATION_TIME <
to_date(''2017-07-15 10:00:00'', ''YYYY-MM-DD HH24:MI:SS'')),
D as (select round(sum(BYTES / 1024 / 1024 / 1024), 2) dd
from v$datafile@'||rec.db_link||' a, v$tablespace@'||rec.db_link||' b
where a.TS# = b.TS#
and a.CREATION_TIME <
to_date(''2017-04-15 00:00:00'', ''YYYY-MM-DD HH24:MI:SS'')),
E as (select round(sum(BYTES / 1024 / 1024 / 1024), 2) ee
from v\$datafile@'||rec.db_link||' a, v\$tablespace@'||rec.db_link||' b
where a.TS# = b.TS#
and a.CREATION_TIME <
to_date(''2017-06-15 00:00:00'', ''YYYY-MM-DD HH24:MI:SS'')),
G as (select GROUP_NUMBER,NAME,TOTAL_MB/1024 totalGB,FREE_MB/1024 freeGB
from v$asm_diskgroup@'||rec.db_link||' where name like ''DATA%'')
select I.instance_name,A.aa Total_G,A.aa-B.bb Used_G,B.bb Free_G,G.totalGB,G.freeGB,(C.cc - D.dd)/3 AVRG3,C.cc - E.ee,sysdate,to_char(sysdate,''yymmdd'')
from I,A,B,C,D,E,G
)';
--dbms_output.put_line(v_sql);
execute immediate v_sql;
commit;
end loop;
end;
#####多個伺服器備份檢查結果採集指令碼:
declare
v_sql varchar2(4000);
begin
for rec in (select * from suxing.CONF_BACKUPCHECK_DBLINK_TAB) loop
v_sql :='insert into suxing.db_backup_check_alltab
select * from (
with
I as (select instance_name from v$instance@'||rec.db_link||'),
BC as (
select start_time, t.INPUT_TYPE, status
from v$rman_backup_job_details@'||rec.db_link||' t
where t.start_time in (select max(start_time)
from v$rman_backup_job_details@'||rec.db_link||')
and t.INPUT_TYPE = ''ARCHIVELOG''
group by t.start_time, t.INPUT_TYPE, t.STATUS
union all
select start_time, t.INPUT_TYPE, status
from v$rman_backup_job_details@'||rec.db_link||' t
where t.start_time in (select max(start_time)
from v$rman_backup_job_details@'||rec.db_link||' t
where t.INPUT_TYPE = ''DB INCR'')
group by t.start_time, t.INPUT_TYPE, t.STATUS)
select I.instance_name,BC.*,to_char(sysdate,''mmddhh24'') from I,BC)';
--dbms_output.put_line(v_sql);
execute immediate v_sql;
commit;
end loop;
end;
注:這些指令碼當中,with子句的作用非常關鍵。
透過配置一些需要到的配置表,然後以sh指令碼或者儲存過程形式固化採集多套庫的儲存容量情況或者備份情況的
方式,形成簡易的採集流程,大大簡化了重複而繁瑣的資料庫管理工作。
配置方法:
1、監控伺服器;
2、監控伺服器通往各個被監控伺服器dblink的配置表,(如下 suxing.conf11g_dblink_tab或者suxing.CONF_BACKUPCHECK_DBLINK_TAB)
----由於兩個配置表的功能有所差異,所以分開兩個配置表;
3、專門作監控的使用者;
4、指令碼或者儲存過程(如下多個伺服器容量統計指令碼和多個伺服器備份檢查結果採集指令碼);
5、存放採集資料的表(如下 suxing.space_gather11G_tab或者 suxing.db_backup_check_alltab)。
#####多個伺服器容量統計指令碼:
declare
v_sql varchar2(4000);
begin
for rec in (select * from suxing.conf11g_dblink_tab) loop
v_sql :='insert into suxing.space_gather11G_tab
select * from (
with
I as (select instance_name from v$instance@'||rec.db_link||'),
A as (select round(sum(bytes)/1024/1024/1024,2) aa from dba_data_files@'||rec.db_link||'),
B as (select round(sum(bytes)/1024/1024/1024,2) bb from dba_free_space@'||rec.db_link||'),
C as (select round(sum(BYTES / 1024 / 1024 / 1024), 2) cc
from v$datafile@'||rec.db_link||' a, v$tablespace@'||rec.db_link||' b
where a.TS# = b.TS#
and a.CREATION_TIME <
to_date(''2017-07-15 10:00:00'', ''YYYY-MM-DD HH24:MI:SS'')),
D as (select round(sum(BYTES / 1024 / 1024 / 1024), 2) dd
from v$datafile@'||rec.db_link||' a, v$tablespace@'||rec.db_link||' b
where a.TS# = b.TS#
and a.CREATION_TIME <
to_date(''2017-04-15 00:00:00'', ''YYYY-MM-DD HH24:MI:SS'')),
E as (select round(sum(BYTES / 1024 / 1024 / 1024), 2) ee
from v\$datafile@'||rec.db_link||' a, v\$tablespace@'||rec.db_link||' b
where a.TS# = b.TS#
and a.CREATION_TIME <
to_date(''2017-06-15 00:00:00'', ''YYYY-MM-DD HH24:MI:SS'')),
G as (select GROUP_NUMBER,NAME,TOTAL_MB/1024 totalGB,FREE_MB/1024 freeGB
from v$asm_diskgroup@'||rec.db_link||' where name like ''DATA%'')
select I.instance_name,A.aa Total_G,A.aa-B.bb Used_G,B.bb Free_G,G.totalGB,G.freeGB,(C.cc - D.dd)/3 AVRG3,C.cc - E.ee,sysdate,to_char(sysdate,''yymmdd'')
from I,A,B,C,D,E,G
)';
--dbms_output.put_line(v_sql);
execute immediate v_sql;
commit;
end loop;
end;
#####多個伺服器備份檢查結果採集指令碼:
declare
v_sql varchar2(4000);
begin
for rec in (select * from suxing.CONF_BACKUPCHECK_DBLINK_TAB) loop
v_sql :='insert into suxing.db_backup_check_alltab
select * from (
with
I as (select instance_name from v$instance@'||rec.db_link||'),
BC as (
select start_time, t.INPUT_TYPE, status
from v$rman_backup_job_details@'||rec.db_link||' t
where t.start_time in (select max(start_time)
from v$rman_backup_job_details@'||rec.db_link||')
and t.INPUT_TYPE = ''ARCHIVELOG''
group by t.start_time, t.INPUT_TYPE, t.STATUS
union all
select start_time, t.INPUT_TYPE, status
from v$rman_backup_job_details@'||rec.db_link||' t
where t.start_time in (select max(start_time)
from v$rman_backup_job_details@'||rec.db_link||' t
where t.INPUT_TYPE = ''DB INCR'')
group by t.start_time, t.INPUT_TYPE, t.STATUS)
select I.instance_name,BC.*,to_char(sysdate,''mmddhh24'') from I,BC)';
--dbms_output.put_line(v_sql);
execute immediate v_sql;
commit;
end loop;
end;
注:這些指令碼當中,with子句的作用非常關鍵。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31392094/viewspace-2142760/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分散式文件儲存資料庫之MongoDB備份與恢復分散式資料庫MongoDB
- 儲存與資料庫系統資料庫
- 監控採集上報和儲存監控資料策略
- MySQL不同儲存引擎的資料備份與恢復MySql儲存引擎
- catalog備份資料庫及RMAN儲存指令碼資料庫指令碼
- 自動備份SQL資料庫到雲端儲存StorageSQL資料庫
- SQL Server 資料備份儲存過程SQLServer儲存過程
- 檔案系統儲存與oracle資料庫儲存對比Oracle資料庫
- DevOps專題 |監控,可觀測性與資料儲存dev
- 資料庫的備份與恢復資料庫
- DB2_建立備份恢復使用自動儲存的資料庫DB2資料庫
- Oracle12c多租戶資料庫備份與恢復 - 僅備份一個PDB資料庫Oracle資料庫
- Oracle12c多租戶資料庫備份與恢復 - 備份CDB下的多個PDBsOracle資料庫
- 庫存拆分計劃-備份
- 面對海量的監控影片資料應該如何儲存?
- Kurator v0.5.0釋出,打造統一的多叢集備份與儲存體驗
- 資料庫監控資料庫
- Backup And Recovery User's Guide-為長期儲存建立資料庫備份-歸檔備份的目的GUIIDE資料庫
- 雲端儲存系統監控服務分析
- 高頻時序資料的儲存與統計方案
- 歷史庫存監控表的設計
- mysql的資料庫備份與恢復MySql資料庫
- oracle資料庫的備份與恢復Oracle資料庫
- 如何使用表格儲存控制檯進行資料監控
- Oracle資料庫冷備份與熱備份操作梳理Oracle資料庫
- 備份與恢復:polardb資料庫備份與恢復資料庫
- 資料庫差異備份與增量備份的不同之處資料庫
- Oracle12c多租戶資料庫備份與恢復 - 備份表空間Oracle資料庫
- Oracle12c多租戶資料庫備份與恢復 - 僅僅備份CDBOracle資料庫
- Linux或UNIX系統下oracle資料庫expdp自動備份LinuxOracle資料庫
- Linux或UNIX系統下oracle資料庫exp自動備份LinuxOracle資料庫
- 【Mongodb】資料庫備份與還原MongoDB資料庫
- postgresql備份與恢復資料庫SQL資料庫
- mongo資料庫備份與恢復Go資料庫
- MySQL資料庫備份與還原MySql資料庫
- Informix資料庫備份與恢復ORM資料庫
- 安防監控如何儲存?
- 資料庫備份與異機恢復——熱備份方式資料庫