Escut Ajuntament de Blanes Ajuntament de Blanes

Idiomes

www.blanes.cat

ORACLE: IMPORT REPOS to PTF


Camí de tornada


Menú principal



ORACLE: IMPORT REPOS to PTF

Amb una consola d'oracle (per exemple D:\oracle\ora92\bin\sqlplus.exe )


    - Esborrar l'usuari destí
        drop user PTF cascade;
    això esborra l'usuari i totes les dades del tablespace TEST. Tarda pocs minuts.


      - ha de de tenir el tablespace destí com el default tablespace
        create user usr_desti identified by pass_desti default tablespace tbs_desti temporary tablespace tmp;
        create user PTF identified by PTF default tablespace TEST temporary tablespace TEMP;

      - NO ha de tenir el permís de resource, només de connect
        grant connect to usr_desti;
    grant connect to PTF;

      - ha de tenir quota il.limitada en el tablespace desti
        alter user usr_desti quota unlimited on tbs_desti
        alter user PTF quota unlimited on TEST;

       - no ha de tenir quota al tablespace origen
        alter user usr_desti quota 0k on tbs_origen
        alter user PTF quota 0k on REPOS;
ATENCIÓ: desde que vam separar la BD PROVES del SVRORA3 i el vam muntar en el SVORATEST hi ha un problema amb l'import del fitxer .dmp, i es que al generar la taula ACTOR (usuaris) la vol crear en el tablespace REPOS (que no existeix en aquest entorn) enlloc del TEST.
    Es va obrir la incidència a Tao U6050 on recomanaven que en el SVORATEST:
      Abans de fer l'Import CREAR la taula manualment en l'esquema PTF (amb Oracle Enterprise Manager):
        CREATE TABLE ACTOR (DBOID NUMBER(22, 0), ACTORCODE VARCHAR2(12) NOT NULL ENABLE, IDIOM NUMBER(5, 0), TITLE VARCHAR2(15), NAME VARCHAR2(15),FAMILYNAME VARCHAR2(24), SECONDNAME VARCHAR2(24), FULLNAME VARCHAR2(50) NOT NULL ENABLE,ROLESTS DATE, MAINROLE NUMBER(22, 0), DEFROLE NUMBER(22, 0),PARTY NUMBER(22, 0), PERSON NUMBER(22, 0), BELONGSTO NUMBER(22, 0),
        ACTIVE CHAR(1), VATACRONYM VARCHAR2(2), IDNUMBER VARCHAR2(15),CTRLDIGIT VARCHAR2(1), HOMEEMAIL VARCHAR2(200), BUSINESSEMAIL VARCHAR2(200),INACTIVEID NUMBER(22, 0), HOMEPHONE VARCHAR2(30), MOBILEPHONE VARCHAR2(30),OTHERPHONE VARCHAR2(30), HOMEFAX VARCHAR2(30), BUSINESSFAX VARCHAR2(30),BUSINESSPHONE VARCHAR2(30), SIGNIMG BLOB)
        PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
        STORAGE(INITIAL 40960 FREELISTS 1 FREELIST GROUPS 1)
        TABLESPACE "TEST" LOGGING NOCOMPRESS LOB (SIGNIMG)
        STORE AS (TABLESPACE "TEST" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10 NOCACHE STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1))

Si no podem crear la taula perquè l'ESQUEMA TEST no està definit, podem executar l'script de svroratest\temp\SCRIPTS\OK_IMPORT_REPOS_TO_PTF.cmd i cancelar-lo. Això fa que crei l'esquema i comenci la importació. Al aturar-lo podem crear la taula ACTOR segons la instrucció sql anteriror. (si es queixa que ja existeix la taula actor la esborrem amb un DROP TABLE ACTOR


      EXECUTAR l'script del servidor svroratest\temp\SCRIPTS\OK_IMPORT_REPOS_TO_PTF.cmd que executa l'instrucció D:\oracle\ora92\bin\IMP SYSTEM/MANAGERgt92@ORCL FILE=C:\temp\full_oracle_BLANES_GT.dmp LOG=C:\temp\IMPORT_PTF.LOG FROMUSER=REPOS TOUSER=PTF COMMIT=YES BUFFER=50000000 IGNORE=Y (el paràmetre Ignore=Y fa que si troba una taula creada ignora l'error i importa les dades d'aquesta)

    SI AIXÒ NO FUNCIONA, ÉS A DIR QUE CONTINUA DONAT L'ERROR I NO CREA LA TAULA, HAUREM DE CREAR-LA MANUALMENT I INSERIR LES DADES:

      Amb SQLPlus s'ha de passar l'scripts de creació de : @C:\temp\ActorTABLE\CREATETABLEACTOR.SQL

      Despres hem d'afegir les MATEIXES restriccions que té la taula ACTOR a REPOS:
      ==========================================

      Seguidament hem d'inserir els valors. Mitjançant TRANSLAT fem un export de la taula ACTOR de la BD REAL a fitxer, però hem tractar aquest fitxer amb UltraEdit perque funcioni correctament:

      Substituir/Reemplazar el símbol: ? per '' (dos vegades cometa simple)
      Eliminar la cadena de final de línia: %DATA%-4%
      Substituir/Reemplazar la cadena: { ts per to_date(
      Substituir/Reemplazar la cadena: } per ,'yyyy-mm-dd HH24:mi:ss') perque tracti la data correctament

      Un cop modificat ho podem salvar com c:\temp\ActorTABLE\ACTOROK.sql i carregarlo desde SQLPlus

      @c:\temp\ActorTABLE\ACTOROK.SQL

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

      Ara s'han de compilar les vistes que han fallat a l'import per culpa de la taula ACTOR

      I afegir les restriccions d'aquestes vistes
      @C:\temp\ActorTABLE\CREATERESTRICTIONS.SQL

  Sistema antic (PTF dins el mateix SVRORA3) Fer l'import com system/managergt92 O BE EXECUTAR l'script del servidor D:\backups\SCRIPTS\IMPORT_REPOS_TO_PTF.cmd que executa l'instrucció D:\oracle\ora92\bin\IMP SYSTEM/MANAGERgt92@ORCL FILE=D:\backups\EXPORTS\full_oracle_BLANES_GT.dmp LOG=D:\backups\LOGS\IMPORT_PTF.LOG FROMUSER=REPOS TOUSER=PTF COMMIT=YES BUFFER=50000000 S'ha de fer fora d'hores de treball ja que ralenteix força tot el servidor i dura més de quatre hores.
      - després de fer l'import. donar-li el permís de resource
        grant resource to PTF;




