Sei sulla pagina 1di 13

AdministracinBsicadeOracle9i

PRACTICASTEMA2.
ARRANQUEYPARADADELABASEDEDATOS.
2.1.Ficheroinit.ora.ArranqueyparadadelaBD.

Localizarelficheroinit.ora(yspfilesiexiste)denuestraBD:
Anotarelvalordelosparmetros:db_block_size,shared_pool_size,db_cache_size,log_buffer,processes.
Crearfichero/home/CURSO/cursoxy/init01xy.ora,copiadelinitCURSOxy.ora,ymodificarprocesses=9.
ArrancarlaBDycomprobarvalordeparmetros,hatomadoelnuevovalor?porqu?.
PararlaBDyarrancarconelinit01xy.ora.Comprobarparmetroprocesses.Abrirotraconexindesqlplusyverquocurre.
Crearunspfileapartirdelinit.oraquehayen$ORACLE_HOME/dbs.Dondeest?qucontiene?Modificarelparmetro
processes=9endichospfile.Finalmente,dejarprocesses=16.
PararlaBDdeformanormal,estandoconectadoalgnusuarioyverquocurre.Yqusucedecuandotodoslosusuariosse
desconectan.
RepetirlaparadadelaBD,estandoconectadoalgnusuario,deformaquenoespereaquesedesconecten.

2.2.ArranquedelaBD.ComprobarlasdiferentesfasesenelarranquedelaBD.
Arrancaslolainstancia(NOMOUNT)yconsultaalgnparmetro(db_cache_size,shared_pool_size,log_buffer,processes,etc).
QuocurrealaccederaV$CONTROLFILE.
AhoramontalaBDyvuelveaconsultarV$CONTROLFILE.QusucedealleerDBA_USERS.
AbrelaBDenmodoREADONLYycreaunatabla.ActivaelmodoREADWRITEyvuelveacrearlatabla,observandoqu
sucede.

2.3.Ficheroalert.logyficherosdetraza.Diccionariodedatos.

BuscayconsultaelficherodealertdelaBD.CompruebaelltimoarranquedelaBD.
Buscasihayficherosdetraza,sisondeusuarioodeprocesosbackground.Miraelcontenido.
SacalalistadevistasdelDDyfjateenloscomentariosasociadosacadauna.Consultalascolumnasdedichasvistas.
ConsultalasvistasV$INSTANCE,V$DATABASE,V$SESSION,V$PROCESS,DBA_USERS.

2.4.Impedirlasconexionesdeusuarios,demodoqueelDBAspuedaconectarse.Intentaconectartecomoscott/tiger.
Volverapermitirconexionesdeusuarios.
2.5. Forzar un checkpoint y hacer un insert en la tabla SCOTT.DEPT. Inmediatamente despus hacer SHUTDOWN
ABORT.ArrancarycomprobarSCOTT.DEPT.Volverarepetirelinsert,haciendocommitantesdelSHUTDOWNABORT;y
compruebaelcontenidodeSCOTT.DEPT.
2.6. Conctate como SCOTT y haz update sobre DEPT (sin hacer commit). Desde otra sesin, cierra la BD con
SHUTDOWNTRANSACTIONAL.QupasaalhacercommitenlasesindeSCOTT?
2.7.Conctatecomousuarioscott/tiger.ActivalatrazayhazunaqueryconunajoinentreEMPyDEPT(selecta.ename,
b.dnamefromempa,deptbwherea.deptno=b.deptno;).Desactivalatrazayanalizaelficheroquesehageneradocon
elcomandotkprof.

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

AdministracinBsicadeOracle9i

2.1.Ficheroinit.ora.ArranqueyparadadelaBD.

Localizaelficheroinit.oradetuBD.

La ubicacin por defecto es $ORACLE_HOME/dbs; y para el caso de usar OFA,


$ORACLE_BASE/admin/$ORACLE_SID/pfile(quesesueleasignaralavariablePFILE).
/home/CURSO/curso23 (CURSOxy)> ls -l $ORACLE_HOME/dbs/init$ORACLE_SID.ora
lrwxrwxrwx
1 oracle dba
51 24 oct 08:42
/u01/app/oracle/product/9.2.0.1.0/dbs/initCURSOxy.ora ->
/u01/app/oracle/admin/CURSOxy/pfile/initCURSOxy.ora

