Vous êtes sur la page 1sur 15

(I) Usando Diccionario de Datos y Vistas de Performance Dinmico

1. Encuentre una lista de todas las vistas del diccionario de datos.


SQL> CONNECT SYSTEM/ORACLE
Connected.
SQL> SELECT table_name
2 FROM
dictionary;

TABLE_NAME
-----------------------------ALL_ALL_TABLES
ALL_ARGUMENTS
ALL_ASSOCIATIONS
ALL_AUDIT_POLICIES
ALL_BASE_TABLE_MVIEWS
ALL_CATALOG
ALL_CLUSTERS
ALL_CLUSTER_HASH_EXPRESSIONS
ALL_COLL_TYPES
.
.
.
1063 rows selected.

(I) Usando Diccionario de Datos y Vistas de Performance Dinmico


2. Identifique el nombre de la base de datos, nombre de la instancia, y tamao del bloque de base de
datos.
Hint: Consulte las vistas de performace dinmico V$DATABASE, V$THREAD, y
V$PARAMETER.
SQL> SELECT
2

FROM

name
v$database;

NAME
---DBA
SQL> SELECT
2

FROM

instance
v$thread;

INSTANCE
-------DBA
SQL> SELECT value
2 FROM
v$parameter
3 WHERE
name ='db_block_size';
VALUE
-------------------------------8192

3. Liste los nombres de los data files.


Hint: Consulte la vista de performance dinmico V$DATAFILE.
SQL> SELECT name
2 FROM
v$datafile;
NAME
----------------------------------------------------------D:\ORACLASS\ORADATA\u01\system01.dbf
D:\ORACLASS\ORADATA\u02\undotbs.dbf
D:\ORACLASS\ORADATA\u03\indx01.dbf
D:\ORACLASS\ORADATA\u02\sample01.dbf
D:\ORACLASS\ORADATA\u01\querydata01.dbf
D:\ORACLASS\ORADATA\u02\example01.dbf
D:\ORACLASS\ORADATA\u03\users01.dbf
7 rows selected.

(I) Usando Diccionario de Datos y Vistas de Performance Dinmico


4. Identifique al data file que constituye al tablespace SYSTEM.
Sugerencia: Consulte la vista del diccionario DBA_DATA_FILES para identificar el datafile del
tablespace SYSTEM.
SQL> SELECT file_name
2 FROM
dba_data_files
3

WHERE

tablespace_name = 'SYSTEM';

FILE_NAME
--------------------------------------D:\ORACLASS\ORADATA\u01\system01.dbf

5. Cunto espacio libre est disponible en la base de datos y cuanto es usado?


Sugerencia:
- Consulte la vista del diccionario DBA_FREE_SPACE para mostrar el espacio
libre en la base de datos.
- Consulte la vista del diccionario DBA_SEGMENTS para mostrar el espacio
usado.
SQL> SELECT sum(bytes)/1024 "free space in KB"
2 FROM
dba_free_space;
Free space in KB
---------------42700
SQL> SELECT sum(bytes)/1024 "used space in KB"
2

FROM

dba_segments;

Used space in KB
---------------131992

(I) Usando Diccionario de Datos y Vistas de Performance Dinmico


6. Liste los nombres y fecha de creacin de los usuarios de la base de datos.
Sugerencia: Consulte la vista del diccionario DBA_USERS para listar los nombres y fecha
de creacin de los usuarios de la base de datos.
SQL> SELECT username, created
2 FROM
dba_users;
USERNAME

CREATED

------------------------------ --------SYS

16-APR-06

SYSTEM

16-APR-06

OUTLN
DBSNMP

16-APR-06
16-APR-06

ORDSYS

16-APR-06

MDSYS
HR

16-APR-06
16-APR-06

OE
8 rows selected.

16-APR-06

(II) Mantenimiento de Archivos de Control


