Clonado desde dbca en modo comando

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.

Clonado desde dbca en modo comando

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