Instance Status and his startup time:
SELECT INSTANCE_NAME,STATUS, TO_CHAR(STARTUP_TIME,'DD MM YYYY, HH24:MM:SS') STARTUP_TIME FROM V$INSTANCE;
List all database parameters.
SET PAGESIZE 60
SET LINESIZE 300
COLUMN name FORMAT A30
COLUMN value FORMAT A70
COLUMN ses_mod FORMAT a10
COLUMN sys_mod FORMAT a10
COLUMN ins_mod FORMAT a10
SELECT p.name,
p.type,
p.value,
p.isses_modifiable as SES_MOD,
p.issys_modifiable as SYS_MOD,
p.isinstance_modifiable as INS_MOD
FROM v$parameter p
ORDER BY p.name
/
| ISSES_MODIFIABLE | Indicates whether the parameter can be changed with ALTER SESSION (TRUE) or not (FALSE) |
| ISSYS_MODIFIABLE | Indicates whether the parameter can be changed with ALTER SYSTEM and when the change takes effect:
|
| ISINSTANCE_MODIFIABLE | For parameters that can be changed with ALTER SYSTEm, indicates whether the value of the parameter can be different for every instance (TRUE) or whether the parameter must have the same value for all Real Application Clusters instances (FALSE). If the ISSYS_MODIFIABLE column is FALSE, then this column is always FALSE. |
Information about the last 800 completed SGA resize operations. This does not include in-progress operations.
SET PAGESIZE 60
SET LINE 300
COLUMN COMPONENT for a26
COLUMN OPER_TYPE for a12
COLUMN OPER_MODE for a9
COLUMN PARAMETER for a22
COLUMN S_SIZ_MB for 999,999
COLUMN T_SIZ_MB for 999,999
COLUMN E_SIZ_MB for 999,999
SELECT
COMPONENT,
OPER_TYPE,
OPER_MODE,
PARAMETER,
TO_CHAR(INITIAL_SIZE/1024/1024,'999,999') as S_SIZ_MB,
TO_CHAR(TARGET_SIZE/1024/1024,'999,999') as T_SIZ_MB,
TO_CHAR(FINAL_SIZE/1024/1024,'999,999') as E_SIZ_MB,
STATUS,
TO_CHAR(START_TIME,'DD-MON-YY HH24:MI:SS') as STIME,
TO_CHAR(END_TIME,'DD-MON-YY HH24:MI:SS') as ETIME
FROM
V$SGA_RESIZE_OPS
/
Information about SGA Pools.
SET PAGESIZE 50 COLUMN name FORMAT A30 COLUMN value FORMAT A20 SELECT name, value FROM v$parameter WHERE name like '%_pool%' ORDER BY name /
select round(sum(bytes)/1024/1024,2)||' MB' total_sga,
round(round(sum(bytes)/1024/1024,2) - round(sum(decode(name,'free memory',bytes,0))/1024/1024,2))||' MB' used,
round(sum(decode(name,'free memory',bytes,0))/1024/1024,2)||' MB' free
from v$sgastat;
Show Data, Temp, Redo and Total Database Size.
COLUMN "Total Mb" FORMAT 999,999,999.0
COLUMN "Redo Mb" FORMAT 999,999,999.0
COLUMN "Temp Mb" FORMAT 999,999,999.0
COLUMN "Data Mb" FORMAT 999,999,999.0
Prompt
Prompt "Database Size"
select (select sum(bytes/1048576) from dba_data_files) "Data Mb",
(select NVL(sum(bytes/1048576),0) from dba_temp_files) "Temp Mb",
(select sum(bytes/1048576)*max(members) from v$log) "Redo Mb",
(select sum(bytes/1048576) from dba_data_files) +
(select NVL(sum(bytes/1048576),0) from dba_temp_files) +
(select sum(bytes/1048576)*max(members) from v$log) "Total Mb"
from dual;
/!\ Connect as sysasm /!\
set linesize 500 SELECT name, free_mb, total_mb, ROUND(100*(free_mb/total_mb)) as "% FREE_MB", ROUND(100*(total_mb-free_mb)/total_mb) as "% USED_MB" FROM v$asm_diskgroup;
/!\ Connect as sysasm /!\
SET LINESIZE 500
SET PAGESIZE 5000
col gprnb FOR 9999
col dsknb FOR 9999
COL NAME FOR A15
COL FAILGROUP FOR A15
COL PATH FOR A30
COL DATABASE_COMPATIBILITY HEAD "DATABASE|COMPATIBILITY" FOR a15
COL TOTAL_MB FOR 99,999,999
COL FREE_MB FOR 99,999,999
COL required_mirror_free_mb HEAD "REQUIRED_MIRROR|FREE_MB" FOR 99,999,999
COL CAPACITY_ASM HEAD "CAPACITY|ASM" FOR a8
COL header_status HEAD "HEADER|STATUS" FOR a11
COL re FOR 99
COL we FOR 99
COL repair FOR 99999
BREAK ON gprnb SKIP 1
COMPUTE SUM LABEL 'Totals MB :' OF TOTAL_MB ON gprnb
COMPUTE SUM LABEL 'Totals MB :' OF FREE_MB ON gprnb
SELECT g.GROUP_NUMBER gprnb ,
g.NAME,d.FAILGROUP,
d.FAILGROUP_TYPE,
d.DISK_NUMBER dsknb,
d.NAME,
d.header_status,
g.TYPE,
DECODE(g.TYPE,'EXTERN','Pas de Raid','NORMAL','Raid sur 2 Disk','HIGH','Raid sur 3 Disk') Typeraid, g.STATE,
d.PREFERRED_READ,
g.DATABASE_COMPATIBILITY,
d.PATH, read_errs RE,
write_errs wE,
d.repair_timer repair,
d.TOTAL_MB, d.FREE_MB,
ROUND(100*(g.total_mb-g.free_mb)/g.total_mb) pctocc,
required_mirror_free_mb,
CASE WHEN g.USABLE_FILE_MB >0 THEN 'OK' ELSE 'Ajout disque requis' END AS CAPACITY_ASM
FROM V$ASM_DISK d,V$ASM_DISKGROUP g
WHERE d.GROUP_NUMBER=g.GROUP_NUMBER
ORDER BY 1,3;
alter session set nls_date_format='dd/mm/yyyy hh24:mi';
set pagesize 300
set linesize 300
col name format a26
col group_num format 999999999
col file_num format 99999999
col "Size (Mo)" format 9,999.99
col type format a24
col blocks format 999999
col perm format a9
select A.name,
F.group_number group_num,
F.file_number file_num,
F.block_size,
F.blocks,
F.bytes/1024/1024 "Size (Mo)",
F.space,
F.type,
F.creation_date,
F.modification_date,
F.permissions perm
from v$asm_alias A,v$asm_file F
where F.file_number=A.file_number;
alter diskgroup OCLD14PST90_RMAN drop disk RMAN_229;
alter diskgroup OCLD14PST90_RMAN add failgroup FG2 disk '/prod/oracle/asm_c3_117G_358922_04AF_10' name DATA_220, '/prod/oracle/asm_c3_117G_358922_04AD_10' name DATA_120;
set pagesize 10000
col object format a30
col cnt format 999,999,999
select O.owner||'.'||O.object_name object,
count(*) cnt
from gv$locked_object L,dba_objects O
where L.object_id = O.object_id
group by O.owner||'.'||O.object_name
order by 2;
set head on
set pagesize 10000
set linesize 300
col "XIDUSN XIDSLOT XIDSQN" format a22
col type format a22
col lmode format a14
col request format a14
select username,
L.sid,
'('||trunc(id1/power(2,16))||',
'||bitand(id1,to_number('ffff','xxxx'))||',
'||id2||')' "XIDUSN XIDSLOT XIDSQN",
decode(L.type, 'TM', 'DML enqueue', 'TX', 'Transaction enqueue','UL', 'User supplied', L.type) type,
decode(lmode, 0, 'none', 1, 'null (NULL)', 2, 'row-S (SS)', 3, 'row-X (SX)', 4, 'share (S)', 5, 'S/Row-X (SSX)', 6, 'exclusive (X)', lmode) lmode,
decode(request, 0, 'none', 1, 'null (NULL)', 2, 'row-S (SS)', 3, 'row-X (SX)', 4, 'share (S)', 5, 'S/Row-X (SSX)', 6, 'exclusive (X)', request) request
from v$lock L, v$session S
where L.type = 'TX'
and L.sid = S.sid
and username is not null
order by trunc(id1/power(2,16)), bitand(id1,to_number('ffff','xxxx'))+0, id2, L.sid;
set head on
set pagesize 10000
set linesize 300
col "XIDUSN XIDSLOT XIDSQN" format a22
col type format a22
col lmode format a14
col request format a14
select username,
L.sid,
'('||trunc(id1/power(2,16))||', '||bitand(id1,to_number('ffff','xxxx'))||', '||id2||')' "XIDUSN XIDSLOT XIDSQN",
decode(L.type, 'TM', 'DML enqueue', 'TX', 'Transaction enqueue', 'UL', 'User supplied', L.type) type,
decode(lmode, 0, 'none', 1, 'null (NULL)', 2, 'row-S (SS)', 3, 'row-X (SX)', 4, 'share (S)', 5, 'S/Row-X (SSX)', 6, 'exclusive (X)', lmode) lmode,
decode(request, 0, 'none', 1, 'null (NULL)', 2, 'row-S (SS)', 3, 'row-X (SX)', 4, 'share (S)', 5, 'S/Row-X (SSX)', 6, 'exclusive (X)', request) request
from v$lock L, v$session S
where L.sid = S.sid
and username is not null
order by trunc(id1/power(2,16)), bitand(id1,to_number('ffff','xxxx'))+0, id2, L.sid;
set pagesize 10000
set linesize 300
col "Session blocante" format a16
col "Session bloquee" format a16
col "Lock mode" format a13
col "Object" format a30
col "ctime" format a14
select L1.sid||' - '||L1.inst_id "Session blocante",
decode(L1.lmode,
0, 'None',
1, 'Null',
2, 'Row-S (SS)',
3, 'Row-X (SX)',
4, 'Share (S)',
5, 'S/Row-X (SSX)',
6, 'Exclusive (X)',
to_char(L1.lmode)) "Lock mode",
(select O.owner||'.'||O.object_name from gv$locked_object LOBJ, dba_objects O where LOBJ.object_id=O.object_id and L1.sid=LOBJ.session_id and rownum<2) "Object",
case when L1.ctime < 86400
then to_char(to_date(L1.ctime, 'sssss'), 'hh24:mi:ss')
else '+'||trunc(L1.ctime/86400)||' '||to_char(to_date(mod(L1.ctime, 86400), 'sssss'), 'hh24:mi:ss')
end "ctime",
L2.sid||' - '||L2.inst_id "Session bloquee",
decode(L2.lmode,
0, 'None',
1, 'Null',
2, 'Row-S (SS)',
3, 'Row-X (SX)',
4, 'Share (S)',
5, 'S/Row-X (SSX)',
6, 'Exclusive (X)',
to_char(L2.lmode)) "Lock mode",
(select O.owner||'.'||O.object_name from gv$locked_object LOBJ, dba_objects O where LOBJ.object_id=O.object_id and L2.sid=LOBJ.session_id and rownum<2) "Object",
case when L2.ctime < 86400 then to_char(to_date(L2.ctime, 'sssss'), 'hh24:mi:ss') else '+'||trunc(L2.ctime/86400)||' '||to_char(to_date(mod(L2.ctime, 86400), 'sssss'), 'hh24:mi:ss') end "ctime" from gv$lock L1, gv$lock L2 where L1.block=1 and L2.request>0
and L1.id1=L2.id1
and L1.id2=L2.id2
order by L1.ctime;
set pagesize 10000 set linesize 300 col name format a40 select owner||'.'||object_name name, object_type, status from dba_objects where status != 'VALID' order by 1;
set head off
set pagesize 0
set feedback off
set echo off
set linesize 300
select 'alter '||decode(object_type, 'PACKAGE BODY', 'PACKAGE', 'TYPE BODY', 'TYPE', object_type)||
' '||owner||'."'||object_name||'" compile '||decode(object_type, 'PACKAGE BODY', 'BODY', 'PACKAGE', 'PACKAGE', 'TYPE BODY', 'BODY')||';'
from dba_objects obj
where status != 'VALID'
and object_type in ('PACKAGE BODY','PACKAGE','FUNCTION','PROCEDURE','TRIGGER','VIEW','TYPE','TYPE BODY','JAVA CLASS','JAVA SOURCE')
order by 1;
set linesize 300
col tablespace_name format a25
col obj format a30
col file_name format a55
col "Mo" format 999,999.99
select E.owner||'.'||E.segment_name obj,
E.segment_type,
E.tablespace_name,
D.file_name,
sum(E.bytes)/1024/1024 "Mo"
from
dba_extents E,
dba_data_files D
where
E.file_id=D.file_id
group by E.owner||'.'||E.segment_name,
E.segment_type,
E.tablespace_name,
D.file_name;
Replace '&obj_name'(line 17) with your searching object
set linesize 300
set pagesize 300
set verify off
col object_name format a40
col status format a7
col object_type format a20
col created format a19
col last_ddl_time format a19
select owner||'.'||object_name object_name,
status,
object_type,
to_char(created, 'dd/mm/yyyy hh24:mi:ss') created,
to_char(last_ddl_time, 'dd/mm/yyyy hh24:mi:ss') last_ddl_time
from dba_objects
where object_name=upper('&obj_name')
order by 1;
-- Stop CRS crsctl stop crs -- Start CRS crsctl start crs -- Disable CRS crsctl disable crs -- Enable CRS crsctl enable crs -- Check CRS crsctl check crs -- Check status of all CRS resourcs crsctl stat res -t -- Check active version of CRS crsctl query crs activeversion -- Check CRS configuation crsctl config crs
-- Stop HAS crsctl stop HAS -- Start HAS crsctl start HAS -- Check HAS crsctl check has -- Check HAS configuation crsctl config has -- Disable HAS crsctl disable has -- Enable HAS crsctl enable has -- Version HAS crsctl query has releaseversion crsctl query has softwareversion
-- Start a SCAN Command: srvctl start scan [-i ordinal_number] [-n node_name] Example: srvctl start scan -i 1 -n node1 -- Stop a SCAN Command: srvctl stop scan [-i ordinal_number] [-f] Example: srvctl stop scan -i 1 -- status of SCAN Command: srvctl status scan [-i ordinal_number] Example: srvctl status scan -i 1 -- Enable a SCAN Command: srvctl enable scan [-i ordinal_number] Example: srvctl enable scan -i 1 -- Disable a SCAN Command: srvctl disable scan [-i ordinal_number] Example: srvctl disable scan -i 3 -- Configure a SCAN Command: srvctl config scan [-i ordinal_number] Example: srvctl config scan -i 2 -- Modify SCAN Command: srvctl modify scan -n scan_name Example: srvctl modify scan -n SCAN1 -- Relocate a SCAN Command: srvctl relocate scan -i ordinal_number [-n node_name] Example: srvctl relocate scan -i 2 -n node2
-- Status
Command: srvctl status scan_listener [-i ordinal_number]
Example: srvctl status scan_listener -i 1
-- Stop
Command: srvctl stop scan_listener [-i ordinal_number] [-f]
Example: srvctl stop scan_listener -i 1
-- Start
Command: srvctl start scan_listener [-n node_name] [-i ordinal_number]
Example: srvctl start scan_listener -n node1 -i 1
-- Enable
Command: srvctl enable scan_listener [-i ordinal_number]
Example: srvctl enable scan_listener -i 1
-- Disable
Command: srvctl disable scan_listener [-i ordinal_number]
Example: srvctl disable scan_listener -i 1
-- Check Configuration
Command: srvctl config scan_listener [-i ordinal_number]
Example: srvctl config scan_listener -i 2
-- Relocate to node2
Command: srvctl relocate scan_listener -i ordinal_number [-n node_name]
Example: srvctl relocate scan_listener -i 1 -n node2
-- Modify port (new port : 1523)
Command: srvctl modify scan_listener {-p [TCP:]port[/IPC:key][/NMP:pipe_name] [/TCPS:s_port][/SDP:port] -u }
Example: srvctl modify scan_listener -u -p TCP:1523
-- Add
Command: srvctl add scan_listener [-l lsnr_name_prefix] [-s] [-p "[TCP:]port_list[/IPC:key][/NMP:pipe_name][/TCPS:s_port] [/SDP:port]"]
Example: srvctl add scan_listener -l scanlistener01
-- Remove
Command: srvctl remove scan_listener [-f]
Example: srvctl remove scan_listener -f
-- Remove the instance
Command: srvctl remove instance -d db_name -i inst_name
Example: srvctl remove instance -d db_rac -i rac01
-- Start the instance
Command: srvctl start instance -d db_name -i inst_names [-o start_options] [-c connect_str|-q]
Command: srvctl start instance -d db_name -i inst_names -o open
Command: srvctl start instance -d db_name -i inst_names -o nomount
Command: srvctl start instance -d db_name -i inst_names -o mount
Example: srvctl start instance -d db_rac -i rac02
-- Start the instance (Oracle 11g):
Command: srvctl start instance -d db_unique_name {-n node_name -i "instance_name_list"} [-o start_options]
Example: srvctl start instance -d db_rac -n node2
Example: srvctl start instance -d db_rac -i "rac02,rac03"
-- Stop the instance
Command: srvctl stop instance -d db_name -i inst_names [-o stop_options] [-c connect_str|-q]
Command: srvctl stop instance -d db_name -i inst_names [-o normal]
Command: srvctl stop instance -d db_name -i inst_names -o transactional
Command: srvctl stop instance -d db_name -i inst_names -o immediate
Command: srvctl stop instance -d db_name -i inst_names -o abort
Example: srvctl stop instance -d db_rac -i rac03
-- Stop the instance (Oracle 11g):
Command: srvctl stop instance -d db_unique_name {[-n node_name]|[-i "instance_name_list"]} [-o stop_options] [-f]
Example: srvctl stop instance -d db_rac -n node1
Example: srvctl stop instance -d db_rac -i rac01
-- Check the status of the instance
Command: srvctl status instance -d db_name -i inst_names [-f] [-v] [-S level]
Example: srvctl status instance -d db_rac -i rac02
-- Check the status of the instance (Oracle 11g):
Command: srvctl status instance -d db_unique_name {-n node_name | -i "instance_name_list"} [-f] [-v]
Example: srvctl status instance -d db_rac -i "rac01,rac02" -v
-- Enable/disable the instance
Command: srvctl enable instance -d db_name -i inst_names
Example: srvctl enable instance -d db_rac -i "rac01,rac02"
Command: srvctl disable instance -d db_name -i inst_names
Example: srvctl disable inst -d db_rac -i "rac01,rac03"
-- Set dependency of instance to ASM
Command: srvctl modify instance -d db_name -i inst_name {-s asm_inst_name|-r}
Command: srvctl modify instance -d db_unique_name -i instance_name {-n node_name|-z}
Example: srvctl modify instance -d db_rac -i rac01 -n node1
Example: srvctl modify instance -d db_rac -i rac01 -z
-- Move the database instance
Command: srvctl modify instance -d db_name -i inst_name -n node_name
Example: srvctl modify instance -d db_rac -i rac02 -n node1
-- Remove the database instance
Command: srvctl modify instance -d db_name -i inst_name -r
Example: srvctl modify instance -d db_rac -i rac01 -r
-- Get/set/unset environment
Command: srvctl getenv instance -d db_name -i inst_name [-t name_list]
Example: srvctl getenv instance -d db_rac -i rac01
Command: srvctl setenv instance -d db_name [-i inst_name] {-t "name=val[,name=val,...]" | -T "name=val"}
Example: srvctl setenv instance -d db_rac -i rac01 [options]
Command: srvctl unsetenv instance -d db_name [-i inst_name] [-t name_list]
Example: srvctl unsetenv instance -d db_rac -i rac01 [-t options]
-- Remove the database
Command: srvctl remove database -d db_name
Example: srvctl remove database -d db_rac
-- Start the database
Command: srvctl start database -d db_name [-o start_options]
Command: srvctl start database -d db_name -o open
Command: srvctl start database -d db_name -o nomount
Command: srvctl start database -d db_name -o mount
Example: srvctl start database -d db_rac
-- Stop the database
Command: srvctl stop database -d db_name [-o stop_options]
Command: srvctl stop database -d db_name -o transactional
Command: srvctl stop database -d db_name -o immediate
Command: srvctl stop database -d db_name -o abort
Example: srvctl stop database -d db_rac
-- Check the status of the database
Command: srvctl status database -d db_name [-f] [-v] [-S level]
Example: srvctl status database -d db_rac
-- Enable/disable the database
Command: srvctl enable database -d db_name
Example: srvctl enable database -d db_rac
Command: srvctl disable database -d db_name
Example: srvctl disable inst -d db_rac
-- Get/set/unset environment
Command: srvctl getenv database -d db_name [-t name_list]
Example: srvctl getenv database -d db_rac
Command: srvctl setenv database -d db_name {-t "name=val[,name=val,...]" | -T "name=val"}
Example: srvctl setenv database -d db_rac
Command: srvctl unsetenv database -d db_name [-i inst_name] [-t name_list]
Example: srvctl unsetenv database -d db_rac -i rac01 [-t options]
set head on
set pagesize 10000
set linesize 300
col "Mo" format 999,999.99
select to_char(When, 'yyyy/mm/dd') "When", sum(Mo) "Mo"
from
( select trunc(next_time) When,
sum((blocks+1)*block_size)/1024/1024 Mo
from v$archived_log
where creator='ARCH' group by trunc(next_time)
union all
select start_time + (level-1) When, 0 Mo
from ( select trunc(min(next_time)) start_time
from v$archived_log where creator='ARCH' )
connect by start_time + (level-1) <= sysdate
)
group by When
order by 1;
set head on
set pagesize 10000
set linesize 300
col "Mo" format 999,999.99
select to_char(When, 'yyyy/mm/dd hh24:mi') "When",
sum(Mo) "Mo"
from
( select trunc(next_time, 'hh24') When,
sum((blocks+1)*block_size)/1024/1024 Mo
from v$archived_log
where creator='ARCH'
group by trunc(next_time, 'hh24')
union all
select start_time + (level-1)/24 When, 0 Mo
from ( select trunc(min(next_time), 'hh24') start_time
from v$archived_log where creator='ARCH' )
connect by start_time + (level-1)/24 <= sysdate
)
group by When
order by 1;
set pagesize 3000
set linesize 300
set feedback off
col name format a60
col thread# format 999999
col archived format a8
col applied format a7
col deleted format a7
col status format a11
alter session set nls_date_format='dd/mm/yyyy hh24:mi:ss';
select name,
sequence#,
thread#,
first_time,
next_time,
completion_time,
blocks,
archived,
applied,
deleted,
decode(status, 'A', 'Available', 'D', 'Deleted', 'U', 'Unavailable', 'X', 'Expired') status
from v$archived_log
where name is not null and creator='ARCH'
order by 2;
RMAN database backup details : BACKUP_TYPE, START_TIME, END_TIME, ELAPSED_TIME and BACKUP_SIZE
set linesize 500 col BACKUP_SIZE for a20 col START_TIME for a30 col END_TIME for a30 SELECT INPUT_TYPE "BACKUP_TYPE", STATUS, TO_CHAR(START_TIME,'MM/DD/YYYY:hh24:mi:ss') as START_TIME, TO_CHAR(END_TIME,'MM/DD/YYYY:hh24:mi:ss') as END_TIME, TRUNC((ELAPSED_SECONDS/60),2) "ELAPSED_TIME(Min)", OUTPUT_BYTES_DISPLAY "BACKUP_SIZE", OUTPUT_DEVICE_TYPE "OUTPUT_DEVICE" FROM V$RMAN_BACKUP_JOB_DETAILS where start_time > SYSDATE -10 and INPUT_TYPE != 'ARCHIVELOG' ORDER BY END_TIME DESC /
RMAN archivelog backup details : BACKUP_TYPE, START_TIME, END_TIME, ELAPSED_TIME and BACKUP_SIZE
set linesize 500 col BACKUP_SIZE for a20 col START_TIME for a30 col END_TIME for a30 SELECT INPUT_TYPE "BACKUP_TYPE", STATUS, TO_CHAR(START_TIME,'MM/DD/YYYY:hh24:mi:ss') as START_TIME, TO_CHAR(END_TIME,'MM/DD/YYYY:hh24:mi:ss') as END_TIME, TRUNC((ELAPSED_SECONDS/60),2) "ELAPSED_TIME(Min)", OUTPUT_BYTES_DISPLAY "BACKUP_SIZE", OUTPUT_DEVICE_TYPE "OUTPUT_DEVICE" FROM V$RMAN_BACKUP_JOB_DETAILS where start_time > SYSDATE -10 and INPUT_TYPE = 'ARCHIVELOG' ORDER BY END_TIME DESC /
-- archivelog RMAN> crosscheck archivelog all; -- backup RMAN> crosscheck backup; RMAN> crosscheck backup of archivelog all spfile; RMAN> crosscheck backup of tablespace [our_tbs]; RMAN> crosscheck backup of tablespace [our_tbs] completed before 'sysdate-10'; RMAN> crosscheck backup of datafile '[our_datafile]'; RMAN> crosscheck backup of datafile '[our_datafile]' completed after 'sysdate-10'; -- backupset RMAN> crosscheck backupset; RMAN> crosscheck backupset 2157, 2156; -- tag RMAN> crosscheck backuppiece tag = 'our_tag'; -- divers RMAN> crosscheck controlfilecopy '/home/oracle/control01.ctl'; RMAN> crosscheck datafilecopy 20, 21; RMAN> crosscheck copy of database;
-- archivelog RMAN> delete archivelog all; RMAN> delete archivelog until sequence 3219; RMAN> delete archivelog all completed before 'sysdate-3'; RMAN> delete archivelog all backed up 2 times to disk; -- archivelog backup RMAN> delete backup of archivelog all; RMAN> delete backup of archivelog all completed before 'sysdate-10'; -- backup using tag RMAN> delete backup tag our_tag; -- expired RMAN backups RMAN> crosscheck backup; RMAN> delete expired backup; RMAN> delete expired archivelog all; -- Obsolete RMAN backups RMAN> report obsolete; RMAN> delete obsolete;
RESTORE DATABASE PREVIEW;
RESTORE TABLESPACE users PREVIEW;
RESTORE DATAFILE 18 PREVIEW;
RESTORE ARCHIVELOG FROM LOGSEQ 180 PREVIEW;
RESTORE ARCHIVELOG FROM TIME 'SYSDATE-10' PREVIEW;
RESTORE ARCHIVELOG FROM SCN 357829 PREVIEW;
RESTORE DATABASE UNTIL TIME "TO_DATE('14/03/2023 23:00:00','DD/MM/YYYY HH24:MI:SS')" PREVIEW;
Show Size for All Schemas.
SET PAGESIZE 60 SET LINESIZE 300 COLUMN SCHEMA FORMAT A40 SELECT OWNER AS "SCHEMA", Sum(BYTES) / 1024 / 1024 AS "SIZE(Mb)" FROM DBA_EXTENTS GROUP BY OWNER ORDER by 1 ;
SET PAGESIZE 60 BEGIN FOR T IN (SELECT owner, table_name FROM all_tables WHERE owner=) LOOP EXECUTE IMMEDIATE 'grant select on '||T.owner||'.'||T.table_name||' to '; END LOOP; END; /
SET PAGESIZE 60
BEGIN
FOR T IN (SELECT owner, view_name FROM dba_views WHERE owner=schema_name) LOOP
EXECUTE IMMEDIATE 'grant select on '||T.owner||'.'||T.view_name||' to user_name';
END LOOP;
END;
/
Show All Database Sessions:
SET HEADING ON
SET LINESIZE 300
SET PAGESIZE 60
COLUMN username FORMAT A21
COLUMN osuser FORMAT A8
COLUMN sid FORMAT 9,999,999
COLUMN serial# FORMAT 9,999,999
COLUMN lockwait FORMAT A6
COLUMN status FORMAT A8
COLUMN module FORMAT A20
COLUMN machine FORMAT A24
COLUMN program FORMAT A20
COLUMN logon_time FORMAT A20
SELECT LPAD(' ', (level-1)*2, ' ') || NVL(s.username, '(oracle)') AS username,
s.osuser,
s.sid,
s.serial#,
s.lockwait,
s.status,
s.module,
s.machine,
s.program,
TO_CHAR(s.logon_Time,'DD-MON-YYYY HH24:MI:SS') AS logon_time
FROM v$session s
CONNECT BY PRIOR s.sid = s.blocking_session
START WITH s.blocking_session IS NULL
/
Show All Blocking Sessions :
SET PAGESIZE 60 SET LINESIZE 300 COL SID FOR 999999 COL SERIAL# FOR 999999 COL MACHINE FOR A12 TRUNC COL MODULE FOR A15 COL NAME FOR A15 TRUNC COL ACTION FOR A15 TRUNC SELECT to_char(a.LOGON_TIME,'DDMonYYHH24:MM'), a.sid,a.serial#, a.username, c.NAME, a.MODULE, a.STATUS, a.MACHINE, a.ACTION FROM V$SESSION a, DBA_BLOCKERS b, AUDIT_ACTIONS c WHERE a.sid = b.holding_session and a.command = c.action /
List All Sessions between start_time (format = ‘DD/MON/YYYY 24HH:MM:SS’) and end_time (format = ‘DD/MON/YYYY 24HH:MM:SS’) :
SET PAUSE ON SET PAUSE 'Press Return To Continue' SET HEADING ON SET LINESIZE 300 SET PAGESIZE 60 COLUMN Sample_Time FOR A12 COLUMN username FOR A20 COLUMN sql_text FOR A40 COLUMN program FOR A40 COLUMN module FOR A40 SELECT sample_time, u.username, h.program, h.module, s.sql_text FROM DBA_HIST_ACTIVE_SESS_HISTORY h, DBA_USERS u, DBA_HIST_SQLTEXT s WHERE sample_time BETWEEN '&start_time' and '&end_time' AND h.user_id=u.user_id AND h.sql_id = s.sql_iD ORDER BY 1 /
Information about Memory Allocations per session.
SET PAGESIZE 60
SET LINESIZE 300
COLUMN username FORMAT A20
COLUMN module FORMAT A50
COLUMN program FORMAT A50
SELECT NVL(a.username,'(oracle)') AS username,
a.module,
a.program,
Trunc(b.value/1024) AS Memory_KB
FROM v$session a,
v$sesstat b,
v$statname c
WHERE a.sid = b.sid
AND b.statistic# = c.statistic#
AND c.name = 'session pga memory'
AND a.program IS NOT NULL
ORDER BY b.value DESC
/
Show Total memory consumed for all sessions for dedicated servers.
select sum(value)||' Bytes' "total memory for all sessions " from v$sesstat,v$statname where name='session uga memory' and v$sesstat.statistic#=v$statname.statistic# /
set head off
set pagesize 0
select 'sid: '||sid||','||serial#, sql_id, 'username:'||username,
'logon:'||to_char(logon_time, 'dd/mm/yyyy hh24:mi:ss'), 'status:'||status, 'server:'||server,
'os process:'||spid, 'machine:'||machine, 'terminal:'||terminal, 'program:'||program
from
( with S as ( select S0.sid, S0.serial#, S0.username, S0.logon_time, S0.status, S0.server, S0.machine,S0.terminal, S0.program, S0.paddr, P0.spid, S0.sql_address
from v$session S0, v$process P0
where S0.username is not null
and S0.status!='INACTIVE'
and S0.paddr=P0.addr
and S0.sid != sys_context('USERENV','SID')),
A as ( select sql_id,address from v$sql
where address in (select distinct sql_address from v$session ) )
select distinct s.sid, s.serial#, a.sql_id, s.username, s.logon_time,s.status, s.server,s.spid, s.machine, s.terminal, s.program
from S, A
where A.address=S.sql_address)
order by logon_time;
Define the day at the line 1.
define day="2023/01/20"
set pagesize 10000
set linesize 3000
set verify off
col sess format a14
col blocking_sess format a14
col event format a30
col wait_class format a30
col program format a40
select to_char(S.end_interval_time, 'yyyy/mm/dd hh24:mi') end_interval_time,
A.session_id||','||A.session_serial# sess,
A.sql_id,
A.blocking_session||','||A.blocking_session_serial# blocking_sess,
A.blocking_session_status status,
A.event,
A.wait_class,
A.wait_time,
A.time_waited,
A.current_obj#,
A.program,
A.module
from dba_hist_snapshot S, dba_hist_active_sess_history A
where A.snap_id=S.snap_id
and to_char(S.end_interval_time, 'yyyy/mm/dd hh24:mi') like '&day%'
and A.wait_class in ('Application', 'Concurrency')
order by 1;
set linesize 300
set pagesize 1000
col username format a10
col event format a40
col total_waits format 999,999,999
col total_timeouts format 999,999,999
col time_waited format a11
col average_wait format a12
col max_wait format a8
col program format a38
select b.sid,
b.username,
a.event,
a.total_waits,
a.total_timeouts,
to_char(to_date('01-01-2000', 'dd-mm-yyyy')+a.time_waited/100/3600/24, 'hh24:mi:ss') time_waited,
to_char(to_date('01-01-2000', 'dd-mm-yyyy')+a.average_wait/100/3600/24, 'hh24:mi:ss') average_wait,
to_char(to_date('01-01-2000', 'dd-mm-yyyy')+a.max_wait/100/3600/24, 'hh24:mi:ss') max_wait,
b.program
from v$session_event a, v$session b
where B.sid = A.sid + 1
and B.username is not null
and A.wait_class != 'Idle'
order by A.time_waited, 1;
Output
SID USERNAME EVENT TOTAL_WAITS TOTAL_TIMEOUTS TIME_WAITED AVERAGE_WAIT MAX_WAIT PROGRAM
---------- ---------- ---------------------------------------- ------------ -------------- ----------- ------------ -------- --------------------------------------
25 USER1 SQL*Net message to client 2 0 00:00:00 00:00:00 00:00:00 JDBC Thin Client
25 USER1 events in waitclass Other 8 0 00:00:00 00:00:00 00:00:00 JDBC Thin Client
Show Tablespaces Usage.
SET PAGESIZE 60 SET LINESIZE 300 SELECT a.TABLESPACE_NAME, round(total,1) Total_MB, round(free) Free_MB, round(100*(1-free/total),1) "Usage_%" FROM (select TABLESPACE_NAME,sum(BYTES)/(1024*1024) total from dba_data_files group by TABLESPACE_NAME) a, (select TABLESPACE_NAME,sum(BYTES)/(1024*1024) free from dba_free_space group by TABLESPACE_NAME) b WHERE a.TABLESPACE_NAME=b.TABLESPACE_NAME(+) /
Show Temporary Tablespaces Usage.
SET PAGESIZE 60 SET LINESIZE 300 SELECT TABLESPACE_NAME,TABLESPACE_SIZE/(1024*1024) SIZE_MB, ALLOCATED_SPACE/(1024*1024) ALLOCATED_MB , FREE_SPACE/(1024*1024) FREE_MB FROM dba_temp_free_space /
Show All Datafiles Name and Size For a Specefic Tablespace.
/!\ Replace YOUR_TABLESPACE_NAME at line 8 with the name of your Tablespace /!\
SET PAGESIZE 60
SET LINESIZE 300
COL FILE_NAME FORMAT a90
SELECT FILE_NAME,
BYTES/(1024*1024) SIZE_MB
FROM DBA_DATA_FILES
WHERE TABLESPACE_NAME LIKE 'YOUR_TABLESPACE_NAME'
/
Replace YOUR_DATAFILE_NAME with your datafile name and SIZE_VALUE with the desired Size.
alter database datafile 'YOUR_DATAFILE_NAME' resize SIZE_VALUE<-- M or G -->;
In the next example, assume that the datafile /u02/oracle/bdb1/bdb1_data1.dbf has a size of 250M :
alter database datafile '/u02/oracle/bdb1/bdb1_data1.dbf' resize 250M;
Replace YOUR_TEMPFILE_NAME with your tempfile name and SIZE_VALUE with the desired Size.
ALTER DATABASE TEMPFILE 'YOUR_TEMPFILE_NAME' RESIZE SIZE_VALUE<-- M OR G -->;
In the next example, assume that the tempfile /u02/oracle/bdb1/TEMDB_data1.dbf has a size of 5250M :
ALTER DATABASE TEMPFILE '/U02/ORACLE/BDB1/TEMDB_DATA1.DBF' RESIZE 550M;
Show Space Usage for Each Datafile for All Tablespaces:
SET PAGESIZE 60
SET LINESIZE 300
COL TABLESPACE_NAME FORMAT a25
COL FILE_NAME FORMAT a70
select df.tablespace_name,
df.file_name,
round(df.bytes/1024/1024) SIZE_MB,
nvl(round(usedBytes/1024/1024), 0) USED_MB,
nvl(round(freeBytes/1024/1024), 0) FREE_MB,
nvl(round(freeBytes/df.bytes * 100), 0) "FREE_%",
df.autoextensible
from dba_data_files df
left join (select file_id,
sum(bytes) usedBytes
from dba_extents
group by file_id
) ext on df.file_id = ext.file_id
left join (select file_id,
sum(bytes) freeBytes
from dba_free_space
group by file_id
) free on df.file_id = free.file_id
order by df.tablespace_name, df.file_name
/
alter session set nls_date_format='dd/mm/yyyy hh24:mi:ss';
set pagesize 10000
set linesize 300
col username format a18
col account_status format a16
col default_tablespace format a18
col temp_tablespace format a15
col profile format a20
col external_name format a13
select username,
created,
account_status,
lock_date,
expiry_date,
default_tablespace,
temporary_tablespace temp_tablespace,
profile,
external_name
from dba_users order by 1;
/!\ Replace [your_user] at line 9 with the name of your Username /!\
alter session set nls_date_format='dd/mm/yyyy hh24:mi:ss';
set pagesize 10000
set linesize 250
select username,
max(logon_time) last_logon_time
from gv$session
where username='[your_user]'
group by username order by 1;
/!\ Replace [your_user] with the name of your Username /!\
alter user [your_user] account unlock;
COL USERNAME FOR A15
COL PRIVILEGE FOR A25
COL OWNER FOR A15
COL TABLENAME FOR A30
COL COLUMN_NAME FOR A25
COL ADMIN_OPTION FOR A15
SET LINESIZE 200
SELECT A.*
FROM (SELECT GRANTEE USERNAME,
GRANTED_ROLE PRIVILEGE,
'--' OWNER,
'--' TABLENAME,
'--' COLUMN_NAME,
ADMIN_OPTION ADMIN_OPTION,
'ROLE' ACCESS_TYPE
FROM DBA_ROLE_PRIVS RP JOIN DBA_ROLES R ON RP.GRANTED_ROLE = R.ROLE
WHERE GRANTEE IN (SELECT USERNAME FROM DBA_USERS)
UNION
SELECT GRANTEE USERNAME,
PRIVILEGE PRIVILEGE,
'--' OWNER,
'--' TABLENAME,
'--' COLUMN_NAME,
ADMIN_OPTION ADMIN_OPTION,
'SYSTEM' ACCESS_TYPE
FROM DBA_SYS_PRIVS
WHERE GRANTEE IN (SELECT USERNAME FROM DBA_USERS)
UNION
SELECT GRANTEE USERNAME,
PRIVILEGE PRIVILEGE,
OWNER OWNER,
TABLE_NAME TABLENAME,
'--' COLUMN_NAME,
GRANTABLE ADMIN_OPTION,
'TABLE' ACCESS_TYPE
FROM DBA_TAB_PRIVS
WHERE GRANTEE IN (SELECT USERNAME FROM DBA_USERS)
UNION
SELECT DP.GRANTEE USERNAME,
PRIVILEGE PRIVILEGE,
OWNER OWNER,
TABLE_NAME TABLENAME,
COLUMN_NAME COLUMN_NAME,
'--' ADMIN_OPTION,
'ROLE' ACCESS_TYPE
FROM ROLE_TAB_PRIVS RP, DBA_ROLE_PRIVS DP
WHERE RP.ROLE = DP.GRANTED_ROLE
AND DP.GRANTEE IN (SELECT USERNAME FROM DBA_USERS)
UNION
SELECT GRANTEE USERNAME,
PRIVILEGE PRIVILEGE,
GRANTABLE ADMIN_OPTION,
OWNER OWNER,
TABLE_NAME TABLENAME,
COLUMN_NAME COLUMN_NAME,
'COLUMN' ACCESS_TYPE
FROM DBA_COL_PRIVS
WHERE GRANTEE IN (SELECT USERNAME FROM DBA_USERS)) A
ORDER BY USERNAME,
A.TABLENAME,
CASE
WHEN A.ACCESS_TYPE = 'SYSTEM' THEN 1
WHEN A.ACCESS_TYPE = 'TABLE' THEN 2
WHEN A.ACCESS_TYPE = 'COLUMN' THEN 3
WHEN A.ACCESS_TYPE = 'ROLE' THEN 4
ELSE 5
END,
CASE
WHEN A.PRIVILEGE IN ('EXECUTE') THEN 1
WHEN A.PRIVILEGE IN ('SELECT', 'INSERT', 'DELETE') THEN 3
ELSE 2
END,
A.COLUMN_NAME,
A.PRIVILEGE;
Define your 'user_name' at the line 1
DEFINE USER_NAME=ZABBIX
COL USERNAME FOR A15
COL PRIVILEGE FOR A25
COL OWNER FOR A15
COL TABLENAME FOR A30
COL COLUMN_NAME FOR A25
COL ADMIN_OPTION FOR A15
SET LINESIZE 200
SELECT A.*
FROM (SELECT GRANTEE USERNAME,
GRANTED_ROLE PRIVILEGE,
'--' OWNER,
'--' TABLENAME,
'--' COLUMN_NAME,
ADMIN_OPTION ADMIN_OPTION,
'ROLE' ACCESS_TYPE
FROM DBA_ROLE_PRIVS RP JOIN DBA_ROLES R ON RP.GRANTED_ROLE = R.ROLE
WHERE GRANTEE IN (SELECT USERNAME FROM DBA_USERS WHERE USERNAME = UPPER('&USER_NAME'))
UNION
SELECT GRANTEE USERNAME,
PRIVILEGE PRIVILEGE,
'--' OWNER,
'--' TABLENAME,
'--' COLUMN_NAME,
ADMIN_OPTION ADMIN_OPTION,
'SYSTEM' ACCESS_TYPE
FROM DBA_SYS_PRIVS
WHERE GRANTEE IN (SELECT USERNAME FROM DBA_USERS WHERE USERNAME = UPPER('&USER_NAME'))
UNION
SELECT GRANTEE USERNAME,
PRIVILEGE PRIVILEGE,
OWNER OWNER,
TABLE_NAME TABLENAME,
'--' COLUMN_NAME,
GRANTABLE ADMIN_OPTION,
'TABLE' ACCESS_TYPE
FROM DBA_TAB_PRIVS
WHERE GRANTEE IN (SELECT USERNAME FROM DBA_USERS WHERE USERNAME = UPPER('&USER_NAME'))
UNION
SELECT DP.GRANTEE USERNAME,
PRIVILEGE PRIVILEGE,
OWNER OWNER,
TABLE_NAME TABLENAME,
COLUMN_NAME COLUMN_NAME,
'--' ADMIN_OPTION,
'ROLE' ACCESS_TYPE
FROM ROLE_TAB_PRIVS RP, DBA_ROLE_PRIVS DP
WHERE RP.ROLE = DP.GRANTED_ROLE
AND DP.GRANTEE IN (SELECT USERNAME FROM DBA_USERS WHERE USERNAME = UPPER('&USER_NAME'))
UNION
SELECT GRANTEE USERNAME,
PRIVILEGE PRIVILEGE,
GRANTABLE ADMIN_OPTION,
OWNER OWNER,
TABLE_NAME TABLENAME,
COLUMN_NAME COLUMN_NAME,
'COLUMN' ACCESS_TYPE
FROM DBA_COL_PRIVS
WHERE GRANTEE IN (SELECT USERNAME FROM DBA_USERS WHERE USERNAME = UPPER('&USER_NAME'))) A
ORDER BY USERNAME,
A.TABLENAME,
CASE
WHEN A.ACCESS_TYPE = 'SYSTEM' THEN 1
WHEN A.ACCESS_TYPE = 'TABLE' THEN 2
WHEN A.ACCESS_TYPE = 'COLUMN' THEN 3
WHEN A.ACCESS_TYPE = 'ROLE' THEN 4
ELSE 5
END,
CASE
WHEN A.PRIVILEGE IN ('EXECUTE') THEN 1
WHEN A.PRIVILEGE IN ('SELECT', 'INSERT', 'DELETE') THEN 3
ELSE 2
END,
A.COLUMN_NAME,
A.PRIVILEGE;
Define your users_list at the line 1.
define users_list="'USER1', 'USER2'"
set pagesize 10000
set linesize 300
set verify off
col sample_time format a25
col sid_serial format a10
col program format a25
col module format a25
col username format a14
alter session set nls_date_format='dd/mm/yyyy hh24:mi:ss';
select A.sample_time,
A.session_id||','||A.session_serial# sid_serial,
U.username,
A.program,
A.module
from
dba_hist_active_sess_history A,
dba_users U
where
U.username in (&users_list)
and U.user_id=A.user_id
order by sample_time;