1. Dnde est ubicado el archivo de control y cul es su nombre?
Sugerencia: Consulte la vista de performance dinmico V$CONTROLFILE.
Nota: Tambin puedes usar V$PARAMETER, o ejecutar el comando SHOW PARAMETER para
mostrar la ubicacin y nombre del archivo de control.
SQL> COL name FORMAT a50
SQL> SELECT *
2

FROM

STATUS

v$controlfile;

NAME

------- -------------------------------------D:\ORACLASS\ORADATA\u01\control01.ctl

(II) Mantenimiento de Archivos de Control


2 . a. Intente arrancar la base de datos sin archivos de control. Simular esto cambiando el
nombre del archivo de control en el archivo de parmetros o renombrando el archivo de
control. Que pasa?
Sugerencia:
- Conectarse como usuario SYS.
- Bajar la base de datos con la opcin IMMEDIATE.
- Usando el explorador de Windows, copie el archivo de control con la
extensin .ctl a una extensin .bak.
- Borre el archivo de control .ctl.
- Start the database.
SQL> CONNECT sys/oracle AS SYSDBA
Connected.
SQL> SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> host copy D:\ORACLASS\ORADATA\u01\contorl01.ctl
D:\ORACLASS\ORADATA\u01\control01.bak
SQL> host del D:\ORACLASS\ORADATA\u01\control01.ctl
SQL> STARTUP
ORACLE instance started.
Total System Global Area
21790412 bytes
Fixed Size
278220 bytes
Variable Size
16777216 bytes
Database Buffers
4194304 bytes
Redo Buffers
540672 bytes
ORA-00205: error in identifying controlfile, check alert
log for more info

b. Para resolver este problema, baje la base de datos, renombre la copia del archivo de
control a su extensin original, y arranque la base de datos.
SQL> SHUTDOWN IMMEDIATE
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> host copy D:\ORACLASS\ORADATA\u01\control01.bak
D:\ORACLASS\ORADATA\u01\control01.ctl
SQL> STARTUP
ORACLE instance started.

(II) Mantenimiento de Archivos de Control


3. Multiplexe el archivo de control existente, usando la carpeta u02, y nombre el nuevo
archivo de control como ctrl02.ctl. Asegrese que el servidor Oracle este habilitado
para escribir el nuevo archivo de control. Por ejemplo, en UNIX use el comando chmod
660. Confirme que ambos archivos de control estn siendo usados.
Sugerencia:
- Antes de bajar la base de datos cambia el SPFILE (SCOPE=SPILE) para
adicionar el nuevo archivo de control al archivo de inicializacin.
- Baje la base de datos, y copie el archivo de control existente a un Nuevo
archivo con el nombre ctrl02.ctl en la carpeta u02. Use el comando
chmod 660 en UNIX.
- Arrancar la base de datos.
-

Consulte la vista de performance dinmico V$CONTROLFILE o V$PARAMETER, o


use el comando SHOW PARAMETER para confirmar que ambos archivos de control
estn siendo usados.

SQL> CONNECT SYS/ORACLE AS SYSDBA


Connected.
SQL> ALTER SYSTEM SET control_files =
'D:\ORACLASS\ORADATA\u01\control01.ctl',
'D:\ORACLASS\ORADATA\u02\control02.ctl'
SCOPE=SPFILE;
System altered.
SQL> SHUTDOWN IMMEDIATE;
Database closed. Database
dismounted.
ORACLE instance shut down.
SQL> host copy D:\ORACLASS\ORADATA\u01\control01.ctl
D:\ORACLASS\ORADATA\u02\control02.ctl
SQL> STARTUP
ORACLE instance started.
Database mounted. Database
opened.
SQL> SELECT name
2 FROM v$controlfile;
NAME
-------------------------------------D:\ORACLASS\ORADATA\u01\control01.ctl
E:\ORACLASS\ORADATA\u02\ctrl02.ctl

(II) Mantenimiento de Archivos de Control


4. Cul es el dimensionamiento inicial de la seccin de data file en tu archivo de control?
Sugerencia: Consulte la vista de performance dinmico
V$CONTROLFILE_RECORD_SECTION.
SQL> SELECT records_total
2 FROM
v$controlfile_record_section
3

