Академический Документы
Профессиональный Документы
Культура Документы
CR GBSYS 2017
Administración de
Bases de Datos Oracle 12c
Manual de Prácticas
CR GBSYS 2017
Contenido
CR GBSYS 2017
Ejercicio 9.2 - Utilizando Restricciones, Vistas y Secuencias ................................... 86
Preguntas......................................................................................................................... 87
Respuestas ...................................................................................................................... 89
10 - Manipulando la Información de la Base de Datos ................................................. 89
Ejercicio 10.1 - El aislamiento de transacción, Consistencia de la Lectura y
COMMIT ........................................................................................................................... 89
Ejercicio 10.2 - Uso de Data Pump para la exportación a través del Controlador
de Bases de Datos del Enterprise Manager ............................................................... 93
Ejercicio 10.3 - Uso de la DataPump de Importación a través de impdp ............ 96
Ejercicio 10.4 - Usando SQL*Loader ........................................................................... 96
Preguntas......................................................................................................................... 97
Respuestas ...................................................................................................................... 99
12 - Programando en Oracle con PL/SQL ..................................................................... 100
Ejercicio 12.1 - Creación y uso de las funciones, Procedimientos y Paquetes ... 100
Ejercicio 12.2 - Utilizando Triggers DML ................................................................... 102
Preguntas....................................................................................................................... 105
Respuestas .................................................................................................................... 106
13 - Asegurando la Base de Datos ................................................................................ 106
Ejercicio 13.1 - Creación y Uso de Perfiles con Contraseña .................................. 106
Ejercicio 13.2 - Habilitación de Auditoría .................................................................. 110
Preguntas....................................................................................................................... 111
Respuestas .................................................................................................................... 114
14 - Configurando la Red Oracle .................................................................................... 114
Ejercicio 14.1 - Creación de un Listener con el EM................................................. 114
Ejercicio 14.2 - Creación de un Alias del Servicio de Red Oracle ......................... 116
Ejercicio 14.3 - Configuración del Registro del Servicio Dinámico ....................... 117
Preguntas....................................................................................................................... 118
Respuestas .................................................................................................................... 121
15 – Administración de Servidores Compartidos ......................................................... 123
Ejercicio 15.1 - Configurando y Verificando los Servidores Compartidos ............ 123
Ejercicio 15.2 - Configuración de un Cliente para elegir el Tipo de Conexión .... 124
Preguntas....................................................................................................................... 126
Respuestas .................................................................................................................... 129
16 - Administración de Rendimiento de Base de Datos ............................................. 131
Ejercicio 16.1 - Reparación de Objetos Inválidos.................................................... 131
Ejercicio 16.2 - Reparación de los Índices que no están en uso .......................... 133
Ejercicio 16.3 - Automatizando la Recolección de Estadísticas ............................. 135
Ejercicio 16.4 - Opcional ............................................................................................. 137
Preguntas....................................................................................................................... 138
Respuestas .................................................................................................................... 140
17 - Monitoreo de Oracle ................................................................................................ 140
Ejercicio 17.1 - Generando un Reporte ADDM ........................................................ 141
Ejercicio 17.2 - Configuración de Alertas.................................................................. 142
Preguntas....................................................................................................................... 143
4
CR GBSYS 2017
Respuestas .................................................................................................................... 145
18 – Administración del Undo......................................................................................... 146
Ejercicio 18.1 - Creación del Tablespace Undo con el EM. .................................... 146
Ejercicio 18.2 - Monitoreo de Undo con SQL*Plus .................................................. 148
Preguntas....................................................................................................................... 148
Respuestas .................................................................................................................... 152
19 - Tratando con el Bloqueo ......................................................................................... 154
Ejercicio 19.1 - Bloqueo Automático y Manual ........................................................ 154
Ejercicio 19.2 - El Comando SELECT…FOR UPDATE .............................................. 155
Ejercicio 19.3 - Detección y Solución de contención de Bloqueo ......................... 156
Ejercicio 19.4 - Resolución Automática de Bloqueos .............................................. 158
Preguntas....................................................................................................................... 159
Respuestas .................................................................................................................... 161
20 - Administración de la Globalización de las Bases de Datos Oracle .................... 161
Ejercicio 20.1 - Configurando la Globalización y Ambientación del Cliente ........ 161
Ejercicio 20.2 - Controlar la Globalización con la sesión ........................................ 162
Ejercicio 20.3 - Haciendo ajustes a la Zona Horaria ............................................... 165
Preguntas....................................................................................................................... 166
Respuestas .................................................................................................................... 169
CR GBSYS 2017
3 - Instalando la Base de Datos Oracle 12c
En Unix/Linux
Espacio en Disco
# df -h
6
Crear usuarios y grupos
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -m -g oinstall -G dba oracle
# id oracle
# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01/app/oracle
# chmod -R 775 /u01/app/oracle
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.1.0/orcl; export
ORACLE_HOME
ORACLE_SID=ORCL; export ORACLE_SID
PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export
LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOM
E/rdbms/jlib; export
CLASSPATH
8
LD_ASSUME_KERNEL=2.4.1; export LD_ASSUME_KERNEL
ulimit -u 16384 -n 65536
# xhost +
En Windows
$ ./runInstaller
9
Ejercicio 3.2 – Instalación
5. Inicie la instalación
Resumen de Instalación
1. Seleccione método de instalación
o Seleccione: Basic Installation
o Oracle Home Location: /u01/app/oracle/product/11.1.0/db_1
o Installation Type: Enterprise Edition (1.3GB)
o UNIX/LINUX DBA Group: oinstall
o Asegúrese que “Create Starter Database” está seleccionado
o Global Database Name: orcl
o Enter the Database Password and Confirm Password : oracle
o Oprima Next
2. Especificar directorio de inventario y credenciales
o Inventory Directory: /u01/app/oracle/oraInventory
o Operating System group name: oinstall
o Oprima Next
3. Product-specific Prerequisite Checks
o Si a seguido las instrucciones, no deberá tener ninguna dificultad en este paso. Si se
detecta algún problema, corríjalo antes de continuar.
o Oprima Next
4. Summary
o Presenta pantalla con el resumen de productos instalados.
o Oprima Install.
5. Configuration Assistants
o Los asistentes Oracle Net, Oracle Database se ejecutaran automáticamente
6. Execute Configuration Scripts
o Al final de la instalación aparecerá una ventana indicando los scripts que deben
ejecutarse con usuario root (en ventana aparte). Inicie sesioón como root y ejecute los
scrips indicados.
o Oprima OK cuando termine.
7. Fin de la instalación
o Tome nota de los URLs indicados en el resumen y luego oprima Exit.
8. Felicitaciones! Su nueva instalación de Oracle Database 12c Release 2 esta lista y funcionando.
10
Si está instalando en Unix/Linux en algún momento de la instalación se le
pedirá que ejecute un script como usuario root. Ejecútelo en una nueva
ventana de terminal y ejecutar la secuencia de comandos y, a continuación,
haga clic en Continuar. En OUI
10. Introduzca un nombre de base de datos y SID. Elija un nombre para la base
de datos en el formato database.domain como orcl.haunting.com y un
SID de ORCL. Deje el conjunto de caracteres y otras opciones como se
encuentra y presione Siguiente para continuar.
11
15. Chequear los parámetros de la instalación en la pantalla de resumen y haga
click en Instalar para comenzar la instalación de Bases de Datos Oracle 12c.
17. Inicie su explorador Web y conéctese al sitio web del Enterprise Manager
accediendo a la siguiente dirección http://localhost:5500/em.
Introduzca un nombre de usuario de sistema con la contraseña que usted
especificó en el paso 14 y haga click en Iniciar sesión, la pantalla de
concesión de licencias aparece presionando click en Aceptar para visualizar
el sitio web de su Enterprise Manager (De aquí en adelante, EM) para su
base de datos.
12
Preguntas
1. Describa los beneficios del Instalador Universal de Oracle para su
Administración. ¿Cuál de las siguientes son características clave para OUI?
(Elija todas las opciones que apliquen)
A. OUI se ejecuta igual en todas las plataformas en las que corre
Oracle.
B. Despliegues basados en Web se pueden ejecutar usando OUI.
C. OUI está escrito usando un lenguaje basado en .NET ideal para las
plataformas Windows.
D. OUI es una aplicación basada en texto que no requiere interfaces
gráficas.
E. Instalaciones no atendidas pueden utilizarse usando OUI.
13
E. Cualquier usuario con privilegios de inicio de sesión en la
computadora.
Respuestas
1) A, B y E. El Instalador Universal de Oracle es una aplicación gráfica basada
en Java (no .NET) que se ejecuta de igual manera en todas las plataformas
Oracle. Permite la ubicación de las fuentes que serán URL, así permite los
despliegues basados en Web, y puede ser ejecutado en instalaciones no
atendidas.
15
3) B, E y F. Instalar Oracle en una computadora basada en Unix/Linux
requiere que usted cree un usuario oracle, los grupos oinstall (para que sea
el dueño de la información de instalación de Oracle) y dba (para la
administración de la Base de Datos) para iniciar la instalación. El usuario root
se crea cuando se instala el sistema operativo, aunque ese usuario es requerido
para completar partes de la instalación.
7) B y C. Mientras Oracle no necesite que usted use OFA, cuando decide usar
OFA las convenciones del camino y el nombre del archivo estalecen reglas para
su uso. Solamente “/opt/oracle/product/11.1.0/ocsdb” para ORACLE_HOME y
“/opt/oracle/admin/ocsdb/bdump” para que el volcado de fondo y el destino de
registros se adhieran a las convenciones de nomenclatura establecidas por
OFA.
16
9) C. El comando runInstaller –ignoreSysPrereqs invocará al OUI en
una computadora Unix/Linux, diciéndole que no chequee los prerrequisitos
antes de llevara a cabo la instalación. Los parámetros OUI son case-sensitive,
lo que hace que la respuesta D sea incorrecta, mientras que el comando
“setup” se usa en la plataforma Windows para invocarlo.
1. Inicie sesión en el equipo como miembro del grupo que posee el software
Oracle. Por defecto, este será el grupo de dba en Unix/Linux, ORA_DBA en
Windows.
17
4. Primero eliminaremos la instancia creada automáticamente en el ejercicio
anterior. Ejecute DBCA. En Unix/Linux se llama dbca; en Windows es
dbca.bat. Se encuentra en su ORACLE_HOME / directorio bin, que debe
estar en su ruta de búsqueda.
18
6. Ahora podemos crear una nueva instancia teniendo más control sobre la
instalación. Ejecute DBCA.
19
7. Responder a las instrucciones de la siguiente manera:
20
f. Seleccione la casilla de "Utilizar la misma contraseña para todas
las cuentas" y escriba la contraseña como ORACLE. Introduzca
nuevamente la contraseña para confirmar y haga click en Siguiente.
21
La última pantalla muestra los detalles de la instancia y la base de datos que se
está creando. Dependiendo de la velocidad de su ordenador, como se sugiere en la
creación de este ejercicio (con exclusión de todas las opciones) puede tardar de
quince a cuarenta minutos.
Preguntas
1. ¿Cuál de las siguientes estructuras de memoria son partes requeridas, en
lugar de opcional, del SGA? (Elija tres opciones).
A. Buffer de cache de Base de Datos.
B. Java Pool.
C. Large Pool.
D. Redolog Buffer.
E. Shared Pool.
F. Streams Pool.
2. Está creando una Base de Datos. Ponga estos pasos en el orden correcto:
A. Construir el diccionario de datos.
B. Crear el archivo de parámetros.
C. Crear las vistas del diccionario de datos.
D. Ejecutar el comando CREATE DATABASE.
E. Ejecutar el comando STARTUP NOMOUNT.
22
3. Si no especifica el archivo de datos SYSAUX en su comando CREATE
DATABASE, ¿qué sucederá? (Escoja la mejor respuesta).
A. El comando fallará porque SYSAUX es un tablespace requerido.
B. El comando se ejecutará con éxito, pero usted debe añadir después
de la creación de la Base de Datos un tablespace SYSAUX.
C. El comando se ejecutará con éxito, y el tablespace SYSAUX por
defecto será creado para usted.
D. El comando se ejecutará con éxito, pero todo el diccionario de datos
estará en el tablespace SYSTEM.
23
8. Si al ejecutar el comando CREATE DATABASE usted no especifica un
tablespace UNDO, ¿Qué pasará? (Elija la mejor respuesta).
A. El comando fallará porque el tablespace UNDO es requerido.
B. El comando se ejecutará con éxito, y se creará un tablespace UNDO
por defecto para usted.
C. El comando se ejecutará con éxito, pero debe crear un tablespace
UNDO después.
D. El comando se ejecutará con éxito, y usted talvez deba crear el
tablespace UNDO después.
9. Usted ha creado una Base de Datos pero no puede conectarse a ella con el
EM. ¿Qué podría estar causando esto? (Escoja la mejor opción).
A. No está siendo autenticado por el sistema operativo, o por la
autenticación de contraseña.
B. No ha ejecutado los scripts para crear el EM.
C. La red de control es un prerrequisito para el EM.
D. No tiene permisos para utilizar el EM.
11. ¿Cuál de los siguientes procesos es opcional? (Escoja tres de las opciones
que se le presentan).
A. Proceso de archivos.
B. Proceso de puntos de chequeo (Checkpoint).
C. Listener de la Base de Datos.
D. Agente de Administración de Control deGrid.
E. Escritor de Registros.
F. Proceso de Seguimiento
12. Creó una Base de Datos con dos archivos de registro redo en línea, uno
miembro de cada uno. ¿Qué debería hacer para proveer la tolerancia a
fallos? (Escoja la mejor respuesta).
A. Agregar dos grupos más, para hacer espejos de los dos primeros.
B. Agregar un miembro más a cada grupo.
C. Puede no hacer nada; estas características se arreglan a la hora de la
creación.
24
D. No necesita hacer nada; el segundo grupo ya hace de espejo para el
primero.
13. ¿Cuál vista del Diccionario de Datos le mostrará todas las tablas de la Base
de Datos? (Elija la respuesta correcta).
A. ALL_TABLES
B. DBA_TABLES
C. USER_TABLES
D. Ninguna. Para ver todas las tablas, debe consultar directamente el
diccionario de datos.
Respuestas
1) A, D y E. El resto de los componentes son opcionales: el pool de Java es
requerido sólo si va a ejecutar Java; el Large pool es una opción de desempeño; el
pool de Flujos (Streams pool) se necesita sólo si está utilizando flujos, una opción
avanzada.
4) A. Esta es la única configuración que no puede ser cambiada sin volver a crear
la Base de Datos. Por supuesto, hay muchísimas otras cosas que son muy difíciles
de cambiar.
25
5) D. La contraseña root del sistema operativo puede ocuparse a la hora de la
instalación, pero no se necesita para la creación. DBCA puede ser bonito, pero no
debe usarlo. La memoria RAM es irrelevante a la larga; a Oracle no le importa si
está corriendo en la memoria principal o en la virtual.
9) B. Los scripts para crear el repositorio del Enterprise Manager debe ser
ejecutado antes de que pueda usar el EM.
10) A. La creación de un diccionario de Datos es, más que cualquier otra cosa, lo
que sucede cuando ejecuta el comando CREATE DATABASE.
12) B. La tolerancia a fallos del registro de redo en línea es provisto por tener
múltiples miembros por grupo.
13) B. Esta es una pregunta OCP engañosa clásica. Apuntando a que los nombres
de las vistas son posiblemente ambiguos.
15) B. Aunque podría, por supuesto, hacerlo a través de DBCA – mucho más
sencillo. A es una respuesta engañosa: necesita el pool de Java para ejecutar Java,
no crear la JVM.
26
5. Interactuando con la Base de Datos Oracle
Ejercicio 5.1 - Trabajando con SQL*Plus
_______________________________________________________________
$ lsnrctl start
$ sqlplus /nolog
SQL> conn / as sysdba
SQL> startup
SQL > exit
En este ejercicio usted invocará SQL * Plus, ejecutará y dará formato a unas
consultas.
________________________________________________________________
9. Retornará una lista de todos los usuarios que poseen los objetos en la base
de datos, cada nombre de usuario aparece sólo una vez.
SQL> exit;
28
3. Instalar los rpm
[root@localhost u01]# rpm -Uvh sqldeveloper-3.1.07.42-1.noarch.rpm
Preparing...
########################################### [100%]
Type the full pathname of a J2SE installation (or Ctrl-C to quit), the path will be stored in
~/.sqldeveloper/jdk
/usr/java/jdk1.7.0_04
/opt/sqldeveloper/sqldeveloper/bin/../../ide/bin/launcher.sh: line 455:
/home/oracle/.sqldeveloper/jdk: No such file or directory
29
[oracle@localhost ~]$ sh /opt/sqldeveloper/sqldeveloper.sh
Type the full pathname of a J2SE installation (or Ctrl-C to quit), the path will be stored in
~/.sqldeveloper/jdk
/usr/java/jdk1.7.0_04
Registered TimesTen
30
8. Haga click en Clear para eliminar los comandos y los resultados anteriores y,
a continuación, escriba el comando SQL para mostrar una lista de todas las
tablas y sus archivos de datos asociados. Seguidamente, haga click en
Ejecutar.
SELECT
a.tablespace_name,
b.file_name
FROM
dba_tablespaces a JOIN dba_data_files b
ON a.tablespace_name = b.tablespace_name
31
9. Borrar los resultados anteriores y, después introduzca un comando para
devolver una lista de todos los usuarios que poseen los objetos en la base
de datos, cada nombre de usuario aparece sólo una vez.
32
10. F8 para tener acceso al historial de su sesión o del menú view SQL history
veremso una ventana a la derecha abajo con los últimos queries ejecutados
33
Haga clic en menú archivo, salir o ALT+F4 en la parte superior derecha para
poner fin a su período de sesiones SQL Developer.
34
La secuencia de comandos SQL*Plus se muestra a continuación.
________________________________________________________________
11. Abra el registro de alerta con cualquier editor de texto que desee y busque
en las últimas doce líneas. Verá un historial de los comandos de inicio y
apagado, así como información sobre el inicio y parada de los distintos
procesos de arranque y una lista de los parámetros no predeterminados
leídos del archivo de parámetros y se utiliza para construir la instancia en la
memoria.
35
Ejercicio 6.2 - Puesta en marcha y apagado de su base de datos con
EM
36
1. Asegúrese que el Listener de su base de datos y el control de procesos de la
base de datos se encuentren en ejecución, mediante las introducciones:
$ lsnrctl status
$ emctl estado dbconsole
http://127.0.0.1:5500/em
Figura 1.
37
Figura 2.
Figura 3.
39
9. Desde la página de inicio de la Base de Datos, tome el enlace de Contenido
de Log de Alerta en la sección Enlaces Relacionados en la parte inferior de
la página y examinar el contenido del Log de Alertas.
40
Ejercicio 6.3 - Visualización de los parámetros con el EM
Examine los valores de los parámetros utilizados para controlar su instancia. Tenga
en cuenta que de los más de doscientos cincuenta parámetros, menos de treinta
se clasifican como básicos.
Preguntas
2. ¿Cuál de estos archivos debe estar sincronizado para que una Base de
Datos se abra? (Seleccione la mejor respuesta).
A. Archivos de Datos, Archivos de Registro Redo en línea y el archivo de
control.
B. El archivo de parámetros y el archivo de contraseñas.
C. Todas las copias multiplexadas del archivo de control.
D. Ninguno. SMON sincronizará todos los archivos por la recuperación
de la instancia después de abrir la Base de Datos.
42
8. Usando el Controlador de Base de Datos, usted detiene el Listener de la
Base de Datos. ¿Cuál de las siguientes afirmaciones es verdadera?
(Seleccione la mejor respuesta).
A. El EM no será hábil de gestionar la Base de Datos nunca más.
B. Las sesiones existentes se cerrarán.
C. No pueden ser establecidas sesiones nuevas.
D. Debe reiniciar el listener con la utilidad lsnrctl.
Respuestas
2) A. Estos son los tres tipos de archivos que componen la Base de Datos:
archivos de datos, archivos de registro redo en línea y el archivo de control.
43
9) C. Sin el listener no hay manera de ejecutar el servicio necesario para una
sesión.
44
4. Haga clic en el hipervínculo de Tablespaces bajo el título de
Almacenamiento, para mostrar los tablespaces actuales en la base de datos
y su utilización del espacio.
5. Para crear un nuevo tablespace, haga click en Crear al lado derecho para
abrir la pantalla Crear tablespaces.
45
8. En la página Añadir Archivo de Datos, escriba el nombre del archivo para el
tablespace y verifique que la localización provista es la adecuada. EM le
indica la ubicación predeterminada para los archivos de datos según las
directrices de OFA, por lo general el directorio apuntado por la ubicación $
ORACLE_BASE / oradata / <db_name>. También debe especificar un
tamaño de archivo o acepte el valor por defecto. En virtud de
almacenamiento puede especificar si desea o no que crezca
automáticamente el archivo (AUTOEXEND) cuando se llena, así como
cuanto crecer y cual será el tamaño máximo del archivo y hasta dónde
puede crecer. AUTOEXTEND le permite automatizar el crecimiento del
archivo y al mismo tiempo proporcionar un límite opcional en el crecimiento
de manera que un archivo no ocupe todo el espacio disponible en disco.
46
9. En la página Crear Tablespaces, haga click en Mostrar SQL para mostrar los
comandos SQL que se enviará a las bases de datos para crear los
tablespaces. Cuando haya revisado el código, haga click en Volver.
10.
47
La segunda opción en esta pantalla se refiere a la forma en que el espacio se
gestionará en el segmento. Con la administración automática del espacio del
segmento, Oracle utilizará mapas de bits para determinar qué bloques están
libres y cuáles contienen grandes cantidades de datos. La cantidad de espacio
que existe para insertar filas será automáticamente rastreado por el mapa de
bits que contiene todos los bloques asignados al segmento. Este es un método
eficaz que libera al DBA de definir adecuadamente los de administración de
espacio de los segmentos de forma manual. Utilizar la administración de
espacio manual requiere que el DBA o el creador del segmento especifique
valores para los parámetros PCTFREE, PCTUSED, FREELISTS, y FREELIST
GROUPS para crear el objeto y darle mantenimiento a medida que datos
aumenta.
48
13. Después de una breve demora, se le presentará la página de Tablespaces
del Enterprise Manager, muestra al lado, la lista donde se puede ver el
tablespace que acaba de crear. Puede también crear más tablespaces o
modificar los que están ahí.
49
Ejercicio 7.2 - Uso de EM para modificar un Tablespace
50
6. La modalidad default de operación de un tablespace es READ/WRITE Haga
click en la lista desplegable al lado para mostrar los cuatro los modos
disponibles. Teniendo un tablespace fuera de línea hace que su contenido
no este disponible hasta que el tablespace se pone de nuevo en línea,
Cambiar el esta de un tablespace a fuera de línea se debe hacer con gracia
para evitar tener que realizar recuperación cuando el tablespace está en
línea nuevamente. Las opciones NORMAL e IMMEDIATE ejecutarán un
checkpoint antes de deshabilitar todos los datafiles del tablespace que se
pondrá fuera de línea, aunque la opción IMMEDIATE no puede utilizarse si
la base de datos no esta en modalidad noarchivelog. Usar la opción
TEMPORARY tomará cuidadosamente los datafiles fuera de línea y no
exigirá la recuperación a menos que uno de los datafiles ya estuviera fuera
de línea debido a la fallas en los medios de almacenamiento, en cuyo caso
será necesaria la recuperación. El modo RECOVERY está obsoleto y no
debe usarse, sino que se incluye para compatibilidad con versiones
anteriores.
51
automático, puede cambiar el nombre del archivo de datos, o cambiar su
ubicación.
8. Haga click en Mostrar SQL para mostrar el código SQL necesario para
realizar los cambios, como en Lista de código de este ejemplo y, a
continuación, haga click en Volver:
11. Haga click en la lista desplegable junto a Acciones para mostrar la lista de
acciones disponibles. Estas son actividades que se pueden realizar en el
seleccionado de tablas (Anexo A).
52
12. Cierre el Enterprise Manager.
53
3. En la página principal del EM, haga click en el hipervínculo de
Administración para visualizar la página de Administración.
Preguntas
1. ¿Cuál línea, en este código, hará que el siguiente comando SQL falle? (Elija la
mejor respuesta).
1 CREATE BIGFILE TABLESPACE grande
2 DATAFILE ‘/oracle/orcldata/grandedata02.dbf’
3 EXTENT MANAGEMENT LOCAL
4 FREELISTS 5
54
5 NOLOGGING;
A. 1
B. 2
C. 3
D. 4
E. 5
F. El comando tendrá éxito.
3. Intenta crear un tablespace y recibe un error que dice que el archivo de datos
para el tablespace no puede ser creado. El tamaño del archivo de datos que
quiso crear es de 3GB y usted especificó la opción SMALLFILE para el
tablespace. Usted verifica que el directorio del sistema operativo donde el
archivo va a residir le pertenece al mismo usuario que Oracle y que el usuario
tiene permisos de lectura/escritura. Usted inició sesión como usuario SYSTEM y
hay suficiente espacio en disco duro. ¿Cuál es probablemente la causa del
error? (Elija la mejor respuesta).
A. No puede crear un archivo mayor a 2GB en una Base de Datos Oracle
cuando ya se especificó SMALLFILE.
B. El sistema operativo no puede crear un archivo que supere los 2GB.
C. Debe especificar la opción WITH OVERWRITE para la especificación
del archivo de datos.
D. Debe especificar la opción REUSE para la especificación del archivo
de datos.
E. Debe especificar la opción AUTOEXTEND para la especificación del
archivo de datos.
4. ¿Cuál línea de código causará que el siguiente comando SQL falle? (Elija la
mejor opción).
1 CREATE BIGFILE TABLESPACE OrclDATA
2 DATAFILE ‘/oracle/orcldata/orcldata02.dbf’
3 EXTENT MANAGEMENT DICTIONARY
4 FREELISTS 5
55
5 NOLOGGING;
A. 1
B. 2
C. 3
D. 4
E. 5
F. El comando se ejecutará con éxito
57
Respuestas
1) D. Cuando se especifica la administración local de extents a la hora de crear el
tablespace así como tampoco puede especificar el parámetro de almacenamiento
de segmento gestionado por diccionario. FREELISTS pueden especificarse sólo
cuando la administración de extents es de diccionario, por lo que esa parte del
comando CREATE TABLESPACE causará que todo el comando falle.
58
8) A y C. Debe otorgar el permiso de sistema CREATE TABLESPACE o el rol de
DBA para crear un tablespace. No existe el permiso MANAGE DATABASE. Los roles
SYSOPER y SYSDBA proveen permisos de administración de la instancia y de la
Base de Datos pero no otorga específicamente el permiso para la creación de
tablespaces.
59
5. Haga click en Crear para mostrar la página Crear Usuario.
60
7. Haga click en Mostrar SQL para mostrar el código para crear el usuario.
Note de la parte del código "GRANT CONNECT TO <nombre>". Esto
garantiza al usuario la función CONNECT, que le permite conectarse a la
instancia. Sin el rol CONNECT concedido, el usuario recibirá un mensaje de
error cuando trate de conectarse a la instancia. Crear una cuenta de usuario
por sí mismo no otorga al usuario permiso para conectarse a la instancia y
el acceso la base de datos.
9. Haga click en Aceptar para crear el usuario. Usted debe ser devuelto a la
lista de usuarios con el nuevo usuario ahora visible en la lista. Verificar esto
y luego cierre el Administrador corporativo.
61
5. Haga click en Crear para mostrar la página Crear Usuario.
6. Llene los valores para crear un nuevo usuario llamado Juan con contraseña
"oracle", en el tablespace USERS por defecto y uno temporal TEMP.
Asegurarse que la cuenta no está bloqueada y que la casilla para que la
contraseña expire no esté seleccionada, y luego haga click en Aceptar para
crear el usuario.
62
10. Salga de SQL Developer y, a continuación, inicie sesión como JUAN con la
contraseña adecuada.
11. Ejecutar el siguiente comando para crear una tabla y el mensaje de error
que usted recibe debido a la falta de cupo en las tablas:
63
14. Modificar la cuota de los Usuarios de tablas para los usuarios Tomas y
Jessica también a 50 MB.
15. En SQL Developer conectado como JUAN, intente volver a crear la tabla
juan1.
Observe que el comando tuvo éxito, ya que Juan tiene ahora un cupo en el
tablespace USERS.
19. Intente consultar los datos en la tabla Juan1. Note el mensaje de error
indicando que el objeto no se puede encontrar, lo que significa en realidad
es que no tiene permisos.
64
20. Ejecute el mismo comando CREATE TABLE JUAN1 como antes mientras está
conectado como Tomas. Observe que es posible crear dos tablas llamadas
Juan1 siempre que estén en diferentes esquemas.
22. Intente consultar la tabla Juan1 en los esquemas de Juan y Tomas. Usted
puede realizar estas acciones, ya que a Jessica se ha concedido el privilegio
SELECT ANY TABLE.
23. En Enterprise Manager, seleccione Jessica y haga click en Ver para mostrar
la información sobre la cuenta de usuario de Jessica y los privilegios
concedidos a ella.
65
24. Salga de SQL Developer y del Enterprise Manager.
66
5. Haga click en algún usuario creado en un ejercicio anterior, para abrir la
página de Editar Usuarios.
67
9. Haga click en Aceptar para guardar los cambios y visualizar la lista
actualizada de los privilegios de objeto.
68
11. Volver y, a continuación, haga click en Aplicar para guardar los cambios.
12. Conectarse a SQL Developer y la base de datos con el usuario con el que se
esté haciendo el ejercicio y su contraseña correspondiente.
69
16. Abra otra ventana y en otra sesión de SQL Developer, conéctese como
usuario Tomás e intente consultar la tabla <nombre del
esquema>.<nombre de la tabla>.
20. Intente insertar una fila en la tabla que acaba de crear. Oracle envía un
mensaje de error "ORA-01031: insufficient privilege".
21. Salga de SQL Developer como Tomás y entrer como Juan con la contraseña
respectiva.
REVOKE ALL ON
<NOMBRE_ESQUEMA>.<NOMBRE_ABLA> FROM <USUARIO>.
23. En la sesión de SQL Developer dónde usted está conectado como el usuario
que eligió para este ejercicio, intentE seleccionar de la tabla a la que hemos
venido haciéndole modificaciones. Nótese que Oracke despliega el siguiente
error "ORA-00942: tabla o vista no existe".
24. Registrarse como el usuario del ejercicio, acceda a SQL Developer como
Tomás, y luego trate de consultar la vista que se creó anteriormente.
Observe el mensaje que indica que la consulta a la vista tuvo un error.
Intente consultar la tabla que hemos venido trabajando y vea el aviso de
error.
26. Cierre todas las sesiones de SQL Developer y del Enterprise Manager.
70
Ejercicio 8.4 - Uso de Enterprise Manager para Crear y Administrar los
Roles
9. Haga click en Mostrar SQL para mostrar el código SQL para crear la
función y darle privilegios.
10. Haga click en Volver y, a continuación, haga click en Aceptar para crear el
rol ROL_PRUEBA.
72
12. Compruebe que Tomás no tiene permisos sobre la tabla juan1.juan1
utilizando SQL Developer en otra sesión y emitir una sentencia SELECT para
consultar la tabla.
14. En SQL Developer, cierre la sesión e inicie sesión como Tomás y verificar
que se puede seleccionar de la tabla que hemos estado consultado a través
de los ejercicios.
4. Haga click en el hipervínculo de los Perfiles para mostrar los perfiles que
actualmente están definidos en la base de datos. Debería haber dos: PERFIL
DEFAULT y MONITORING_PROFILE.
Haga click en Crear para crear un nuevo perfil llamado DBA_PROFILE y asignarle
CONNECT_TIME ilimitado, un tiempo de inactividad (iDLE_TIME) de 15 minutos, y un
valor de concurrencia de sesiones (SESSIONS_PER_USER) ILIMITADO. Deje todos los
otros ajustes en el valor de por defecto.
73
5. Haga click en Mostrar SQL para ver el código SQL para realizar la acción y,
a continuación, haga click en Volver y luego en Aceptar para crear el perfil.
74
7. Abrir otra ventana del navegador y conectarse a la instancia mediante SQL
Developer como el usuario Juan con la contraseña correspondiente.
8. Abrir otra ventana del navegador y una vez más intente conectarse a la
instancia, mediante SQL Developer como Juan. Observe que usted no recibe
un mensaje de error y Juan es capaz de conectarse. Esto se debe a que los
límites de los recursos no han sido configurados para ser aplicados en esta
instancia. Salga de SQL Developer como Juan pero mantenga abierta la
ventana del navegador.
Intente entrar como Juan por segunda vez. Observe el error que recibe
ahora. (ORA-02391 exceeded simultaneous SESSIONS_PER_USER limit)
10. Como usuario SYSTEM desactive los límites de los recursos por el comando
ALTER SYSTEM SET RESOURCE_LIMIT = FALSE y cierre la sesión de SQL
Developer. Asimismo, cierre las demás sesiones de SQL Developer y vuelva
al Enterprise Manager.
75
11. Vaya a la página de Administración de Enterprise Manager y haga clikc en
Usuarios en la Región de Seguridad.
76
16. Invoque SQL Developer, conéctese a la instancia como SYSTEM, y el
comando
77
Preguntas
1. Usted ha creado un nuevo usuario llamado George. Usted le asignó a George el
perfil de usuario RESTRICTED_ACCESS. Las configuraciones del perfil tiene
todas las restricciones configuradas en DEFAULT excepto por la restricción de
sesiones actuales cuyo valor está en 1. George le pide ayuda con un problema,
cuando usted llega a su escritorio, nota que él tiene demasiadas sesiones
SQL*Plus abiertas, todas están conectadas a la misma instancia con su cuenta
de usuario. Usted sospecha que sus límites de perfil no se están aplicando.
¿Cuál de las siguientes opciones debe investigar para determinar la causa del
problema? (Escoja dos respuestas correctas).
A. La tabla DBA_USER_LIMITS
B. El parámetro de inicialización RESOURCE_LIMIT
C. La vista del diccionario de datos DBA_PROFILE_LIMITS
D. La vista del diccionario de datos DBA_PROFILES
E. La vista dinámica de rendimiento V$LIMITS
2. ¿Cuál línea de código hace que el siguiente bloque SQL falle? (Elija la mejor
respuesta).
1 CREATE USER Sam
2 IDENTIFIED EXTERNALLY BY $amP@ssw0rd
3 DEFAULT TABLESPACE Users
4 TEMPORARY TABLESPACE User_Temp
5 QUOTA 2048MB ON APPS_DATA
A. 1
B. 2
C. 3
D. 4
E. El bloque se ejecutará con éxito.
78
E. Cuando un usuario sea revocado, los privilegios del sistema también
serán revocados por cualquier usuario a quien se le concedió el
permiso de revocar.
F. Cuando un usuario sea revocado, los privilegios del sistema no serán
revocados por cualquier usuario a quien se le concedió el permiso de
revocar.
5. Si crea un perfil y especifica límites para sólo algunas de las configuraciones del
perfil, ¿cuál valor será automáticamente asignado a cualquier límite de recurso
que no incluyó en su comando CREATE PROFILE? (Seleccione la mejor
respuesta).
A. DEFAULT
B. 0
C. UNLIMITED
D. UNKNOWN
E. Debe especificar un valor para todos los límites de perfil
8. Mientras pasa por el escritorio de Benjamín, usted nota que él está usando
SQL*Plus para consultar datos en la tabla TempOrders. Usted no le otorgó
79
permisos a Benjamín para ejecutar comandos SELECT a la tabla TempOrders.
¿Por qué Benjamín puede consultar esta tabla? (Elija todas las opciones
correctas).
A. Un usuario al que le concedió el permiso para ejecutar SELECT le
otorgó el permiso a Benjamín.
B. Benjamín es un DBA y puede consultar cualquier tabla de la Base de
Datos.
C. Usted otorgó a Benjamín el privilegio UPDATE en la tabla
TempOrders, el cual otorga automáticamente el privilegio SELECT.
D. EL DBA le concedió a Benjamín el privilegio SELECT ANY TABLE.
E. A Benjamín le otorgaron el privilegio SELECT en la tabla TempOrders
un usuario a quien usted le otorgó el privilegio SELECT WITH ADMIN
OPTION.
10. Cuando está creando un usuario con el Enterprise Manager en lugar del
comando CREATE USER, ¿cuáles privilegios adicionales se le otorgan al
usuario? (Elija la mejor respuesta).
A. SELECT_CATALOG_ROLE
B. SYSDBA
C. CONNECT
D. RESOURCE
E. DBA
Respuestas
1) B y D. Puede consultar la vista DBA_PROFILES del diccionario de datos para
determinar la configuración de todos los perfiles de la Base de Datos, incluyendo el
que supuestamente George se asignó a él mismo. El parámetro de inicialización
RESOURCE_LIMIT debe cambiarse a TRUE para las sesiones actuales que vayan a
ser aplicadas, entonces necesita verificar esta configuración en la instancia que
está levantada y en el SPFILE. Las vistas DBA_USER_LIMITS,
DBA_PROFILE_LIMITS y V$LIMITS no existen.
80
2) B. Cuando crea un usuario, puede especificar a lo sumo un método de
autenticación. Este comando SQL especifica dos métodos de autenticación,
EXTERNALLY y de contraseña (con $amP@ssw0rd) al mismo tiempo, lo que debió
generar un error cuando el comando se ejecutó.
81
10) C. Utilizando el Enterprise Manager para crear un usuario automáticamente
otorgará al usuario el rol CONNECT, que incluye el privilegio CREATE SESSION, por
lo que el usuario es capaz de conectarse a la instancia en ese mismo momento.
Este rol también incluye los privilegios de crear tablas, vistas, sinónimos,
secuencias y otros objetos de Base de Datos, los cuales pueden ser o no deseados
por los usuarios.
Uso del EM para crear dos tablas con las restricciones, y validar las estructuras con
SQL * Plus.
________________________________________________________________
82
5. Cree una segunda tabla, Invoice. Tenga en cuenta que la casilla no nulo ha
sido seleccionada para la columna INVOICE_DATE.
PRIMARIA
Agregar
9. Repita el proceso para agregar una restricción de llave primaria para la tabla
INVOICE, utilizando la columna INVOICE_NUMBER.
11. Para añadir la restricción CHECK que compruebe que la cantidad es mayor
que cero, llene la ventana de Añadir restricción CHECK. Haga click en
Aceptar y Aplicar.
83
SYSTEM
84
85
Ejercicio 9.2 - Utilizando Restricciones, Vistas y Secuencias
Crear una secuencia para generar números de factura única, y crear una vista para
unir sus tablas INVOICE y CUSTOMER.
________________________________________________________________
4. Crear una vista para mostrar las facturas de los clientes con los nombres y
consúltela.
86
Tenga en cuenta que no hay necesidad de borrar las restricciones o índices:
se borran automáticamente junto con las tablas.
Preguntas
1. ¿Cuál de los siguientes instrucciones fallarán porque el nombre de la tabla no
es legal? (Elija dos respuestas).
A. create table “SELECT” (col1 date);
B. create table “lower case” (col1 date);
C. create table number1 (col1 date);
D. create table 1number(col1 date);
E. create table update(col1 date);
3. ¿Cuál de los siguientes no es soportado por Oracle como tipo de dato interno?
(Seleccione la mejor respuesta).
A. CHAR
B. FLOAT
C. INTEGER
D. STRING
9. Usted inserta una fila usando una secuencia INV_NOS y luego hace un rollback
de la inserción, como se muestra seguidamente:
SQL> insert into invoices values
(inv_nos.nextval,1,sysdate,150);
1 row created.
SQL> rollback;
Rollback complete.
Respuestas
1) D y E. D viola la regla que dice que el nombre de una tabla debe empezar con
una letra y E viola la regla que dice que el nombre de una tabla no puede ser una
palabra reservada. Ambas reglas pueden ser pasadas por alto usando comillas
dobles.
89
Es hora de experimentar con algunos comandos SQL, y en particular para ilustrar
algunos aspectos de control de transacciones. Para este ejercicio, abra dos
sesiones de SQL * Plus (o SQL Developer, si lo prefiere), inicie sesión como SCOTT
en ambas sesiones, y ejecute los comandos que se le presentan en las dos
sesiones.
________________________________________________________________
Preguntas
1. Usted ejecuta un comando COMMIT. ¿Cuál de las siguientes afirmaciones es
verdadera? (Seleccione dos opciones).
A. DBWn escribe los bloques cambiados en los archivos de datos.
B. LGWR escribe los cambios en los archivos de registro.
C. CKPT sincroniza el buffer de cache de la Base de Datos con los
archivos de datos.
D. La transacción se hace permanente.
E. A la transacción se le puede hacer rollback.
90
2. Usted ejecuta un comando UPDATE, seguido de un COMMIT. Ordene las
siguientes acciones:
A. Los bloques de datos se copian de los archivos de datos al buffer de
cache de la Base de Datos.
B. Los bloques de datos en cache se actualizan.
C. El buffer de registros se actualiza.
D. Los bloques cambiados se pasan a disco.
E. El buffer de registros se pasa a disco.
3. El usuario JOHN actualiza unas filas y pide al usuario DAMIR que inicie sesión y
revise los cambios antes de hacerles commit. ¿Cuál de las siguientes
afirmaciones es verdadera? (Elija la mejor respuesta).
A. DAMIR puede verlos cambios pero no puede cambiarlos porque
JOHN habría bloqueado las filas.
B. DAMIR no puede ver los cambios.
C. JOHN hace commit a los cambios, entonces DAMIR puede verlos y si
es necesario les hace rollback.
D. JOHN debe hacer commit a los cambios para que de esta manera
DAMIR los pueda ver, pero sólo JOHN les puede hacer rollback.
4. El usuario JOHN actualiza algunas filas pero no hace commit a los cambios. El
usuario DAMIR consulta las filas que JOHN actualizó. ¿Cuál de las siguientes
afirmaciones es verdadera? (Escoja tres respuestas).
A. La consulta de DAMIR serán redireccionadas a los registros de redo
para mostrar la versión original de las filas.
B. La sesión de DAMIR hará rollback a los cambios de JOHN para
mostrar la versión original de las filas.
C. JOHN debe hacer commit los cambios antes de que DAMIR los pueda
ver.
D. DAMIR no puede ver las filas que fueron actualizadas, porque estas
serán bloqueadas.
E. Si la consulta de DAMIR inicia después de la actualización de JOHN,
el principio de la consistencia de lectura dice que no podrá ver los
cambios de JOHN.
F. Si la consulta de DAMIR inicia después de la actualización de JOHN,
el principio de aislamiento dice que no puede ver los cambios de
JOHN.
91
C. Debe terminar la transacción con un COMMIT o un ROLLBACk antes
de ejecutar el SELECT.
D. Verá las nuevas filas porque su sesión las leerá de un segmento
undo.
Respuestas
1) B y D. Cuando usted dice commit, LGWR escribe lo del buffer de registros al
disco y la transacción se hace duradera.
6) B. Una sesión siempre puede ver sus propias transacciones, se les haya hecho
commit o no.
92
11 - Herramientas para extracción e carga masiva de
datos
Este ejercicio creará una tabla y la exportará mediante la interfaz del Controlador
de Base de Datos para DataPump.
________________________________________________________________
En Windows:
md c:\dp_dir
En Unix/Linux:
md /home/oracle/dp_dir
3. Aún dentro de SQL * Plus, cree el directorio de Oracle que se utilizará por la
DataPump y conceda a todos los usuarios privilegios de lectura y escritura
sobre el directorio.
En Windows:
En Unix/Linux:
93
Luego:
SQL> grant all on directory dp_dir to public;
SQL> exit;
94
9. Sobre la exportación: en la ventana Opciones, elija el directorio DP_DIR
como la ubicación para el 'log de archivos', y haga click en Siguiente.
95
archivo de volcado de exportación, y un log de Archivos, por ejemplo:
EXPDAT.LOG. Examine el archivo de log para comprobar que el trabajo se
completó exitosamente.
Este ejercicio se utiliza la línea de comandos impdp para poner la tabla exportada
de nuevo en la base de datos con ayuda de la Bomba de Datos.
________________________________________________________________
1. Inicie sesión con SQL * Plus, y borre la tabla creada en el ejercicio anterior.
drop table dp_test;
exit;
Este ejercicio insertará más filas en la tabla creada en el ejercicio tras anterior.
________________________________________________________________
Juan,100
Damian,200
Marta,999
4. Acceda a su instancia con SQL * Plus, y confirme que las tres nuevas líneas
se han insertado en la tabla:
Preguntas
1. Está usando DataPump para cargar filas en una tabla, y quiere usar “Direct
Path”. ¿Cuál de las siguientes afirmaciones es correcta? (Escoja tres opciones).
A. Debe incluir la palabra reservada DIRECT en el archivo de control de
la DataPump.
B. No es posible si la tabla está en un cluster.
C. Primero debe deshabilitar los triggers de inserción.
D. Primero debe habilitar los triggers de inserción.
E. No tiene control sobre esto, la DataPump usará el camino directo
automáticamente si puede.
F. El camino directo es más lento que el camino de tabla externa
porque no almacena información en memoria.
5. Usted desea transferir una gran cantidad de datos de una Base de datos a otra:
ambas bases de datos están en la misma máquina. ¿Cuál sería el método más
rápido? (Seleccione la mejor opción).
A. Usar las utilidades Exportar/Importar
B. Usar la DataPump para sacar los datos y el SQL*Loader de carga
directa para traerla.
C. Usar la DataPump en el modo de red.
D. Usar el exportador de la DataPump para escribir los datos y el
importador de la DataPump para leerlos.
6. ¿Cuál de los siguientes no es un archivo SQL*Loader? (Escoja una opción).
A. Archivo malo
B. Archivo de control
C. Archivo de descarte
D. Archivo bueno
E. Archivo de registro
98
F. Ejecutando el comando grant all on ‘c:\tmp’ to public;
debería resolver algunos problemas de permisos.
Respuestas
1) B, C y E. B y C son correctas porque estas son de las limitaciones. E es correcta
porque es una característica de la DataPump.
99
6) D. El “archivo bueno” no es un archivo de SQL*Loader. SQL*loador no produce
un archivo como este, solamente como los cuatro restantes.
100
CREATE OR REPLACE PACKAGE NUMBERS
AS
FUNCTION odd_even(v1 NUMBER)
RETURN VARCHAR2;
PROCEDURE ins_ints(v1 IN NUMBER);
END;
END;
Cree un trigger (disparador) para validar los datos, antes de ejecutar un COMMIT.
________________________________________________________________
102
3. Permitir la impresión en pantalla de sus sesiones de SQL * Plus.
SQL> set serveroutput on;
8. Haga click en Ver para ver el código fuente l Trigger. Tenga en cuenta que
"Válido", lo que significa es que se ha realizado correctamente, y
"Activado", es decir, que se ha disparado.
103
9. Arregle.
SQL> drop trigger oe_check;
SQL> drop table integers;
SQL> drop package numbers;
104
Preguntas
1. ¿Cuál de los siguientes, si hay alguno, pueden ser objetos PL/SQL? (Escoja
todos los que apliquen).
A. Restricciones
B. Funciones
C. Cuerpo de Paquetes
D. Especificaciones de Paquetes
E. Procedimientos
F. Secuencias
G. Triggers
H. Vistas
2. ¿Cuál de los siguientes objetos PL/SQL pueden ser invocados con el comando
EXECUTE? (Elija la mejor respuesta).
A. Funciones
B. Paquetes
C. Procedimientos
D. Triggers
E. Todos los anteriores
4. ¿Cuáles tipos de objetos PL/SQL pueden ser empaquetados? (elija todos los
que apliquen).
A. Bloques anónimos PL/SQL
B. Funciones
C. Procedimientos
D. Triggers
105
Respuestas
1) B, C, D, E y G. Todas estas son creadas con PL/SQL; las otras, con SQL.
En Linux/Unix/Linux:
SQL> @?/rdbms/admin/utlpwdmg.sql
En Windows:
SQL> @?\rdbms\admin\utlpwdmg.sql
107
10. En la ventana de Usuarios, busque el usuario SYSTEM, selecciónelo, y haga
click en Editar.
12. Haga click en Mostrar SQL, examine el comando ALTER USER generado, y
haga click en Volver.
14. Conéctese a su base de datos con el usuario SYSTEM utilizando SQL * Plus.
Tenga en cuenta que recibirá de forma inmediata una advertencia de que la
108
contraseña ha expirado, y que usted se encuentra en el período de "gracia"
de tres días.
16. Escriba una contraseña distinta. (¡Recuerdelo!) Para los siguientes ejemplos,
se cambió a MANAGER.
17. Intente conectarse tres veces con una contraseña equivocada. En el tercer
intento, se le indicará que la cuenta está bloqueada
109
Ejercicio 13.2 - Habilitación de Auditoría
Permitirá a las dos bases de datos de auditoría y de auditoría de grano fino, utilizar
las vistas del diccionario de datos para ver los resultados.
________________________________________________________________
110
sentencias SELECT y UPDATE con éxito contra la tabla AUDIT_TEST. Para
descifrar la columna SES_ACTIONS, consulte el manual de Oracle________.
8. Crear una política de Auditoría de Grano Fino para capturar todoslos SELECT
contra la tabla AUDIT_TEST que lee la columna SALARY, si el salario
devuelto es mayor que 100, con esta llamada al procedimiento:
Preguntas
111
1. Un usuario se queja de no poder conectarse, aunque está seguro que está
utilizando la contraseña correcta. Usted consulta la vista DBA_USERS, y nota
que su cuenta está en el estado EXPIRED & LOCKED. ¿Qué significa esto?
(Escoja la mejor respuesta).
A. La cuenta se bloqueo porque la contraseña expiró.
B. Puede volver a configurar la contraseña para desbloquear la cuenta.
C. Si no desbloquea la cuenta, el usuario podrá iniciar sesión si el
período de gracia de la contraseña no ha expirado.
D. La cuenta ha expirado y debe ser desbloqueada para reactivarla.
4. Si desea que cierto bloque PL/SQL se ejecute cuando ciertos datos son
accedidos con un SELECT, ¿cuál técnica de auditoría podría usar? (Elija la mejor
respuesta).
A. Auditoría de Base de Datos
B. Auditoría de Grano Fino
C. Triggers de Base de Datos
D. No puede hacer esto
5. ¿Qué se necesita para auditar las acciones hechas por un usuario conectado
con el privilegio SYSDBA? (Escoja la mejor respuesta).
112
A. Poner el parámetro de inicialización de instancia
AUDIT_SYS_OPERATIONS en TRUE.
B. Usar la auditoría de Base de Datos para auditar el uso del privilegio
SYSDBA.
C. Poner el parámetro de inicialización de la instancia en NONE, para
que las conexiones SYSDBA puedan hacerse sólo con la autenticación
del sistema operativo. Luego configure el parámetro del sistema
operativo AUDIT_TRAIL y asegúrese que el DBA no tenga acceso a
él.
D. Esto no es posible: cualquier usuario con el privilegio SYSDBA puede
siempre pasar por alto los mecanismos de auditoría.
113
Respuestas
1) C. “Expired” se refiere a la contraseña; “Locked” se refiere a la cuenta. Estos se
administran independientemente, por lo que si desbloquea la cuenta la contraseña
continuará expirada – sin embargo si el período de gracia de expiración de la
contraseña es efectivo aún, el cual empieza después del primer inicio de sesión
exitoso después de que la contraseña expire, el usuario se podrá conectar.
Protocolo: TCP
Puerto: 1522 (o cualquier otro puerto disponible)
Anfitrión: Su nombre de equipo
10. Para iniciar el nuevo Listener, seleccione Iniciar / Detener las acciones de la
lista desplegable y haga click en Continuar.
En Windows,
c:\oracle\product\11.1.0\db_1\NETWORK\ADMIN
O en Unix/Linux,
/oracle/product/11.1.0/db_1/network/admin
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ora12c)(PORT = 1521))
)
LIST2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ora12c)(PORT = 1522))
)
12. Para confirmar que su nuevo Listener está en ejecución, desde la línea de
comandos del sistema operativo ejecute la utilidad lsnrctl.
115
$ lsnrctl status
Utilice el Administrador de Red para crear y probar un alias del Servicio de Red de
Oracle. Este alias se conectará a su base de datos a través del Listener LIST2 que
configuró en el ejercicio anterior.
________________________________________________________________
116
4. Seleccione TCP / IP como el protocolo y haga click en Siguiente.
117
Preguntas
1. ¿Cuál protocolo puede usar la Red de Oracle 12c? (Escoja cuatro opciones).
A. TCP
B. UDP
C. SPX/IPX
D. SDP
E. TCP con sockets seguros
F. Named Pipes
G. NetBIOS/NetBEUI
5. Si detiene su listener, ¿qué pasará con las sesiones que se conectaron con él?
(Seleccione la mejor respuesta).
A. Continuarán si configuró su fallo
B. No se verán afectadas de ninguna manera
C. Se bloquearán hasta que reinicie su listener
D. No puede detener un listener si se está usando
118
E. Las sesiones desplegarán un error.
10. ¿Por qué debería configurar múltiples listeners para una instancia? (elija la
mejor repuesta).
A. No puede; sólo puede haber un listener local.
119
B. Para dar la tolerancia a fallos y balanceo de cargas.
C. Si los listeners están en computadores separados, obtendrá mejor
rendimiento.
D. Para dispersar la carag de trabajo que implica mantener las sesiones
a través de todos los procesos.
11. La utilidad tnsping reporta que un alias es fino, pero no puede conectarse
con SQL*Plus. ¿Cuál podría ser la razón? (Escoja dos respuestas).
A. Está usando una combinación errónea de usuario/contraseña, pero
tnsping lo probó con una correcta combinación.
B. El listener se está ejecutando, pero la instancia no.
C. La Base de Datos está en modo Mount.
D. SQL*plus está usando un método de resolución de nombres y
tnsping otro.
120
¿Cuál de las siguientes afirmaciones es verdadera? (Escoja la mejor
respuesta)
A. Todos los alias se conectarán al mismo servicio.
B. Los alias irán a diferentes servicios.
C. El primer y tercer alias fallarán, porque el nombre del alias no
corresponde al nombre del servicio.
D. Habrá un conflicto de puertos, porque todos los alias estarán usando
el mismo puerto.
E. Ninguno de los anteriores.
L1=(description=(address=(protocol=tcp)(host=serv1)(port=1521)))
Respuestas
121
1) A, D, E y F. Los cuatro protocolos que soporta la red de Oracle 12c son TCP,
SDP, TCP con seguridad en los sockets y Tuberías con nombre. Versiones previas
soportaban otros protocolos.
7) A y E. Todas las conexiones usan la Red Oracle, sin embargo no necesitan una
red y para las conexiones locales no necesita hacer configuraciones.
12) A y C. Los listeneres pueden levantarse tanto con el EM como con la utilidad
lsnrctl.
14) C. No tiene idea qué pasará, sin saber cómo es configurado el cliente.
122
15 – Administración de Servidores Compartidos
Ejercicio 15.1 - Configurando y Verificando los Servidores Compartidos
Tenga en cuenta que hay dos procesos, d000 y d001, que son los dos
despachadores, y tres procesos de servidor compartido; s000, S001 y S002.
3. Use Lsnrctl para confirmar que los despachadores se han registrado con su
Listener: desde la línea de comandos de un sistema operativo, escriba
lsnrctl services. La salida la puede observar en la siguiente figura. Tenga
en cuenta que los dos despachadores se han registrado pero que aún no se
establecido ninguna sesión.
123
4. Poner en marcha una nueva sesión de SQL * Plus, y acceder a su instancia,
a través del Listene r.
sqlplus system/oracle@orcl
6. Repita los pasos 4 y 5 varias veces hasta que haya un número de sesiones
concurrentes, y observar cómo las nuevas conexiones se equilibran a través
de los dos despachadores.
125
6. Poner en marcha una sesión de SQL * Plus a través de un servidor
compartido.
SQL> connect system/oracle@orcl_mts
Preguntas
1. ¿Cuál de estas estructuras de memoria no están almacenadas en el SGA para
una sesión de servidor compartido? (Seleccione la mejor respuesta).
A. Estado de Cursor.
B. Espacio de Ordenamiento
C. Espacio de Pila
D. Sesión de Datos
Objeto Función
A. Cola común a. Conecta usuarios con despachadores
B. Despachadores b. Almacena trabajos que están esperando
para ser ejecutados
C. Large Pool c. Ejecuta comandos SQL
D. Listener d. Almacena resultados a la espera de los
resultados obtenidos
E. Cola de e. Recibe comandos de los procesos de
Respuesta usuario
F. Servidor f. Almacena los UGAs accedidos por todos los
compartido servidores
126
C. Las colas de servidor compartido están creadas en el Large Pool, si
este ha sido definido. De lo contrario, se encuentran en el Pool
Compartido.
D. Para sesiones de servidor compartido, las UGAs siempre se
almacenan en el SGA.
127
C. Debería considerar añadir más despachadores.
D. Debería crear un large pool, para aliviar la tensión en el pool
compartido.
10. Su Base de Datos está siendo usada por una mezcla de procesos OLTP, DSS
y en lote. ¿Aconsejaría el uso de servidores compartidos? (Escoja la mejor
respuesta).
A. Sí, pero sólo para el trabajo OLTP.
B. Sí, si los usuarios de los procesos en lote y los de DSS vienen de un
despachador distinto al de OLTP.
C. No, porque la mezcla de carga de trabajo causará problemas.
D. No, a menos que el trabajo pueda ser particionado de tal forma que
el trabajo OLTP se ejecute durante el día y los trabajos en lote y el
DSS durante la noche para evitar la contención.
128
12. ¿Cuál de las siguientes operaciones no pueden realizarse por medio de una
conexión de servidor compartido? (Elija la mejor respuesta).
A. Copia de seguridad y Restauración
B. Cierre y levantado
C. Operaciones físicas, como crear archivos de datos
D. Trabajos en lote largos
E. Creación de índices
15. Quiere asegurarse que tiene una conexión de servidor dedicado. ¿cuál de
los siguientes métodos de conexión le dará esto? (Escoja dos respuestas).
A. Utilizando Easy Connect, porque no puede usar las características
avanzadas como servidor compartido.
B. Hacer una conexión local pasando por alto el listener.
C. Incrustando la directiva SERVER=DEDICATED en el alias del servicio
que usa.
D. Conectándose AS SYSDBA, que siempre dará una conexión dedicada
para que pueda ejecutar los comandos startup y shutdown.
Respuestas
1) C. El espacio de pila no se almacena en el SGA.
129
2) A-b. La pila común la comparten todos los comandos.
B-e. Los despachadores reciben comandos de los procesos de usuarios.
C-f. Si se crea, el large pool es donde se almacenan los UGAs.
D-a. El listener establece sesiones conectando usuarios con despachadores.
E-d. Cada despachador tiene su propia cola para resultados.
F-c. Los servidores compartidos ejecutan comandos como normal.
11) A. Esta es la respuesta correcta, pero también debe configurar siempre los
otros parámetros.
7. Recompile el procedimiento:
SQL> alter procedure p1 compile;
Procedure altered.
8. Recompile la vista:
SQL> alter view v1 compile;
Warning: View altered with compilation errors.
Esto muestra que la vista está referida a una tabla, TESTTAB, y un objeto
inexistente denominado D1.
TEXT
----------------------------------------
select d1 from testtab
132
11. Para arreglar el problema, agregue nuevamente la columna y recompile:
SQL> alter table testtab add (d1 date);
SQL> alter view v1 compile;
12. Confirme que todos los objetos son válidos ahora ejecutando las consultas
desde el paso 4.
Crear índices, los forza a ser inservibles, y repararlos con SQL * Plus y el
Controlador de Base de Datos.
________________________________________________________________
3. Mueva la tabla.
SQL> alter table testtab move;
4. Ejecute la consulta otra vez a partir del paso 2. El traslado de la tabla, que
cambió todos los id de las filas, se han hecho los índices inservibles.
133
5. Reconstruya un índice, utilizando el NOLOGGING y opciones ONLINE.
SQL> alter index n1_idx rebuild online nologging;
134
10. Haga click en Siguiente, deje todas las opciones por defecto, y haga click en
Siguiente de nuevo para generar la reorganización y la secuencia de
comandos de llegar a la ventana de Informe de Impacto. Esto debería
confirmar que existe suficiente espacio libre para la operación que se
ejecutará. Haga click en Siguiente para proceder.
13. En su sesión de SQL * Plus, confirme que el índice que se está ejecutando
es válido corriendo las consultas a partir del paso 2.
135
2. Tome la pestaña Administración, en la sección Agenda el enlace de Trabajos
a llegar a la ventana de Programación de Trabajos.
begin
dbms_stats.gather_table_stats(
ownname => 'TESTUSER',
tabname => 'TESTTAB',
estimate_percent => 100,
cascade => true,
method_opt => 'for all indexed columns size auto');
end;
136
Ejercicio 16.4 - Opcional
CONNECT test/test
CREATE TABLE test (long_string VARCHAR2(2000));
BEGIN
FOR ctr IN 1 .. 10000 LOOP
INSERT INTO test VALUES (TO_CHAR(ctr));
END LOOP;
END;
COMMIT;
/*
TABLE_NAME NUM_ROWS CHAIN_CNT
------------------------------ ---------- ----------
TEST 10000 0
*/
UPDATE test SET long_string = LPAD(long_string, 500);
COMMIT;
/*
TABLE_NAME NUM_ROWS CHAIN_CNT
------------------------------ ---------- ----------
TEST 10000 9999
*/
137
/*
TABLE_NAME NUM_ROWS CHAIN_CNT
------------------------------ ---------- ----------
TEST 10000 9999
*/
/*
TABLE_NAME NUM_ROWS CHAIN_CNT
------------------------------ ---------- ----------
TEST 10000 0
*/
Preguntas
1. Si crea una tabla y un procedimiento que hace referencia a esta, y luego
cambia la definición de la tabla, ¿qué pasará cuando intente ejecutar el
procedimiento? (Escoja la mejor respuesta).
A. EL procedimiento se volverá a compilar automáticamente y se
ejecutará con éxito.
B. El procedimiento fallará hasta que lo vuelva a compilar.
C. El procedimiento se ejecutará con desempeño reducido hasta que le
haga un análisis a la tabla.
D. El procedimiento puede que compile o no, dependiendo de la
naturaleza del cambio.
138
C. Si no utiliza la palabra reservada ONLINE mientras está
reconstruyendo, la tabla no estará disponible para SELECTs y para
comandos DML.
D. La palabra reservada NOLOGGING aplicada a la reconstrucción
significa que hacer DML al índice no generará redo.
6. ¿De dónde se llenan las vistas de rendimiento dinámico? (Escoja todas las
respuestas correctas).
A. La instancia
B. El archivo de control
C. El Diccionario de Datos
D. El Repositorio de Carga de Trabajo Automático
7. Cuando usted baja su instancia, ¿qué sucede con la información en las vistas
de rendimiento dinámico? (Elija la mejor opción).
A. Se pierden
B. Se guarda en el AWR por el proceso MMON.
C. Se guarda en el archivo de control.
D. Depende del método de desconexión de la instancia: un colapso o
SHUTDOWN ABORT lo perderá; de cualquier otra forma, lo guardará.
139
B. Los comandos DML tendrán éxito, pero tal vez con rendimiento
reducido.
C. La restricción de llave primaria ya no puede ser aplicada.
D. Todas las anteriores.
Respuestas
1) D. Oracle intentará recompilar automáticamente, esto puede o no realizarse
con éxito.
4) B. Esta vista también pudo ser llenada por medio del análisis en el que el índice
se basa.
17 - Monitoreo de Oracle
140
Ejercicio 17.1 - Generando un Reporte ADDM
Recoger una instantánea AWR, simular una carga de trabajo, reunir otra
instantánea, y ver el Reporte ADDM.
________________________________________________________________
SQL> commit;
141
7. Seleccione la opción del Último Reporte ADDM, haga click en Ver Resultado.
El reporte debería desplegarse.
142
Configurar las alertas de "los COMMITS del usuario (por segundo)", y vigilar que se
hayan planteado.
________________________________________________________________
4. Desplácese hacia abajo para llegar a las alertas de "los COMMIT de los
usuarios (por segundo)", y establecer la alerta y los valores críticos de 1 y 4.
Estos umbrales son artificialmente bajos que se sea fácil de cruzar. Haga
click en Aceptar para guardar este cambio.
SQL> commit;
SQL> /
SQL> /
SQL> /
6. En su sesión del EM, con sólo unos segundos que hayan transcurrido verá
que la alerta ya fue planteada.
Preguntas
1. Clasifique las siguientes medidas como estadísticas o métricas. Hay tres de
cada una.
A. Un tablespace usado, Megabytes.
B. El espacio de un tablespace usado, porcentaje.
C. Lecturas a disco desde el inicio de la instancia.
D. Rollbacks por segundo de usuario.
E. Máximo de sesiones actuales.
F. Redo generado por transacción.
143
2. ¿Dónde está almacenado el Repositorio de Carga de Trabajo Automático? (Elija
la mejor respuesta).
A. En el tablepace SYSAUX.
B. En el tablespace SYSTEM.
C. En el SGA (System Global Area).
D. Puede escoger la ubicación a la hora de crear la Base de Datos y
reubicarla subsecuentemente.
5. ¿Por cuánto tiempo son retenidas las instantáneas AWR y los reportes ADDM?
(Elija la mejor respuesta).
A. Por defecto, tanto las instantáneas como los reportes se guardan por
30 días, a menos que se purgue antes o se etiquete la retención.
B. Las instantáneas son retenidas hasta que se purgue, los reportes no
se guardan; ellos se generan según la demanda.
C. Por defecto, las instantáneas se guardan durante siete días y los
reportes por 30 días.
D. Las instantáneas se guardan en el SGA y se eliminan a la hora de la
desconexión. Los reportes se almacenan hasta que el AWR se
purgue.
Asesor Función
A. Asesor de a. Recomendaciones a la hora de crear
memoria segmentos.
144
B. Asesor de b. Asesora cuando los objetos que están
Segmentos desperdiciando espacio se encogen.
C. Asesor de c. Predicciones del espacio necesario para
Acceso SQL retener datos UNDO expirados por un
período.
D. Asesor de Undo d. Asesora en cúanto dimensionar ciertos
componentes del SGA.
9. Algunas alertas están en estado, quiere decir que están disponibles hasta que
se limpien; otras se limpian inmediatamente. ¿Cuál de las siguientes, si hay
alguna, están fuera de estado? (Seleccione las que apliquen).
A. Instantáneas muy viejas.
B. Un tablespace lleno.
C. Una Base de Datos abajo.
D. Los commits de usuario por segundo.
Respuestas
1) Una estadística es una cifra en bruto; una métrica es una estadística
relacionada a otra estadística. Por lo que las estadísticas son A, C y E, ninguna de
las cuales tienen relevancia por ellas mismas. Las métricas son B, que compara el
espacio usado con el espacio total; D, relacionada al número de rollbacks con
respecto al tiempo; y F, que correlaciona el número de escrituras redo con el
número de transacciones.
4) B. Los reportes ADDM son generados por MMON en el momento en que una
instantánea es tomada. El controlador de Base de Datos se utiliza para ver los
reportes. SMON monitorea la instancia pero no hace reportes sobre esto. RMAN, el
Administrador de Recuperación, no tiene nada que ver con ADDM.
5) C. Las instantáneas AWR se retienen durante siete días, los reportes ADDM por
30 días. Estos valores pueden cambiarse.
7)
a-D. El Asesor de Memoria predice el efecto del cambio de los parámetros de la
instancia que controla el tamaño de los componentes del SGA.
b-D. El Asesor de Segmentos inspecciona segmentos y reportes que tengan
cantidades significativas de espacio desperdiciado.
c-A. El Asesor de Acceso puede recomendar la creación (o eliminación) de
índices y vistas materializadas.
d-C. El Asesor de Undo calcula el espacio undo necesario para advertencias y
alertas críticas del uso del tablespace.
10) A, C, B, E, D.
10. Ejecute la siguiente consulta, que devolverá una fila por cada segmento que
realizó rollback o que tiene segmentos UNDO en la Base de Datos:
4. Interprete los resultados de la consulta. Note que la vista tiene una fila por
un intervalo de diez minutos, muestra cuánto se deshizo, en bloques, qué
tan larga fue la consulta más extensa, en segundos, y si existe algún error
de “Snapshot Too Old” ó "instantánea demasiado vieja", o errores de
funcionamiento de las operaciones que están ejecutándose fuera del
tablespace UNDO.
select
(select max(undoblks)/600 * max(maxquerylen)
from v$undostat)
*
(select value
from v$parameter
where name='db_block_size')
from dual;
Preguntas
1. Si un segmento undo se llena, ¿qué pasará? (Elija la mejor respuesta).
A. Otro segmento undo se crea automáticamente.
B. El segmento undo se autoincrementará
148
C. El tablespace undo se extenderá, si sus archivos de datos están
configurados para auto-extenderse.
D. Las transacciones continuarán en un segmento undo diferente.
149
6. Su tablespace undo tiene diez segmentos undo, pero durante una ráfaga
repentina de actividad tiene veinte transacciones actualmente. ¿Qué pasará?
(Escoja la mejor respuesta).
A. Oracle creará diez segmentos más de undo.
B. Las transacciones se balacearán automáticamente entre los diez
segmento undo.
C. Diez transacciones se bloquearán hasta que las primeras diez hayan
finalizado.
D. Lo que suceda dependerá de la configuración de UNDO_RETENTION.
7. ¿Cuál vista le ayudará a decidir cuánto espacio undo necesita para proteger su
transacción de la carga de trabajo? (Escoja la mejor respuesta).
A. V$TRANSACTION
B. V$UNDOSTAT
C. V$UNDO_ADVICE
D. V$UNDO_ADVISOR
E. DBA_ROLLBACK_SEGS
8. ¿Cuál vista le dirá acerca de sus segmentos undo? (elija la mejor respuesta).
A. V$UNDOSTAT
B. DBA_ROLLBACK_SEGS
C. DBA_UNDO_SEGS
D. V$UNDO_TABLESPACE
10. Quiere asegurarse que tanto consultas largas como transacciones largas
siempre se ejecutarán con éxito. ¿Cómo debe configurar el undo? (elija la
mejor respuesta).
A. Asigna las transacciones a un tablespace y las consultas a otro.
B. Habilite la garantía de retención para su tablespace undo.
C. Habilite la opción auto-extend en los archivos de datos del tablespace
undo.
D. Esta situación tal vez sea imposible de resolver.
11. Primero, el usuario JOHN inicia una consulta. Segundo, el usuario DAMIR
actualiza una fila que será incluida en la consulta. Tercero, la consulta de JOHN
150
se completa. Cuarto, DAMIR hace commit a sus cambios. Quinto, JOHN ejecuta
su consulta nuevamente. ¿Cuál de las siguientes afirmaciones es correcta?
(Escoja tres respuestas).
A. El principio de consistencia quiere decir que las dos consultas de
JOHN devolverán el mismo resultado.
B. Cuando DAMIR hace commit, los datos undo van hacia el disco.
C. Cuando DAMIR hace commit, los datos undo se vuelven inactivos.
D. La primera consulta de JOHN usará datos undo.
E. LA segunda consulta de JOHN usará datos undo.
F. Los resultados de las dos consultas serán diferentes.
13. Su tablespace undo tiene diez segmentos undo. ¿Qué pasará si más de diez
usuarios inician transacciones concurrentemente? (Seleccione la mejor
respuesta).
A. La administración de undo automática gestionará la intercalación de
de las transacciones de datos undo en los diez segmentos.
B. Se crearán segmentos undo adicionales, automáticamente.
C. Todas las transacciones se ejecutarán con éxito, a menos que haya
configurado la garantía de retención.
D. Solamente se ejecutarán diez transacciones; las otras se pondrán en
cola.
E. Solamente se ejecutarán diez transacciones; las otras fallarán por
falta de espacio undo.
151
----------------- ----------------- ---------- ----------
02-10-04:11:35:55 02-10-04:11:41:33 14435 29
02-10-04:11:25:55 02-10-04:11:35:55 120248 296
02-10-04:11:15:55 02-10-04:11:25:55 137497 37
02-10-04:11:05:55 02-10-04:11:15:55 102760 1534
02-10-04:10:55:55 02-10-04:11:05:55 237014 540
02-10-04:10:45:55 02-10-04:10:55:55 156223 1740
02-10-04:10:35:55 02-10-04:10:45:55 145275 420
02-10-04:10:25:55 02-10-04:10:35:55 99074 120
El tamaño del bloque del tablespace undo es de 4 KB. ¿Cuál de los siguientes sería
el tamaño óptimo para el tablspace undo? (Elija la mejor respuesta).
A. 1 GB
B. 2 GB
C. 3 GB
D. 4 GB
15. ¿Cuál de los siguientes puede ser un factor contribuyente para errores de
“instantáneas demasiado viejas”? (Elija la mejor respuesta).
A. Transacciones de ejecución larga.
B. Configuración muy lenta para UNDO_RETENTION.
C. Uso de “set transaction read-only” (Configuración de la transacción
sólo para lectura).
D. Todas las anteriores.
Respuestas
1) B. Los segmentos undo incrementan según la demanda, de acuerdo al volumen
de los datos undo que se estén generando por transacción.
6) A. Oracle creará tantos segmentos undo como sea necesario para las
transacciones actuales.
9) C. si una sesión requiere datos undo para consistencia de lectura y esos datos
ya no se encuentran disponibles en el tablespace undo porque ha sido sobrescrito,
entonces la sesión recibirá un error ORA-1555 y el comando fallará.
11) C, D y F. Una vez que la transacción se completa los datos undo se vuelven
inactivos, aunque tal vez se necesiten para consistencia de lectura ©. También, la
primera consulta de JOHN no debería ver los cambios de DAMIR (D). Y por
defecto, Oracle no provee consistencia de lectura a través de una serie de
comandos SELECT (por lo que las dos consultas darán un resultado diferente (F)).
12) B. Esta es la única opción que podría causar bajas en el tiempo, porque no
puede mover un archivo de datos sin sacarlo de línea. Todas las otras operaciones
pueden llevarse a cabo durante una ejecución normal.
14) C. Para calcular, tome la figura más grande para UNDOBLKS, divídalo entre
600 para obtener el rango de generación undo en bloques por segundo,
multiplíquelo por el tamaño del bloque y multiplíquelo por la figura más grande
para MAXQUERYLEN.
153
15) C. “Set transaction read only” para series de comandos que requerirán uso
extensivo de datos undo.
154
intentará hasta que se bloquee, las declaraciones DDL terminan de
inmediato con un error.
C1 C2
---------- ---------
21 09-FEB-05
4. Repita el paso 3, pero antes de que los diez segundos se acaben ejecute un
COMMIT en su primera sesión. La sesión dos va a continuar.
SQL> select * from t1 for update wait 10;
C1 C2
---------- ---------
2
1 09-FEB-05
La session se bloqueará.
157
10. En su primera sesión, ejecute una consulta de su elección; y se desplegará
el mensaje: “ORA-00028: your session has been killed”, indicando que usted
ha sido desconectado a la fuerza.
3. En su primera sesión, solicite un bloqueo de fila para una fila bloqueada por
la segunda sesión, ejecutando el comando del paso 2. La sesión se
bloqueará.
6. Abra el registro de alertas con el editor de texto que desee (recuerde, está
localizado en el directorio especificado por el parámetro de instancia
BACKGROUND_DUMP_DEST, y llamado alert_<nombre de la
instancia>.log). La última entrada será:
Mon Feb 14 09:27:03 2005
ORA-00060: Deadlock detected. More info in file
158
/oracle/product/11.1.0/admin/orcl/udump/orcl_ora_420.trc
.
7. Abrir el archive de traza listado. Nótese que en este directorio específico por
el parámetro de instancia USER_DUMP_DEST. Incluye información como:
*** 2005-02-14 09:27:03.242
*** ACTION NAME:() 2005-02-14 09:27:03.212
*** MODULE NAME:(SQL*Plus) 2005-02-14 09:27:03.212
*** SERVICE NAME:(SYS$USERS) 2005-02-14 09:27:03.212
*** SESSION ID:(133.26) 2005-02-14 09:27:03.212
DEADLOCK DETECTED
Current SQL statement for this session:
update t1 set c2=sysdate where c1=2
The following deadlock is not an ORACLE error. It is a
deadlock due to user error in the design of an
application
or from issuing incorrect ad-hoc SQL. The following
information may aid in determining the deadlock:
Preguntas
1. ¿Cuál de los siguientes comandos impondrán un (o más) bloqueo (s) de fila
exclusivo? (Seleccione todos los que apliquen).
A. ALTER TABLE EMP ADD COLUMN DOB (DATE);
B. UPDATE EMP SET SAL=SAL*1.1;
C. UPDATE EMP SET SAL=SAL*1.1 WHERE EMPNO=7839;
D. SELECT * FROM EMP WHERE EMPNO=7839 FOR UPDATE;
E. CREATE INDEX ENAME_IDX ON EMP(ENAME);
160
C. Se bloqueará hasta que la sesión que la está bloqueando libere su
bloqueo ejecutando otro comando DML.
D. No se bloqueará; tomará un bloqueo compartido y continúa
trabajando utilizando datos undo.
E. Ninguna de las anteriores es correcta.
Respuestas
1) B, C y D. Todos los comandos DML requieren bloqueo exclusivo de filas y todos
los comandos DDL requieren bloqueos exclusivos de tabla.
161
1. Desde la línea de comandos de un sistema operativo, establezca la variable
NLS_LANG a Húngaro, también ajuste la fecha a desplegar a la fecha por
defecto.
Usando Windows,
C:\>set NLS_LANG=Hungarian
C:\>set NLS_DATE_FORMAT=Day dd Month yyyy
O en Unix/Linux,
$ export NLS_LANG=Hungarian
$ export NLS_DATE_FORMAT=’Day dd Month yyyy’
Para este ejercicio, se asume que usted completó el ejercicio anterior y que usted
está trabajando en la misma sesión de SQL*Plus. Demostrará que los estándares
europeos y estadounidenses pueden causar confusión.
________________________________________________________________
162
1. Confirme que la variable NLS_LANG se encuentra en el lenguaje Europeo.
En Windows,
SQL> host echo %NLS_LANG%
O en Unix/Linux,
SQL> host echo $NLS_LANG
5. Ejecute la consulta del paso 3 otra vez, y fíjese que el número del día
cambió con el cambio del ambiente de Europeo a Estadounidense.
163
164
Ejercicio 20.3 - Haciendo ajustes a la Zona Horaria
Confirme y ajuste su zona horaria actual, usando los tipos de datos de fecha
apropiados. Pruebe los resultados usando las máscaras de formato apropiadas.
________________________________________________________________
Y note el resultado.
165
5. Ajuste la zona horaria de su sesión a una diferente de la zona horaria de la
Base de Datos, por ejemplo:
SQL> alter session set time_zone='Pacific/Tahiti';
12. Repita la consulta del paso 9, y note que el TIMESTAMP WITH LOCAL
TIMEZONE se ajustó para reflejar que su sesión está ahora en diferente
zona.
13. Arréglelo.
SQL> drop table times;
Preguntas
1. Su Base de Datos fue creada con US7ASCII como el conjunto de caracteres
de la Base de Datos, y luego descubre que no es adecuado. ¿Qué puede hacer?
(Elija la mejor respuesta).
A. Volver a crear la Base de Datos.
B. Ejecutar el comando alter database carácter set …
C. Ejecutar el comando alter system carácter set …
166
D. Generar un comando create controlfile… , edítelo para
especificar un conjunto de caracteres diferente, y vuelva a crear el
archivo de control.
11. ¿Cómo podría evitar que los usuarios hagan confusiones, por ejemplo,
formatos de fecha y hora de la configuración local variables locales de
ambiente?
A. No puede; los usuarios tienen control sobre esto.
B. Escriba los triggers de inicio de sesión para configurar el ambiente
de sesión.
C. Establezca los parámetros de instancia de Globalización para
anular la configuración del lado del cliente.
D. Configure la Red de Oracle para convertir todos los datos
enviados y recibidos de la Base de Datos apropiadamente.
12. ¿Cuál vista le dirá qué lenguajes pueden ser soportados por su instalación?
(Seleccione la mejor respuesta).
A. NLS_DATABASE_PARAMETERS
B. NLS_INSTANCE_PARAMETERS
C. V$NLS_VALID_VALUES
D. V$NLS_LANGUAGES
Respuestas
1) B. Use este comando, pero pruébelo con el Scanner del Conjunto de Caracteres
primero.
169
2) C. Cualquiera de estos conjuntos de caracteres Unicode está permitido
actualmente.
7) D. el, por ejemplo, reportará si un cambio codificado evitará que los datos
quepan en una columna.
11) B. La mejor opción es escribir los triggers de inicio de sesión, que evitará
cualquier confusión posible causada por la configuración del cliente.
12) C. Esta vista le mostrará el rango completo de los lenguajes soportados, así
como todas las otras opciones de globalización.
13) C. Para quitar los signos de puntuación así como los espacios en blanco,
necesitará crear su propia variación con el Constructor Local.
171