Hoy he tenido la tarea de clonar o duplicar una base de datos Oracle 10g. Siendo un novato en la materia, entre a Google y encontré algunas respuestas. Después de algunas investigaciones menciono algunas formas:
- Usando EM:: Mantenimiento::Despliegue::opción clonar de base de datos: El problema con esto es que necesita «Una base de datos abierta en modo ARCHIVELOG», lo cual no tengo. Por lo tanto, requiere que se reinicie como se menciona en aquí. De ahí que descarte esta opción.
- Duplicar la base de datos utilizando RMAN: Un buen artículo al respecto está disponible aquí. Lo he probado y demore de 2 a 3 horas para conectarme a la base de datos recién creada. Después de eso también abandone este método.
- Mediante línea de comandos: Todo es usando sqlplus y es bastante técnico. Los detalles están disponibles aquí. Funciona, pero seguí buscando una alternativa fácil.
- Usando DBCA: Este método me pareció ser el más fácil y la opción más rápida, pero lamentablemente no está disponible en los primeros resultados de Google. Parece que es una de la forma menos utilizada para duplicar una base de datos Oracle, pero la mejor. Para promoverla escribo este post.
He aquí como se hace:
- Inicia el Database Configuration Assistant (DBCA). Se encuentra en Todos los programas :: Oracle – OracleDb10g_home1 :: Configuration and Migration Tools :: Database Configuration Assistant. También puede ser invocado al escribir «dbca» desde el símbolo del sistema.
- En la pantalla «Welcome» haz clic en el botón «Next».
- En la pantalla «Operations» selecciona la opción » Manage Templates» y haz clic en el botón «Next».
- En la pantalla «Manage Templates» selecciona la opción «Create a database template» y seleccione la sub-opción » From and existing database (structure as well as data)» y haz clic en el botón «Next».
- En la » Source database» pantalla de selección de la instancia de base de datos correspondiente y haga clic en el botón «Next».
- En la pantalla «Template properties» introduce un nombre adecuado y una descripción para la plantilla, confirma la ubicación de los archivos de la plantilla y haz clic en el botón «Next».
- En la pantalla » Location of database related files» elige entre mantener la ubicación de los archivos (maintain the file locations) o convertirlos a la estructura OFA (convert to OFA structure), la segunda es la recomendada y luego haz clic en el botón «Finish».
- En la pantalla «Confirmation» haz clic en el botón «Ok».
- Espere mientras el asistente la barra de progreso va avanzando y recoge información sobre la base de datos origen, respalda la base de datos y crea la plantilla.
- Dependiendo del tamaño de la base de datos esto tomará algún tiempo. Para mi base de datos de 8GB, tomó alrededor de 8 minutos. Ahora tenemos la plantilla creada, la cual usaremos para crear nuestra base de datos.
- Haz clic en la «Next Operation».
- Selecciona «Create a Database» y haz clic en «Next».
- En «Select a template from the following list to create a database» selecciona el nombre de la plantilla que ingresastes en el paso 6 y haz clic en «Next».
- Proporciona el nombre del nuevo servicio para la nueva base de datos. El SID se ajustará automáticamente al nombre del servicio ingresado. Haz clic en «Next».
- Deja marcadas las opciones «Configure the Database with Enterprise Manager» y «Use Database Control for Database Management». Haz clic en «Next».
- Proporciona una contraseña para SYS y haz clic en «Next».
- Deja marcada la opción «File System» a menos que desees utilizar ASM o RAW para tu nueva base de datos.
- Deja marcado «Use Database File Locations from Template». Esto es importante. Haz clic en «Next».
- Deja como están los valores por defecto para «Flash Recover Area» y haz clic en «Next».
- Deja como esta «No Scripts to run» y haz clic en «Next».
- Puedes mantener los valores por defecto para la memoria (Memory) y tamaño (Sizing) o modificarlas según tus necesidades y haz clic en «Next».
- Ahora estas en la pantalla final en donde puedes ver todas las configuraciones y verificar que estén correctas. Haz clic en «Next», DBCA hará todo el trabajo y tu base de datos debe estar en funcionamiento en los próximos 15 a 20 minutos.
- Por último antes de ingresar a la nueva base de datos con EM, Revisa el tnsnames.ora y mira si se ha creado una entrada para la nueva base de datos de lo contrario agrega una. Debes agregar un nuevo listener en tu listener.ora. Luego si quieres hacer un «lsnrctl reload» para volver a cargar los listeners.
- Por último haz un tnsping a tu nueva base de datos para comprobar todos está bien.
- Inicia sesión usando EM y debes tener lista tu DB en modo Open.
- Ten en cuenta que todas las cuentas de usuario, además de la cuenta del sistema están bloqueadas y expiradas por lo que necesitas desbloquearlas para permitir a los usuarios conectarse a la nueva base de datos.
Todo el proceso demoro unos 30-35 minutos y todo fue mediante asistentes y sin scripts o errores. Parece ser la mejor salida para duplicar una base de datos Oracle 10g 🙂