/home/CURSO/curso23 (CURSOxy)> ls -l
$ORACLE_BASE/admin/$ORACLE_SID/pfile/init$ORACLE_SID.ora
-rw-r--r-1 oracle oinstall
4413 24 oct 08:42
/u01/app/oracle/admin/CURSOxy/pfile/initCURSOxy.ora

Enestecasoelficheroinit.oraoriginalestbajo$PFILEybajo$ORACLE_HOME/dbshayunenlaceadichofichero.

Anota el valor de los parmetros: db_block_size, shared_pool_size, db_cache_size, log_buffer,


processesasignadosenelinit.oradetuBD.

/home/CURSO/curso23 (CURSOxy)> grep db_block_size


$PFILE/init$ORACLE_SID.ora
*** db_blcck_size no est asignado, por tanto toma el valor por defecto 2048.

/home/CURSO/curso23 (CURSOxy)> grep db_cache_size


$PFILE/init$ORACLE_SID.ora
db_cache_size = 1M

/home/CURSO/curso23 (CURSOxy)> grep shared_pool_size


$PFILE/init$ORACLE_SID.ora
shared_pool_size = 8M

/home/CURSO/curso23 (CURSOxy)> grep log_buffer

$PFILE/init$ORACLE_SID.ora

log_buffer = 32768

/home/CURSO/curso23 (CURSOxy)> grep processes

$PFILE/init$ORACLE_SID.ora

processes = 10

Creafichero/home/CURSO/cursoxy/init01xy.ora,copiadelinitCURSOxy.ora,ymodificaprocesses=9.

Puedeseditarelinit.oraconelviotambinaadiralfinaldelmismounalneaconelnuevovalordelparmetro(este
segundomtodoeselusadoenelejemplo,usatelquequieras).
/home/CURSO/curso01 (CURSOxy)> cp $PFILE/init$ORACLE_SID.ora init01xy.ora
/home/CURSO/curso01 (CURSOxy)> echo processes = 9 >> init01xy.ora
/home/CURSO/curso01 (CURSOxy)> grep processes init01xy.ora
processes = 16
processes = 9

ArrancalaBD(slosiestparada)ycompruebalosparmetrosanteriores.

SQL> connect / as sysdba


SQL> startup
Instancia de ORACLE arrancada.
Total System Global Area
24670100
Fixed Size
73620
Variable Size
7647232
Database Buffers
16777216
Redo Buffers
172032
Base de datos montada.

bytes
bytes
bytes
bytes
bytes

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

AdministracinBsicadeOracle9i
Base de datos abierta.

SQL> show parameter processes


NAME
TYPE
VALUE
------------------------------------ ------- -----------------------------processes
integer 16

SQL> show parameter shared_pool_size


NAME
TYPE
VALUE
------------------------------------ ------- -----------------------------shared_pool_size
string 12582912

SQL> show parameter db_cache_size


NAME
TYPE
VALUE
------------------------------------ ------- -----------------------------db_cache_size
integer 4194304

SQL> show parameter log_buffer


NAME
TYPE
VALUE
------------------------------------ ------- -----------------------------log_buffer
integer 1048576

ParalaBDyarrancaconelinit01xy.ora.Compruebaelparmetroprocesses.Hazvariasconexiones
consqlplusycompruebaquocurre.

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
22908820
Fixed Size
73620
Variable Size
5885952
Database Buffers
16777216
Redo Buffers
172032
Base de datos montada.
Base de datos abierta.

bytes
bytes
bytes
bytes
bytes

SQL> show parameter processes


NAME
TYPE
VALUE
------------------------------------ ------- -----------------------------processes
integer 9

Despus deabrir unasesin comoelusuarioSYSTEM(ademsdelaquetena como SYS,dela


conexincomo/assysdba);siintentasabrirunams,daunerror,yaquenopuedeabrirmsde9
procesos(6background,1PSEUDOy2sesiones).
/home/CURSO/curso01 (CURSOxy)> sqlplus
SQL*Plus: Release 9.2.0.1.0 - Production on Jue oct 26 13:26:18 2004
(c) Copyright 2000 Oracle Corporation. All rights reserved.
Introduzca el nombre de usuario: system
Introduzca su clave:
ERROR:
ORA-00020: maximum number of processes (9) exceeded

