EJERCICIOS GESTIÓN INSTANCIA ORACLE 1. Localiza el fichero init.ora (y spfile.ora si existe) de...

13
EJERCICIOS GESTIÓN INSTANCIA ORACLE 1. Localiza el fichero init.ora (y spfile.ora si existe) de nuestra BD. C:\oraclexe\app\oracle\product\11.2.0\server\config\scripts Nos vamos a equipo. Unidad C:\ Pinchamos en Oraclexe. Pinchamos en app.

Transcript of EJERCICIOS GESTIÓN INSTANCIA ORACLE 1. Localiza el fichero init.ora (y spfile.ora si existe) de...

Page 1: EJERCICIOS GESTIÓN INSTANCIA ORACLE 1. Localiza el fichero init.ora (y spfile.ora si existe) de …yolandaam.com.es/images/oracle/01-Gestión instancia oracle.pdf · spfile), ya

EJERCICIOS GESTIÓN INSTANCIA ORACLE

1. Localiza el fichero init.ora (y spfile.ora si existe) de nuestra BD.

C:\oraclexe\app\oracle\product\11.2.0\server\config\scripts

Nos vamos a equipo.

Unidad C:\

Pinchamos en Oraclexe.

Pinchamos en app.

Page 2: EJERCICIOS GESTIÓN INSTANCIA ORACLE 1. Localiza el fichero init.ora (y spfile.ora si existe) de …yolandaam.com.es/images/oracle/01-Gestión instancia oracle.pdf · spfile), ya

Pinchamos en Oracle.

Pinchamos en product.

Pinchamos en la carpeta 11.2.0

Pinchamos en Server.

Page 3: EJERCICIOS GESTIÓN INSTANCIA ORACLE 1. Localiza el fichero init.ora (y spfile.ora si existe) de …yolandaam.com.es/images/oracle/01-Gestión instancia oracle.pdf · spfile), ya

Pinchamos en la carpeta confing.

Pinchamos en la carpeta scripts.

Y encontramos el archivo init.ora

En mi caso no existe el archivo spfile.ora

Page 4: EJERCICIOS GESTIÓN INSTANCIA ORACLE 1. Localiza el fichero init.ora (y spfile.ora si existe) de …yolandaam.com.es/images/oracle/01-Gestión instancia oracle.pdf · spfile), ya

2. Anota el valor de los parámetros: control_files, sessions y

undo_tablespace.

Abrimos el archivo init.ona con nuestro blog de nota o con un programa

de lector de archivos como el notepad.

Control files:

Sessions:

Page 5: EJERCICIOS GESTIÓN INSTANCIA ORACLE 1. Localiza el fichero init.ora (y spfile.ora si existe) de …yolandaam.com.es/images/oracle/01-Gestión instancia oracle.pdf · spfile), ya

undo_tablespace:

3. Arranca la BD (startup) y anota el valor de los parámetros: Total System

Global Area, Fixed Size, Variable Size y Database Buffers.

(ORA01081: no se puede iniciar ORACLE cuando ya se está ejecutando cierre

primero Si encontráis el siguiente error es porque la BD ya está abierta y no es

necesario arrancarla).

Vemos que nuestra base de datos está conectada. Lo que tenemos que

realizar es cerrarla con el comando shutdown.

Una vez que ya está cerrada, la volvemos a arrancar con el comando startup.

Nos ofrecerá los parámetros de total system gobal área, fixed size, variable size,

datataba buffers, redo buffers.

Page 6: EJERCICIOS GESTIÓN INSTANCIA ORACLE 1. Localiza el fichero init.ora (y spfile.ora si existe) de …yolandaam.com.es/images/oracle/01-Gestión instancia oracle.pdf · spfile), ya

4. Investiga el valor de los siguientes parámetros:

SQL> show parameter processes

SQL> show parameter sga_target

SQL> show parameter sga_max_size

SQL> show parameter db_block_size

SQL> show parameter log_buffer

Page 7: EJERCICIOS GESTIÓN INSTANCIA ORACLE 1. Localiza el fichero init.ora (y spfile.ora si existe) de …yolandaam.com.es/images/oracle/01-Gestión instancia oracle.pdf · spfile), ya

SQL> show parameter db_cache_size

SQL> show parameter shared_pool_size

5. Arranca sólo la instancia (NOMOUNT) y consultar algún parámetro. Qué ocurre

al acceder a V$CONTROLFILE (por ejemplo, con un describe) y por qué.

En mi caso cerramos primero la base de datos con el comando shutdown.

La volvemos a inicializar con el comenado startup nomount.

Al arrancar sólo la instancia, podemos consultar los parámetros del init (o el

spfile), ya que este fichero se lee justo antes de arrancar la instancia. Pero, al

indicar NOMOUNT, todavía NO SE HA ABIERTO EL FICHERO DE CONTROL, por lo

que no tendremos acceso a su contenido y tampoco a las tablas estáticas del

DD que están almacenadas en la BD, cuyos ficheros tampoco se han abierto.

Page 8: EJERCICIOS GESTIÓN INSTANCIA ORACLE 1. Localiza el fichero init.ora (y spfile.ora si existe) de …yolandaam.com.es/images/oracle/01-Gestión instancia oracle.pdf · spfile), ya

