Activar el modo de archive log de una base de datos Oracle
Abriremos la aplicación SQL Plus de Oracle
sqlplus /nolog
Nos conectamos con un usuario con suficientes privilegios y ejecutamos el comando:
connect usuario/contraseña@NOMBRE_BASE_DATOS as sysdba
Si la base de datos está en modo OPEN Nos dará un error::
alter database archivelog;
Para poder cambiar la base de datos Oracle a modo archive log hay que iniciarla en modo "mount"
Ejecutamos
shutdown immediate;
Resultado :
Database closed.
Database dismounted.
ORACLE instance shut down.
La iniciamos en modo "mount" con el comando:
startup mount;
Resultado comando:
ORACLE instance started.
..
..
..
Database mounted.
Para cambiar a modo archivado ejecutaremos el siguiente comando:
alter database archivelog;
Resultado :
Database altered.
Volveremos a inciar la base de datos:
alter database open;
Resultado comando:
Database altered.
Archivado automático:
comprobamos el valor del parámetro "log_archive_start", si está a "false" lo pondremos a "true".
actual del parámetro ejecutaremos el siguiente comando:
show parameter log_archive_start;
Devolverá e:
NAME TYPE VALUE
------------------- -------- --------
log_archive_start boolean FALSE
Modificaremos el parámetro "log_archive_start" a "true" con el siguiente comando:
alter system set LOG_ARCHIVE_START=TRUE SCOPE=spfile;
Resultado comando:
System altered.
Al ejecutar "SCOPE=spfile" haremos que los cambios se guarden .
Para que los cambios tengan efecto es recomendable parar y volver a iniciar la base de datos:
shutdown immediate;
Iniciaremos la base de datos en modo normal:
startup;
Notas:
Para comprobar en qué modo está la base de datos:
select log_mode from v$database;
Resultado:
LOG_MODE
-------------------------
NOARCHIVELOG (está en modo no archivado)
select log_mode from v$database;
LOG_MODE
--------------------
ARCHIVELOG (está en modo archivado)
Otra forma:
archive log list;
Resultado:
Database log mode Archive Mode
Automatic archival Enabled
Archive destination C:/oracle/ora92/RDBMS
Oldest online log sequence 395
Next log sequence to archive 397
Current log sequence 397
* Para ver el valor parámetro de archivado automático:
show parameter log_archive_start;
NAME TYPE VALUE
------------------- ----------- -----
log_archive_start boolean FALSE
DESACTIVAR EL MODO ARCHIVE LOG
Abriremos la aplicación SQL Plus de Oracle cmd
sqlplus /nolog
Nos conectamos con un usuario con suficientes privilegios a la base de datos Oracle a la que queramos desactivarle el modo Archive Log (ARCHIVELOG), con el comando:
connect usuario/contraseña@NOMBRE_BASE_DATOS as sysdba
Ejecutamos el siguiente comando para desactivar el modo archive log:
alter system archive log stop;
Mostrará :
System altered.
Para comprobar que se ha desactivado correctamente:
archive log list;
Mostrará el siguiente resultado:
Database log mode Archive Mode
Automatic archival Disabled
Archive destination C:/oracle/oradata/bdtest/archive
Oldest online log sequence 70
Next log sequence to archive 72
Current log sequence 72
A continuación os mostramos todo el contenido de la ventana de MS-DOS:
C:>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on Fri aug 13 12:30:36 2015
Copyright (c) 1999, 2014, Oracle Corporation. All rights reserved.
SQL> connect /@BDLOCAL as sysdba;
Connected.
SQL> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG
SQL> show parameter log_archive_start;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_start boolean FALSE
SQL> alter database archivelog;
alter database archivelog
*
ERROR at line 1:
ORA-01126: database must be mounted EXCLUSIVE and not open for this operation
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
Database mounted.
SQL> alter database archivelog;
Database altered.
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
SQL> alter database open;
Database altered.
SQL> show parameter log_archive_start;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_start boolean FALSE
SQL> alter system set LOG_ARCHIVE_START=TRUE SCOPE=spfile;
Sistema modificado.
SQL> show parameter log_archive_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string
...
SQL> ALTER SYSTEM ARCHIVE LOG STOP;
System altered.
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Disabled
Archive destination C:/oracle/oradata/bdtest/archive
Oldest online log sequence 70
Next log sequence to archive 60
Current log sequence 60
Este blog esta hecho con la intención de ayudar. Aportes sobre realización de backups y recovery. Métodos de administración de bases, dblinks y migraciones, tablas, indices, estadísticas, etc. Diseño web y plantillas en php.
Mi lista de blogs
jueves, 13 de agosto de 2015
CONSULTAS Y QUERY PARA SYBASE
- LEVANTAR SERVICIO SYBASE:
$ startserver -f RUN_servername
- LIBERAR ESPACIO LOG
dump tran NOMBREDELABASE with no_log
go
- AUMENTAR UN DISPOSITIVO
disk resize
name = "NOMBREDELSEGMENT",
size = "424M"
go
USE master
go
ALTER DATABASE NOMBREDELABASE
LOG ON NOMBREDELSEGMENT='524M'
go
- MODIFICAR A BULLCOPY
sp_dboption BASE,
"select into/bulkcopy", true
go
use BASE
go
checkpoint
go
- CHECK PARA VALIDAR Y CORREGIR TABLAS
dbcc checktable <Nombredelatabla>
CONSULTAS IMPORTANTES PARA UN BASE ORACLE !!!!
select * from dba_jobs_running
•• Consulta Oracle SQL sobre la vista que muestra
el estado de la base de datos
select * from v$instance
•• Consulta Oracle SQL que muestra si la base de
datos está abierta
select status from v$instance
•• Consulta Oracle SQL sobre la vista que muestra
los parámetros generales de Oracle
select * from v$system_parameter
•• Consulta Oracle SQL para conocer la Versión de
Oracle
select value
from v$system_parameter where name = 'compatible'
•• Consulta Oracle SQL para conocer la Ubicación y
nombre del fichero spfile
select value
from v$system_parameter where name = 'spfile'
•• Consulta Oracle SQL para conocer la Ubicación y
número de ficheros de control
select value
from v$system_parameter where name = 'control_files'
•• Consulta Oracle SQL para conocer el Nombre de la
base de datos
select value
from v$system_parameter where name = 'db_name'
•• Consulta Oracle SQL sobre la vista que muestra
las conexiones actuales a Oracle
Para
visualizarla es necesario entrar con privilegios de administrador
select osuser,
username, machine, program
from v$session
order by osuser
•• Consulta Oracle SQL que muestra el número de
conexiones actuales a Oracle
agrupado
por aplicación que realiza la conexión
select program
Aplicacion, count(program) Numero_Sesiones
from v$session
group by
program
order by
Numero_Sesiones desc
•• Consulta Oracle SQL que muestra los usuarios de
Oracle conectados y el número de sesiones por usuario
select username
Usuario_Oracle, count(username) Numero_Sesiones
from v$session
group by
username
order by
Numero_Sesiones desc
•• Consulta Oracle SQL que muestra propietarios de
objetos y número de objetos por propietario
select owner,
count(owner) Numero
from
dba_objects
group by owner
•• Consulta Oracle SQL sobre el Diccionario de
datos
(incluye
todas las vistas y tablas de la Base de Datos)
select * from dictionary
•• Consulta Oracle SQL que muestra los datos de una
tabla especificada
(en este
caso todas las tablas que lleven la cadena "XXX")
select * from
ALL_ALL_TABLES where upper(table_name) like '%XXX%'
•• Consulta Oracle SQL que muestra las
descripciones de los campos de una tabla especificada
(en este
caso todas las tablas que lleven la cadena "XXX")
select * from
ALL_COL_COMMENTS where upper(table_name) like '%XXX%'
•• Consulta Oracle SQL para conocer las tablas
propiedad del usuario actual
select * from user_tables
•• Consulta Oracle SQL para conocer todos los
objetos propiedad del usuario conectado a Oracle
select * from user_catalog
•• Consulta Oracle SQL para el DBA de Oracle que
muestra los tablespaces,
el espacio
utilizado, el espacio libre y los ficheros de datos de los mismos
Select t.tablespace_name "Tablespace", t.status "Estado",
ROUND(MAX(d.bytes)/1024/1024,2)
"MB Tamaño",
ROUND((MAX(d.bytes)/1024/1024)
-
(SUM(decode(f.bytes, NULL,0, f.bytes))/1024/1024),2)
"MB Usados",
ROUND(SUM(decode(f.bytes,
NULL,0, f.bytes))/1024/1024,2) "MB Libres",
t.pct_increase
"% incremento",
SUBSTR(d.file_name,1,80)
"Fichero de datos"
FROM
DBA_FREE_SPACE f, DBA_DATA_FILES d, DBA_TABLESPACES t
WHERE
t.tablespace_name = d.tablespace_name AND
f.tablespace_name(+)
= d.tablespace_name
AND
f.file_id(+) = d.file_id GROUP BY t.tablespace_name,
d.file_name,
t.pct_increase, t.status ORDER BY 1,3 DESC
•• Consulta Oracle SQL para conocer los productos
Oracle instalados y la versión
select * from product_component_version
•• Consulta Oracle SQL para conocer los roles y
privilegios por roles
select * from role_sys_privs
•• Consulta Oracle SQL para conocer las reglas de
integridad y columna a la que afectan
select
constraint_name, column_name from sys.all_cons_columns
•• Consulta Oracle SQL para conocer las tablas de
las que es propietario un usuario, en este caso "xxx"
SELECT
table_owner, table_name from sys.all_synonyms where table_owner like 'xxx'
•• Consulta Oracle SQL como la anterior, pero de
otra forma más efectiva
(tablas de
las que es propietario un usuario)
SELECT DISTINCT
TABLE_NAME
FROM
ALL_ALL_TABLES
WHERE OWNER LIKE 'HR'
•• Parámetros de Oracle, valor actual y su
descripción
SELECT v.name,
v.value value, decode(ISSYS_MODIFIABLE, 'DEFERRED',
'TRUE',
'FALSE') ISSYS_MODIFIABLE, decode(v.isDefault, 'TRUE', 'YES',
'FALSE', 'NO')
"DEFAULT", DECODE(ISSES_MODIFIABLE, 'IMMEDIATE',
'YES','FALSE',
'NO', 'DEFERRED', 'NO', 'YES') SES_MODIFIABLE,
DECODE(ISSYS_MODIFIABLE,
'IMMEDIATE', 'YES', 'FALSE', 'NO',
'DEFERRED',
'YES','YES') SYS_MODIFIABLE , v.description
FROM
V$PARAMETER v
WHERE name not
like 'nls%' ORDER BY 1
•• Consulta Oracle SQL que muestra los usuarios de
Oracle y datos suyos
(fecha de
creación, estado, id, nombre, tablespace temporal,...)
Select * FROM dba_users
•• Consulta Oracle SQL para conocer tablespaces y
propietarios de los mismos
select owner,
decode(partition_name, null, segment_name,
segment_name ||
':' || partition_name) name,
segment_type,
tablespace_name,bytes,initial_extent,
next_extent,
PCT_INCREASE, extents, max_extents
from
dba_segments
Where 1=1 And
extents > 1 order by 9 desc, 3
•• Últimas consultas SQL ejecutadas en Oracle y
usuario que las ejecutó
select distinct
vs.sql_text, vs.sharable_mem,
vs.persistent_mem,
vs.runtime_mem, vs.sorts,
vs.executions,
vs.parse_calls, vs.module,
vs.buffer_gets,
vs.disk_reads, vs.version_count,
vs.users_opening,
vs.loads,
to_char(to_date(vs.first_load_time,
'YYYY-MM-DD/HH24:MI:SS'),'MM/DD
HH24:MI:SS') first_load_time,
rawtohex(vs.address)
address, vs.hash_value hash_value ,
rows_processed
, vs.command_type, vs.parsing_user_id ,
OPTIMIZER_MODE
, au.USERNAME parseuser
from v$sqlarea
vs , all_users au
where (parsing_user_id
!= 0) AND
(au.user_id(+)=vs.parsing_user_id)
and (executions
>= 1) order by buffer_gets/executions desc
•• Consulta Oracle SQL para conocer todos los
tablespaces
select * from V$TABLESPACE
•• Consulta Oracle SQL para conocer la memoria
Share_Pool libre y usada
select
name,to_number(value) bytes
from
v$parameter where name ='shared_pool_size'
union all
select
name,bytes
from v$sgastat
where pool = 'shared pool' and name = 'free memory'
•• Cursores abiertos por usuario
select b.sid, a.username, b.value Cursores_Abiertos
from v$session
a,
v$sesstat b,
v$statname c
where c.name in
('opened cursors current')
and
b.statistic# = c.statistic#
and a.sid =
b.sid
and a.username
is not null
and b.value
>0
order by 3
•• Consulta Oracle SQL para conocer los aciertos de
la caché (no debería superar el 1 por ciento)
select
sum(pins) Ejecuciones, sum(reloads) Fallos_cache,
trunc(sum(reloads)/sum(pins)*100,2)
Porcentaje_aciertos
from
v$librarycache
where namespace
in ('TABLE/PROCEDURE','SQL AREA','BODY','TRIGGER');
•• Sentencias SQL completas ejecutadas con un texto
determinado en el SQL
SELECT c.sid,
d.piece, c.serial#, c.username, d.sql_text
FROM v$session
c, v$sqltext d
WHERE
c.sql_hash_value = d.hash_value
and
upper(d.sql_text) like '%WHERE CAMPO LIKE%'
ORDER BY c.sid,
d.piece
•• Una sentencia SQL concreta (filtrado por sid)
SELECT c.sid,
d.piece, c.serial#, c.username, d.sql_text
FROM v$session
c, v$sqltext d
WHERE
c.sql_hash_value = d.hash_value
and sid = 105
ORDER BY c.sid,
d.piece
•• Consulta Oracle SQL para conocer el tamaño
ocupado por la base de datos
select
sum(BYTES)/1024/1024 MB from DBA_EXTENTS
•• Consulta Oracle SQL para conocer el tamaño de
los ficheros de datos de la base de datos
select
sum(bytes)/1024/1024 MB from dba_data_files
•• Consulta Oracle SQL para conocer el tamaño
ocupado por una tabla concreta sin incluir los índices de la misma
select
sum(bytes)/1024/1024 MB from user_segments
where
segment_type='TABLE' and segment_name='NOMBRETABLA'
•• Consulta Oracle SQL para conocer el tamaño
ocupado por una tabla concreta incluyendo los índices de la misma
select
sum(bytes)/1024/1024 Table_Allocation_MB from user_segments
where
segment_type in ('TABLE','INDEX') and
(segment_name='NOMBRETABLA'
or segment_name in
(select
index_name from user_indexes where table_name='NOMBRETABLA'))
•• Consulta Oracle SQL para conocer el tamaño
ocupado por una columna de una tabla
select sum(vsize('NOMBRECOLUMNA'))/1024/1024 MB
from NOMBRETABLA
•• Consulta Oracle SQL para conocer el espacio
ocupado por usuario
SELECT owner,
SUM(BYTES)/1024/1024 MB FROM DBA_EXTENTS
group by owner
•• Consulta Oracle SQL para conocer el espacio
ocupado por los diferentes segmentos
(tablas,
índices, undo, rollback, cluster, ...)
SELECT
SEGMENT_TYPE, SUM(BYTES)/1024/1024 MB FROM DBA_EXTENTS
group by SEGMENT_TYPE
•• Consulta Oracle SQL para obtener todas las
funciones de Oracle: NVL, ABS, LTRIM, ...
SELECT distinct
object_name
FROM
all_arguments
WHERE
package_name = 'STANDARD'
order by
object_name
•• Consulta Oracle SQL para conocer el espacio
ocupado por todos los objetos de la base de datos,
muestra
los objetos que más ocupan primero
SELECT
SEGMENT_NAME, SUM(BYTES)/1024/1024 MB FROM DBA_EXTENTS
group by
SEGMENT_NAME
order by 2 desc
Suscribirse a:
Entradas (Atom)