Crearunspfileapartirdelinit.oraquehayen$ORACLE_HOME/dbs.Dondeest?qucontiene?
Modificarelparmetroprocesses=9endichospfile.Finalmente,dejarprocesses=16.

Laubicacinpordefectotantodelinit.oracomodelspfile,es$ORACLE_HOME/dbs;portantocrearelspfilepordefectoes
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

AdministracinBsicadeOracle9i
muysencillo:
SQL> create spfile from pfile;
File created.
SQL> !cat $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora
...
*.processes=16
...
Estecomandocreaelspfilespfile$ORACLE_SID.oraen$ORACLE_HOME/dbs,deformaqueenelsiguientearranquede
laBDseusar(enlugardelinit.ora).Contienelosmismoparmetrosquetenaelinit.oraapartirdelcualsecrea.Para
modificarunparmetroenelspfile,nopodemoseditarelfichero(esbinario),loharemosdesdeunasesindelaBD.Al
visualizarelcontenidodelspfiledirectamentesepuedenvercaracteresextraos,puessetratadeunficherobinario:
SQL> alter system set processes=9 scope=spfile;
System altered.
SQL> !cat $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora
kA *.background_dump_dest='/u01/app/oracle/admin/CURSOxy/bdump'
...
*.processes=9
...
*.user_dump_dest='/u01/app/oracle/admin/CURSOxy/udump'
SQL> alter system set processes=16 scope=spfile;

ParalaBDdeformanormal,estandoconectadounusuario(ademsdelsysdetusesin)ymiraqu
ocurre.Yqusucedecuandotodoslosusuariossedesconectan.

SQL> shutdown
Sequedaesperandoaquesedesconectenlosusuarios.Alcerrarlasesindelsystemqueestabierta,terminadecerrar
sinproblemas.SepuedevermirandolasltimaslneasdelalertSID.log.
(estandoconectadoelsystem,ademsdelasesindelsysqueestcerrando).Elficherodealertesteneldirectorio
indicadoporelparmetroBACKGROUND_DUMP_DEST;opordefectoen$ORACLE_HOME/rdbms/log.SiseusaOFAlo
habitualesubicarloen$ORACLE_BASE/admin/$ORACLE_SID/bdump(indicadoporlavariableBDUMP,sisedefine).
/home/CURSO/curso01 (CURSOxy)> tail -26f $BDUMP/alert_CURSOxy.log
...
Shutting down instance (normal)
License high water mark = 3

(desconectndoseelsystem)
Thu oct 26 14:08:23 2004
ALTER DATABASE CLOSE NORMAL
Thu oct 26 14:08:23 2004
SMON: disabling tx recovery
SMON: disabling cache recovery
Thu oct 26 14:08:23 2004
Thread 1 closed at log sequence 4199
Thu oct 26 14:08:23 2004
Completed: ALTER DATABASE CLOSE NORMAL
Thu oct 26 14:08:23 2004
ALTER DATABASE DISMOUNT
Completed: ALTER DATABASE DISMOUNT
archiving is disabled

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

AdministracinBsicadeOracle9i

RepitelaparadadelaBD,estandoconectadoalgnusuario,deformaquenoespereaquese
desconecten.

SQL> shutdown immediate


Base de datos cerrada.
Base de datos desmontada.
Instancia de ORACLE cerrada.

2.2. Arranque de la BD (STARTUP). Comprobar las diferentes fases en el arranque de la BD


(nomount,mountyopen).

Arrancar slo la instancia (NOMOUNT) y consultar algn parmetro. Qu ocurre al acceder a


V$CONTROLFILEyporqu.