WHERE

type = 'DATAFILE';

RECORDS_TOTAL
------------40

(III) Mantenimiento de Archivos Redo Logs


1. Listar el nmero y ubicacin de los log files existentes y visualice el nmero de
grupos y miembros de redo log file que su base de datos tiene.
Sugerencia:
-

Consulte la vista de performance dinmico V$LOGFILE.


Use la vista de performance dinmico V$LOG.

SQL> SELECT member


2 FROM
v$logfile;
MEMBER
------------------------------------D:\ORACLASS\ORADATA\u03\log02a.rdo
D:\ORACLASS\ORADATA\u03\log01a.rdo
SQL> SELECT group#, members
2

FROM

v$log;

GROUP#

MEMBERS

---------- ---------1
2

1
1

(III) Mantenimiento de Archivos Redo Logs


2. En qu modo est configurado su base de datos? Est habilitado el archivamiento?
Sugerencia:
-

Consulte la vista de performance dinmico V$DATABASE.

Consulte la vista de performance dinmico V$INSTANCE.

SQL> SELECT log_mode


2 FROM
v$database;
LOG_MODE
-----------NOARCHIVELOG
SQL> SELECT archiver
2 FROM
v$instance;
ARCHIVE
------STOPPED

(III) Mantenimiento de Archivos Redo Logs


3. Adicione un miembro de redo log a cada grupo en tu base de datos ubicado en u04,
usando la siguiente convencin de nombres:
Adicione un miembro al Grupo 1: log01b.rdo
Adicione un miembro al Grupo 2: log02b.rdo
Verifique el resultado.
Sugerencia:
-

Ejecute el comando ALTER DATABASE ADD LOGFILE MEMBER para

adicionar un miembro de redo log a cada grupo.

Consulte la vista de performance dinmico V$LOGFILE para verificar el

resultado.
SQL> ALTER DATABASE ADD LOGFILE MEMBER
2 'D:\oraclass\ORADATA\u04\log01b.rdo' to Group 1,
3 'D:\oraclass\ORADATA\u04\log02b.rdo' to Group 2;
Database altered.
SQL> COLUMN GROUP# FORMAT 99
SQL> COLUMN MEMBER FORMAT a40
SQL> SELECT *
2 FROM
v$logfile;

GROUP#
------

STATUS TYPE
------ ------2
ONLINE

MEMBER
-----------------------------------D:\oraclass\ORADATA\u03\log02a.rdo

1 STALE

D:\oraclass\ORADATA\u03\log01a.rdo

ONLINE

1 INVALID ONLINE
2 INVALID ONLINE

D:\oraclass\ORADATA\u04\log01b.rdo
D:\oraclass\ORADATA\u04\log02b.rdo

(III) Mantenimiento de Archivos Redo Logs


4. Adicione un grupo de redo log con dos miembros ubicados en u03 y u04 usando la
siguiente convencin de nombres y verifique el resultado.
Add Group 3: log03a.rdo and log03b.rdo
Sugerencia:
-

Ejecute el comando ALTER DATABASE ADD LOGFILE para crear el nuevo

grupo.
- Consulte la vista de performance dinmico V$LOGFILE para mostrar el nombre
de los nuevos miembros del nuevo grupo.
- Consulte la vista de performance dinmico V$LOG para mostrar el nmero
de grupo de archivos redo log y miembros.
SQL> ALTER DATABASE ADD
2 LOGFILE GROUP 3 ('D:\ORACLASS\ORADATA\u03\log03a.rdo',
3
'D:\ORACLASS\ORADATA\u04\log03b.rdo') SIZE 10240K;
Database altered.
SQL> COLUMN GROUP# FORMAT 99
SQL> COLUMN MEMBER FORMAT a40
SQL> SELECT * FROM v$logfile;
GROUP# STATUS
TYPE
MEMBER
------ ------- ------- -----------------------------------2
ONLINE D:\oraclass\ORADATA\u03\log02a.rdo
1 STALE
ONLINE D:\oraclass\ORADATA\u03\log01a.rdo
1
2
3
3

