Está en la página 1de 10

Prácticas para la Lección 17

Antecedentes: hace poco, le han planteado una serie de preguntas acerca del esquema
HR. Para analizarlas, sin interferir en las actividades diarias, decide utilizar el asistente de
pump de datos para exportar el esquema HR a un archivo. Cuando realiza la exportación,
no está seguro de la base de datos en la que va a importar este esquema.

Al final, descubre que la única base de datos en la que sus superiores aprueban una
importación, es orcl. De modo que realiza la importación con el asistente de pump de
datos, y reasigna el esquema HR al esquema DBA1.

A continuación, recibe dos solicitudes de carga de datos para las que decide utilizar
SQL*Loader.

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Oracle Database 11g: Taller de Administración I A-137
Práctica 17-1: Movimiento de Datos mediante Pump de Datos
En esta práctica, primero otorgará al usuario DBA1 los privilegios necesarios para
acceder al directorio DATA_PUMP_DIR. A continuación, exportará el esquema HR para
poder importar luego las tablas que desea en el esquema DBA1. En la práctica, importará
sólo la tabla EMPLOYEES en este momento.
1) Primero, es necesario otorgar al usuario DBA1 los privilegios necesarios en el
directorio DATA_PUMP_DIR y crear los usuarios y roles necesarios para esta
práctica. Existe un script que realiza todos los pasos necesarios para configurar el
entorno de esta práctica.
a) Revise el script lab_17_01_01.sql, que otorga al usuario DBA1 los
privilegios en el directorio DATA_PUMP_DIR y realiza otras configuraciones en
el entorno, ejecutando lo siguiente en el directorio labs:
$ cat lab_17_01_01.sql

b) El script lab_17_01_01.sh llama al script lab_17_01_01.sql. Ejecute el


script lab_17_01_01.sh ahora:
$ ./lab_17_01_01.sh
Create HR_TEST tablespace, HR_TEST_ROLE role, the HR_TEST
users

m y
Tablespace created.

d e
User created.
c a
Role created.
e A
c l
Grant succeeded.
r a
O ly
Grant succeeded.

l & On
Table altered.
n a e
Grant succeeded.
t e r U s
I n
l e
Grant succeeded.

c
Ora You may now login as: hr_test/oracle_4U
spool off
$

Oracle Database 11g: Taller de Administración I A-138


Práctica 17-1: Movimiento de Datos mediante Pump de Datos
(continuación)
2) Conéctese a Enterprise Manager como usuario DBA1 con el rol Normal y exporte el
esquema HR.
a) Llame a Enterprise Manager como usuario DBA1 con el rol Normal para la base
de datos orcl. El valor de Connect As debe ser Normal.
b) Seleccione Data Movement > Move Row Data > Export to Export Files.
c) Seleccione Schemas, introduzca oracle en Username y Password, elija Save as
Preferred Credential y haga clic en Continue.
d) En la página Export: Schemas, haga clic en Add, seleccione el esquema HR y, a
continuación, haga clic en el botón Select.
e) Puede ver que HR ahora aparece en la lista de esquemas. Haga clic en Next.

f) En la página Export: Options, seleccione DATA_PUMP_DIR en la lista


m y
desplegable Directory Objects e introduzca hrexp.log en Log File.
d e
c a
e A
c l
a
g) Revise las opciones avanzadas (pero no las cambie) y haga clic en Next.
r
O ly
h) En la página Export: Files, seleccione DATA_PUMP_DIR en la lista desplegable
Directory Object, introduzca HREXP%U.DMP en File Name y, a continuación,
haga clic en Next.
l & On
n a e
t e r U s
I n
c l e
r a
O
Oracle Database 11g: Taller de Administración I A-139
Práctica 17-1: Movimiento de Datos mediante Pump de Datos
(continuación)
i) En la página Export: Schedule, introduzca hrexp en Job Name y Export HR
schema en Description, acepte que el inicio del trabajo sea inmediato y haga clic
en Next.

j) En la página Export: Review, haga clic en Show PL/SQL y revise el PL/SQL que
le ha ayudado a crear el asistente de exportación.
k) Haga clic en Submit Job para enviar el trabajo.
l) Haga clic en el enlace al trabajo HREXP para supervisar el progreso. Refresque el
explorador hasta que vea que el trabajo ha terminado correctamente y vaya al
siguiente paso.
m y
d e
c a
e A
c l
r a
3) Ahora, importe la tabla EMPLOYEES del esquema HR exportado al esquema DBA1.
Para apreciar la interfaz de línea de comandos, puede utilizar la utilidad impdp en la
O ly
línea de comandos para importar la tabla EMPLOYEES al esquema de usuario DBA1.

l & On
a) Asegúrese de que el entorno está configurado para la base de datos orcl
ejecutando oraenv.

n a e
$ . oraenv

e r s
ORACLE_SID = [oracle] ? orcl
t
The Oracle base for
U
I n
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 is
/u01/app/oracle
$