Alarrancarslolainstancia,podemosconsultarlosparmetrosdelinit,yaqueestefichero(oelspfilesiexite)seleejusto
antesdearrancarlainstancia.Pero,alindicarNOMOUNT,todavanosehaabiertoelficherodecontrol,porloqueno
tendremosaccesoasucontenido.YmuchomenosalastablasestticasdelDDqueestnalmacenadasenlaBD,cuyos
ficherostampocosehanabierto.
SQL> startup nomount
Instancia de ORACLE arrancada.
Total System Global Area
24670100 bytes
Fixed Size
73620 bytes
Variable Size
7647232 bytes
Database Buffers
16777216 bytes
Redo Buffers
172032 bytes

SQL> show parameter processes


NAME
TYPE
VALUE
------------------------------------ ------- -----------------------------processes
integer 150
SQL> select count(*) from v$controlfile;
COUNT(*)
---------0

SQL> select * from v$controlfile;


no rows selected

SQL> select * from dba_users;


select * from dba_users
ORA-01219: b. de datos no abierta: solo se permiten consultas en tablas/vistas
fijas

AhoramontarlaBDyvolveraconsultarV$CONTROLFILE.QuesucedealleerDBA_USERS.

AlmontarlaBD,seabreelficherodecontrolleyendosucontenido,deformaqueyasabemoslaubicacinyelnombrede
cadaunodelosficherosquecomponenlaBD.
SQL> alter database mount;
Base de datos modificada.

SQL> select name from v$controlfile;


JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

AdministracinBsicadeOracle9i
NAME
----------------------------------/u02/oradata/CURSOxy/control1.ctl
/u03/oradata/CURSOxy/control2.ctl

SQL> select * from dba_users;


select * from dba_users
*
ERROR en lnea 1:
ORA-01219: b. de datos no abierta: solo se permiten consultas en tablas/vistas
fijas

SQL> select count(*) from v$datafile;


COUNT(*)
---------2

SQL> select count(*) from v$logfile;


COUNT(*)
---------3

CerrarlaBDyabrirlaenmodoREADONLY,ycrearunatabla.ActivarmodoREADWRITEyvolvera
crearlatabla.

ParaabrirlaBDenmodoreadonly,primerodebemosarrancarlaBDsinabrirla(MOUNT),sinoestyaeneseestado.
SQL> startup mount
Instancia de ORACLE arrancada.
Total System Global Area
24670100
Fixed Size
73620
Variable Size
7647232
Database Buffers
16777216
Redo Buffers
172032
Base de datos montada.

bytes
bytes
bytes
bytes
bytes

SQL> alter database open read only;


Base de datos modificada.

SQL> create table mitabla (c1 varchar2(2));


create table mitabla (c1 varchar2(2))
*
ERROR en lnea 1:
ORA-00604: error producido a nivel 1 de SQL recursivo
ORA-00372: el fichero 1 no puede ser modificado en este momento
ORA-01110: fichero de datos 1: '/u02/oradata/CURSOxy/system01.dbf'

SQL> shutdown immediate


Base de datos cerrada.
Base de datos desmontada.
Instancia de ORACLE cerrada.

SQL> startup
Instancia de ORACLE arrancada.
Total System Global Area
24670100
Fixed Size
73620
Variable Size
7647232
Database Buffers
16777216
Redo Buffers
172032
Base de datos montada.

bytes
bytes
bytes
bytes
bytes

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

AdministracinBsicadeOracle9i
Base de datos abierta.

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


Tabla creada.

Nota:sifuesenecesariocreareltablespaceUSERS(pqnohayashecholaprctica1.16),puedeshacerloas:
SQL> create tablespace users datafile '/u02/oradata/CURSOxy/users01.dbf' size 1M
autoextend on next 1M maxsize 4M;
Tablespace created.

Comohemosvisto,enmodoreadonlynopodemoscrearunatablapueslosficherosdelaBDestnenmododeslo
lectura.SiabrimoslaBDenmodonormal(readwrite),notendremosproblemasparacrearlatabla.

2.3.Ficheroalert.logyficherosdetraza.Diccionariodedatos.
BuscayconsultaelficherodealertdelaBD.CompruebaelltimoarranquedelaBD.
/home/CURSO/curso01 (CURSOxy)> ls -l $ORACLE_HOME/rdbms/log/alert_$ORACLE_SID.log
ls: /u01/app/oracle/product/9.2.0.1.0/rdbms/log/alert_CURSOxy.log: No existe el fichero o
el directorio
/home/CURSO/curso01 (CURSOxy)> ls -l $BDUMP/alert_$ORACLE_SID.log
-rw-rw-r-- 1 oracle dba 144537 nov 2 09:45
/u01/app/oracle/admin/CURSOxy/bdump/alert_CURSOxy.log

