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
rwrr 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:
ORA01081: 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 username: 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 username: system
...
ERROR:
ORA00020: 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
Comentarios de: Practicas Tema2 - Arranque y parada de la base de datos (0)
No hay comentarios