add sql scripts
This commit is contained in:
4
Daily/sql/check_db_restart.sql
Normal file
4
Daily/sql/check_db_restart.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
alter session set nls_date_format='YYYY/MM/DD HH24:MI:SS';
|
||||
col host_name format a15
|
||||
SELECT instance_name, host_name, startup_time, status, logins FROM gv$instance ORDER BY 1;
|
||||
|
||||
4
Daily/sql/check_failed_cheduler_jobs.sql
Normal file
4
Daily/sql/check_failed_cheduler_jobs.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
SELECT owner, job_name, job_type, state, TRUNC(start_date) SDATE, TRUNC(next_run_date) NXTRUN, failure_count
|
||||
FROM dba_scheduler_jobs
|
||||
WHERE failure_count <> 0;
|
||||
|
||||
13
Daily/sql/check_pga_use.sql
Normal file
13
Daily/sql/check_pga_use.sql
Normal file
@@ -0,0 +1,13 @@
|
||||
col osuser format a15
|
||||
col pid format 9999
|
||||
col program format a20
|
||||
col sid format 99999
|
||||
col spid format a6
|
||||
col username format a12
|
||||
|
||||
SELECT p.spid,p.pid,s.sid,s.serial#,s.status,p.pga_alloc_mem,p.PGA_USED_MEM,s.username,s.osuser,s.program
|
||||
FROM v$process p,v$session s
|
||||
WHERE s.paddr ( + ) = p.addr
|
||||
-- AND p.background IS NULL -- comment if need to monitor background processes
|
||||
ORDER BY p.pga_alloc_mem DESC;
|
||||
|
||||
6
Daily/sql/check_sort_area.sql
Normal file
6
Daily/sql/check_sort_area.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
SELECT a.value "Disk Sorts", b.value "Memory Sorts",
|
||||
ROUND((100*b.value)/DECODE((a.value+b.value), 0,1,(a.value+b.value)),2) "Pct Memory Sorts"
|
||||
FROM v$sysstat a, v$sysstat b
|
||||
WHERE a.name = 'sorts (disk)'
|
||||
AND b.name = 'sorts (memory)';
|
||||
|
||||
3
Daily/sql/check_supplemntal_logging.sql
Normal file
3
Daily/sql/check_supplemntal_logging.sql
Normal file
@@ -0,0 +1,3 @@
|
||||
SELECT supplemental_log_data_min, supplemental_log_data_pk, supplemental_log_data_ui, supplemental_log_data_fk, supplemental_log_data_all, supplemental_log_data_pl
|
||||
FROM v$database;
|
||||
|
||||
58
Daily/sql/disable_auto_tasks.sql
Normal file
58
Daily/sql/disable_auto_tasks.sql
Normal file
@@ -0,0 +1,58 @@
|
||||
--
|
||||
-- lorsqu'on vérifie les options utilisées par la base, "Automatic SQL Tuning Advisor" sort aussi
|
||||
-- même si la base n'est pas licenciée avec Tuning Pack
|
||||
-- Ce script permet de voir et désactiver les tâches automatiques
|
||||
-- pour ne pas avoir à licencier Tuning Pack
|
||||
--
|
||||
set lines 180 pages 1000
|
||||
col client_name for a40
|
||||
col attributes for a60
|
||||
col service_name for a20
|
||||
select client_name, status,attributes,service_name from dba_autotask_client
|
||||
/
|
||||
|
||||
BEGIN
|
||||
DBMS_AUTO_TASK_ADMIN.disable(
|
||||
client_name => 'auto space advisor',
|
||||
operation => NULL,
|
||||
window_name => NULL);
|
||||
END;
|
||||
/
|
||||
|
||||
BEGIN
|
||||
DBMS_AUTO_TASK_ADMIN.disable(
|
||||
client_name => 'sql tuning advisor',
|
||||
operation => NULL,
|
||||
window_name => NULL);
|
||||
END;
|
||||
/
|
||||
|
||||
-- BEGIN
|
||||
-- DBMS_AUTO_TASK_ADMIN.disable
|
||||
-- (
|
||||
-- client_name => 'auto optimizer stats collection',
|
||||
-- operation => NULL,
|
||||
-- window_name => NULL);
|
||||
-- END;
|
||||
-- /
|
||||
|
||||
select client_name, status,attributes,service_name from dba_autotask_client
|
||||
/
|
||||
|
||||
-- pour réactiver les auto task remplacer DBMS_AUTO_TASK_ADMIN.disable par DBMS_AUTO_TASK_ADMIN.enable
|
||||
|
||||
-- BEGIN
|
||||
-- dbms_auto_task_admin.enable(client_name => 'sql tuning advisor', operation => NULL, window_name => NULL);
|
||||
-- END;
|
||||
-- /
|
||||
|
||||
-- BEGIN
|
||||
-- DBMS_AUTO_TASK_ADMIN.enable(client_name => 'sql tuning advisor', operation => NULL, window_name => NULL);
|
||||
-- END;
|
||||
-- /
|
||||
|
||||
-- BEGIN
|
||||
-- DBMS_AUTO_TASK_ADMIN.enable(client_name => 'auto optimizer stats collection', operation => NULL, window_name => NULL);
|
||||
-- END;
|
||||
-- /
|
||||
|
||||
47
Daily/sql/get_cursor_usage.sql
Normal file
47
Daily/sql/get_cursor_usage.sql
Normal file
@@ -0,0 +1,47 @@
|
||||
-- SCRIPT - to Set the 'SESSION_CACHED_CURSORS' and 'OPEN_CURSORS' Parameters Based on Usage (Doc ID 208857.1)
|
||||
select
|
||||
'session_cached_cursors' parameter,
|
||||
lpad(value, 5) value,
|
||||
decode(value, 0, ' n/a', to_char(100 * used / value, '990') || '%') usage
|
||||
from
|
||||
( select
|
||||
max(s.value) used
|
||||
from
|
||||
v$statname n,
|
||||
v$sesstat s
|
||||
where
|
||||
n.name = 'session cursor cache count' and
|
||||
s.statistic# = n.statistic#
|
||||
),
|
||||
( select
|
||||
value
|
||||
from
|
||||
v$parameter
|
||||
where
|
||||
name = 'session_cached_cursors'
|
||||
)
|
||||
union all
|
||||
select
|
||||
'open_cursors',
|
||||
lpad(value, 5),
|
||||
to_char(100 * used / value, '990') || '%'
|
||||
from
|
||||
( select
|
||||
max(sum(s.value)) used
|
||||
from
|
||||
v$statname n,
|
||||
v$sesstat s
|
||||
where
|
||||
n.name in ('opened cursors current') and
|
||||
s.statistic# = n.statistic#
|
||||
group by
|
||||
s.sid
|
||||
),
|
||||
( select
|
||||
value
|
||||
from
|
||||
v$parameter
|
||||
where
|
||||
name = 'open_cursors'
|
||||
)
|
||||
/
|
||||
27
Daily/sql/get_grant_and_priv.sql
Normal file
27
Daily/sql/get_grant_and_priv.sql
Normal file
@@ -0,0 +1,27 @@
|
||||
--
|
||||
-- Le script prend en parametre un compte utilisateur
|
||||
-- ensuite il retourne les requetes pour creer les grants associe a ce compte
|
||||
-- un fichier grant_USER.lst est généré dans le répertoire courant
|
||||
--
|
||||
set heading off pages 0 feedback off echo off verify off
|
||||
ACCEPT v_user CHAR PROMPT 'compte utilisateur pour lequel on va extraire les GRANTS : '
|
||||
|
||||
SPOOL grant_&v_user
|
||||
SELECT 'REM Les roles :' FROM DUAL;
|
||||
SELECT DISTINCT 'CREATE ROLE '||GRANTED_ROLE||';' FROM DBA_ROLE_PRIVS WHERE GRANTEE IN &v_users;
|
||||
|
||||
SELECT 'REM Les GRANTs depuis DBA_ROLE_PRIVS :' FROM DUAL;
|
||||
SELECT DISTINCT 'GRANT '||GRANTED_ROLE||' TO '||GRANTEE|| CASE WHEN ADMIN_OPTION='YES' THEN ' WITH ADMIN OPTION;' ELSE ';' END "Granted Roles" FROM DBA_ROLE_PRIVS WHERE GRANTEE IN &v_users ORDER BY 1;
|
||||
|
||||
SELECT 'REM Les GRANTs depuis DBA_SYS_PRIVS :' FROM DUAL;
|
||||
SELECT DISTINCT 'GRANT '||PRIVILEGE||' TO '||GRANTEE|| CASE WHEN ADMIN_OPTION='YES' THEN ' WITH ADMIN OPTION;' ELSE ';' END "Granted System Privileges" FROM DBA_SYS_PRIVS WHERE GRANTEE IN &v_users;
|
||||
|
||||
SELECT 'REM Les GRANTs depuis DBA_TAB_PRIVS :' FROM DUAL;
|
||||
SELECT DISTINCT 'GRANT '||PRIVILEGE||' ON '||OWNER||'.'||TABLE_NAME||' TO '||GRANTEE||CASE WHEN GRANTABLE='YES' THEN ' WITH GRANT OPTION;' ELSE ';' END "Granted Object Privileges" FROM DBA_TAB_PRIVS WHERE GRANTEE IN &v_users;
|
||||
|
||||
SELECT 'REM Les GRANTs depuis DBA_TAB_PRIVS pour le compte PUBLIC sur les objets SYS.DBMS_XXX :' FROM DUAL;
|
||||
SELECT DISTINCT 'GRANT '||PRIVILEGE||' ON '||OWNER||'.'||TABLE_NAME||' TO '||GRANTEE||CASE WHEN GRANTABLE='YES' THEN ' WITH GRANT OPTION;' ELSE ';' END "Granted Object Privileges" FROM DBA_TAB_PRIVS WHERE GRANTEE IN ('PUBLIC') and OWNER='SYS' and TABLE_NAME like '%DBMS_%' order by 1;
|
||||
|
||||
SPOOL OFF
|
||||
EXIT
|
||||
|
||||
61
Daily/sql/get_tablespaces_ddl_ver_courte.sql
Normal file
61
Daily/sql/get_tablespaces_ddl_ver_courte.sql
Normal file
@@ -0,0 +1,61 @@
|
||||
set head off pages 0 feedback off lines 200
|
||||
|
||||
select '------- HOSTNAME : '||host_name||', DB_NAME : '||name||', VERSION : '||version || ' -------' from v$database,v$instance;
|
||||
select '------- Datafiles -------' from dual;
|
||||
SELECT 'CREATE '
|
||||
|| DECODE (ts.bigfile, 'YES', 'BIGFILE ') --assuming smallfile is the default table space
|
||||
|| 'TABLESPACE "' || ts.tablespace_name || '" DATAFILE ' || CHR(13) || CHR(10)
|
||||
|| LISTAGG(decode(p.value, NULL, ' ''' || df.file_name || '''') || ' SIZE '
|
||||
|| CASE
|
||||
-- si la taille est nulle ou < 1M on retourne 1M
|
||||
WHEN e.used_bytes is NULL or e.used_bytes < (1024*1024)
|
||||
THEN '1M'
|
||||
ELSE to_char(floor(e.used_bytes/(1024*1024))) || 'M'
|
||||
END
|
||||
|| DECODE (df.autoextensible, 'YES', ' AUTOEXTEND ON'),
|
||||
',' || CHR (13) || CHR (10))
|
||||
WITHIN GROUP (ORDER BY df.file_id, df.file_name)
|
||||
|| ';'
|
||||
ddl
|
||||
FROM dba_tablespaces ts,
|
||||
dba_data_files df,
|
||||
(SELECT file_id, sum(decode(bytes,NULL,0,bytes)) used_bytes FROM dba_extents GROUP by file_id) e,
|
||||
(select VALUE from v$parameter where name='db_create_file_dest') p
|
||||
WHERE ts.tablespace_name not in ('SYSTEM','SYSAUX')
|
||||
and ts.tablespace_name not like '%UNDO%'
|
||||
and e.file_id (+) = df.file_id
|
||||
and ts.tablespace_name = df.tablespace_name
|
||||
GROUP BY ts.tablespace_name,
|
||||
ts.bigfile,
|
||||
ts.block_size
|
||||
ORDER BY ts.tablespace_name;
|
||||
|
||||
select '------- Tempfiles -------' from dual;
|
||||
|
||||
SELECT 'CREATE TEMPORARY TABLESPACE "' || ts.tablespace_name || '" TEMPFILE ' || CHR (13) || CHR (10)
|
||||
|| LISTAGG(decode(p.value, NULL, ' ''' || df.file_name || '''') || ' SIZE '
|
||||
|| CASE
|
||||
-- si la taille est nulle ou < 1M on retourne 1M
|
||||
WHEN e.used_bytes is NULL or e.used_bytes < (1024*1024)
|
||||
THEN '1M'
|
||||
ELSE to_char(floor(e.used_bytes/(1024*1024))) || 'M'
|
||||
END
|
||||
|| DECODE (df.autoextensible, 'YES', ' AUTOEXTEND ON'),
|
||||
',' || CHR (13) || CHR (10))
|
||||
WITHIN GROUP (ORDER BY df.file_id, df.file_name)
|
||||
|| ';'
|
||||
ddl
|
||||
FROM dba_tablespaces ts,
|
||||
dba_temp_files df,
|
||||
(SELECT file_id, sum(decode(bytes,NULL,0,bytes)) used_bytes FROM dba_extents GROUP by file_id) e,
|
||||
(select VALUE from v$parameter where name='db_create_file_dest') p
|
||||
WHERE e.file_id (+) = df.file_id
|
||||
and ts.tablespace_name = df.tablespace_name
|
||||
GROUP BY ts.tablespace_name,
|
||||
ts.bigfile,
|
||||
ts.block_size
|
||||
ORDER BY ts.tablespace_name;
|
||||
|
||||
|
||||
EXIT
|
||||
|
||||
71
Daily/sql/redolog_freq_switch.sql
Normal file
71
Daily/sql/redolog_freq_switch.sql
Normal file
@@ -0,0 +1,71 @@
|
||||
--
|
||||
-- affichage de la rotation des redelog par jour et par heure
|
||||
--
|
||||
|
||||
set head off
|
||||
select max('Taille des fichiers redolog (Mo) : ' || bytes/1024/1024) from v$log;
|
||||
|
||||
set head on
|
||||
set pages 999 lines 200
|
||||
col Date for a12
|
||||
col Total for 9999
|
||||
col 00 for 999
|
||||
col 01 for 999
|
||||
col 02 for 999
|
||||
col 03 for 999
|
||||
col 04 for 999
|
||||
col 05 for 999
|
||||
col 06 for 999
|
||||
col 07 for 999
|
||||
col 08 for 999
|
||||
col 09 for 999
|
||||
col 10 for 999
|
||||
col 11 for 999
|
||||
col 12 for 999
|
||||
col 13 for 999
|
||||
col 14 for 999
|
||||
col 15 for 999
|
||||
col 16 for 999
|
||||
col 17 for 999
|
||||
col 18 for 999
|
||||
col 19 for 999
|
||||
col 20 for 999
|
||||
col 21 for 999
|
||||
col 22 for 999
|
||||
col 23 for 999
|
||||
col 24 for 999
|
||||
|
||||
|
||||
select to_char(first_time, 'YYYY/MM/dd') "Date",
|
||||
count(1) "Total",
|
||||
sum(decode(to_char(first_time, 'hh24'),'00',1,0)) "00",
|
||||
sum(decode(to_char(first_time, 'hh24'),'01',1,0)) "01",
|
||||
sum(decode(to_char(first_time, 'hh24'),'02',1,0)) "02",
|
||||
sum(decode(to_char(first_time, 'hh24'),'03',1,0)) "03",
|
||||
sum(decode(to_char(first_time, 'hh24'),'04',1,0)) "04",
|
||||
sum(decode(to_char(first_time, 'hh24'),'05',1,0)) "05",
|
||||
sum(decode(to_char(first_time, 'hh24'),'06',1,0)) "06",
|
||||
sum(decode(to_char(first_time, 'hh24'),'07',1,0)) "07",
|
||||
sum(decode(to_char(first_time, 'hh24'),'08',1,0)) "08",
|
||||
sum(decode(to_char(first_time, 'hh24'),'09',1,0)) "09",
|
||||
sum(decode(to_char(first_time, 'hh24'),'10',1,0)) "10",
|
||||
sum(decode(to_char(first_time, 'hh24'),'11',1,0)) "11",
|
||||
sum(decode(to_char(first_time, 'hh24'),'12',1,0)) "12",
|
||||
sum(decode(to_char(first_time, 'hh24'),'13',1,0)) "13",
|
||||
sum(decode(to_char(first_time, 'hh24'),'14',1,0)) "14",
|
||||
sum(decode(to_char(first_time, 'hh24'),'15',1,0)) "15",
|
||||
sum(decode(to_char(first_time, 'hh24'),'16',1,0)) "16",
|
||||
sum(decode(to_char(first_time, 'hh24'),'17',1,0)) "17",
|
||||
sum(decode(to_char(first_time, 'hh24'),'18',1,0)) "18",
|
||||
sum(decode(to_char(first_time, 'hh24'),'19',1,0)) "19",
|
||||
sum(decode(to_char(first_time, 'hh24'),'20',1,0)) "20",
|
||||
sum(decode(to_char(first_time, 'hh24'),'21',1,0)) "21",
|
||||
sum(decode(to_char(first_time, 'hh24'),'22',1,0)) "22",
|
||||
sum(decode(to_char(first_time, 'hh24'),'23',1,0)) "23",
|
||||
sum(decode(to_char(first_time, 'hh24'),'24',1,0)) "24"
|
||||
from v$log_history
|
||||
group by to_char(first_time, 'YYYY/MM/dd')
|
||||
order by to_char(first_time, 'YYYY/MM/dd')
|
||||
;
|
||||
|
||||
exit
|
||||
12
Daily/sql/redolog_size_per_days.sql
Normal file
12
Daily/sql/redolog_size_per_days.sql
Normal file
@@ -0,0 +1,12 @@
|
||||
REM
|
||||
REM Tailes des redoslog par jour
|
||||
REM
|
||||
|
||||
select
|
||||
to_char(first_time, 'YYYY/MM/dd') "Jour",
|
||||
count(*) "Nbr de fichiers",
|
||||
ROUND(sum(BLOCKS*BLOCK_SIZE)/1024/1024, 0) "Taille_Mo"
|
||||
from v$archived_log
|
||||
group by to_char(first_time, 'YYYY/MM/dd')
|
||||
order by to_char(first_time, 'YYYY/MM/dd')
|
||||
;
|
||||
8
Daily/sql/who_is_connected.sql
Normal file
8
Daily/sql/who_is_connected.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
-- Qui est connecté à la base :
|
||||
|
||||
set pages 999 lines 200
|
||||
col PROGRAM for a35
|
||||
col MACHINE for a20
|
||||
col OSUSER for a10
|
||||
alter session set nls_date_format='YYYY/MM/DD HH24:MI:SS';
|
||||
select OSUSER, MACHINE, PROGRAM, STATE, LOGON_TIME from v$session order by LOGON_TIME asc;
|
||||
Reference in New Issue
Block a user