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;