Mi lista de blogs

jueves, 13 de agosto de 2015

METODOS para INTEGRIDAD DE DATOS - Codigo HASH


  • Validar un objeto ?
  • Comprobar que no fue modificado ?
  • validar su integridad ?


CODIGO HASH
Este es un método que utilice para verificar que los objetos de una base de datos no fueron modificados. Es decir, mi intención era poder validar un restore que pertenece a un servidor tercializado, y comprobar que el backup luego de ser tomado, no fue adulterado.

Paso a explicar; luego de que se realiza el backup full de mi base de datos, mensualmente se guardan en cinta o cartridge por 10 años. Estos objetos, que se generan en mi backup full son, en mi caso, 4 piezas. Por lo tanto, luego de que se realiza un JOB, creado por mi, valida esta creación de objeto y aplica :

1 - Conectarse desde Unix

2 - Me posiciono en el file donde se encuentra el objeto y ejecuto csum.

3 - csum -h MD5 objeto

4 - Da una salida que a mi llega a mi casilla de e-mail y por cada objeto muestra:


¿Como compruebo que mis objetos no han sido modificados? 

Sencillo, vuelvo a ejecutar csum sobre el objeto que pedimos el restore y valido que el hash me coincida con el que me fue enviado por mail, o el método que utilicen para guardar el código.






CREAR UNA TABLA EN ORACLE - DESDE EL TOAD

Crearemos una tabla desde el toad, de la forma mas sencilla !!!!











Crear INDICES desde TOAD

Vamos a ver un ejemplo de como crear un indice desde el TOAD, conectados a una base ORACLE:

1 - Por Código:

CREATE INDEX OWNER.NOMBREDELINDICE ON OWNER.NOMBREDELATABLA
(CAMPO)
LOGGING
TABLESPACE NOMBREDELATABLESPACE
PCTFREE    10
INITRANS   2
MAXTRANS   255
STORAGE    (
            INITIAL          64K
            NEXT             1M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           )
NOPARALLEL;


2 - Por interfaz gráfica:





Error SYBASE - Insert free space value 140 in page header of DOL datapage ...

Error: Insert free space value 140 in page header of DOL datapage ...

Este error se me presento en un proceso que lo que hace es insertar datos en una tabla, los pasos a realizar dentro mi análisis son : 

dbcc check table <table>     

Este dbcc pude tardar varios minutos, todo dependiendo de la cantidad de registros que contenga esa tabla. 

Luego, como los errores que encontraba los corregía pero no finalizaba el check, lo que hice fue:

1- Realizar el BCP out de la tabla.
2 - Renombrar la tabla, o bien hacerle un DROP, pero antes debemos generar el DLL de la misma para poder recrear el objeto tal como lo teníamos. 
3 - Una vez renombrada o hecho el DROP, la vamos a volver a crear PERO sin los indices.
4 - Hacemos el BCP in.
5 - Creamos los indices. 
6 - Ejecutamos un dbcc check table.

Pasos:

1 - Nos conectamos a nuestro unix y ejecutamos:

/sybase/OCS-15_0/bin/bcp Nombredelabase..Tabla out /destinoenelunix/Archivodesalida.txt  -n -A16384 -SNombredelaconexion -Uusuario -Pclave

2 - Drop table base.owner.tabla
o
Editamos la tabla desde sybase central:



Luego generamos la DDL; Si estamos en sybase central, como vemos en la imagen donde editamos dice GENERATE DDL


3 - Creamos la tabla con el mismo Nombre, es decir, ejecutamos la DDL sin los indices:
Ejemplo:
create table dbo.TABLA(
   Campo1   date  not null,
   Campo2   int  not null
)
alter table dbo.TABLA lock allpages
go

4 - /sybase/OCS-15_0/bin/bcp Nombredelabase..Tabla in /destinoenelunix/Archivodesalida.txt  -n -A16384 -SNombredelaconexion -Uusuario -Pclave  

5 - Creamos los indices de la tabla con el mismo Nombre.
Ejemplo:
create nonclustered index NombreIndice on owner.TABLA ( Campo2 ASC)

6 - Ejecutamos dbcc check table <table>    








miércoles, 12 de agosto de 2015

BAT PARA STATUS DE BASES SQL - ORACLE

Status de base, bat para validar en ORACLE:


Cabecera  de la información que saldrá por HTML!!!!

Es decir que al ejecutar el BAT les genera un HTML, que se vera como reporte

CAMPOS DEL HTML:


INSTANCE_NUMBER INSTANCE_NAME HOST_NAME VERSION STARTUP_T STATUS PAR

THREAD# ARCHIVE LOG_SWITCH_WAIT LOGINS SHU DATABASE_STATUS 

INSTANCE_ROLE ACTIVE_ST BLO 

TABLESPACE ESTADO MB TAMAÑO MB USADOS MB LIBRES % INCREMENTO FICHERO DE DATOS 

SEGMENT_TYPE SUM(BYTES)/1024/1024 


HTML:


  • Hazte miembro y envíame un correo para que te anexe los scripts

Status de base, bat para validar en SQL:


Changed database context to 'BD_u'.


database_name                                                                                                                  
                                                                                                              database_size      
unallocated space 

MB        
reserved           data               index_size         unused            

  • Hazte miembro y envíame un correo para que te anexe los scripts

CREAR TABLA EN SYBASE - CREAR INDICES EN SYBASE

CREAR TABLA:
create table dbo.NOMBREDETABLA(
   CAMPOS   TIPODEDATO,
   CAMPOS   varchar(160)  null
)
alter table NOMBREDETABLA 
go



CREAR INDICES:
create nonclustered index NOMBREDELINDICE on dbo.NOMBREDELATABLA ( CAMPO ASC)


EN SYBASE CENTRAL:
Indices:





Archivos de inicialización ORACLE

Archivos de inicialización

Además de estructuras de disco y de memoria, un servidor Oracle necesita ciertos archivos para poder ejecutarse. Estos archivos se establecen durante la creación de la base de datos, y se consultarán cada vez que se arranque la base de datos, por lo que deben estar disponibles. Básicamente podemos diferencias los tipos de archivos:
  • Control files: son archivos de control que se consultan cada vez que se arranca la base de datos. Indica datos como la localización de los datafiles, nombre de la base de datos.
  • Init file: es el archivo que contiene los parámetro de inicio de la base de datos (tamaño del bloque, tamaño del SGA, etc.). Normalmente tiene el nombre INIT.ORA
  • Redo logs: estos archivos contienen un historial de todas las instrucciones que han sido lanzadas a la base de datos, para poder recuperarla en caso de fallo. No se utilizan durante la inicialización, sino durante toda la ejecución de la base de datos.