PDF de programación - Practicas Tema2 - Arranque y parada de la base de datos

Imágen de pdf Practicas Tema2 - Arranque y parada de la base de datos

Practicas Tema2 - Arranque y parada de la base de datosgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 24 de Noviembre del 2017)
1.474 visualizaciones desde el 24 de Noviembre del 2017
605,5 KB
15 paginas
Creado hace 17a (07/03/2007)
Administración Básica de Oracle10g

PRACTICAS TEMA 2. 
ARRANQUE Y PARADA DE LA BASE DE DATOS.

2.1. Fichero init.ora. Arranque y parada de la BD.
• Localizar el fichero init.ora (y spfile si existe) de nuestra BD:
• Ver parámetros: db_block_size, sga_target, sga_max_size, shared_pool_size, db_cache_size, log_buffer, processes.
• Crear fichero /home/CURSO/cursoxy/init01xy.ora, copia del initCURSOxy.ora, y modificar processes=17.
• Arrancar la BD y comprobar valor de parámetros, ¿ha tomado el nuevo valor? ¿por qué?.
• Parar la BD y arrancar con init01xy.ora. Comprobar parámetro processes. Qué ocurre al abrir otra sesión de sqlplus.
• Crear un spfile a partir del init.ora que hay en $ORACLE_HOME/dbs. ¿Donde está? ¿qué contiene? Modificar el 

parámetro processes=17 en dicho spfile. Finalmente, dejar processes=30.

• Parar la BD de forma normal, con algún usuario conectado. ¿Qué ocurre? ¿y qué sucede cuando todos los usuarios 

se desconectan?

• Repetir la parada de la BD, estando conectado algún usuario, de forma que no espere a que se desconecten.

2.2. Arranque de la BD. Comprobar las diferentes fases en el arranque de la BD.
• Arranca sólo la instancia (NOMOUNT) y consulta algún parámetro (sga_target, db_cache_size, shared_pool_size, 

log_buffer, processes, etc). Qué ocurre al acceder a V$CONTROLFILE.

• Ahora monta la BD y vuelve a consultar V$CONTROLFILE. Qué sucede al leer DBA_USERS.
• Abre  la  BD  en  modo  READ  ONLY y  crea  una  tabla. Activa  el modo  READ  WRITE y  vuelve  a  crear  la  tabla, 

observando qué sucede.

2.3. Fichero alert.log y ficheros de traza. Diccionario de datos.
• Busca y consulta el fichero de alert de la BD. Comprueba el último arranque de la BD.
• Busca si hay ficheros de traza, si son de usuario o de procesos background. Mira el contenido.
• Ve la lista de vistas del DD y fíjate en los comentarios asociados a cada una. Consulta las columnas de dichas vistas.
• Consulta las vistas V$INSTANCE, V$DATABASE, V$SESSION, V$PROCESS, DBA_USERS.

2.4.   Impedir   las   conexiones   de   usuarios,   de   modo   que   el   DBA   sí   pueda   conectarse.   Intenta 
conectarte como scott/tigercursoXY. Volver a permitir conexiones de usuarios.

2.5. Forzar un checkpoint y hacer un insert en la tabla SCOTT.DEPT. Inmediatamente después hacer 
SHUTDOWN   ABORT.   Arrancar   y   comprobar   SCOTT.DEPT.   Volver   a   repetir   el   insert,   haciendo 
commit antes del SHUTDOWN ABORT; y comprueba el contenido de SCOTT.DEPT.

2.6. Conéctate como SCOTT y haz update sobre DEPT (sin hacer commit). Desde otra sesión, cierra 

la BD con SHUTDOWN TRANSACTIONAL. ¿Qué pasa al hacer commit en la sesión de SCOTT?

2.7. Conéctate como usuario scott/tigercursoXY. Activa la traza y haz una query con una join entre 
EMP y DEPT (select a.ename, b.dname from emp a, dept b where a.deptno=b.deptno;). Desactiva 
la traza y analiza el fichero que se ha generado con el comando tkprof.

