forked from carlos-sierra/cscripts
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcs_recyclebin.sql
More file actions
128 lines (128 loc) · 2.8 KB
/
cs_recyclebin.sql
File metadata and controls
128 lines (128 loc) · 2.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
----------------------------------------------------------------------------------------
--
-- File name: cs_recyclebin.sql
--
-- Purpose: Recyclebin Content
--
-- Author: Carlos Sierra
--
-- Version: 2020/12/06
--
-- Usage: Execute connected to CDB or PDB.
--
-- Enter if Oracle Maintained tables are included
--
-- Example: $ sqlplus / as sysdba
-- SQL> @cs_recyclebin.sql
--
-- Notes: Developed and tested on 12.1.0.2.
--
---------------------------------------------------------------------------------------
--
@@cs_internal/cs_primary.sql
@@cs_internal/cs_cdb_warn.sql
@@cs_internal/cs_set.sql
@@cs_internal/cs_def.sql
@@cs_internal/cs_file_prefix.sql
--
DEF cs_script_name = 'cs_recyclebin';
--
ALTER SESSION SET container = CDB$ROOT;
--
SELECT '&&cs_file_prefix._&&cs_script_name.' cs_file_name FROM DUAL;
--
@@cs_internal/cs_spool_head.sql
PRO SQL> @&&cs_script_name..sql
@@cs_internal/cs_spool_id.sql
--
COL owner FOR A30 TRUNC;
COL object_name FOR A30 TRUNC;
COL original_name FOR A30 TRUNC;
COL ts_name FOR A30 TRUNC;
COL partition_name FOR A30 TRUNC;
COL can_undrop FOR A6 HEA 'CAN|UNDROP';
COL can_purge FOR A5 HEA 'CAN|PURGE';
COL related FOR 999999999 HEA 'PARENT|OBJECT';
COL base_object FOR 999999999 HEA 'BASE|OBJECT';
COL purge_object FOR 999999999 HEA 'PURGE|OBJECT';
COL gb FOR 999,990.000 HEA 'GB';
COL pdb_name FOR A30 TRUNC;
COL objects FOR 999,990;
--
BREAK ON REPORT;
COMPUTE SUM LABEL 'TOTAL' OF gb objects ON REPORT;
--
PRO
PRO CDB_RECYCLEBIN Details
PRO ~~~~~~~~~~~~~~~~~~~~~~
SELECT
r.owner
, r.object_name
, r.original_name
, r.operation
, r.type
, r.ts_name
, r.createtime
, r.droptime
, r.dropscn
, r.partition_name
, r.can_undrop
, r.can_purge
, r.related
, r.base_object
, r.purge_object
, r.space * t.block_size / 1e9 AS gb
, c.name AS pdb_name
FROM cdb_recyclebin r,
cdb_tablespaces t,
v$containers c
WHERE t.con_id = r.con_id
AND t.tablespace_name = r.ts_name
AND c.con_id = r.con_id
AND c.open_mode = 'READ WRITE'
ORDER BY
1, 2, 3, 4, 5, 6, 7, 8
/
PRO
PRO CDB_RECYCLEBIN Summary
PRO ~~~~~~~~~~~~~~~~~~~~~~
SELECT
r.owner
, r.type
, r.ts_name
, r.can_undrop
, r.can_purge
, SUM(r.space) * t.block_size / 1e9 AS gb
, COUNT(*) AS objects
, c.name AS pdb_name
FROM cdb_recyclebin r,
cdb_tablespaces t,
v$containers c
WHERE t.con_id = r.con_id
AND t.tablespace_name = r.ts_name
AND c.con_id = r.con_id
AND c.open_mode = 'READ WRITE'
GROUP BY
r.owner
, r.type
, r.ts_name
, r.can_undrop
, r.can_purge
, t.block_size
, c.name
ORDER BY
1, 2, 3, 4, 5
/
--
CLEAR BREAK COMPUTE COLUMNS;
--
PRO
PRO SQL> @&&cs_script_name..sql
--
@@cs_internal/cs_spool_tail.sql
--
ALTER SESSION SET CONTAINER = &&cs_con_name.;
--
@@cs_internal/cs_undef.sql
@@cs_internal/cs_reset.sql
--