c l e
r a
O
Oracle Database 11g: Taller de Administración I A-140
Práctica 17-1: Movimiento de Datos mediante Pump de Datos
(continuación)
b) Introduzca toda la cadena de comandos siguiente. No pulse [Intro] hasta llegar al
final del comando:
impdp dba1/oracle_4U DIRECTORY=data_pump_dir
DUMPFILE=HREXP01.DMP REMAP_SCHEMA=hr:dba1
TABLES=hr.employees LOGFILE=empimport.log
$ impdp dba1/oracle_4U DIRECTORY=data_pump_dir
DUMPFILE=HREXP01.DMP REMAP_SCHEMA=hr:dba1 TABLES=hr.employees
LOGFILE=empimport.log

Import: Release 11.2.0.1.0 - Production on Thu Jul 16 00:46:18


2009

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All


rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release


11.2.0.1.0 - Production
With the Partitioning, Automatic Storage Management, OLAP,
Data Mining
and Real Application Testing options
Master table "DBA1"."SYS_IMPORT_TABLE_01" successfully
loaded/unloaded
Starting "DBA1"."SYS_IMPORT_TABLE_01": dba1/********
DIRECTORY=data_pump_dir DUMPFILE=HREXP01.DMP
REMAP_SCHEMA=hr:dba1 TABLES=hr.employees LOGFILE=empimport.log
Processing object type SCHEMA_EXPORT/TABLE/TABLE
m y
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
. . imported "DBA1"."EMPLOYEES" 16.81
d e
KB 107 rows
Processing object type
SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
c a
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type
e A
Processing object type
c l
SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

r a
SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/COMMENT
Processing object type
O ly
SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

error:
l & On
ORA-39083: Object type REF_CONSTRAINT failed to create with

Failing sql is:


n a e
ORA-00942: table or view does not exist

e r
ALTER TABLE "DBA1"."EMPLOYEES" ADD CONSTRAINT "EMP_JOB_FK"
s
FOREIGN KEY ("JOB_ID") REFERENCES "DBA1"."JOBS" ("JOB_ID")
ENABLE
t U
I n
ORA-39083: Object type REF_CONSTRAINT failed to create with

e
error:

l
ORA-00942: table or view does not exist

c
Failing sql is:

r a
ALTER TABLE "DBA1"."EMPLOYEES" ADD CONSTRAINT "EMP_DEPT_FK"
FOREIGN KEY ("DEPARTMENT_ID") REFERENCES "DBA1"."DEPARTMENTS"

O ("DEPARTMENT_ID") ENABLE

Oracle Database 11g: Taller de Administración I A-141


Práctica 17-1: Movimiento de Datos mediante Pump de Datos
(continuación)
Processing object type SCHEMA_EXPORT/TABLE/TRIGGER
ORA-39082: Object type TRIGGER:"DBA1"."SECURE_EMPLOYEES"
created with compilation warnings
ORA-39082: Object type TRIGGER:"DBA1"."SECURE_EMPLOYEES"
created with compilation warnings
ORA-39082: Object type TRIGGER:"DBA1"."UPDATE_JOB_HISTORY"
created with compilation warnings
ORA-39082: Object type TRIGGER:"DBA1"."UPDATE_JOB_HISTORY"
created with compilation warnings
Processing object type
SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Job "DBA1"."SYS_IMPORT_TABLE_01" completed with 6 error(s) at
00:46:45
Nota: puede aparecer errores sobre la no creación de restricciones y disparadores
porque sólo se ha importado la tabla EMPLOYEES y no todos los objetos del
esquema. Estos errores son normales.
c) También puede verificar que la importación se ha realizado correctamente
consultando el archivo log.
$ cat /u01/app/oracle/admin/orcl/dpdump/empimport.log
4) Para confirmar que se ha cargado la tabla EMPLOYEES en el esquema DBA1, conéctese a
SQL*Plus como usuario DBA1 y seleccione datos de la tabla EMPLOYEES.
a) Conéctese a SQL*Plus como usuario DBA1.
m y
si aún no lo ha hecho en la ventana de terminal.
d e
Nota: recuerde utilizar oraenv para definir el entorno en la base de datos orcl

$ sqlplus dba1

c a
SQL*Plus: Release 11.1.0.6.0 - Production on Sun Aug 31
16:54:32 2008

e A
Copyright (c) 1982, 2007, Oracle.
c l All rights reserved.

Enter Password:
r a
Connected to:
O ly
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 -
Production
l & On
With the Partitioning, OLAP, Data Mining and Real Application
Testing options

n a e
SQL>

t e r U s
b) Seleccione un recuento de las filas de la tabla EMPLOYEES del esquema DBA1

I n
para verificar la importación.

l e
SQL> select count(*) from employees;

cCOUNT(*)

r a----------
107

O SQL>

Oracle Database 11g: Taller de Administración I A-142


Práctica 17-2: Carga de Datos con SQL*Loader
En esta práctica, cargará datos en la tabla PRODUCT_MASTER utilizando SQL*Loader
por medio de Enterprise Manager Database Control. Se proporcionan los archivos de
datos y control.
1) Como usuario DBA1, utilice Enterprise Manager para cargar el archivo de datos
lab_17_02_01.dat. Este archivo contiene filas de datos de la tabla
PRODUCT_MASTER. El archivo lab_17_02_01.ctl es el archivo de control de
esta carga.
Opcionalmente, consulte los archivos lab_17_02_01.dat y
lab_17_02_01.ctl para obtener más información sobre su estructura antes de
continuar.
a) Llame a Enterprise Manager como usuario DBA1 con el rol Normal para la base
de datos orcl.
b) Seleccione Data Movement > Move Row Data > Load Data from User Files.
c) Haga clic en Use Existing Control File. Si aún no lo ha hecho, introduzca
oracle en Username y Password, haga clic en Save as Preferred Credential y
en Continue.

m y
d e
c a
e A
c l
d) En la página Load Data: Control File, introduzca
/home/oracle/labs/lab_17_02_01.ctl como nombre y ruta de acceso

r a
del archivo de control, o utilice el icono de linterna para seleccionar este archivo

O ly
de control. Haga clic en Next.

l & On
n a e
t e r U s
I n
c l e
r a
O
Oracle Database 11g: Taller de Administración I A-143
Práctica 17-2: Carga de Datos con SQL*Loader (continuación)
e) En la página Load Data: Data File, haga clic en Provide the full path and name
on the database server machine e introduzca
/home/oracle/labs/lab_17_02_01.dat como nombre y ruta de acceso
del archivo de datos, o utilice el icono de linterna para seleccionar este archivo de
datos. Haga clic en Next.

f) En la página Load Data: Load Method, seleccione Conventional Path y haga clic
en Next.

g) En la página Load Data: Options, acepte todos los valores por defecto, pero
introduzca /home/oracle/labs/lab_17_02_01.log como nombre y
ruta de acceso del archivo log. Revise las opciones avanzadas si lo desea, pero no
m y
las cambie, y haga clic en Next.
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Oracle Database 11g: Taller de Administración I A-144
Práctica 17-2: Carga de Datos con SQL*Loader (continuación)
h) En la página Load Data: Schedule, introduzca lab_17_02_01 en Job Name y
Load data into the PRODUCT_MASTER table en Description. Deje
que el trabajo se inicie inmediatamente y haga clic en Next.

i) En la página Load Data: Review, revise la información y los parámetros de carga


y, a continuación, haga clic en Submit Job.
j) Haga clic en el enlace al trabajo LAB_17_02_01 para supervisar el progreso.
Cuando termine el trabajo correctamente, vaya al siguiente paso.

m y
d e
c a
A
k) Para confirmar los resultados, examine el archivo lab_17_02_01.log en el
e
directorio /home/oracle/labs.
c l
r a
2) Como usuario INVENTORY, cargue los datos en la tabla PRODUCT_ON_HAND mediante
la línea de comandos SQL*Loader. El archivo de datos lab_17_02_02.dat contiene
O ly
filas de datos de la tabla PRODUCT_ON_HAND. El archivo lab_17_02_02.ctl es el

l & On
archivo de control de esta carga.
Opcionalmente, consulte los archivos lab_17_02_02.dat y lab_17_02_02.ctl

a e
para obtener más información sobre su estructura antes de continuar.
n
t e r U s
a) Abra una ventana de terminal y acceda al directorio /home/oracle/labs.
b) Asegúrese de que el entorno está configurado para la base de datos orcl

I n
ejecutando oraenv.

l e
$ . oraenv

c
ORACLE_SID = [oracle] ? orcl

r aThe Oracle base for


ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 is

O /u01/app/oracle
$

Oracle Database 11g: Taller de Administración I A-145


Práctica 17-2: Carga de Datos con SQL*Loader (continuación)
c) Introduzca el siguiente comando de SQL*Loader (de forma seguida, sin pulsar
[Intro] antes de llegar al final del comando):
sqlldr userid=inventory/oracle_4U control=lab_17_02_02.ctl
log=lab_17_02_02.log data=lab_17_02_02.dat

$ sqlldr userid=inventory/oracle_4U control=lab_17_02_02.ctl


log=lab_17_02_02.log data=lab_17_02_02.dat

SQL*Loader: Release 11.2.0.1.0 - Production on Tue Jul 14


14:56:44 2009

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All


rights reserved.

Commit point reached - logical record count 64


Commit point reached - logical record count 83
$

d) Para confirmar los resultados, examine el archivo lab_17_02_02.log en el


directorio /home/oracle/labs.

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Oracle Database 11g: Taller de Administración I A-146

También podría gustarte