May 17, 2026, 11:40 PM

This commit is contained in:
Paweł Domański
2026-05-18 06:40:19 +00:00
commit 64944cf004
896 changed files with 310709 additions and 0 deletions
+62
View File
@@ -0,0 +1,62 @@
set lines 160 pages 100
col day format a20
col "00" format a4
col "01" format a4
col "02" format a4
col "03" format a4
col "04" format a4
col "05" format a4
col "06" format a4
col "07" format a4
col "08" format a4
col "09" format a4
col "10" format a4
col "11" format a4
col "12" format a4
col "13" format a4
col "14" format a4
col "15" format a4
col "16" format a4
col "17" format a4
col "18" format a4
col "19" format a4
col "20" format a4
col "21" format a4
col "22" format a4
col "23" format a4
col inst_number format 999999
alter session set nls_date_format='YYYY-MON-DD';
SELECT to_date(first_time) DAY,
thread# as inst_number,
to_char(sum(decode(to_char(first_time,'HH24'),'00',1,0)),'999') "00",
to_char(sum(decode(to_char(first_time,'HH24'),'01',1,0)),'999') "01",
to_char(sum(decode(to_char(first_time,'HH24'),'02',1,0)),'999') "02",
to_char(sum(decode(to_char(first_time,'HH24'),'03',1,0)),'999') "03",
to_char(sum(decode(to_char(first_time,'HH24'),'04',1,0)),'999') "04",
to_char(sum(decode(to_char(first_time,'HH24'),'05',1,0)),'999') "05",
to_char(sum(decode(to_char(first_time,'HH24'),'06',1,0)),'999') "06",
to_char(sum(decode(to_char(first_time,'HH24'),'07',1,0)),'999') "07",
to_char(sum(decode(to_char(first_time,'HH24'),'08',1,0)),'999') "08",
to_char(sum(decode(to_char(first_time,'HH24'),'09',1,0)),'999') "09",
to_char(sum(decode(to_char(first_time,'HH24'),'10',1,0)),'999') "10",
to_char(sum(decode(to_char(first_time,'HH24'),'11',1,0)),'999') "11",
to_char(sum(decode(to_char(first_time,'HH24'),'12',1,0)),'999') "12",
to_char(sum(decode(to_char(first_time,'HH24'),'13',1,0)),'999') "13",
to_char(sum(decode(to_char(first_time,'HH24'),'14',1,0)),'999') "14",
to_char(sum(decode(to_char(first_time,'HH24'),'15',1,0)),'999') "15",
to_char(sum(decode(to_char(first_time,'HH24'),'16',1,0)),'999') "16",
to_char(sum(decode(to_char(first_time,'HH24'),'17',1,0)),'999') "17",
to_char(sum(decode(to_char(first_time,'HH24'),'18',1,0)),'999') "18",
to_char(sum(decode(to_char(first_time,'HH24'),'19',1,0)),'999') "19",
to_char(sum(decode(to_char(first_time,'HH24'),'20',1,0)),'999') "20",
to_char(sum(decode(to_char(first_time,'HH24'),'21',1,0)),'999') "21",
to_char(sum(decode(to_char(first_time,'HH24'),'22',1,0)),'999') "22",
to_char(sum(decode(to_char(first_time,'HH24'),'23',1,0)),'999') "23"
from
v$log_history
where to_date(first_time) > sysdate - 31
and thread# = &1
GROUP by
thread#, to_char(first_time,'YYYY-MON-DD'), to_date(first_time)
order by to_date(first_time), thread#
;
+192
View File
@@ -0,0 +1,192 @@
--- sprawdzenie VotinGDisk
crsctl query css votedisk
acfsutil size +80G /css
SELECT dg.name AS diskgroup, v.volume_name, v.bytes_read, v.bytes_written
FROM V$ASM_DISKGROUP dg, V$ASM_VOLUME_STAT v
WHERE dg.group_number = v.group_number and dg.name like 'OCRVOTE';
SELECT SUBSTR(dg.name,1,16) AS diskgroup, SUBSTR(d.name,1,16) AS asmdisk,
d.mount_status, d.state, SUBSTR(d.failgroup,1,16) AS failgroup
FROM V$ASM_DISKGROUP dg, V$ASM_DISK d WHERE dg.group_number = d.group_number;
select d.group_number, g.name, d.os_mb/1024 GB
from v$asm_disk d left outer join v$asm_diskgroup g
on (d.group_number = g.group_number)
where g.name = 'OCRVOTE'
order by g.group_number, d.os_mb;
-- 1) Lun size check for ASM Disk size..
------------------------------------------------
select d.group_number, g.name, d.os_mb/1024 GB
from v$asm_disk d left outer join v$asm_diskgroup g
on (d.group_number = g.group_number)
order by g.group_number, d.os_mb;
-- 2) Asm Disk Group Size..
set linesize 1000
break on report on disk_group_name skip 1
compute sum label "Grand Total: " of total_MB used_MB on report
SELECT
name GROUP_NAME
, round ( total_mb) TOTAL_MB
, round ( (total_mb - free_mb) ) USED_MB
, round ( free_mb) FREE_MB
, ROUND((1- (free_mb / total_mb))*100,2 ) USED
, (100 - ROUND((1- (free_mb / total_mb))*100,2)) FREE
FROM
v$asm_diskgroup
ORDER BY
name
/
select name,total_mb/1024 total_gb,free_mb/1024 free_gb, round(free_mb/total_mb*100) "FREE%" from v$asm_diskgroup where name ='DATACOPDAT';
alter tablespace AUDIT_DATA add datafile '+BOQR_DG' size 2048M autoextend on Maxsize 30G;
-- 3) Flash recovery size..
--------------------
col name for a32
col size_m for 999,999,999
col reclaimable_m for 999,999,999
col used_m for 999,999,999
col pct_used for 999
SELECT name
, ceil( space_limit / 1024 / 1024) SIZE_M
, ceil( space_used / 1024 / 1024) USED_M
, ceil( space_reclaimable / 1024 / 1024) RECLAIMABLE_M
, decode( nvl( space_used, 0),
0, 0
, ceil ( ( ( space_used - space_reclaimable ) / space_limit) * 100) ) PCT_USED
FROM v$recovery_file_dest
ORDER BY name
/
-- 4) Asm Disk Group Size..
-------------------
SET LINESIZE 145
SET PAGESIZE 9999
SET VERIFY off
COLUMN group_name FORMAT a20 HEAD 'Disk Group|Name'
COLUMN sector_size FORMAT 99,999 HEAD 'Sector|Size'
COLUMN block_size FORMAT 99,999 HEAD 'Block|Size'
COLUMN allocation_unit_size FORMAT 999,999,999 HEAD 'Allocation|Unit Size'
COLUMN state FORMAT a11 HEAD 'State'
COLUMN type FORMAT a6 HEAD 'Type'
COLUMN total_mb FORMAT 999,999,999 HEAD 'Total Size (MB)'
COLUMN used_mb FORMAT 999,999,999 HEAD 'Used Size (MB)'
COLUMN pct_used FORMAT 999.99 HEAD 'Pct. Used'
break on report on disk_group_name skip 1
compute sum label "Grand Total: " of total_mb used_mb on report
SELECT
name group_name
, sector_size sector_size
, block_size block_size
, allocation_unit_size allocation_unit_size
, state state
, type type
, total_mb total_mb
, (total_mb - free_mb) used_mb
, ROUND((1- (free_mb / total_mb))*100, 2) pct_used
FROM
v$asm_diskgroup
ORDER BY
name
/
5)Oracle Database : Space used in the flash recovery area.
set lines 900 pages 900
col NAME for a15
col space_limit for a15
col SPACE_USED for a15
select name,space_limit/1024/1024,SPACE_USED/1024/1024 from v$recovery_file_dest;
select NAME,
floor(space_limit/1024/1024) "Size_MB",
ceil(space_used/1024/1024) "Used_MB",
floor(space_limit/1024/1024) - ceil(space_used/1024/1024) "Available_MB",
round(ceil(space_used/1024/1024) / floor(space_limit/1024/1024) * 100) || '%' "Percent Used"
from v$recovery_file_dest
order by 1;
-- Check rolling patch mode and patch level
SELECT SYS_CONTEXT('SYS_CLUSTER_PROPERTIES', 'CLUSTER_STATE') FROM DUAL;
SELECT SYS_CONTEXT('SYS_CLUSTER_PROPERTIES', 'CURRENT_PATCHLVL') FROM DUAL;
-- Check the disk group attributes
SELECT SUBSTR(dg.name,1,12) AS diskgroup, SUBSTR(a.name,1,24) AS name,
SUBSTR(a.value,1,24) AS value, read_only FROM V$ASM_DISKGROUP dg,
V$ASM_ATTRIBUTE a WHERE dg.name = 'DATA' AND dg.group_number = a.group_number
AND a.name NOT LIKE '%template%';
-- Check size of disk group
SELECT name, type, total_mb, free_mb, required_mirror_free_mb, usable_file_mb FROM V$ASM_DISKGROUP;
-- Check candidate disk present for add disk
SELECT name, header_status, path, FAILGROUP FROM V$ASM_DISK WHERE path LIKE '%WAWPLOGDBP11A-B_DB_DATACOLL_DATA_PROD_0%';
-- Check the compatibility of a disk group
SELECT name AS diskgroup, substr(compatibility,1,12) AS asm_compat,
substr(database_compatibility,1,12) AS db_compat FROM V$ASM_DISKGROUP;
DISKGROUP ASM_COMPAT DB_COMPAT
--------- ---------- ----------
DATA 18.0.0.0.0 18.0.0.0.0
DATA1 18.0.0.0.0 18.0.0.0.0
-- Check disks present in disk groups
SELECT SUBSTR(dg.name,1,16) AS diskgroup, SUBSTR(d.name,1,16) AS asmdisk,
d.mount_status, d.state, SUBSTR(d.failgroup,1,16) AS failgroup
FROM V$ASM_DISKGROUP dg, V$ASM_DISK d WHERE dg.group_number = d.group_number;
DISKGROUP ASMDISK MOUNT_S STATE FAILGROUP
--------- ------- ------- ------ ---------
DATA DATA_01 CACHED NORMAL DATA_0008
DATA DATA_02 CACHED NORMAL DATA_0000
DATA DATA_03 CACHED NORMAL DATA_0004
-- Check stats of disks in disk groups
SELECT SUBSTR(dgs.name,1,10) AS diskgroup, SUBSTR(ds.name,1,10) AS asmdisk,
ds.mount_status, ds.state, ds.reads, ds.writes, ds.read_time, ds.write_time,
bytes_read, bytes_written
FROM V$ASM_DISKGROUP_STAT dgs, V$ASM_DISK_STAT ds
WHERE dgs.group_number = ds.group_number AND dgs.name = 'DATA';
-- Check disk group clients with V$ASM_CLIENT
SELECT dg.name AS diskgroup, SUBSTR(c.instance_name,1,12) AS instance,
SUBSTR(c.db_name,1,12) AS dbname, SUBSTR(c.SOFTWARE_VERSION,1,12) AS software,
SUBSTR(c.COMPATIBLE_VERSION,1,12) AS compatible
FROM V$ASM_DISKGROUP dg, V$ASM_CLIENT c
WHERE dg.group_number = c.group_number;
@@ -0,0 +1,74 @@
-- Viewing disk group attributes with V$ASM_ATTRIBUTE
SELECT dg.name AS diskgroup, SUBSTR(a.name,1,18) AS name,
SUBSTR(a.value,1,24) AS value, read_only FROM V$ASM_DISKGROUP dg,
V$ASM_ATTRIBUTE a WHERE dg.name = 'DATA'
AND dg.group_number = a.group_number;
-- Viewing the compatibility of a disk group with V$ASM_DISKGROUP
SELECT name AS diskgroup, compatibility AS asm_compat,
database_compatibility AS db_compat FROM V$ASM_DISKGROUP;
-- Viewing disks in disk groups with V$ASM_DISK
SELECT SUBSTR(d.name,1,16) AS asmdisk, d.mount_status, d.state,
dg.name AS diskgroup FROM V$ASM_DISKGROUP dg, V$ASM_DISK d
WHERE dg.group_number = d.group_number;
-- Viewing disk group clients with V$ASM_CLIENT
SELECT dg.name AS diskgroup, SUBSTR(c.instance_name,1,12) AS instance,
SUBSTR(c.db_name,1,12) AS dbname, SUBSTR(c.SOFTWARE_VERSION,1,12) AS software,
SUBSTR(c.COMPATIBLE_VERSION,1,12) AS compatible
FROM V$ASM_DISKGROUP dg, V$ASM_CLIENT c
WHERE dg.group_number = c.group_number;
-- Viewing Oracle ASM File Access Control information with V$ASM_USER
SELECT dg.name AS diskgroup, u.group_number, u.user_number, u.os_id, u.os_name
FROM V$ASM_DISKGROUP dg, V$ASM_USER u
WHERE dg.group_number = u.group_number AND dg.name = 'DATA';
-- Viewing Oracle ASM File Access Control information with V$ASM_USERGROUP
SELECT dg.name AS diskgroup, ug.group_number, ug.owner_number, u.os_name,
ug.usergroup_number, ug.name FROM V$ASM_DISKGROUP dg, V$ASM_USER u, V$ASM_USERGROUP ug
WHERE dg.group_number = ug.group_number AND dg.name = 'UATDATA'
AND ug.owner_number = u.user_number;
--Viewing Oracle ASM File Access Control information with V$ASM_USERGROUP_MEMBER
SELECT dg.name AS diskgroup, um.group_number, um.member_number, u.os_name,
um.usergroup_number, ug.name FROM V$ASM_DISKGROUP dg, V$ASM_USER u, V$ASM_USERGROUP_MEMBER um,
V$ASM_USERGROUP ug WHERE dg.group_number = um.group_number AND
dg.group_number = ug.group_number AND dg.group_number = u.group_number AND dg.name = 'DATA'
AND um.member_number = u.user_number AND um.usergroup_number = ug.usergroup_number;
-- Viewing Oracle ASM File Access Control information with V$ASM_FILE
SELECT dg.name AS diskgroup, a.name, f.permissions, f.user_number, u.os_name,
f.usergroup_number, ug.NAME FROM V$ASM_DISKGROUP dg, V$ASM_USER u, V$ASM_USERGROUP ug,
V$ASM_FILE f, V$ASM_ALIAS a WHERE dg.group_number = f.group_number AND
dg.group_number = u.group_number AND dg.group_number = ug.group_number AND
dg.name = 'FRA' AND f.usergroup_number = ug.usergroup_number AND f.user_number = u.user_number
-- Viewing Intelligent Data Placement information with V$ASM_FILE
SELECT dg.name AS diskgroup, f.file_number, f.primary_region, f.mirror_region, f.hot_reads,
f.hot_writes, f.cold_reads, f.cold_writes
FROM V$ASM_DISKGROUP dg, V$ASM_FILE f
WHERE dg.group_number = f.group_number and dg.name = 'DATA';
-- Viewing Intelligent Data Placement information with V$ASM_TEMPLATE
SELECT dg.name AS diskgroup, t.name, t.stripe, t.redundancy, t.primary_region, t.mirror_region
FROM V$ASM_DISKGROUP dg, V$ASM_TEMPLATE t
WHERE dg.group_number = t.group_number and dg.name = 'DATA' ORDER BY t.name;
@@ -0,0 +1,38 @@
ASM Rebalance diskgroup DATA on Production server (change)
-- 1.Log into ASM instance as sysasm.
-- 2.Check for imbalance status
SELECT g.name "Diskgroup",
100*(max((d.total_mb-d.free_mb)/d.total_mb)-min((d.total_mb-d.free_mb)/d.total_mb))/max((d.total_mb-d.free_mb)/d.total_mb) "Imbalance",
100*(max(d.total_mb)-min(d.total_mb))/max(d.total_mb) "Variance",
100*(min(d.free_mb/d.total_mb)) "MinFree",
count(*) "DiskCnt", g.type "Type"
FROM v$asm_disk d, v$asm_diskgroup g
WHERE d.group_number = g.group_number and d.group_number <> 0 and
d.state = 'NORMAL' and d.mount_status = 'CACHED'
GROUP BY g.name, g.type;
-- 3.ALTER DISKGROUP Z5RECO REBALANCE POWER 11;
-- 4.Check rebalance status:
select INST_ID, OPERATION, STATE, POWER, SOFAR, EST_WORK, EST_RATE, EST_MINUTES from GV$ASM_OPERATION where GROUP_NUMBER=2;
-- 5.Check for imbalance status
SELECT g.name "Diskgroup",
100*(max((d.total_mb-d.free_mb)/d.total_mb)-min((d.total_mb-d.free_mb)/d.total_mb))/max((d.total_mb-d.free_mb)/d.total_mb) "Imbalance",
100*(max(d.total_mb)-min(d.total_mb))/max(d.total_mb) "Variance",
100*(min(d.free_mb/d.total_mb)) "MinFree",
count(*) "DiskCnt", g.type "Type"
FROM v$asm_disk d, v$asm_diskgroup g
WHERE d.group_number = g.group_number and d.group_number <> 0 and
d.state = 'NORMAL' and d.mount_status = 'CACHED'
GROUP BY g.name, g.type;
-- 6.ALTER DISKGROUP Z5RECO REBALANCE POWER 0;
-- 7.View detailed description step 5
@@ -0,0 +1,234 @@
-------- Tablespace
column "Tablespace" format a30
column "Used MB" format 99,999,999
column "Free MB" format 99,999,999
column "Total MB" format 99,999,999
select
fs.tablespace_name "Tablespace",
(df.totalspace - fs.freespace) "Used MB",
fs.freespace "Free MB",
df.totalspace "Total MB",
round(100 * (fs.freespace / df.totalspace)) "Pct. Free"
from
(select
tablespace_name,
round(sum(bytes) / 1048576) TotalSpace
from
dba_data_files
group by
tablespace_name
) df,
(select
tablespace_name,
round(sum(bytes) / 1048576) FreeSpace
from
dba_free_space
group by
tablespace_name
) fs
where
df.tablespace_name = fs.tablespace_name
and df.tablespace_name = 'IND';
SELECT a.tablespace_name,
ROUND (((c.BYTES - NVL (b.BYTES, 0)) / c.BYTES) * 100,2) percentage_used,
c.BYTES / 1024 / 1024 space_allocated,
ROUND (c.BYTES / 1024 / 1024 - NVL (b.BYTES, 0) / 1024 / 1024,2) space_used,
ROUND (NVL (b.BYTES, 0) / 1024 / 1024, 2) space_free,
c.DATAFILES
FROM dba_tablespaces a,
( SELECT tablespace_name,
SUM (BYTES) BYTES
FROM dba_free_space
GROUP BY tablespace_name
) b,
( SELECT COUNT (1) DATAFILES,
SUM (BYTES) BYTES,
tablespace_name
FROM dba_data_files
GROUP BY tablespace_name
) c
WHERE b.tablespace_name(+) = a.tablespace_name
AND c.tablespace_name(+) = a.tablespace_name
ORDER BY NVL (((c.BYTES - NVL (b.BYTES, 0)) / c.BYTES), 0) DESC;
SELECT
ts.tablespace_name,
TO_CHAR(SUM(NVL(fs.bytes,0))/1024/1024, '99,999,990.99') AS MB_FREE
FROM
user_free_space fs,
user_tablespaces ts,
user_users us
WHERE
fs.tablespace_name(+) = ts.tablespace_name
AND ts.tablespace_name(+) = us.default_tablespace
GROUP BY
ts.tablespace_name;
column TABLESPACE_NAME format a30
column FILE_NAME format a40
column MAXBYTES format 999999999999
select TABLESPACE_NAME, FILE_NAME,AUTOEXTENSIBLE,MAXBYTES from dba_Data_files where TABLESPACE_NAME like 'PERFSTAT';
select TABLESPACE_NAME, MAX_SIZE
from dba_tablespaces
where tablespace_name = 'PERFSTAT'
order by tablespace_name;
select TABLESPACE_NAME, MAX_SIZE, NEXT_EXTENT from dba_tablespaces
TABLESPACE_NAME MAX_SIZE NEXT_EXTENT
------------------------------ ---------- -----------
TS_VDS_ALL_TRANS_202103_NU 2147483645
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 9999 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON
column TABLESPACE_NAME format a30
column FILE_NAME format a70
column MAXBYTES format 999999999999
select TABLESPACE_NAME, FILE_NAME, MAXBYTES
from DBA_DATA_FILES
where tablespace_name = 'PERFSTAT'
group by TABLESPACE_NAME, FILE_NAME, MAXBYTES;
ALTER DATABASE DATAFILE '+UATDATA/repo/datafile/omsfg_tbs.533' AUTOEXTEND ON MAXSIZE 30GB;
select TABLESPACE_NAME, sum(decode(AUTOEXTENSIBLE, 'YES', MAXBYTES, BYTES)) MAX_SIZE
from DBA_DATA_FILES
where tablespace_name = 'TS_VDS_ALL_TRANS_202103_NU'
group by TABLESPACE_NAME;
select tablespace_name, round(sum(bytes)/1024/1024, 2)
as free_space
from dba_free_space
where tablespace_name = 'TS_VDS_ALL_TRANS_202103_NU'
group by tablespace_name;
select df.tablespace_name "Tablespace",
totalusedspace "Used MB",
(df.totalspace - tu.totalusedspace) "Free MB",
df.totalspace "Total MB",
round(100 * ( (df.totalspace - tu.totalusedspace)/ df.totalspace)) "Pct. Free"
from (select tablespace_name,
round(sum(bytes) / 1048576) TotalSpace
from dba_data_files
group by tablespace_name) df,
(select round(sum(bytes)/(1024*1024)) totalusedspace,
tablespace_name
from dba_segments
group by tablespace_name) tu
where df.tablespace_name = tu.tablespace_name
and tu.tablespace_name = 'TS_VLD_BASEII_202106_NU'
select tablespace_name, max_size
from dba_tablespaces
/
select tablespace_name
, count(*) as no_of_data_files
, sum(maxblocks) as max_size
from dba_data_files
group by tablespace_name
/
select df.tablespace_name "Tablespace",
totalusedspace "Used MB",
(df.totalspace - tu.totalusedspace) "Free MB",
df.totalspace "Total MB",
round(100 * ( (df.totalspace - tu.totalusedspace)/ df.totalspace)) "Pct. Free"
from (select tablespace_name,
round(sum(bytes) / 1048576) TotalSpace
from dba_data_files
group by tablespace_name) df,
(select round(sum(bytes)/(1024*1024)) totalusedspace,
tablespace_name
from dba_segments
group by tablespace_name) tu
where df.tablespace_name = tu.tablespace_name
and df.totalspace <> 0;
-- dla partycji
select owner,
segment_name,
partition_name,
segment_type,
bytes / 1024/1024 "MB"
from dba_segments
where owner = <owner_name>;
-- sam status
SELECT TABLESPACE_NAME, STATUS, CONTENTS
FROM USER_TABLESPACES;
-- dodawanie plików do przestrzeni
ALTER TABLESPACE PERFSTAT
ADD DATAFILE '/db/AIGGBTER/datafiles/tbs_perfstat_02.dbf' SIZE 1G
AUTOEXTEND ON
NEXT 1G
MAXSIZE 30G;
-- kroki do dodania plików do przestrzeni
select instance_name,name,open_mode,status,startup_time,logins from v$database,v$instance;
select instance_name,name,open_mode,status,startup_time,logins from gv$instance, gv$database;
select file_name from dba_data_files;
select file_name from dba_data_files where tablespace_name IN ('EVENTS88');
col TABLESPACE_NAME for a15
col FILE_NAME for a45
select tablespace_name,file_name,FILE_ID, bytes/1048576 meg, status,autoextensible, maxbytes/1048576 maxmeg, increment_by FROM dba_data_files where tablespace_name= 'DEVRO_DATA';
select distinct status from v$backup;
-- sprawdzenie zajętości przestrzeni
set pages 300 lines 200
col tablespace_name for a20
col FILE_NAME for a60
select df.tablespace_name "Tablespace",
(df.totalspace - fs.freespace) "Used MB",
fs.freespace "Free MB",df.totalspace "Total MB",
round(100 * (fs.freespace / df.totalspace)) "Pct. Free"
from (select tablespace_name,
round(sum(bytes) / 1048576) TotalSpace
from dba_data_files group by tablespace_name) df,
(select tablespace_name, round(sum(bytes) / 1048576) FreeSpace
from dba_free_space group by tablespace_name) fs
where df.tablespace_name = fs.tablespace_name(+)
order by 5;
set pages 300 lines 200
col tablespace_name for a20
col FILE_NAME for a60
select df.tablespace_name "Tablespace",
(df.totalspace - fs.freespace) "Used MB",
fs.freespace "Free MB",df.totalspace "Total MB",
round(100 * (fs.freespace / df.totalspace)) "Pct. Free"
from (select tablespace_name,
round(sum(bytes) / 1048576) TotalSpace
from dba_data_files group by tablespace_name) df,
(select tablespace_name, round(sum(bytes) / 1048576) FreeSpace
from dba_free_space group by tablespace_name) fs
where df.tablespace_name = fs.tablespace_name(+)
and df.tablespace_name in ('NE_08_15')
order by 5;
@@ -0,0 +1,20 @@
-- -----------------------------------------------------------------------------------
-- File Name : https://oracle-base.com/dba/script_creation/tablespace_ddl.sql
-- Author : Tim Hall
-- Description : Creates the DDL for the specified tablespace, or all tablespaces.
-- Call Syntax : @tablespace_ddl (tablespace-name or all)
-- Last Modified: 16/03/2013 - Rewritten to use DBMS_METADATA
-- -----------------------------------------------------------------------------------
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON
BEGIN
DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, 'SQLTERMINATOR', true);
DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, 'PRETTY', true);
END;
/
SELECT DBMS_METADATA.get_ddl ('TABLESPACE', tablespace_name)
FROM dba_tablespaces
WHERE tablespace_name = DECODE(UPPER('&1'), 'ALL', tablespace_name, UPPER('&1'));
SET PAGESIZE 14 LINESIZE 100 FEEDBACK ON VERIFY ON