INVALID ONLINE D
INVALID ONLINE D
ONLINE D
ONLINE D

:\oraclass\ORADATA\u04\log01b.rdo
:\oraclass\ORADATA\u04\log02b.rdo
:\oraclass\ORADATA\u03\log03a.rdo
:\oraclass\ORADATA\u04\log03b.rdo

6 rows selected.
SQL> SELECT group#, members FROM v$log;
GROUP#
MEMBERS
------ ---------1
2
2
2
3
2

(III) Mantenimiento de Archivos Redo Logs


5. Elimine el grupo de redo log creado en el paso 4.
Sugerencia:
-

Use ALTER SYSTEM SWITCH LOGFILE si los archivos log estn activos. El nmero
de log switches puede requerir varias veces. Nota: Consulte la base de datos para mirar
cul es el archivo log activo, entonces decida cuantas veces necesita ejecutar el
comando ALTER SYSTEM SWITCH LOGFILE.
Ejecute el comando ALTER DATABASE DROP LOGFILE GROUP para
eliminar el grupo log.
Consulte la vista de performance dinmico V$LOG para verificar el resultado.
Elimine los archivos de sistema operativo para el grupo.

SQL> ALTER SYSTEM SWITCH LOGFILE;


System altered.
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.
SQL> ALTER DATABASE DROP LOGFILE GROUP 3;
Database altered.
SQL> SELECT group#, members
2 FROM
v$log;
GROUP#

MEMBERS

------ ---------1
2
2
2
3
2

SQL> host del D:\ORACLASS\ORADATA\u03\log03a.rdo


SQL> host del D:\ORACLASS\ORADATA\u04\log03b.rdo

(III) Mantenimiento de Archivos Redo Logs


6. Redimensione todos los archivos redo log en lnea a 15360 KB.
Sugerencia:
-

No es posible redimensionar archivos log, por tanto, adicione nuevos grupos

logs y elimine el antiguo.


- Ejecute el comando ALTER DATABASE ADD LOGFILE GROUP para adicionar
dos grupos nuevos con el tamao de 15360 KB.
- Consulte la vista de performance dinmico V$LOG para verificar el grupo activo.
- Ejecute el comando ALTER SYSTEM SWITCH LOGFILE para forzar el
intercambio de log y cambiar el grupo a inactivo. El nmero de log switches
podran requerir varias veces. Nota: Consulte la base de datos para mirar cual
archive log est activo, luego decida cuantas veces necesita ejecutar el comando
ALTER SYSTEM SWITCH LOGFILE.
- Ejecute el comando ALTER DATABASE DROP LOGFILE para eliminar
los grupos inactivos.
- Consulte la vista de performance dinmico V$LOG para verificar los resultados.
SQL> ALTER DATABASE ADD LOGFILE
2
GROUP 3 (D:\oraclass\ORADATA\u03\log03a.rdo,
3
D:\oraclass\ORADATA\u04\log03b.rdo)
4
SIZE 15360K,
5
GROUP 4 ('D:\oraclass\ORADATA\u03\log04a.rdo,
6
'D:\oraclass\ORADATA\u04\log04b.rdo)
7
SIZE 15360K;
Database altered.
SQL> SELECT group#, status
2 FROM
v$log;

GROUP#
-----1
2
3
4

STATUS
---------------ACTIVE
CURRENT
UNUSED
UNUSED

SQL> ALTER SYSTEM SWITCH LOGFILE;


System altered.
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.
SQL> ALTER DATABASE DROP LOGFILE GROUP 1, GROUP 2;
Database altered.
SQL> SELECT group#, bytes
2 FROM
v$log;

GROUP#

BYTES

------ ---------3
4

15728640
15728640

Vous aimerez peut-être aussi