Exemple Import ORACLE

1

Suppression des connexions sur le schéma à charger

 sqlplus /nolog <<-END_SQL

        connect / as sysdba

        select  'DBADEV' "ADMIN",

                        '$schema' "SCHEMA",

                        substr(s.sid,1,3) "SID",

                        substr(s.serial#,1,6) "SERIAL",

                        substr(p.spid,1,7) "PROCESS"

        from v_\$SESSION s , v_\$PROCESS p

        where s.paddr = p.addr

        and type = 'USER'

        and s.username = UPPER('$schema')

        order by s.SID;

        END_SQL

 

sqlplus /nolog <<-END_SQL

        connect / as sysdba

        alter system disconnect session '$sid,$serial' immediate;

        END_SQL

 

Drop des objets en cascade

 -- Recupere les ordres de drop des tables

sqlplus $schema/$($KSH_ADM/decrypter $ALIAS_INSTANCE $schema) <<-END_SQL

        SPOOL /tmp/tmp1_$$.log;

        SET PAGESIZE 0;

        SELECT 'DROP TABLE ' || ' ' || OBJECT_NAME || ' CASCADE CONSTRAINTS ;'

        FROM USER_OBJECTS

        WHERE OBJECT_TYPE = 'TABLE';

        SPOOL OFF;

        END_SQL

        grep '^DROP TABLE' /tmp/tmp1_$$.log > /tmp/tmp1_$$.cmd

 

        sqlplus $schema/$($KSH_ADM/decrypter $ALIAS_INSTANCE $schema) <<-END_SQL

 

        -- Executer le drop des tables

        @/tmp/tmp1_$$.cmd;

 

        -- Recupere les ordres de drop des autres objets

        SPOOL /tmp/tmp1_$$.log;

        SET PAGESIZE 0;

        SELECT 'DROP ' || OBJECT_TYPE || ' ' || OBJECT_NAME || ' ;'

        FROM USER_OBJECTS

        WHERE OBJECT_TYPE != 'TABLE'

        ORDER BY OBJECT_TYPE;

        SPOOL OFF;

        END_SQL

        grep '^DROP ' /tmp/tmp1_$$.log > /tmp/tmp1_$$.cmd

 

        # Executer le drop des autres objets

        sqlplus $schema/$($KSH_ADM/decrypter $ALIAS_INSTANCE $schema) <<-END_SQL

        @/tmp/tmp1_$$.cmd;

        END_SQL

 

Création d’un pipe nommé

 /etc/mknod /tmp/mypipe$$ p

 

Détar dans le pipe nommé de l’export :

         gzip -d < $ORADUMP/$FICHIER_DUMP > /tmp/mypipe$$ &

 

Mise en place du TBS par défaut pour les données :

 

         sqlplus /nolog << EOF

                connect / as sysdba

                alter user ${schema} default tablespace ${TBS_DATA};

                alter user ${schema} account lock;

                exit

         EOF

 

 

Import des données

         imp \'/ as sysdba\' indexes=n rows=y ignore=y constraints=n fromuser=${SCHEMA_SOURCE} touser=${schema} file=/tmp/mypipe$$ log=$log_data

 

 

Détar dans le pipe nommé de l’export :

         gzip -d < $ORADUMP/$FICHIER_DUMP > /tmp/mypipe$$ &

 

 

Mise en place du TBS par défaut pour les indexes :

         sqlplus /nolog << EOF

                connect / as sysdba

                alter user ${schema} default tablespace ${TBS_IDX};

                alter user ${schema} account lock;

                exit

         EOF

 

Import des indexes

imp \'/ as sysdba\' indexes=y rows=n ignore=y constraints=y grants=n fromuser=${SCHEMA_SOURCE} touser=${schema} file=/tmp/mypipe

$$ log=$log_ind

 

 

Vérification des objets invalides