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.
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:
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 |
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.