Skripter til dataflytting

 

Skripter for datahåndtering

Data kan flyttes til riktige tablespaces ifølge applikasjon/data klassifiseringen og tablespace design ved hjelp av skripter og stored prosedyrer under USD_METADATA skjema. Skriptene gjør det mulig å flytte data for enhver skjema ONLINE (de fleste LONG –type kolonner har blitt ryddet opp i USDPROD), redefinere storage parametre (imf tabellen storage_par), flytte LOB-segmenter og data for arkivering (tabellen lagring) etter tablespace design (tabell med tablespace skjema). Under replasseringen må Context indekses droppes og opprettes på nytt – dette utføres via tilsvarende skripter for Context indekser.

Alle skripter for å flytte data kan deles vilkårlig i to grupper:

Her er det følgende av interesse:

Rettigheter til execute skriptene

Skriptene bygges på informasjon fra følgende views og tabeller:

SYS: dba_users, dba_indexes, dba_segments, dba_tables, dba_lobs;

CTXSYS: ctx_indexes, ctx_index_values, ctx_preferences

USD_METADATA: storage_par, opprydning_skjema_steg, tablespace_skjema, lagring

USD_METADATA skal ha SELECT rettigheter til SYS’ OG CTXSYS’ views til at skriptene kunne kjøres.

 

Hvor skriptene ligger

Det er på hedvig, i katalog /hf/hedvig/d1/utvikling/oracle/opprydding hvor skriptene ligger. Listen over skripter for flytting av store mengder av skjemaer:

Hvordan skriptene fungerer

Skriptet skjema_move_pck2_call.sql startes og danner (spooler) et metaskript skjema_move5.lst som samler alt informasjon om flytting av et skjema.

Input data: skjema_navn på et skjema som skal flyttes og y/n hvor

Output data:

Script

Danner

Eksekutes

skjema_pck_move_call.sql

metaskript skjema_move2.lst

grantes quotaes

alter session ..

.. andre skripter i rekkefølge

Et skript i metaskript (steg #1)

Danner skript to execute

Funksjonalitet

Alter session skript ..

Execute

Til operasjoner over Conext indekser

Grant quotaes script …

Execute

Rettigheter til data flytting

Context index script, om de eksisterer

Drop Context indekser om de eksisiterer

 

skjema_create_valid2_call.sql

skjema_spool_valid_estimate.sql

Estimate tabeller validate indekser

skjema_create_lob_move_call.sql

skjema_create_lob_move_call.sql

Flytte/arkivere LOB

skjema_create_move2_call.sql

skjema_spool_table_move.sql

Flytte/rebygge/arkivere

tabeller og indekser

skjema_create_valid2_call.sql

skjema_spool_valid_estimate.sql

Estimate tabeller, validate indekser

 

Create Context indekser

 

Et skript metaskript (steg #2)

Danner skript to execute

Funksjonalitet

Alter session skript ..

Execute

Til operasjoner over Context indekser

Grant quotaes script …

Execute

Rettigheter til data flytting

Context index script, om de eksisterer

Drop Conetx indekser om de eksisiterer

 

skjema_create_valid2_call.sql

skjema_spool_valid_estimate.sql

Estimate tabeller validate indekser

skjema_create_move2_call.sql

skjema_spool_table_move.sql

Flytte/rebygge

tabeller og indekser

skjema_create_valid2_call.sql

skjema_spool_valid_estimate.sql

Estimate tabeller, validate indekser

 

Create Context indekser

 

 

Exempel på et metaskript:

Hvilket skjemanavn? USD_LEKS_SETLARK

Er dette første steg i opprydning av FAG_DATA/INDEX (y/n)? y

old 3: v_owner varchar2(200) := upper('&p_owner');

new 3: v_owner varchar2(200) := upper('USD_LEKS_SETLARK');

old 4: v_steg varchar2(200) := upper('&p_steg');

new 4: v_steg varchar2(200) := upper('y');

=====================================================

-- THE OUTPUT IS SPOOLED IN: skjema_move2.lst

=====================================================

alter session set nls_language= 'American';

alter session set nls_date_language = 'American';

--------------------------------------

-- QUOTA ON TABLESPACES .......

-- TABLESPACES:

alter user USD_LEKS_SETLARK quota unlimited on LEKS_DATA_ARKIV;

alter user USD_LEKS_SETLARK quota unlimited on LEKS_LOB2;

alter user USD_LEKS_SETLARK quota unlimited on LEKS_LOB_ARKIV2;

alter user USD_LEKS_SETLARK quota unlimited on RYDD_DATA;

alter user USD_LEKS_SETLARK quota unlimited on RYDD_INDEKS;

==============================================

-- DOMAIN INDEXES ......

-- DOMAIN INDEX DDL ...

--total antall indexes i db = 60;

--NO DOMAIN INDEXES (FOR THE OWNER)

==============================================

-- INDEX VALIDATION AND TABLES ESTIMATION ....

--RUN followed script to create the validation/estim. script:

@skjema_create_valid2_call.sql

--RUN the created validation/estim. script:

@skjema_spool_valid_estimate.sql

==============================================

--- LOB + LOB_TABLES MOVING ---- M A N U A L L Y ---

-- do not forget ONLY ONE LARGE ROLLBACK SEGMENT (RL01) , other - OFFLINE --

--RUN followed script to create a lob moving script:

@skjema_create_lob_move_call.sql

--RUN the created lob moving script:

@skjema_spool_lob_move.sql

--==============================================

-- TABLES AND INDEXES MOVING ....

--RUN followed script to create the idexes/tables moving script:

@skjema_create_move2_call.sql

--RUN the created moving script:

@skjema_spool_table_move.sql

--==============================================

-- INDEX VALIDATION AND TABLES ESTIMATION ....

--RUN followed script to create the validation/estim. script:

@skjema_create_valid2_call.sql

--RUN the created validation/estim. script:

@skjema_spool_valid_estimate.sql

DO NOT FORGET TO RECREATE DOMAIN INDEX ==> ScRIPT IS AT THE BEGINNING !!

=====================================================

-- THE OUTPUT IS SPOOLED IN: skjema_move5.lst

=====================================================

-- TO CALL THE SCRIPT ONCE MORE ...

@skjema_move_pck2_call.sql

=====================================================

PL/SQL procedure successfully completed.