Reconstruir un banco de datos con tan sólo un dmp

Problema

Un banco de datos pequeño, en modo noarchivelog, se perdió.  Sin embargo, nos quedaron los archivos dmp de Data Pump Export.

Solución

Reconstruir ORADB con los exports de Data Pump:

  • Si se va a usar un servidor nuevo, siga las instrucciones para instalar un Oracle Home nuevo. Documentación de Oracle.
  • Instalar un Oracle Home nuevo.
  • Crear banco de datos nuevo.
  • Pasar los archivos de export al nuevo servidor (o montar el punto de almacenamiento con los archivos al servidor nuevo, con permiso para leer/escribir.)
  • Importar el archivo de dmp:
Corra este programa para importar el export

#CREATE or REPLACE DIRECTORY EXPORT_DIR as ”;
#GRANT READ, WRITE ON DIRECTORY EXPORT_DIR to SYSTEM;
$ORACLE_HOME/bin/sqlplus -s ‘/ as sysdba’ <<EOF
set pages 0 echo off feed off
CREATE or REPLACE DIRECTORY EXPORT_DIR as ”;
GRANT READ, WRITE ON DIRECTORY EXPORT_DIR to SYSTEM;
quit;
EOF

impdp system/*** directory=export_dir dumpfile=expdp_oradb_full_prd1_%U.dmp logfile=imp4oradb_full.log full=y exclude=schema:\” IN \(\’SYS\’, \’SYSTEM\’, \’SCOTT\’, \’ADAMS\’, \’JONES\’, \’CLARK\’, \’BLAKE\’, \’HR\’, \’OE\’, \’SH\’, \’PM\’, \’DEMO\’, \’ANONYMOUS\’, \’CTXSYS\’, \’DBSNMP\’, \’DIP\’, \’DMSYS\’, \’DSSYS\’, \’EXFSYS\’, \’LBACSYS\’, \’MDSYS\’, \’ORACLE_OCM\’, \’ORDPLUGINS\’, \’ORDSYS\’, \’PERFSTAT\’, \’TRACESVR\’, \’TMSYS\’, \’XDB\’, \’APEX_030200\’, \’APEX_PUBLIC_USER\’, \’APPQOSSYS\’, \’FLOWS_FILES\’, \’MDDATA\’, \’MGMT_VIEW\’, \’OLAPSYS\’, \’ORDDATA\’, \’OUTLN\’, \’OWBSYS\’, \’OWBSYS_AUDIT\’, \’SI_INFORMTN_SCHEMA\’, \’SYSMAN\’, \’WMSYS\’, \’SPATIAL_CSW_ADMIN_USR\’, \’SPATIAL_WFS_ADMIN_USR\’, \’XS$NULL\’, \’BI\’, \’IX\’ \) \”

Este import excluye los esquemas default de Oracle porque quiero importar los esquemas de la aplicación solamente.

Y como referencia, aquí sigue el programa que creó el export:
############################################################
#
#  ORADB export
#
############################################################
# ORADB@server1
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
ORACLE_SID=ORADB
#CREATE or REPLACE DIRECTORY dpump_dir1 como ‘/exports;
#GRANT READ, WRITE ON DIRECTORY dpump_dir1 to SYSTEM;
$ORACLE_HOME/bin/sqlplus -s ‘/ as sysdba’ <<EOF
set pages 0 echo off feed off
CREATE or REPLACE DIRECTORY dpump_dir1 as ‘/exports’;
GRANT READ, WRITE ON DIRECTORY dpump_dir1 to SYSTEM;
quit;
EOF

#Sacar el SCN
dbscn=`
$ORACLE_HOME/bin/sqlplus -s ‘/ as sysdba’ <<!
set pages 0 echo off feed off
select to_char(current_scn) from v\\$database;
quit;
!
`

# Obtener la fecha AñoMesDía (ejemplo: 20140925)
currentDate=`date +%Y%m%e`# Exportar todos los esquemas de la aplicación, excluyendo los esquemas default de Oracle
expdp \’/ as sysdba\’ directory=dpump_dir1 dumpfile=ORADB`echo $currentDate`_%U.dmp logfile=ORADB`echo $currentDate`.log full=y parallel=2 filesize=2G flashback_scn=`echo $dbscn` exclude=schema:\” IN \(\’SYS\’, \’SYSTEM\’, \’SCOTT\’, \’ADAMS\’, \’JONES\’, \’CLARK\’, \’BLAKE\’, \’HR\’, \’OE\’, \’SH\’, \’PM\’, \’DEMO\’, \’ANONYMOUS\’, \’CTXSYS\’, \’DBSNMP\’, \’DIP\’, \’DMSYS\’, \’DSSYS\’, \’EXFSYS\’, \’LBACSYS\’, \’MDSYS\’, \’ORACLE_OCM\’, \’ORDPLUGINS\’, \’ORDSYS\’, \’PERFSTAT\’, \’TRACESVR\’, \’TMSYS\’, \’XDB\’, \’APEX_030200\’, \’APEX_PUBLIC_USER\’, \’APPQOSSYS\’, \’FLOWS_FILES\’, \’MDDATA\’, \’MGMT_VIEW\’, \’OLAPSYS\’, \’ORDDATA\’, \’OUTLN\’, \’OWBSYS\’, \’OWBSYS_AUDIT\’, \’SI_INFORMTN_SCHEMA\’, \’SYSMAN\’, \’WMSYS\’, \’SPATIAL_CSW_ADMIN_USR\’, \’SPATIAL_WFS_ADMIN_USR\’, \’XS$NULL\’, \’BI\’, \’IX\’
\) \”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s