Repaso Tema 07:
1
Elementos de la arquitectura de Oracle
La arquitectura de ORACLE tiene tres componentes básicos: las estructuras de
memoria para almacenar los datos y el código ejecutable con el objetivo de tener un
acceso más rápido, los procesos que corren el sistema de bases de datos y las tareas
de cada usuario conectado a la base de datos y los archivos que sirven para el
almacenamiento físico, en disco, de la información de la base de datos.
2
TEMA Nº1:
MANEJO DE INSTANCIAS DE ORACLE
- INSTANCIA DE ORACLE
Se denomina instancia al conjunto de estructuras de memoria y procesos de
fondo que acceden los archivos de bases de datos. Es posible que una misma
base de datos sea accedida por múltiples instancias; cada una de ellas
residiendo en una máquina diferente (ésta es la opción de servidores paralelos
de ORACLE).
El sistema de bases de datos ORACLE, cuando inicia, sigue los pasos que se
detallan a continuación:
1. Iniciar la instancia. Para hacer este paso, ORACLE lee el archivo de
parámetros y configura la instancia, con base en ellos. En ese momento, se
crea la SGA y se activan los procesos de base, pero aún no se puede hacer
nada.
2. Montar la base de datos. Consiste en preparar el sistema para su uso
trayendo a la RAM el diccionario de datos; es como poner el sistema en
primera, listo para recibir algunas órdenes del DBA.
3. Abrir la base de datos. En este momento se abren los archivos y los usuarios
ya pueden tener acceso a los datos.
De acuerdo cómo se defina la instancia, ORACLE, a través de sus parámetros,
puede determinarse que tan poderoso y grande es el motor. Los parámetros se
definen en el archivo INIT.ORA. Entre ellos se pueden mencionar los siguientes:
3
db_block_buffers = número de bloques de bases de datos en la SGA. Existirá un
buffer por cada bloque.
db_block_size = tamaño del bloque de la base de datos. shared_poo_size =
tamaño del área compartida “shared pool”, en bytes.
Además, allí se especifica el número de usuarios concurrentes, el número de
transacciones concurrentes y los nombres de los archivos de control para la
base de datos.
Estos parámetros se pueden ajustar durante el proceso de afinamiento porque
inciden en el desempeño del sistema. Algunos de los parámetros son
específicos a una base de datos y, por lo tanto, deben ser cambiados antes de
crear una base de datos. Se incluyen en estos:
database_name = nombre de la base de datos. db_block_size = tamaño del
bloque
Ejemplo:
Diferencia entre instancia y base de datos.
4
5
-
- Bajar una base de datos de manera segura es una tarea constante de un DBA.
para ellos sigue los siguientes pasos cerrar la base de datos, luego la
desmonta y finalmente cierra la instancia.
- Ahora debemos iniciar la instancia de base de datos, la segunda línea muestra
el tamaño del SGA,Buffer de la base de datos , redo buffer entre otros que se
vieron al estudiar la estructura de ORACLE. Finalmente se monta la base de
datos y se abre para estar disponible a los usuarios.
- En muchas situaciones nuestra base de datos puede presentar fallas por lo que
es necesario saber si tiene la configuración para leer y escribir sobre ella.
6
- En algunas situaciones requerimos saber en qué modo se encuentra nuestra base
de datos y la fecha de creación con el objetivo de poder hacer algunos respaldos.
Una instancia de base de datos en Oracle es un conjunto de procesos y memorias que
interactúan para poder acceder a los archivos de datos (datos de la empresa ventas,
compras, productos etc.) conocidos de manera lógica como tablespace y de manera física
se representa con datafiles.
En la manipulación de las instancias de base de datos intervienen de manera directa 4
archivos SPFILE que sirve para configurar los parámetros de la base de datos, archivos
de datos, los archivos control file y redolog file.
7
Subtema 1.1:
ESTADOS DE UNA BASE DE DATOS
Se abren todos los archivos
(datos,control y redolog) para
interactuar con la instancia.
Se inicia la instancia
y abren los archivos
control file.
Se inicia la instancia y se
activa el archivo de parámetros
de datos PFILE(archivo de
parámetros)
La instancia y archivos
se encuentran
desactivados
- SUBIR BASE DE DATOS
Cuando una base de datos se encuentra abierta(open) los clientes pueden acceder
a los datos para realizar las operaciones básica como insertar, modificar y eliminar
los datos, de la misma forma los archivos control file (archivos de control) archivos
logfile (archivos de transacciones) y archivos de datos (datafile). También se ponen
a disposición de los administradores todos los procesos y bloques de memoria.
Ejemplo:
- Al ingresar a Oracle con nuestro usuario SYS estamos en el estado open de
manera directa sin para por los estados anteriormente indicados en el gráfico.
8
Otra forma establecer nuestra base de datos en estado open (usuarios y clientes
podrán manipular la información) es aplicando el comando startup. Antes de
ejecutar el comando nuestra base de datos debe estar en estado shutdown.
Podemos apreciar que la instancia y base de datos se encuentra montada y
abierta.
- Para levantar nuestra instancia (solamente activa los procesos y bloques de
memoria) se debe activar el siguiente comando. La base de datos debe estar en
estado shutdown. Se podrá apreciar en la imagen que no está montado ni abierta
la base de datos.
En los siguientes ejemplos podremos establecer distintos estados de la instancia
de base de datos para realizar acciones de mantenimiento.
9
- En muchas situaciones de nuestro trabajo diario necesitaremos renombrar, mover
archivos de la base de datos o quizás hacer un backup para asegurar la
información. Para ello debemos activar nuestra base de datos en un estado mounth
(montado) pero sin abrir los archivos de datos. Antes de aplicar este comando debe
estar en shutdown (bajar la instancia).
Otra forma más flexible y ágil de pasar nuestra base de datos de un estado a otro
es utilizando el comando alter database.
- Ahora utilizaremos el comando mount, para esto la instancia debe estar en estado
nomount .
- Finalmente podremos llevar nuestra instancia a un estado open utilizando el
comando alter database open;
10
- BAJAR LA BASE DE DATOS:
Debemos indicar que la instancia de la base de datos NO SE DETIENE POR
PASOS O ESTADOS como se lo hacía para subirla. Para detener la base de datos
podemos utilizar distintas formas con el objetivo de cubrir distintos objetivos como
esperar a que todos los usuarios se desconecten, cerrar la base de datos sin
esperar a que los usuarios se desconecten entre otros. A continuación, veremos
cómo hacerlo y las características de cada uno en el manejo de sesiones,
transacciones y archivos.
MODOS DE BAJAR LA BASE DE DATOS
Ejemplo:
Para ejecutar los siguientes ejemplos la instancia debe estar abierta.
- Shutdown es la manera más sencilla y segura (espera a que los usurarios graben
sus transacciones y cierren su sesión) para los usuarios al momento de cerrar la
instancia y base de datos.
Para estos ejercicios debemos conectarnos con dos usuarios SYS y
U_VENTA_MARIA MAMANI.
11
Ahora debemos logearnos con el usuario sys , para crear un usuario identificado
con U_VENTA_MARIA_MAMANI y la clave “123456” .
Antes debemos ejecutar el siguiente comando para alterar la sesión y permitirnos crear el
usuario.
alter session set "_ORACLE_SCRIPT"=true;
Posteriormente debemos asignarle permisos (en un capítulo posterior se tocará con
más detalle) básicos al usuario para que se pueda logear a una sesión y crear un
objeto tabla.
Debemos conectarnos en otra consola con el usuario creado.
A continuación, debemos verificar que estemos conectado con el usuario
V_VENTA_MARIA_MAMANI y SYS cada uno en su consola al mismo tiempo.
Finalmente debemos ejecutar con el usuario sys el comando shutdown y luego de
esperar unos segundo se comprobara que la sesión no se cerrará hasta que el otro
usuario conectado cierre su sesión.
12
- Shutdown Inmediate : Este comando bajara la base de datos sin importar si existe
usuarios conectados, no se podrán conectar y las sesiones activas se cerraran y
por otro lado las transacciones de desasen (Rollback).
Para este ejercicio primero debemos tener abiertos las sesiones con los usuarios
anteriormente trabajados y estando conectado con el usuario
U_VENTA_MARIA_MAMANI debemos crear el siguiente objeto tabla.
Ahora mostraremos los campos de la tabla creada utilizando el comando desc.
Luego con el usuario sys debe ejecutar el comando shutdown immediate y podrá
apreciar que a pesar de tener un usuario conectado se bajará la base de datos.
Finalmente al querer ejecutar el mismo comando(mostrar los campos de la tabla)
desc alumno beca podremos apreciar que la base de datos se encuentra cerrada y
mostrara error.
13
- Shutdown Transaccional No deja iniciar ninguna transacción pero espera a que
terminen la transacción para cerrar la instancia.
- Shutdown Abort : Solamente se utiliza en caso de emergencia ya que pierde
información de los usuarios conectados, no espera a que termine las
transacciones y se termina la sesión de inmediato.
Para este ejercicios debe tener el usuario U_VENTA_MARIA_MAMANI con sesión
iniciada y ejecutar el comando shutdown abort
Visualizar tu usuario creado Maria Mamani
SELECT USERNAME FROM DBA_USERS;
Debemos indicar que luego de ejecutar el shutdown abort podrá apreciar que esta
forma de bajar la base de datos es más rápido que las anteriores.
En el siguiente gráfico podemos apreciar cuál de los tipos de shutdown cierra en menos
tiempo la base de datos esto sin considerar la información que se pueda perder o daño a
la base de datos.
14
- RESTRICCIONES DE BASE DE DATOS
De manera constante algunas veces el DBA debe restringir o limitar el acceso o
información de la base de datos.
Ejemplos:
- En algunas situaciones debemos restringir el acceso de los usuarios para que
solamente puedan ver la información y no modificarla. Para nuestro ejemplo la
base de datos debe estar montada y ejecutaremos el comando read only para que
se encuentre en solo lectura y de esa manera los usuarios no puedan modificar la
información.
- Acceso restringido : Se restringe el acceso y solamente se permite usurario
administradores, estos pueden realizar operaciones como exportar , importar ,
cambio de nombre de archivos etc. aplicaremos el comando.
Posteriormente deshabilitaremos esta restricción para que cualquier usurario se
pueda conectar.
15
- Estado Quescied.- Solamente se puede conectar usuarios con permiso sysdba.
- Suspender y Continuar.- Para realizar tareas administrativas por ejemplo hacer
backup de archivos de control se detendría la base de datos y al termino de trabajo
se vuelve a habilitar.
Comprobamos el estado de la instancia.
Activamos nuevamente la base de datos.
Verificamos nuevamente el estado de la base de datos.
16
Ejemplos
- La vista de diccionario de datos v$instance muestra información sobre la instancia
de datos. En el siguiente ejemplo podemos ver todas las columnas que nos puede
mostrar la vista.
A continuación, se describen las columnas que contienen los datos principales de la
instancia:
a) INSTANCE_NAME: Nombre de la instancia
b) HOST_NAME: Nombre del host donde se encuentra
c) STARTUP_TIME: Fecha en que la instancia se arrancó por última vez
d) STATUS: Estado de la instancia (STARTED, MOUNTED, OPEN o OPEN
MIGRATE)
e) SHUTDOWN_PENDING: Si se está apagando
f) DATABASE_STATUS: Estado de la base de datos
g) LOGINS: Podemos ver ALLOWED o RESTRICTED si está en modo restringido
por mantenimiento
17
- En el siguiente ejemplo podremos ver algunos datos (nombre de instancia, nombre
de host, status y la fecha en que la instancia se arrancó por última vez.
- En el siguiente ejemplo podremos apreciar la ruta del archivo de parámetros de la
base de datos(spfile).
- En la siguiente consulta se mostrará el nombre y estado de la instancia.
- Con el objetivo de verificar el buen funcionamiento debemos saber la cantidad de
memoria SGA que tenemos asignada a nuestra instancia de base de datos.
18
- En una instancia de base de datos los procesos también son importantes por ello la
vista v$sessiòn contiene información de los procesos de Oracle tiene en las
sesiones actuales. A continuación, veremos algunos datos de la vista en mención.
19