2.8.  Conéctate como usuario scott/tigercursoXY. Haz un UPDATE sobre la tabla DEPT. Abre otra 
sesión como SYS y “encola” la BD (alter system quiesce restricted;). Intenta abrir una segunda 
sesión del usuario SCOTT, ¿qué ocurre? ¿qué ocurre al hacer ROLLBACK en la primera sesión 
de SCOTT? Vuelve a dejar la BD en estado normal (alter system unquiesce;).

© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez

1

Administración Básica de Oracle10g

2.1. Fichero init.ora. Arranque y parada de la BD.

• Localiza el fichero init.ora de tu BD.
La   ubicación   por   defecto   es   $ORACLE_HOME/dbs;   y   para   el   caso   de   usar   OFA, 
$ORACLE_BASE/admin/$ORACLE_SID/pfile (que se suele asignar a la variable PFILE).
/home/CURSO/cursoXY (CURSOxy)> ls ­l $ORACLE_HOME/dbs/init$ORACLE_SID.ora
lrwxrwxrwx   1 oracle  dba           51 24 oct 08:42 
/u01/app/oracle/product/10.2.0.1/dbs/initCURSOxy.ora ­> 
/u01/app/oracle/admin/CURSOxy/pfile/initCURSOxy.ora

/home/CURSO/curso23 (CURSOxy)> export PFILE=$ORACLE_BASE/admin/$ORACLE_SID/pfile

/home/CURSO/cursoXY (CURSOxy)> ls ­l $PFILE/init$ORACLE_SID.ora
­rw­r­­r­­   1 oracle  dba    4413 24 oct 08:42 
/u01/app/oracle/admin/CURSOxy/pfile/initCURSOxy.ora
En este caso el fichero init.ora original está bajo $PFILE y bajo $ORACLE_HOME/dbs hay un enlace 
a dicho fichero.



  Anota   el   valor   de   los   parámetros:   db_block_size,   sga_target,   sga_max_size, 
shared_pool_size, db_cache_size, log_buffer, processes asignados en el init.ora de 
tu BD.

/home/CURSO/cursoXY (CURSOxy)> grep db_block_size $PFILE/init$ORACLE_SID.ora
db_block_size=2048
/home/CURSO/cursoXY (CURSOxy)> grep sga_target  $PFILE/init$ORACLE_SID.ora
sga_target = 100M
/home/CURSO/cursoXY (CURSOxy)> grep sga_max_size  $PFILE/init$ORACLE_SID.ora
sga_max_size = 120M
/home/CURSO/cursoXY (CURSOxy)> grep db_cache_size  $PFILE/init$ORACLE_SID.ora
db_cache_size = 0
/home/CURSO/cursoXY (CURSOxy)> grep shared_pool_size  $PFILE/init$ORACLE_SID.ora
shared_pool_size = 0
/home/CURSO/cursoXY (CURSOxy)> grep log_buffer  $PFILE/init$ORACLE_SID.ora
log_buffer = 1048576
/home/CURSO/cursoXY (CURSOxy)> grep processes  $PFILE/init$ORACLE_SID.ora
processes = 30



  Crea   fichero   /home/CURSO/cursoxy/init01xy.ora,   copia   del   initCURSOxy.ora,   y 
modifica processes= 17.

Puedes editar el init.ora con el vi o también añadir al final del mismo una línea con el nuevo valor del 
parámetro (este segundo método es el usado en el ejemplo, usa tú el que quieras).
/home/CURSO/cursoXY (CURSOxy)> cp $PFILE/init$ORACLE_SID.ora init01xy.ora
/home/CURSO/cursoXY (CURSOxy)> echo processes = 17 >> init01xy.ora
/home/CURSO/cursoXY (CURSOxy)> grep processes  init01xy.ora
processes = 30
processes = 17

• Arranca la BD (sólo si está parada) y comprueba los parámetros anteriores.
SQL> connect / as sysdba
SQL> startup
Instancia de ORACLE arrancada.
Total System Global Area  125829120 bytes
Fixed Size                  1259528 bytes
Variable Size              88082424 bytes

© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez

2

Administración Básica de Oracle10g

Database Buffers           33554432 bytes
Redo Buffers                2932736 bytes
Base de datos montada.
Base de datos abierta.
(Si te da el siguiente error es pq la BD ya está abierta y no es necesario hacerlo:
ORA­01081: no se puede iniciar ORACLE cuando ya se esta ejecutando ­ cierrelo primero)

SQL> show parameter processes
NAME                                 TYPE    VALUE
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­­­­­­­ ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
...
processes                            integer 30

SQL> show parameter db_block_size 
NAME                                 TYPE        VALUE
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­­­­­­­­­­­ ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
db_block_size                        integer     2048

SQL> show parameter sga_target
NAME                                 TYPE        VALUE
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­­­­­­­­­­­ ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
sga_target                           big integer 100M

SQL> show parameter sga_max_size
NAME                                 TYPE        VALUE
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­­­­­­­­­­­ ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
sga_max_size                         big integer 120M

SQL> show parameter shared_pool_size
NAME                                 TYPE    VALUE
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­­­­­­­ ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
shared_pool_size                     string  0

SQL> show parameter db_cache_size
NAME                                 TYPE    VALUE
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­­­­­­­ ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
db_cache_size                        integer 0

SQL> show parameter log_buffer
NAME                                 TYPE    VALUE
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­­­­­­­ ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
log_buffer                           integer 2886656



 Para la BD y arranca con el init01xy.ora. Comprueba el parámetro processes. Haz 
varias conexiones con sqlplus y comprueba qué ocurre.

SQL> shutdown immediate
Base de datos cerrada.
Base de datos desmontada.
Instancia de ORACLE cerrada.
SQL> startup pfile=init01xy.ora
Instancia de ORACLE arrancada.
Total System Global Area  125829120 bytes
Fixed Size                  1259528 bytes
Variable Size              88082424 bytes
Database Buffers           33554432 bytes
Redo Buffers                2932736 bytes
Base de datos montada.
Base de datos abierta.

© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez

3

Administración Básica de Oracle10g

SQL> show parameter processes
NAME                                 TYPE    VALUE
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­­­­­­­ ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
processes                            integer 17
Después de abrir una sesión como el usuario SYSTEM (además de la que tenía como  
SYS, de la conexión  como “/ as sysdba”); si intentas abrir una más, da un error, ya que 
no puede abrir más de 17 procesos (14 background, 1 PSEUDO y 2 sesiones).
(Abre otra sesión SSH y conéctate como SYSTEM)
/home/CURSO/cursoXY (CURSOxy)> sqlplus
...
Enter user­name: system
...
SQL> select count(*) from v$process;
  COUNT(*)
­­­­­­­­­­
        16

(Si ahora abres otro SSH e intentas conectarte como SYSTEM dará un error)
/home/CURSO/cursoXY (CURSOxy)> sqlplus
...
Enter user­name: system
...
ERROR:
ORA­00020: maximum number of processes (%s) exceeded

• Crear un spfile a partir del init.ora que hay en $ORACLE_HOME/dbs. ¿Donde está? 
¿qué contiene? Modificar el parámetro processes=17 en dicho spfile. Finalmente, 
dejar processes=30. 

La ubicación por defecto tanto del init.ora como del spfile, es $ORACLE_HOME/dbs; por tanto crear 
el spfile por defecto es muy sencillo:

SQL> create spfile from pfile;
File created.
SQL> !cat $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora
...
*.processes=30
...

Este comando crea el spfile spfile$ORACLE_SID.ora en $ORACLE_HOME/dbs, de forma que en el 
siguiente arranque de la BD se usará (en lugar del init.ora). Contiene los mismo parámetros qu
  • Links de descarga
http://lwp-l.com/pdf7674

Comentarios de: Practicas Tema2 - Arranque y parada de la base de datos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad