Para duplicar o clonar una base de datos utilizando Recovery Manager dentro de una misma máquina, es requisito indispensable dejar esta base de datos en modo archived log a través de los siguientes pasos:
- Conectarse a la base de datos como usuario administrador (SYS o SYSTEM). Antes de hacer estos cambios es recomendable que se saquen respaldos a los archivos de PFILE y/o SPFILE.
-- Para saber si tu base de datos está en modo archived log,
-- puedes ejecutar lo siguiente:
archive log list;
(salida por pantalla)
Modo log de la base de datos Modo de No Archivado
Archivado automático Desactivado
Destino del archivo USE_DB_RECOVERY_FILE_DEST
Secuencia de log en línea más antigua 1
Secuencia de log actual 2
-- Si la salida por pantalla tiene archivado automático desactivado,
-- se debe seguir lo siguiente:
-- Debemos bajar la base de datos
SQL> shutdown immediate;
-- luego montarla
SQL> startup mount;
-- Dejar la base en modo archive
SQL> alter database archivelog;
-- Volvemos a subir la base de datos
SQL> alter database open;
-- Creamos los destinos de archived (Esta carpeta debe existir)
SQL> alter system set log_archive_dest = 'C:\oracle\oradata\prod\arch' scope=spfile;
-- Damos un formato de nombre para los archivos de redolog
SQL> alter system set log_archive_format = 'prod_%s_%t_%r.arc' scope=spfile;
-- Bajamos y submis nuevamente la instancia:
SQL> shutdown immediate;
-- Luego subimos nuevamente la instancia
SQL> startup;
-- Creamos nuestro primer archive
SQL> alter system switch logfile;
- Desde fuera de la consola sqlplus hacemos un dir
al directorio recién creado y veremos nuevos archivos creados.
- Para el ejemplo estamos unsando como base de datos productiva a PROD
- Para el ejemplo estamos unsando como base de datos clon a CLON
- Una vez que la base de datos está en modo archive log es necesario crear un respaldo rman con el fin de utilizar esto para la base de datos clon. Para esto seguir los siguientes pasos:
- Crear un archivo (para este ejemplo llamado respaldo.rman) que contenga lo siguiente, como ejemplo se usa el destino C:\oracle\rman, esta carpeta debe existir:
RUN
{
CROSSCHECK BACKUP;
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'C:\oracle\rman\prod_%F.bck';
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'C:\oracle\rman\db_bck_full_%U';
backup device type disk filesperset = 10 tag 'BCK_DB_FULL' database include current controlfile;
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'C:\oracle\rman\arch_bck_%U';
SQL "ALTER SYSTEM SWITCH LOGFILE";
backup device type disk filesperset = 100 tag 'BCK_ARCH' archivelog all;
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'C:\oracle\rman\spfile_bck_%U';
backup device type disk filesperset = 1 tag 'BCK_SPFILE' spfile;
SQL "ALTER DATABASE BACKUP CONTROLFILE TO ''C:\oracle\rman\cf_prod.bck''reuse";
}
delete noprompt obsolete device type disk;
- Luego de haber creado este archivo desde una consola de comandos ejecutar:
C:\oracle\rman>rman target / @respaldo.rman > respaldo.log
- Después de terminado el proceso podemos revisar el archivo respaldo.log en caso de errores
- Ingresamos a RMAN y ejecutamos lo siguiente comprobando el backup hecho:
C:\oracle\rman>rman target /
Recovery Manager : Release 10.2.0.1.0 - Production on MiÚ May 14 04:32:34 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
conectado a la base de datos destino: PROD (DBID=66488671)
RMAN> list backup summary;
Lista de Copias de Seguridad
===============
Clave TY LV S Tipo de Dispositivo Hora de Finalizaci¾n N·mero de Parte N·mer
o de Copia Comprimido Etiqueta
------- -- -- - ----------- -------------------- ------- ------- ---------- ---
6 B F A DISK 14/05/08 1 1 NO BCK_
DB_FULL
7 B F A DISK 14/05/08 1 1 NO BCK_
DB_FULL
10 B A A DISK 14/05/08 1 1 NO BCK_
ARCH
12 B F A DISK 14/05/08 1 1 NO BCK_
SPFILE
13 B F A DISK 14/05/08 1 1 NO TAG2
0080514T042545
exit;
- Ahora comenzaremos con algunos procesos para la creacion de la base de datos clon.
- es necesario crear conectado desde la base de datos prod un archivo de parametros desde SPFILE, estos archivos serán creados en la carpeta dbs de ORACLE_HOME:
SQL> create pfile='C:\oracle\product\10.2.0\db_1\dbs\initclon.ora' from spfile;
- Crearemos un nuevo archivo de password para la instancia clon:
C:\oracle\rman>orapwd file=C:\oracle\product\10.2.0\db_1\database\PWDclon.ora password=oracle
-- Editamos el archivo C:\oracle\product\10.2.0\db_1\dbs\initclon.ora
background_dump_dest='C:\oracle\product\10.2.0/admin/clon/bdump'
compatible='10.2.0.1.0'
db_file_name_convert=('C:\oracle\oradata\prod', 'C:\oracle\oradata\clon')
log_file_name_convert=('C:\oracle\oradata\prod', 'C:\oracle\oradata\clon')
control_files='C:\oracle\oradata\clon\control01.ctl','C:\oracle\oradata\clon\control02.ctl','C:\oracle\oradata\clon\control03.ctl'
core_dump_dest='C:\oracle\product\10.2.0/admin/clon/cdump'
db_block_size=8192
db_domain='felipe.cl'
instance_name='clon'
db_file_multiblock_read_count=16
db_name='clon'
db_recovery_file_dest='C:\oracle\product\10.2.0/flash_recovery_area'
db_recovery_file_dest_size=2147483648
dispatchers='(PROTOCOL=TCP) (SERVICE=clonXDB)'
java_pool_size=4194304
job_queue_processes=10
large_pool_size=4194304
log_archive_dest='C:\oracle\oradata\clon\arch'
log_archive_format='clon_%s_%t_%r.arc'
open_cursors=300
pga_aggregate_target=96468992
processes=150
remote_login_passwordfile='EXCLUSIVE'
sga_target=290455552
service_names='clon.felipe.cl'
shared_pool_size=83886080
streams_pool_size=0
undo_management='AUTO'
undo_tablespace='UNDOTBS1'
user_dump_dest='C:\oracle\product\10.2.0/admin/clon/udump'
-- Creamos las siguientes ubicaciones
C:\>mkdir C:\oracle\product\10.2.0\admin\clon\adump
C:\>mkdir C:\oracle\product\10.2.0\admin\clon\bdump
C:\>mkdir C:\oracle\product\10.2.0\admin\clon\cdump
C:\>mkdir C:\oracle\product\10.2.0\admin\clon\dpdump
C:\>mkdir C:\oracle\product\10.2.0\admin\clon\pfile
C:\>mkdir C:\oracle\product\10.2.0\admin\clon\udump
C:\>mkdir C:\oracle\oradata\clon\arch
- Creamos el nuevo servicio windows
C:\>oradim -new -sid CLON -startmode auto
Instancia creada.
- Preparamos la base de datos con el pfile modificado
C:\>set ORACLE_SID=CLON
C:\>sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on MiÚ May 14 05:14:18 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Conectado a una instancia inactiva.
SQL> startup nomount pfile='C:\oracle\product\10.2.0\db_1\dbs\initclon.ora';
Instancia ORACLE iniciada.
Total System Global Area 293601280 bytes
Fixed Size 1248624 bytes
Variable Size 92275344 bytes
Database Buffers 197132288 bytes
Redo Buffers 2945024 bytes
SQL> exit
- Modificamos el tnsnames:
PROD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = leonardo)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prod.felipe.cl)
)
)
CLON =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = leonardo)(PORT = 1526))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = clon.felipe.cl)
)
)
- También editamos el archivo listener.ora:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = leonardo)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = leonardo)(PORT = 1526))
)
)
- Procedemos a hacer la clonación
- Tener presente que rman irá a la carpeta database cuando baje y monte la base de datos, por lo tanto se debe copiar el initclon.ora a esta carpeta de ORACLE_HOME
C:\>rman target /@prod auxiliary /
Recovery Manager : Release 10.2.0.1.0 - Production on MiÚ May 14 05:38:58 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
conectado a la base de datos destino: PROD (DBID=66488671)
conectado a una base de datos auxiliar: CLON (no montada)
run{
allocate auxiliary channel ch1 type disk;
duplicate target database to CLON;
}
Eso es todo.
Felipe Donoso B.
May 13, 2008
Labels
Oracle
Unix
Sql Server
Noticias
Windows
12c
Varios
aix
cloud
linux
performance
sqlserver
Sap
awr
backup
base de datos
cpu
database
golden gate
goldengate
microsoft
ora-
rman
sql
tdp
tsm
always free
alwayson
availability
bug
expdp
extract
html
java
oracle 11g
patch
psu
tivoli
tuning
upgrade
virtualizacion
10046
12.1
12.2
1904046.1
19405
2040347.1
2149579.1
22912874
25684960
25972261
ADB
ANS
ANS1087E
DST
Mysql
OGG-00303
ORACLE_HOME
RC106
_OFFLINE_ROLLBACK_SEGMENTS
_datafile_write_errors_crash_instance
_disable_function_based_index
abended
adapter
apex
append
asm
atp
autonomous
bigdata
block recover
bundlepatch
cdb
change
cluster
corrupcion
counter log
crash
crecimiento
curl
data_options
datafile
dataguard
datapatch
datapump
db2
dba_hist_tbspc_space_usage
desarrollo
disable_append_hint
e-business suite
endpoint
error
event
exadata
extractor
full
gg
grid
hash
hash_value
hashing
hostname
ibm
ide
idle instance
impdp
in-memory
instance
jdbc
jtds
kafka
lodctr
logs
mac
memory
mirror
mongo
mongodb
network_link
ops$
ora-01017
oracle rest data services
ords
pal
parche
pdb
performance monitor
perl
point
ptr
qkaffsindex3
rac
recovering
redis
replica
replicador
replicate
replication
replicte
respaldo
rest enabled sQL service
restart
restore
rollback segment
scm
scripts
shell
smon
spu
sql_id
sql_trace
sqldeveloper
standalone
standby
tdpsqlc
tempfile
time
tkprof
trace
tracefile
transaction
trca
trcanlzr
undo_management
virtual machine
vm

Copyright (c) Felipe Rodrigo Donoso Bastias. Powered by Blogger.

0 Comments:
Post a Comment