Enestecasoelficherodealertnoestensuubicacinpordefecto,puesseestusandoOFAysehamodificadoel
parmetroBACKGROUND_DUMP_DESTconsecuentemente.
/home/CURSO/curso01 (CURSOxy)> grep -i background $ORACLE_HOME/dbs/init$ORACLE_SID.ora
background_dump_dest = /u01/app/oracle/admin/CURSOxy/bdump

SepuedenverlasltimaslneasdelficherodealertconelcomandotaildeLinux.
/home/CURSO/curso01 (CURSOxy)> tail -26
/u01/app/oracle/admin/CURSOxy/bdump/alert_$ORACLE_SID.log
Tue Nov 2 09:44:58 2004
Database mounted in Exclusive Mode.
Completed: ALTER DATABASE
MOUNT
Tue Nov 2 09:44:58 2004
ALTER DATABASE OPEN
Tue Nov 2 09:44:58 2004
Thread 1 opened at log sequence 556
Current log# 1 seq# 556 mem# 0: /home/u04/oradata/CURSOxy/redo01.log
Successful open of redo thread 1.
Tue Nov 2 09:44:58 2004
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
Tue Nov 2 09:44:58 2004
SMON: enabling cache recovery
Tue Nov 2 09:44:59 2004
Undo Segment 1 Onlined
Undo Segment 2 Onlined
Undo Segment 3 Onlined
Successfully onlined Undo Tablespace 2.
Tue Nov 2 09:44:59 2004
SMON: enabling tx recovery
Tue Nov 2 09:44:59 2004
Database Characterset is WE8ISO8859P15
replication_dependency_tracking turned off (no async multimaster replication found)
Completed: ALTER DATABASE OPEN
Tue Nov 2 09:45:22 2004
ALTER SYSTEM SET processes=20 SCOPE=SPFILE;

Buscasihayficherosdetraza,sisondeusuarioodeprocesosbackground.Miraelcontenido.

Los ficheros de traza de los procesos background y de usuario, se generarn en los directorios indicados en los
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

AdministracinBsicadeOracle9i
parmetros BACKGROUND_DUMP_DEST y USER_DUMP_DEST (o en la ubicacin por defecto
$ORACLE_HOME/rdbms/log,sidichosparmetrosnoestnasignados.
/home/CURSO/curso01 (CURSOxy)> grep -i dest $ORACLE_HOME/dbs/init$ORACLE_SID.ora
background_dump_dest = /u01/app/oracle/admin/CURSOxy/bdump
core_dump_dest = /u01/app/oracle/admin/CURSOxy/cdump
user_dump_dest = /u01/app/oracle/admin/CURSOxy/udump
/home/CURSO/curso01 (CURSOxy)>
total 120
-rw-r----- 1 oracle dba
-rw-r----- 1 oracle oinstall
-rw-r----- 1 oracle oinstall

ls -lt /u01/app/oracle/admin/CURSOxy/udump
735 nov 2 09:44 curso01_ora_20604.trc
652 nov 2 09:35 curso01_ora_20448.trc
733 oct 29 13:42 curso01_ora_2792.trc

/home/CURSO/curso01 (CURSOxy)> ls -lt /u01/app/oracle/admin/CURSOxy/bdump


total 280
-rw-rw-r-- 1 oracle dba
144537 nov 2 09:45 alert_CURSOxy.log
-rw-r----- 1 oracle oinstall
614 nov 2 09:35 curso01_lgwr_2785.trc
-rw-r----- 1 oracle oinstall
616 oct 29 13:19 curso01_lgwr_21906.trc
-rw-rw---- 1 oracle dba
657 ago 13 14:10 curso01_ora_13168.trc

SepuedeverelcontenidodelosficherosusandoelcomandomoredeLinux,ocatsielficheroescorto.

SacalalistadevistasdelDDyfjateenloscomentariosasociadosacadauna.Consultalascolumnas
dedichasvistas.

SQL> set pause on


SQL> set pagesize 30
SQL> select * from dictionary where table_name='DBA_TABLES';
TABLE_NAME
-----------------------------COMMENTS
-------------------------------------------------------------------------------DBA_TABLES
Description of all relational tables in the database
SQL> select * from dict_columns where table_name='DBA_TABLES';
TABLE_NAME
COLUMN_NAME
------------------------------ -----------------------------COMMENTS
-------------------------------------------------------------------------------DBA_TABLES
AVG_SPACE_FREELIST_BLOCKS
The average freespace of all blocks on a freelist
...
DBA_TABLES
AVG_ROW_LEN
The average row length, including row overhead

Consulta algunas vistas estticas (como DBA_USERS, DBA_TABLESPACES, DBA_TABLES,


DBA_ROLES),yalgunasdinmicas(comoV$INSTANCE,V$DATABASE,V$SESSION,V$PROCESS).

SQL> select username,ACCOUNT_STATUS,CREATED from dba_users;


USERNAME
ACCOUNT_STATUS
------------------------------ -------------------------------SYS
OPEN
SYSTEM
OPEN
OUTLN
OPEN
DBSNMP
OPEN
SCOTT
OPEN

CREATED
--------11-SEP-06
11-SEP-06
11-SEP-06
11-SEP-06
11-SEP-06

SQL> select rpad(username,14),rpad(osuser,10),rpad(machine,15),rpad(terminal,10),


rpad(program,27)

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

AdministracinBsicadeOracle9i
from v$session where
order by username;
RPAD(USERNAME, RPAD(OSUSE
-------------- ---------SYSTEM
juanlu

username is not null


RPAD(MACHINE,15 RPAD(TERMI RPAD(PROGRAM,27)
--------------- ---------- --------------------------cursos.atica.um pts/2
sqlplus@cursos.atica.um.es

2.4. Impedir las conexiones de usuarios, de modo que el DBA s pueda conectarse. Intenta
conectartecomoscott/tiger.Volverapermitirconexionesdeusuarios.
Ennuestrocaso,enprimerlugarvamosapararlaBDyaarrancarlaenmodoRESTRICT(tambinsepuedeactivarel
modorestringidoencaliente,conalter system enable restricted session;.Despusintentaremosla
conexincomoelusuarioSCOTT.FinalmentedesactivaremoselmodoRESTRICTypodremosconectarnoscomo
SCOTT.
SQL> connect / as sysdba
Connected.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup restrict
Instancia de ORACLE arrancada.
Total System Global Area
24670100
Fixed Size
73620
Variable Size
7647232
Database Buffers
16777216
Redo Buffers
172032
Base de datos montada.
Base de datos abierta.

bytes
bytes
bytes
bytes
bytes

SQL> connect scott/tiger


ERROR:
ORA-01035: ORACLE only available to users with RESTRICTED SESSION privilege
Aviso: Ya no est conectado a ORACLE!
SQL> connect / as sysdba
Conectado.
SQL> alter system disable restricted session;
Sistema modificado.
SQL> connect scott/tiger
Conectado.
SQL> desc dept
Nombre
Nulo?
Tipo
----------------------------------------- -------- ---------------------------DEPTNO
NOT NULL NUMBER(2)
DNAME
VARCHAR2(14)
LOC
VARCHAR2(13)
SQL> disconnect
Desconectado de Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning option
JServer Release 9.2.0.1.0 - Production

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

AdministracinBsicadeOracle9i
2.5.ForzaruncheckpointyhaceruninsertenlatablaSCOTT.DEPT.InmediatamentedespushacerSHUTDOWN
ABORT.ArrancarycomprobarSCOTT.DEPT.Volverarepetirelinsert,haciendocommitantesdelSHUTDOWN
ABORT;ycompruebaelcontenidodeSCOTT.DEPT.
Setratadecomprobarlosmecanismosderecuperacindelainstancia.VamosainsertarunafilaenSCOTT.DEPTya
simularunacadadelaBDconSHUTDOWNABORT.Comprobaremosque,comonosehizoCOMMIT,losdatos
insertadosnoestn,alarrancardenuevolaBD.SirepetimoselexperimentohaciendoCOMMITdespusdelINSERT,
comprobaremosquelainformacinnosepierde;yaquealhacercommitestamosforzandoelvolcadoadiscodelos
buffersredolog,quesernledosenelsiguientearranquealrecuperarselainstancia.
RecuerdaqueelcheckpointeseleventoquefuerzalaescrituradelosbloquesdedatosqhayenlaSGA,adisco,por
partedelDBWR(previovolcadodelosbufferredolog,porpartedelLGWR).
SQL> connect / as sysdba
Conectado.
SQL> alter system checkpoint;
Sistema modificado.
SQL> insert into scott.dept values (99,'FORMACION','MURCIA');
1 fila creada.
SQL> SHUTDOWN ABORT
Instancia de ORACLE cerrada.
SQL> startup
Instancia de ORACLE arrancada.
...
Base de datos abierta.
SQL> select * from scott.dept;
DEPTNO DNAME
LOC
---------- -------------- ------------10 ACCOUNTING
NEW YORK
20 RESEARCH
DALLAS
30 SALES
CHICAGO
40 OPERATIONS
BOSTON
SQL> alter system checkpoint;
Sistema modificado.
SQL> insert into scott.dept values (99,'FORMACION','MURCIA');
1 fila creada.
SQL> commit;
Validacin terminada.
SQL> shutdown abort
Instancia de ORACLE cerrada.
SQL> startup
Instancia de ORACLE arrancada.
...
Base de datos abierta.
SQL> select * from scott.dept;
DEPTNO DNAME
LOC
---------- -------------- ------------10 ACCOUNTING
NEW YORK
20 RESEARCH
DALLAS
30 SALES
CHICAGO
40 OPERATIONS
BOSTON
99 FORMACION
MURCIA

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

10

AdministracinBsicadeOracle9i

2.6.ConctatecomoSCOTTyhazupdatesobreDEPT(sinhacercommit).Desdeotrasesin,cierralaBDcon
SHUTDOWNTRANSACTIONAL.QupasaalhacercommitenlasesindeSCOTT?
RecuerdaqueelSHUTDOWNTRANSACTIONALesperaaqueterminentodaslastransaccionesencurso;portanto
esperarhastaqueSCOTThagacommit.UnavezqueSCOTThahechocommit,elshutdowncerrarsusesinalcabo
deunosminutos.
(SESION DE SCOTT)
SQL> connect scott/tiger
Conectado.
SQL> update dept set deptno=88 where deptno=99;
1 fila actualizada.
(SESION DEL SYS)
SQL> CONNECT / AS SYSDBA
Conectado.
SQL> shutdown transactional
(SESION DE SCOTT)
SQL> !tail -7 $BDUMP/alert_CURSOxy.log
Mon Apr 26 09:24:55 2004
SMON: enabling cache recovery
SMON: enabling tx recovery
Mon Apr 26 09:24:57 2004
Completed: ALTER DATABASE OPEN
Mon Apr 26 09:34:42 2004
Shutting down instance (transactional)
SQL> commit;
Validacin terminada.
SQL> !tail -10 $BDUMP/alert_CURSOxy.log
Mon Apr 26 09:24:55 2004
SMON: enabling cache recovery
SMON: enabling tx recovery
Mon Apr 26 09:24:57 2004
Completed: ALTER DATABASE OPEN
Mon Apr 26 09:34:42 2004
Shutting down instance (transactional)
Mon Apr 26 09:35:12 2004
All transactions complete. Performing immediate shutdown
License high water mark = 7
SQL> !tail -10 $BDUMP/alert_CURSOxy.log
SMON: disabling tx recovery
SMON: disabling cache recovery
Mon Apr 26 09:36:18 2004
Thread 1 closed at log sequence 191
Mon Apr 26 09:36:18 2004
Completed: ALTER DATABASE CLOSE NORMAL
Mon Apr 26 09:36:18 2004
ALTER DATABASE DISMOUNT
Completed: ALTER DATABASE DISMOUNT
archiving is disabled
(SESION DEL SYS)
Base de datos cerrada.

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

11

AdministracinBsicadeOracle9i
Base de datos desmontada.
Instancia de ORACLE cerrada.

2.7.Conctatecomousuarioscott/tiger.ActivalatrazayhazunaqueryconunajoinentreEMPyDEPT(select
a.ename,b.dnamefromempa,deptbwherea.deptno=b.deptno;).Desactivalatrazayanalizaelficheroquese
hageneradoconelcomandotkprof.
Desdesqlplus,elusuarioconectado(p.e.SCOTT)puedeactivarlatrazaconALTERSESSIONSETSQL_TRACE=TRUE.
Estosehacejustamenteantesdelanzarlassentenciasquesequierenanalizar.Unavezterminadaslassentenciasen
cuestin,sevuelveadesactivarlatrazaconALTERSESSIONSETSQL_TRACE=FALSE.Elficherodetrazase
generar en el directorio indicado por el parmetro USER_DUMP_DEST, que por defecto es
$ORACLE_HOME/rdbms/log, y en caso de usar OFA ser el directorio $UDUMP, y ser el fichero ms reciente
generado.
SQL> connect scott/tiger
Conectado.
SQL> alter session set sql_trace=true;
Sesin modificada.
SQL> select a.ename, b.dname from emp a, dept b where a.deptno=b.deptno;
ENAME
DNAME
---------- -------------SMITH
RESEARCH
...
MILLER
ACCOUNTING
14 filas seleccionadas.
SQL> alter session set sql_trace=false;
Sesin modificada.
SQL> !ls -lt $UDUMP|head -2
total 24
-rw-r----1 oracle dba
SQL> exit

11435 26 Oct 09:55 ora_150400_curso22.trc

cursos (CURSOxy):/home/CURSO/curso22 > tkprof $UDUMP/ora_150400_curso22.trc


salida_traza.txt explain=scott/tiger sys=no
TKPROF: Release 9.2.0.1.0 - Production on Lun Oct 26 09:56:31 2004
(c) Copyright 2000 Oracle Corporation. All rights reserved.
cursos (CURSOxy):/home/CURSO/curso22 > cat salida_traza.txt
...
********************************************************************************
count
= number of times OCI procedure was executed
cpu
= cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk
= number of physical reads of buffers from disk
query
= number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows
= number of rows processed by the fetch or execute call
********************************************************************************
...
********************************************************************************
select a.ename, b.dname
from
emp a, dept b where a.deptno=b.deptno
call
count
cpu
elapsed
disk
query
current
rows

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

12

AdministracinBsicadeOracle9i
------- ------ -------- ---------- ---------- ---------- ---------- ---------Parse
1
0.00
0.00
2
0
2
0
Execute
1
0.00
0.00
0
0
0
0
Fetch
2
0.00
0.00
3
18
4
14
------- ------ -------- ---------- ---------- ---------- ---------- ---------total
4
0.00
0.00
5
18
6
14
...
Optimizer goal: CHOOSE
...
Rows
Execution Plan
------- --------------------------------------------------0 SELECT STATEMENT
GOAL: CHOOSE
14
NESTED LOOPS
15
TABLE ACCESS (FULL) OF 'EMP'
14
TABLE ACCESS (BY INDEX ROWID) OF 'DEPT'
28
INDEX (UNIQUE SCAN) OF 'PK_DEPT' (UNIQUE)
********************************************************************************
...
********************************************************************************
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call
count
cpu
elapsed
disk
query
current
rows
------- ------ -------- ---------- ---------- ---------- ---------- ---------Parse
2
0.00
0.00
2
0
2
0
Execute
3
0.00
0.00
0
0
0
0
Fetch
2
0.00
0.00
3
18
4
14
------- ------ -------- ---------- ---------- ---------- ---------- ---------total
7
0.00
0.00
5
18
6
14
...
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call
count
cpu
elapsed
disk
query
current
rows
------- ------ -------- ---------- ---------- ---------- ---------- ---------Parse
13
0.00
0.00
0
0
0
0
Execute
23
0.00
0.00
0
0
0
0
Fetch
45
0.00
0.00
2
73
0
32
------- ------ -------- ---------- ---------- ---------- ---------- ---------total
81
0.00
0.00
2
73
0
32
...

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

13

Potrebbero piacerti anche