You are on page 1of 7

REORG ACTIVITY PROD

PRE REORG STEPS:

"PRODICS"."XXFMICS_DRAWING_ATTACHMENTS"
"XXFMIT"."XXFMCSD_COMP_ATTACHMENT"

desc XXFMIT.XXFMCSD_COMP_ATTACHMENT;

create table corrupt_lobs_xxfmit1 (corrupt_rowid rowid, err_num number);

declare
error_1578 exception;
error_1555 exception;
error_22922 exception;
pragma exception_init(error_1578,-1578);
pragma exception_init(error_1555,-1555);
pragma exception_init(error_22922,-22922);
num number;
begin
for cursor_lob in (select rowid r, &&lob_column from &table_owner..&table_with_lob)
loop
begin
num := dbms_lob.instr (cursor_lob.&&lob_column, hextoraw ('889911')) ;
exception
when error_1578 then
insert into corrupt_lobs_xxfmit1 values (cursor_lob.r, 1578);
commit;
when error_1555 then
insert into corrupt_lobs_xxfmit1 values (cursor_lob.r, 1555);
commit;
when error_22922 then
insert into corrupt_lobs_xxfmit1 values (cursor_lob.r, 22922);
commit;
end;
end loop;
end;
/

select * from corrupt_lobs_xxfmit1;

update XXFMIT.XXFMCSD_COMP_ATTACHMENT set ATTACHMENT=empty_blob()


where rowid in (select corrupt_rowid from corrupt_lobs_xxfmit);

create table corrupt_lobs_xxfmit2 (corrupt_rowid rowid, err_num number);

select * from corrupt_lobs_xxfmit2;

Result has to be no row selected which indicates the corruption has been removed.

Like same do it for PRODICS.XXFMICS_DRAWING_ATTACHMENTS


Take ddl for schema’s under XBOL_TS_TX_DATA

XXFMRE
XXFMCPS
XXFMCPS_VORTEX
SNDB
LEXICON
PRODICS
XXKTCS
SNSEG
XXALFAINFO
XXFMMFG_BARCODE
BOLINF
XXFMCPSAUTO
XXFINLY
XXFMIT
XXFMCLICK
XXIRIS
FMPCMS
EXCISE
XXFMPROJ
FDMS
TSC
PDM
XXFM_SCADA
XXEMS

Create directory for dump files

$mkdir -p /______/DUMP_FILES

SQL>create or replace directory BKPDP as '/_____/DUMP_FILES';

Take tablespace size:


SQL>@ts_used

Take Disk space use:


$ df -h

Take DB Size
SQL> @db_size

Drop backup tables


SQL>/home/oraprod/Reorg/drop_bkp_table.sql

SQL> truncate table XXFMIT.XXFMCST_FG_PRODUCT_EXPLODE;


Connect as PDB take invalid and valid object count for all schema’s.

