jueves, 18 de diciembre de 2008

PARTITIONING

Ejemplo de una tabla Particionada por rangos de fechas y su respectivo índice.


CREATE TABLE OWNER.TABLE_NAME (
campo_1 number(10),
campo_2 varchar2(100),
campo_3 date)
PARTITION BY RANGE (campo_3) (
PARTITION P200808 VALUES LESS THAN (TO_DATE('01-09-2008','DD-MM-YYYY'))
TABLESPACE DATA_P,
PARTITION P200809 VALUES LESS THAN (TO_DATE('01-10-2008','DD-MM-YYYY'))
TABLESPACE DATA_P,
PARTITION P200810 VALUES LESS THAN (TO_DATE('01-11-2008','DD-MM-YYYY'))
TABLESPACE DATA_P,
PARTITION P200811 VALUES LESS THAN (TO_DATE('01-12-2008','DD-MM-YYYY'))
TABLESPACE DATA_P,
PARTITION P200812 VALUES LESS THAN (TO_DATE('01-01-2009','DD-MM-YYYY'))
TABLESPACE DATA_P,
PARTITION P200901 VALUES LESS THAN (TO_DATE('01-02-2009','DD-MM-YYYY'))
TABLESPACE DATA_P,
PARTITION P200902 VALUES LESS THAN (TO_DATE('01-03-2009','DD-MM-YYYY'))
TABLESPACE DATA_P,
PARTITION P200903 VALUES LESS THAN (TO_DATE('01-04-2009','DD-MM-YYYY'))
TABLESPACE DATA_P);



El índice para la tabla con el mísmo rango de particiones.


CREATE INDEX OWNER.INDEX_NAME ON OWNER:TABLE_NAME
(campo_2)
TABLESPACE EXCH_INDX_P
LOGGING
LOCAL (
PARTITION P200808
TABLESPACE INDX_P,
PARTITION P200809
TABLESPACE INDX_P,
PARTITION P200810
TABLESPACE INDX_P,
PARTITION P200811
TABLESPACE INDX_P,
PARTITION P200812
TABLESPACE INDX_P,
PARTITION P200901
TABLESPACE INDX_P,
PARTITION P200902
TABLESPACE INDX_P,
PARTITION P200903
TABLESPACE INDX_P,
)
NOPARALLEL;

BKP FULL RMAN CON ARCHIVE LOG

$RMAN target / rcvcat $RCVCAT_CONNECT_STR@$RCVCAT_TNS msglog $RMAN_LOG_FILE append <<>

RUN
{
allocate channel ch1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/opt/tivoli/tsm/client/oracle/bin64/tdpo.opt)';
backup database include current controlfile plus archivelog delete all input;
DELETE COPY OF ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-3';
release channel ch1;
}
crosscheck backup of database;
delete noprompt expired backup of database;
crosscheck backup of archivelog all;
delete noprompt expired backup of archivelog all;
crosscheck Archivelog all;
crosscheck backup of controlfile;
delete noprompt obsolete;
delete noprompt expired backup;
delete noprompt expired archivelog all;
"


Este script borra los archivelogs de LOG_ARCHIVE_DEST_1 dejando los últimos 3 días on-line.

RMAN

Crear una nueva base de datos para el repositorio, en la misma crear:
Creación del repositorio
SQL> Create tablespace rman Datafile '/u01/app/oracle/oradata/Rman/rman.dbf' Size 10M;
Tablespace created.

Creación del usuario rman
SQL> Create user rman identified by rman01 Default tablespace rman;
User created.

Otorgamos los privilegios necesarios para el usuario rman
SQL> Grant resource, connect, recovery_catalog_owner to rman;
Grant succeeded.

Ahora de esta forma podremos conectarnos al catalogo e inicializar el repositorio

[oracle@server14 oracle]$ rman catalog rman/rman01@Rman
Recovery Manager: Release 10.2.0.1.0 - Production on Mon Mar 10 10:49:48 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to recovery catalog database
RMAN> Create catalog;
recovery catalog created

A partir de este punto, la utilizacion de un repositorio es tan sencilla como especificar el nombre de usuario y la
contraseña para el repositorio en la linea de comandos.

Registrar una base de datos en el catalogo
Desde la base de datos productiva
Registramos la base de datos recuperacion en el catalogo de RMAN
[oracle@server14 oracle]$ rman target / catalog rman@rman
Recovery Manager: Release 10.2.0.1.0 - Production on Mon Mar 10 11:03:16 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: DESAFA (DBID=3904418899)
connected to recovery catalog database
RMAN> register database;
database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
RMAN>