Scripts de creació de TableSpace:

create tableblespace nom_tablespace datafile ‘nom_sencer_del_datafile’ size xM;

Per exemple, per a crear un tablespace de nom TEST, i ubicar el seu datafile a ‘C:\ORADATA\TEST01.DBF’, amb un tamany inicial de 2 Gb seria :

create tableblespace TEST datafile ‘C:\ORADATA\TEST01.DBF’ size 2000M;







RECUPERAR ESPAI DE DISC (COMPACTAR BASE DE DADES)

A partir de que es van migrar els documents dels expedients WINFLOW a DOCUMENTUM (finals de 2011) el creixement en espai de disc del TableSpace REPOS s'ha estabilitzat considerablement. Tot i així, és convenient recuperar l'espai alliberat que continua ocupat per la fragmentació de la taula TPERSDOCITEM, taula que conté els documents generats en base de dades BUROWIN.

Oracle (almenys fins la versió 10) no té cap instrucció que compacti l'espai en disc de la base de dades. Fins i tot (segons el tècnic Robert Cunillera de TAO), l'acció de fer un EXPORT i un IMPORT no garantitza que es recuperi espai, ja que el fitxer de l'export conté la informació de l'espai que ha de reservar a cada taula quan es torni a fer l'IMPORT. A més resulta una tasca molt farragosa quan el que es pretén és recuperar l'espai d'una sola taula.


La taula on estaven els documents TPERSDOCITEM (després de migrar gran quantitat de documents a DOCUMENTUM) continuarà tenint reservat l'espai de disc dur, 20GB (encara que la buidéssim) Per "compactar-la" la millor solució és eliminar-la i crear-la de nou:
    -exportar la taula TPERSDOCITEM
    -descativar les restriccions (constraints)
    -eliminar la taula
    -crear la taula MANUALMENT. Això és important perquè la crei amb el tamany mínim de 5 blocks. Si es crea per script podria ser que li reservés el tamany anterior.
    -Importar la taula (amb paràmetre IGNORE=Y). Import necessita que la taula no existeixi, però amb aquest paràmetre ens saltem la restricció
    -Habilitar les constraints

Amb això alliberem l'espai de disc no utlitzat per TPERSDOCITEM perquè l'utilitzi l'Oracle per altres taules, però no es redueix el tamany del TABLESPACE.


REDUIR TAMANY DE TABLESPACE

Si el que volem és reduir el tamany del propi Tablespace hi ha dos maneres.

Reduint tamany d'un DATAFILE del TableSpace:
    Alter database datafile RESIZE tamany_inferior
    això funciona a mitges, Comença pel final del datafile i mentre troba blocks lliures comença a reduir, però a la que troba un ocupat. Si devant d'aquest hi ha p.ex. 20 gb lliures no es podrà reduir més.

Eliminant fitxers del TableSpace
    -Calcular espai lliure del Tablespace ( o espai utilitzat)
    -Exportar base de dades
    -Eliminar TableSpace complert.
    -Generar TableSpace amb el nombre de fitxers i tamany adequat
    -Importar la base de dades



Data de realització: | Data de la darrera actualització: 03/05/2013


© Ajuntament de Blanes | Protecció de dades | Avís Legal | Política de cookies

Passeig Dintre 29 | 17300 | Blanes Telèfon: 972 379 300 | Informació

Inici de la pàgina

© Ajuntament de Blanes | Passeig Dintre 29 | 17300 | Blanes | Telèfon: 972 379 300