alter session set sort_area_size = 67108864;
BEGINSYS.DBMS_STATS.GATHER_SCHEMA_STATS (
OwnName => 'OWNER',
Granularity => 'ALL',
Options => 'GATHER',
Gather_Temp => TRUE,
Estimate_Percent => 53,
Block_sample => TRUE,
Degree => 6,
Cascade => TRUE,
No_Invalidate => TRUE);
END;
/
viernes, 8 de agosto de 2008
viernes, 1 de agosto de 2008
RESTORE desde CONTRILFILE
* Restore de una base backup en frío.
* Renombrado de una base.
* Reubicación de todos sus datafiles (la reubicación se puede hacer de dos o tres formas aquí ensayamos la del control file)
* Recovery desde redologs.
Lo que hay que hacer es lo siguiente:
1) - Copia el archivo de parámetros (pfile o spfile) del servidor destino al origen.
Los parámetros a cambiar son:
db_name = NUEVO_NOMBRE_DE_BASE
control_files = ( "/path/logs1/ctrlORCL_SID01.ctl",
"/path/logs2/ctrlORCL_SID02.ctl")
background_dump_dest = /path/adm/ORCL_SID/bdump
user_dump_dest = /path/adm/ORCL_SID/bdump
core_dump_dest = /path/adm/ORCL_SID/cdump
2) - Crea un archivo de password en el destino.
orapwd file=ORACLE_HOME/dbs/orapwORACLE_SID password= entries=10
3) - Copiar los datafiles del origen al destino.
Para esto la base debe esta baja.
Originales:
scp '/path/ORACLE_SID/data01/system_01.dbf' usuario@servidor:'/path/ORACLE_SID/data01/system_01.dbf'
scp '/path/ORACLE_SID/data01/undotbs_01.dbf' usuario@servidor:'/path/ORACLE_SID/data01/undotbs_01.dbf'
scp '/path/ORACLE_SID/data01/tools_01.dbf' usuario@servidor:'/path/ORACLE_SID/data01/tools_01.dbf'
scp '/path/ORACLE_SID/data01/users_01.dbf' usuario@servidor:'/path/ORACLE_SID/data01/users_01.dbf'
scp '/path/ORACLE_SID/data01/rman_01.dbf' usuario@servidor:'/path/ORACLE_SID/data01/rman_01.dbf'
scp '/path/ORACLE_SID/data01/oemrep_01.dbf' usuario@servidor:'/path/ORACLE_SID/data01/oemrep_01.dbf'
scp '/path/ORACLE_SID/logs1/ctrlORACLE_SID01.ctl' usuario@servidor:'/path/ORACLE_SID/logs1/ctrlORACLE_SID01.ctl'
scp '/path/ORACLE_SID/logs2/ctrORACLE_SID02.ctl' usuario@servidor:'/path/ORACLE_SID/logs2/ctrORACLE_SID02.ctl'
4) - Para crear el nuevo control file se debe ejecutar el comando.
$ sqlplus /nolog
SQL*Plus: Release 9.2.0.8.0 - Production on Fri Aug 1 15:36:01 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn sys as sysdba
Enter password:
Connected to an idle instance.
SQL> alter database backup controlfile to trace;
una vez generado el controlfile, se copia al otro servidor y se modifican datos
para que quede como el ejemplo de abajo.
desde un sqlplus conectado como sys ejecuta lo siguiente en el
nuevo servidor con el nuevo motor instalado.
----------------------------------------------------------------------------
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE set DATABASE "ORACLE_SID" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 2
MAXDATAFILES 30
MAXINSTANCES 1
MAXLOGHISTORY 226
LOGFILE
GROUP 1 (
'/path/ORACLE_SID/logs1/grp1rdo01.log',
'/path/ORACLE_SID/logs2/grp1rdo02.log'
) SIZE 10M,
GROUP 2 (
'/path/ORACLE_SID/logs1/grp2rdo01.log',
'/path/ORACLE_SID/logs2/grp2rdo02.log'
) SIZE 10M,
GROUP 3 (
'/path/ORACLE_SID/logs1/grp3rdo01.log',
'/path/ORACLE_SID/logs2/grp3rdo02.log'
) SIZE 10M
-- STANDBY LOGFILE
DATAFILE
'/path/ORACLE_SID/data01/system_01.dbf',
'/path/ORACLE_SID/data01/undotbs_01.dbf',
'/path/ORACLE_SID/data01/tools_01.dbf',
'/path/ORACLE_SID/data01/users_01.dbf',
'/path/ORACLE_SID/data01/rman_01.dbf',
'/path/ORACLE_SID/data01/oemrep_01.dbf'
CHARACTER SET US7ASCII;
----------------------------------------------------------------------------------------------------------
Si esta ejecución da error, NO se puede seguir sin resolverlo previamente.
5) - Si todo OK entonces, desde la misma sesión del sqlplus se ejecuta:
'alter database open resetlogs;'
Si hay un error de media recovery, es porque la base original se bajo en forma dudosa (no NORMAL),
por lo que se puede intentar un recovery ejecutando:
'recover database using backup controlfile until cancel;'
Si OK, listo ir a punto 6
Si no OK, se intenta lo siguiente, ejecuta el select:
'select group#, seq#, status from v$log;'
se ve uno con status CURRENT se saca el 'GROUP#' y ejecutar:
select member from v$logfile where GROUP# =;
En este punto la base debiera poder abrirse, ejecutar:
'alter database open resetlogs;'
Caso contrario go to METALINK!!!! y resar si ud es creyente.
6) - Si todo funciona OK, solo resta crear el tablespace TEMP, para lo cual se ejecuta
la creación que estaba en el controlfile antes editado:
ALTER TABLESPACE TEMP ADD TEMPFILE '/path/ORACLE_SID/data01/temp_01.dbf' SIZE 209715200 REUSE AUTOEXTEND OFF;
7) - Luego:
'alter database rename global_name to ORACLE_SID' el nuevo ORACLE_SID con el cual se
reemplazó el anteriao en el INIT y el el CONTROLFILE.
8) - Verificación:
Bajar y abrir la base (Revisar el alert para ver que este todo OK)
Forzar un switch, ejecutar:
'alter system switch logfile;'
(Revisar el alert para ver que este todo OK)
9) - Fin
* Renombrado de una base.
* Reubicación de todos sus datafiles (la reubicación se puede hacer de dos o tres formas aquí ensayamos la del control file)
* Recovery desde redologs.
Lo que hay que hacer es lo siguiente:
1) - Copia el archivo de parámetros (pfile o spfile) del servidor destino al origen.
Los parámetros a cambiar son:
db_name = NUEVO_NOMBRE_DE_BASE
control_files = ( "/path/logs1/ctrlORCL_SID01.ctl",
"/path/logs2/ctrlORCL_SID02.ctl")
background_dump_dest = /path/adm/ORCL_SID/bdump
user_dump_dest = /path/adm/ORCL_SID/bdump
core_dump_dest = /path/adm/ORCL_SID/cdump
2) - Crea un archivo de password en el destino.
orapwd file=ORACLE_HOME/dbs/orapwORACLE_SID password=
3) - Copiar los datafiles del origen al destino.
Para esto la base debe esta baja.
Originales:
scp '/path/ORACLE_SID/data01/system_01.dbf' usuario@servidor:'/path/ORACLE_SID/data01/system_01.dbf'
scp '/path/ORACLE_SID/data01/undotbs_01.dbf' usuario@servidor:'/path/ORACLE_SID/data01/undotbs_01.dbf'
scp '/path/ORACLE_SID/data01/tools_01.dbf' usuario@servidor:'/path/ORACLE_SID/data01/tools_01.dbf'
scp '/path/ORACLE_SID/data01/users_01.dbf' usuario@servidor:'/path/ORACLE_SID/data01/users_01.dbf'
scp '/path/ORACLE_SID/data01/rman_01.dbf' usuario@servidor:'/path/ORACLE_SID/data01/rman_01.dbf'
scp '/path/ORACLE_SID/data01/oemrep_01.dbf' usuario@servidor:'/path/ORACLE_SID/data01/oemrep_01.dbf'
scp '/path/ORACLE_SID/logs1/ctrlORACLE_SID01.ctl' usuario@servidor:'/path/ORACLE_SID/logs1/ctrlORACLE_SID01.ctl'
scp '/path/ORACLE_SID/logs2/ctrORACLE_SID02.ctl' usuario@servidor:'/path/ORACLE_SID/logs2/ctrORACLE_SID02.ctl'
4) - Para crear el nuevo control file se debe ejecutar el comando.
$ sqlplus /nolog
SQL*Plus: Release 9.2.0.8.0 - Production on Fri Aug 1 15:36:01 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn sys as sysdba
Enter password:
Connected to an idle instance.
SQL> alter database backup controlfile to trace;
una vez generado el controlfile, se copia al otro servidor y se modifican datos
para que quede como el ejemplo de abajo.
desde un sqlplus conectado como sys ejecuta lo siguiente en el
nuevo servidor con el nuevo motor instalado.
--------------------------------
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE set DATABASE "ORACLE_SID" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 2
MAXDATAFILES 30
MAXINSTANCES 1
MAXLOGHISTORY 226
LOGFILE
GROUP 1 (
'/path/ORACLE_SID/logs1/grp1rdo01.log',
'/path/ORACLE_SID/logs2/grp1rdo02.log'
) SIZE 10M,
GROUP 2 (
'/path/ORACLE_SID/logs1/grp2rdo01.log',
'/path/ORACLE_SID/logs2/grp2rdo02.log'
) SIZE 10M,
GROUP 3 (
'/path/ORACLE_SID/logs1/grp3rdo01.log',
'/path/ORACLE_SID/logs2/grp3rdo02.log'
) SIZE 10M
-- STANDBY LOGFILE
DATAFILE
'/path/ORACLE_SID/data01/system_01.dbf',
'/path/ORACLE_SID/data01/undotbs_01.dbf',
'/path/ORACLE_SID/data01/tools_01.dbf',
'/path/ORACLE_SID/data01/users_01.dbf',
'/path/ORACLE_SID/data01/rman_01.dbf',
'/path/ORACLE_SID/data01/oemrep_01.dbf'
CHARACTER SET US7ASCII;
----------------------------------------------------------------------------------------------------------
Si esta ejecución da error, NO se puede seguir sin resolverlo previamente.
5) - Si todo OK entonces, desde la misma sesión del sqlplus se ejecuta:
'alter database open resetlogs;'
Si hay un error de media recovery, es porque la base original se bajo en forma dudosa (no NORMAL),
por lo que se puede intentar un recovery ejecutando:
'recover database using backup controlfile until cancel;'
Si OK, listo ir a punto 6
Si no OK, se intenta lo siguiente, ejecuta el select:
'select group#, seq#, status from v$log;'
se ve uno con status CURRENT se saca el 'GROUP#' y ejecutar:
select member from v$logfile where GROUP# =
En este punto la base debiera poder abrirse, ejecutar:
'alter database open resetlogs;'
Caso contrario go to METALINK!!!! y resar si ud es creyente.
6) - Si todo funciona OK, solo resta crear el tablespace TEMP, para lo cual se ejecuta
la creación que estaba en el controlfile antes editado:
ALTER TABLESPACE TEMP ADD TEMPFILE '/path/ORACLE_SID/data01/temp_01.dbf' SIZE 209715200 REUSE AUTOEXTEND OFF;
7) - Luego:
'alter database rename global_name to ORACLE_SID' el nuevo ORACLE_SID con el cual se
reemplazó el anteriao en el INIT y el el CONTROLFILE.
8) - Verificación:
Bajar y abrir la base (Revisar el alert para ver que este todo OK)
Forzar un switch, ejecutar:
'alter system switch logfile;'
(Revisar el alert para ver que este todo OK)
9) - Fin
Suscribirse a:
Entradas (Atom)