VALID
SQL>select owner,object_type, count(*)
from dba_objects
where owner in
('BOLINF','XXEMS','XXFMIT','XXFMRE','XXFMCPS','XXFMCPS_VORTEX','SNDB','LE
XICON','PRODICS','XXKTCS','SNSEG','XXALFAINFO','XXFMMFG_BARCODE','XXF
MCPSAUTO','XXFINLY','XXFMCLICK','XXIRIS','FMPCMS','EXCISE','XXFMPROJ','FD
MS','TSC','PDM','XXFM_SCADA')
and status='VALID' group by owner,object_type order by 1 asc;

INVALID
SQL>select owner,object_type, count(*)
from dba_objects
where owner in
('BOLINF','XXEMS','XXFMIT','XXFMRE','XXFMCPS','XXFMCPS_VORTEX','SNDB','LE
XICON','PRODICS','XXKTCS','SNSEG','XXALFAINFO','XXFMMFG_BARCODE','XXF
MCPSAUTO','XXFINLY','XXFMCLICK','XXIRIS','FMPCMS','EXCISE','XXFMPROJ','FD
MS','TSC','PDM','XXFM_SCADA')
and status='INVALID' group by owner,object_type order by 1 asc;

REORG ACTIVITY

Export Schemas using parfile

$expdp parfile=expdp_parfile.par

userid=system/Fm5yqaxcftOpX1@PROD
directory=BKPDP
dumpfile=expdp_CUST_SCHEMA_PROD_%U.dmp
logfile=expdp_CUST_SCHEMA_PROD.log
filesize=30G
parallel=6
schemas=XXFMIT,XXFMRE,XXFMCPS,XXFMCPS_VORTEX,SNDB,LEXICON,PRODI
CS,XXKTCS,SNSEG,XXALFAINFO,XXFMMFG_BARCODE,XXFMCPSAUTO,XXFINL
Y,XXFMCLICK,XXIRIS,FMPCMS,EXCISE,XXFMPROJ,FDMS,TSC,PDM,XXFM_SCA
DA,BOLINF,XXEMS
metrics=y

Once the export has been taken drop all the users.
Drop all schemas

SQL>@drop_users.sql

drop user XXFMIT cascade;


drop user XXFMRE cascade;
drop user XXFMCPS cascade;
drop user XXFMCPS_VORTEX cascade;
drop user SNDB cascade;
drop user LEXICON cascade;
drop user PRODICS cascade;
drop user XXKTCS cascade;
drop user SNSEG cascade;
drop user XXALFAINFO cascade;
drop user XXFMMFG_BARCODE cascade;
drop user XXFMCPSAUTO cascade;
drop user XXFINLY cascade;
drop user XXFMCLICK cascade;
drop user XXIRIS cascade;
drop user FMPCMS cascade;
drop user EXCISE cascade;
drop user XXFMPROJ cascade;
drop user FDMS cascade;
drop user TSC cascade;
drop user PDM cascade;
drop user XXFM_SCADA cascade;
drop user BOLINF cascade;
drop user XXEMS cascade;

332,325,330,331 -----> These datafiles have to be added in sql files

RESIZE DATAFILES 1GB:


SQL>@df_resize_1g.sql

alter database datafile 226 resize 1g;


alter database datafile 227 resize 1g;
alter database datafile 228 resize 1g;
alter database datafile 229 resize 1g;
alter database datafile 230 resize 1g;
alter database datafile 231 resize 1g;
alter database datafile 232 resize 1g;
alter database datafile 207 resize 1g;
alter database datafile 205 resize 1g;
alter database datafile 204 resize 1g;
alter database datafile 203 resize 1g;
alter database datafile 275 resize 1g;
alter database datafile 278 resize 1g;
alter database datafile 279 resize 1g;
alter database datafile 282 resize 1g;
alter database datafile 305 resize 1g;
alter database datafile 313 resize 1g;
alter database datafile 268 resize 1g;
alter database datafile 269 resize 1g;
alter database datafile 270 resize 1g;
alter database datafile 272 resize 1g;
alter database datafile 273 resize 1g;
alter database datafile 274 resize 1g;
alter database datafile 284 resize 1g;
alter database datafile 290 resize 1g;
alter database datafile 298 resize 1g;
alter database datafile 306 resize 1g;
alter database datafile 308 resize 1g;
alter database datafile 309 resize 1g;
alter database datafile 225 resize 1g;
alter database datafile 325resize 1g;
alter database datafile 332resize 1g;

RESIZE DATAFILES 30GB:


SQL>@df_resize_30g.sql
alter database datafile 233 resize 30g;
alter database datafile 234 resize 30g;
alter database datafile 235 resize 30g;
alter database datafile 236 resize 30g;
alter database datafile 237 resize 30g;
alter database datafile 238 resize 30g;
alter database datafile 239 resize 30g;
alter database datafile 240 resize 30g;
alter database datafile 241 resize 30g;
alter database datafile 242 resize 30g;
alter database datafile 243 resize 30g;
alter database datafile 244 resize 30g;
alter database datafile 245 resize 30g;
alter database datafile 246 resize 30g;
alter database datafile 247 resize 30g;
alter database datafile 307 resize 30g;
alter database datafile 250 resize 30g;
alter database datafile 208 resize 30g;
alter database datafile 209 resize 30g;
alter database datafile 210 resize 30g;
alter database datafile 211 resize 30g;
alter database datafile 212 resize 30g;
alter database datafile 213 resize 30g;
alter database datafile 214 resize 30g;
alter database datafile 215 resize 30g;
alter database datafile 216 resize 30g;
alter database datafile 217 resize 30g;
alter database datafile 218 resize 30g;
alter database datafile 219 resize 30g;
alter database datafile 220 resize 30g;
alter database datafile 221 resize 30g;
alter database datafile 222 resize 30g;
alter database datafile 223 resize 30g;
alter database datafile 224 resize 30g;
alter database datafile 206 resize 30g;
alter database datafile 202 resize 30g;
alter database datafile 248 resize 30g;
alter database datafile 249 resize 30g;
alter database datafile 262 resize 30g;
alter database datafile 263 resize 30g;
alter database datafile 264 resize 30g;
alter database datafile 330 resize 30g;
alter database datafile 331 resize 30g;

IMPORT ALL SCHEMAS:

$impdp parfile=impdp_parfile.par

userid=system/Fm5yqaxcftOpX1@PROD
directory=BKPDP
dumpfile=expdp_CUST_SCHEMA_PROD_%U.dmp
logfile=impdp_CUST_SCHEMA_PROD.log
metrics=y
parallel=6

Grant access to schemas:


SQL>/home/oraprod/Reorg/NOV30/grant1.sql
SQL>/home/oraprod/Reorg/NOV30/grant2.sql
SQL>/home/oraprod/Reorg/NOV30/grant3.sql
SQL>/home/oraprod/Reorg/NOV30/dev_grants.sql
SQL>/home/oraprod/Reorg/NOV30/grant_md.sql
SQL>/home/oraprod/Reorg/PROD_CUST_GRT_MD.sql

SQL>/home/oraprod/Reorg/Prod_grant1.sql
SQL>/home/oraprod/Reorg/Prod_grant2.sql
SQL>/home/oraprod/Reorg/Prod_grant3.sql
SQL>/home/oraprod/Reorg/Prod_grant4.sql
SQL>/home/oraprod/Reorg/Prod_grant5.sql

Prod_grant1.sql,Prod_grant2.sql,Prod_grant3.sql,Prod_grant4.sql,Prod_grant5.sql ------->

These ddl have to take before performing Reorg. I have created 5 sql files inorder to
accommodate ddl of 5 schemas in each sql file.
POST REORG CHECKS

CHECK VALID INVALID OBJECTS:

select owner,object_type, count(*)


from dba_objects
where owner in
('BOLINF','XXEMS','XXFMIT','XXFMRE','XXFMCPS','XXFMCPS_VORTEX','SNDB','LE
XICON','PRODICS','XXKTCS','SNSEG','XXALFAINFO','XXFMMFG_BARCODE','XXF
MCPSAUTO','XXFINLY','XXFMCLICK','XXIRIS','FMPCMS','EXCISE','XXFMPROJ','FD
MS','TSC','PDM','XXFM_SCADA')
and status='VALID' group by owner,object_type order by 1 asc;

select owner,object_type, count(*)


from dba_objects
where owner in
('BOLINF','XXEMS','XXFMIT','XXFMRE','XXFMCPS','XXFMCPS_VORTEX','SNDB','LE
XICON','PRODICS','XXKTCS','SNSEG','XXALFAINFO','XXFMMFG_BARCODE','XXF
MCPSAUTO','XXFINLY','XXFMCLICK','XXIRIS','FMPCMS','EXCISE','XXFMPROJ','FD
MS','TSC','PDM','XXFM_SCADA')
and status='INVALID' group by owner,object_type order by 1 asc;

Compile invalid objects:

$cd $ORACLE_HOME/rdbms/admin
!sq
Alter session set container=PROD;
SQL>@utlrp.sql

SQL> select count(*) from dba_objects where status='INVALID';

Take tablespace size:

SQL>@ts_used

Disk space usage


$df -h

DB SIZE
SQL>@db_size

You might also like