Hola a todos, que tal estáis. Hoy vamos a hablaros de nuevo de una funcionalidad de Oracle 19c que puede ser de utilidad a la hora de crear nuevas bases de datos. Esta funcionalidad permite crear una nueva instancia en versión 19c a partir de otra que tengamos creada mediante una clonado de la misma. Se puede realizar desde el modo gráfico del dbca pero en este caso os vamos a contar como se puede hacer con el dbca en modo silent.
Sintaxis para el clonado desde dbca
La opción que comentamos se llama createDuplicateDB y los parámetros que soporta son:
dbca -createDuplicateDB -gdbName global_database_name -primaryDBConnectionString easy_db_connection_string -sid database_system_identifier [-initParams initialization_parameters [-initParamsEscapeChar initialization_parameters_escape_character]] [-sysPassword SYS_user_password] [-policyManaged | -adminManaged] [-policyManaged -serverPoolName server_pool_names [-pqPoolName pq_pool_name] [-createServerPool new_server_pool_name [-pqPoolName new_pq_pool_name] [-force] [-pqCardinality pq_cardinality_of_the_new_server_pool] [-cardinality cardinality_of_the_new_server_pool]]] [-adminManaged] [-nodelist database_nodes_list] [-datafileDestination data_files_directory] [-recoveryAreaDestination recovery_files_directory [-recoveryAreaSize fast_recovery_area_size]] [-databaseConfigType {SINGLE | RAC | RACONENODE} [-RACOneNodeServiceName service_name_for_RAC_One_Node_database]] [-useOMF {true | false}] [-storageType {FS | ASM} [-asmsnmpPassword ASMSNMP_password] -datafileDestination database_files_directory] [-createListener new_database_listener] [-createAsStandby [-dbUniqueName db_unique_name_for_standby_database]] [-customScripts custom_sql_scripts_to_run_after_database_creation] [-useWalletForDBCredentials {true | false} -dbCredentialsWalletPassword wallet_account_password -dbCredentialsWalletLocation wallet_files_directory]
En la sección primaryDBConnectionString tenemos que indicar la cadena de conexión a la instancia del servidor de origen y admite el siguiente formato:
"host[:port][/service_name][:server][/instance_name]"
La cadena de conexión es muy similar a la que utilizamos para una conexión jdbc normal.

En el parámetro -databaseConfigType indicamos que tipo de base de datos vamos a crear:
- SINGLE: Single individual database.
- RAC: Oracle RAC database.
- RACONENODE: Oracle RAC One Node database.
También podemos definir los valores de configuración que queramos que sean diferentes con respecto a la original mediante el parámetro -initParams.
Para definir el almacenamiento utilizamos el parámetro -storageType que nos permite indicar FS o ASM y en conjunción con -datafileDestination y -useOMF indicamos la ruta y como queremos que se creen los ficheros.
Con -sysPassword indicamos la password del usuario sys en origen para realizar el clonado.
Como último paso importante podemos decidir si creamos un listener nuevo. Eso lo indicamos con la opción –createListener.
Veamos como se lanzaría la clonación de una base de datos con todos los pasos completos:
./dbca -silent -createDuplicateDB -gdbName DB19NEW -primaryDBConnectionString dbprod.gpsos.es:1522/DB19OLD -sid DB19NEW -databaseConfigType SINGLE -initParams db_unique_name=DB19NEW -sysPassword syspass1234
-storageType ASM -datafileDestination +DATA1 -useOMF true -createListener LISTENER_DB19NEW:1525
La salida que veremos si todo va bien será algo parecido a este:
Prepare for db operation 22% complete Listener config step 44% complete Auxiliary instance creation 67% complete RMAN duplicate 89% complete Post duplicate database operations 100% complete Look at the log file "/oracle/app/oracle/cfgtoollogs/dbca/DB19NEW/DB19NEW.log" for further details.
Como hemos podido ver la funcionalidad es muy interesante y de una forma sencilla podemos tener nueva instancia creada a partir de una ya existente.
Un saludo y hasta la próxima.
Fuente: http://oracledbatr.blogspot.com/2017/07/dataguard-12cr2-new-feature-using-dbca.html
Si no quieres perderte más consejos cómo este apúntate a nuestra newsletter
¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.
Sígue a GPS en LinkedIn