Al ponder desc v$controlfile;

O también describe v$controlfile

Vemos los datos de la tabla.

Escribimos una seleccionamos todos sobre la table v$controlfile.

Indicamos select * from v$controlfile;

Pero en este caso nos dice que no hay filas seleccionadas.

6. Montar la BD.

Consultar V$CONTROLFILE.

Para obtener nombre y ruta del control file: SQL>select name from v$controlfile;

Qué sucede al intentar leer de la tabla DBA_USERS.

Al montar la BD, se abre el fichero de control leyendo su contenido, de forma

que ya sabemos la ubicación y el nombre de cada uno de los ficheros que

componen la BD.

La BD no la hemos abierto por lo que no podemos ver la tabla DBA_USERS.

Primero montamos la base de datos, con alter database mount;

Page 9: EJERCICIOS GESTIÓN INSTANCIA ORACLE 1. Localiza el fichero init.ora (y spfile.ora si existe) de …yolandaam.com.es/images/oracle/01-Gestión instancia oracle.pdf · spfile), ya

Para obtener nombre y ruta del control file: SQL>select name from v$controlfile;

El archivo de la base de datos donde está montada.

Ponemos select count(*) from v$logfile;

Nos indica que hay dos archivos log.

Qué sucede al intentar leer de la tabla DBA_USERS.

Que no existe dba_users en la base de datos.

7. Abrir la BD y leer DBA_USERS.

Para abrir la base de datos.

sql>alter database open;

Page 10: EJERCICIOS GESTIÓN INSTANCIA ORACLE 1. Localiza el fichero init.ora (y spfile.ora si existe) de …yolandaam.com.es/images/oracle/01-Gestión instancia oracle.pdf · spfile), ya

Si la leemos, nos dice que no existe.

8. Cierra la BD (shutdown)

Indicamos shutdown

9. Impide las conexiones de usuarios, de modo que el DBA sí pueda conectarse.

Intenta conectarte como hr y comprueba que no puedes. Volver a permitir

conexiones de usuarios.

Logueada como sysdba:

• Si la BD está parada SQL>STARTUP RESTRICT

• Si la BD está arrancada SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;

Desde SQL.Command Line inicio otra sesión logueada ahora como hr

SQL>connect hr y comprobaré que no me dejará conectarme

Page 11: EJERCICIOS GESTIÓN INSTANCIA ORACLE 1. Localiza el fichero init.ora (y spfile.ora si existe) de …yolandaam.com.es/images/oracle/01-Gestión instancia oracle.pdf · spfile), ya

10. Recuperación de la BD (se realiza si no funciona la base de datos)

En algunas ocasiones Oracle muestra errores muy generales (error en el enlace,

en la conexión, archivos corruptos...) que nos impiden seguir manejando la BD

(ya que aunque la instancia permanece abierta la BD está montada (pero

cerrada) y por eso no permite acceder a datos). Es recomendable intentar

recuperar la BD y solucionar el error.

Logueadas as sysdba:

SQL> recover database;

Media recovery complete.

SQL> alter database open;

Database altered.

Cuando esto no nos resuelve el problema es aconsejable (en la misma sesión,

es decir, seguimos loguedos as sysdba) cerrar la instancia y volverla abrir

montando la BD, hacerle entonces el recovery y luego abrir la BD.

SQL> shutdown immediate

OK

SQL> startup mount

OK

SQL> recover database;

Media recovery complete.

SQL> alter database open;

Database altered.

Page 12: EJERCICIOS GESTIÓN INSTANCIA ORACLE 1. Localiza el fichero init.ora (y spfile.ora si existe) de …yolandaam.com.es/images/oracle/01-Gestión instancia oracle.pdf · spfile), ya

11. Cerrar la BD y abrirla en modo READ ONLY, y crear una tabla. Activar modo

READ WRITE y volver a crear la tabla.

Para abrir la BD en modo READ ONLY, primero debemos arrancar la BD sin abrirla

(MOUNT), si no está ya en ese estado (si está abierta la cerraremos).

Lo primero que hacemos es conectarnos al sys

Ponemos connect sys as sysdba

Cerramos la base de datos con shutdown

La inicializar con el comenado startup nomount.

Para abrir la BD en modo READ ONLY

sql>alter database open read only;

Page 13: EJERCICIOS GESTIÓN INSTANCIA ORACLE 1. Localiza el fichero init.ora (y spfile.ora si existe) de …yolandaam.com.es/images/oracle/01-Gestión instancia oracle.pdf · spfile), ya

sql>create table system.mitabla(c1 varchar2(2)) tablespace users;

Como hemos visto, en modo readonly no podemos crear una tabla pues los

ficheros de la BD están en modo de sólo lectura. Si abrimos la BD en modo

normal (readwrite), no tendremos problemas para crear la tabla.

No tiene que funcionar porque solo está en lectura.

Cerramos la base de datos con shutdown

La inicializar con el comenzado startup mount

Y realizo un alter database open read write;

Creamos una tabla

create table system.mitabla(c1 varchar2(2)) tablespace users;