Infra: clonación de TRNG /QA (banner9)

  • ingresamos por consola DB
  • profile bannerdesa ac12
  • ingresamos con el usuario oracle
su - oracle
  • establecemos SID
export ORACLE_SID=CTRNG
export ORACLE_SID=CQA
  • Identificar el respaldo
ls -ltrh /respaldos/rman/BANNER9
  • vamos a la ruta
cd /home/oracle/scripts/
nano restore.rman
  • modificamos el respaldo y la hora mas 2 minutos
  • ejecutamos
sqlplus / as sysdba
show pdbs;
  • y
shut immediate
startup restrict mount
show parameters control_file;
  • Borrar base de datos y Salir de sqlplus
drop database;
exit
  • Borrar rutas de los CONTROL FILES, fast recovery area, lk y hc: 
rm -rf /u02/app/oracle/oradata/${ORACLE_SID}/*
rm -rf /u02/app/oracle/fast_recovery_area/${ORACLE_SID}
rm -rf /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/lk${ORACLE_SID}
rm -rf /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/hc_${ORACLE_SID}.dat
  • Eliminar de la ruta /respaldos/rman/BANNER9/ donde se guarda el respaldo de sigesa, cualquier archivo que sea anterior al día que se va a realizar la recuperación
find /respaldos/rman/BANNER9/ ! -newermt $(date +%Y%m%d) | xargs  rm -f ;
  • lanzar rman
cd /home/oracle/scripts/
rman target / @restore.rman

Proceso posterior

  • Si todo sale bien
  • Ejecutamos
exit
su - oracle
export ORACLE_SID=CTRNG
export ORACLE_SID=CQA
  • ejecutamos
sqlplus / as sysdba
show pdbs;
  • Resultado vemos que quedo con el nombre BANNER9
  • Si quedo abierta READ/WRITE todo esta bien
  • Si no quedo abierta lanzar
alter database open resetlogs;
  • Salimos y vamos a para ejecutar el script que cambia el nombre de la BD
exit
cd /home/oracle/scripts
  • Ingresamos
sqlplus / as sysdba
  • Y ejecutamos el script que corresponda
@QA.sql
@TRNG.sql
  • Resultado
  • ejecutamos
show pdbs;
  • Y vemos que se renombro
  • Nos cambiamos
ALTER SESSION SET CONTAINER=QA;
ALTER SESSION SET CONTAINER=TRNG;
  • Cambiar las contraseña de los usuarios de oracle:
alter user baninst1 identified by u_pick_it account unlock;
alter user www_user identified by u_pick_it account unlock;
alter user cascadeu identified by u_pick_it account unlock;
alter user ban_ss_user identified by u_pick_it account unlock;
alter user events identified by u_pick_it account unlock;
alter user cdcadmin identified by u_pick_it account unlock;
alter user integmgr identified by u_pick_it account unlock;
alter user ssomgr identified by u_pick_it account unlock;
alter user general identified by u_pick_it account unlock;
alter user bepuser identified by u_pick_it account unlock;
alter user educont identified by u_pick_it account unlock;
alter user MOBILEDEV identified by u_pick_it account unlock;
alter user WWW_SGPPAVE identified by u_pick_it account unlock;
alter user SGPPAVE identified by u_pick_it account unlock;
alter user UNA_GRADUA identified by u_pick_it account unlock;
alter user banjsproxy identified by u_pick_it account unlock;
alter user genlprd identified by u_pick_it account unlock;
alter user identity_db identified by u_pick_it account unlock;
alter user registry_db identified by u_pick_it account unlock;
alter user registry_local1 identified by u_pick_it account unlock;
alter user bansecr identified by u_pick_it account unlock;
alter user educont identified by u_pick_it account unlock;


CREATE OR REPLACE DIRECTORY BAN_GUAUPLP_UPLOAD_DIR AS '/u02/GUAUPLP';
GRANT READ, WRITE ON DIRECTORY BAN_GUAUPLP_UPLOAD_DIR to BAN_DEFAULT_Q, BAN_DEFAULT_M, WTAILOR;
GRANT SELECT,INSERT,UPDATE,DELETE,REFERENCES ON GURUPLD TO WWW_USER;
GRANT CREATE ANY VIEW TO www_user;
grant create any view to educont;

DROP PUBLIC DATABASE LINK SIGESA.UNA.AC.CR;

CREATE PUBLIC DATABASE LINK SIGESA.UNA.AC.CR
CONNECT TO adm IDENTIFIED  BY sigesa2015
USING '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = sigesadesa.una.ac.cr)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME= desa02.una.ac.cr)))';
  • Cambiar el EIS
update TWGBPARM set TWGBPARM_param_value='https://banner9eisqa.una.ac.cr/cas-web/login'  where TWGBPARM_param_name='IDMLOGINURI';
update TWGBPARM set TWGBPARM_param_value='https://banner9eisqa.una.ac.cr/cas-web/logout' where TWGBPARM_param_name='IDMLOGOUTURI';
commit;
  • Cambiar GUBINST la bd

QA

update GUBINST set GUBINST_INSTANCE_NAME='QA'; 
commit;

TRNG

update GUBINST set GUBINST_INSTANCE_NAME='TRNG'; 
commit;
  • Ejecutar (Referencia a admin pages INB). El parámetro GUBMODU_URL lo debo cambiar con alguno de los valores siguientes según la base de datos que se esté clonando:

QA

UPDATE gubmodu SET GUBMODU_URL='https://inbqa.una.ac.cr/BannerAdmin/' where GUBMODU_URL='https://inb.una.ac.cr/BannerAdmin/';
commit; 

TRNG

UPDATE gubmodu SET GUBMODU_URL='https://inbtrng.una.ac.cr/BannerAdmin/' where GUBMODU_URL='https://inb.una.ac.cr/BannerAdmin/';
commit; 
  • Modificar directorio de reportes:
--(Servicio de Reports)
update guruprf set guruprf_value='http://inbt01desa.una.ac.cr:9099/reports/rwservlet?' where guruprf_group='REPORT' AND guruprf_STRING='DIRECTORY'; 
commit;
  • Modificar la instancia de reportes con el valor de guruprf_value por cada instancia que se encuentre clonando (rep_trng, rep_qa19)

QA

update guruprf set guruprf_value='rep_qa19' where guruprf_group='REPORT' AND guruprf_VALUE='rep_banner9';
commit;

TRNG

update guruprf set guruprf_value='rep_trng' where guruprf_group='REPORT' AND guruprf_VALUE='rep_banner9';
commit;
  • Modificar el SSB, cambiar el url  SSB por cada instancia que se encuentre clonando, El parámetro guruprf_value lo debo cambiar con alguno de los valores siguientes según la base de datos que se esté clonando:

QA

update guruprf set guruprf_value='https://ssbqa.una.ac.cr/QA/' where guruprf_group='WEBOUTPUT' AND guruprf_VALUE='https://ssb.una.ac.cr/PROD/';
commit;

TRNG

update guruprf set guruprf_value='https://ssbtrng.una.ac.cr/TRNG/' where guruprf_group='WEBOUTPUT' AND guruprf_VALUE='https://ssb.una.ac.cr/PROD/';
commit;
  • Cambiar el ip de desarrollo del LDAP:
BEGIN
dbms_network_acl_admin.assign_acl(acl=>'ldap_access.xml',host=>'10.0.2.76',lower_port=>389,upper_port=>389);
commit;
end;
/
  • Modificar los enlaces de las opciones de los menú locales de los Estudiantes del StudentSelfService y BannerExtensibility, por tanto, se debe cambiar el puerto según la instancia:

… 443… (QA)

/****Actualiza URL de opcion :Perfil del alumno, del menu de estudiantes***/
UPDATE twgrmenu SET twgrmenu_url = 'https://xe02desa.una.ac.cr/StudentSelfService/ssb/studentProfile'                       WHERE twgrmenu_url_text = 'Perfil del alumno' AND twgrmenu_name = 'bmenu.P_StuMainMnu' AND twgrmenu_source_ind = 'L';

/****Actualiza URL de opcion :Ver Pendientes, del menu de estudiantes***/
UPDATE twgrmenu SET twgrmenu_url = 'https://xe04desa.una.ac.cr/BannerExtensibility/customPage/page/LSRetencionesGlobalPidm' WHERE twgrmenu_url_text = 'Ver Pendientes'    AND twgrmenu_name = 'bmenu.P_StuMainMnu' AND twgrmenu_source_ind = 'L';

/****Actualiza URL de opcion :Juramentación Web, del menu de estudiantes***/
UPDATE twgrmenu SET twgrmenu_url = 'https://xe04desa.una.ac.cr/BannerExtensibility/customPage/page/GWvalidaJuramentacion'   WHERE twgrmenu_url_text = 'Juramentación Web' AND twgrmenu_name = 'bmenu.P_StuMainMnu' AND twgrmenu_source_ind = 'L';

/****Actualiza URL de opcion :Ingreso de resultados de pruebas extraordinarias, del menu de profesores***/
UPDATE twgrmenu SET twgrmenu_url = 'https://xe04desa.una.ac.cr/BannerExtensibility/customPage/page/NEXValidacionPeriodoRegistroNotas' WHERE twgrmenu_url_text = 'Ingreso de resultados de pruebas extraordinarias' AND twgrmenu_name = 'bmenu.P_FacMainMnu' AND twgrmenu_source_ind = 'L';


/****Actualiza URL de opción :Consulta Esquema Vacunación por NRC, del menú de estudiantes***/
update twgrmenu
set   twgrmenu_url = 'https://xe04desa.una.ac.cr/BannerExtensibility/customPage/page/VACCursosDocente'
where twgrmenu_url_text = 'Consulta Esquema Vacunación por NRC'
and   twgrmenu_name =  'bmenu.P_FacMainMnu'
and   twgrmenu_source_ind = 'L';

/****Actualiza URL de opción: Ingresar esquema de modificación de estudiantes ***/
update twgrmenu
set twgrmenu_url =  'https://xe04desa.una.ac.cr/BannerExtensibility/customPage/page/VACEsquemaVacunacion' 
where twgrmenu_url_text = 'Declarar Esquema de Vacunación  COVID-19 ' 
and twgrmenu_name =  'bmenu.P_StuMainMnu'
and twgrmenu_source_ind = 'L';


/****Actualiza URL de opción : Ingresar Beneficiarios para Póliza Estudiantil, del menú de estudiantes***/
update twgrmenu
set   twgrmenu_url = 'http://xe04desa.una.ac.cr/BannerExtensibility/customPage/page/BPEBeneficiarioPoliza'
where twgrmenu_url_text = 'Ingresar Beneficiarios para Póliza Estudiantil'
and   twgrmenu_name =  'bmenu.P_StuMainMnu'
and   twgrmenu_source_ind = 'L';

update twgrmenu set twgrmenu_url=replace(twgrmenu_url,'ssbprod.una.ac.cr:444','ssbqa.una.ac.cr')
where twgrmenu_url like '%ssbprod%444%' ;


update twgrmenu set twgrmenu_url=replace(twgrmenu_url,'ssbprod.una.ac.cr/PROD','ssbqa.una.ac.cr/QA')
where twgrmenu_url like '%ssbprod%' ;

update twgrmenu set twgrmenu_url=replace(twgrmenu_url,'ssb.una.ac.cr','ssbqa.una.ac.cr')
where twgrmenu_url like '%ssb.una.ac.cr%' ;

update twgrmenu set twgrmenu_url=replace(twgrmenu_url,'xe06prod.una.ac.cr','xe04desa.una.ac.cr')
where twgrmenu_url like '%xe06prod%' ;

update twgrmenu set twgrmenu_url=replace(twgrmenu_url,'xe01prod.una.ac.cr','xe02desa.una.ac.cr')
where twgrmenu_url like '%xe01prod%' ;

COMMIT;

… 442… (TRNG)

/****Actualiza URL de opcion :Perfil del alumno, del menu de estudiantes***/
UPDATE twgrmenu SET twgrmenu_url = 'https://xe02desa.una.ac.cr:442/StudentSelfService/ssb/studentProfile'                       WHERE twgrmenu_url_text = 'Perfil del alumno' AND twgrmenu_name = 'bmenu.P_StuMainMnu' AND twgrmenu_source_ind = 'L';

/****Actualiza URL de opcion :Ver Pendientes, del menu de estudiantes***/
UPDATE twgrmenu SET twgrmenu_url = 'https://xe04desa.una.ac.cr:442/BannerExtensibility/customPage/page/LSRetencionesGlobalPidm' WHERE twgrmenu_url_text = 'Ver Pendientes'    AND twgrmenu_name = 'bmenu.P_StuMainMnu' AND twgrmenu_source_ind = 'L';

/****Actualiza URL de opcion :Juramentación Web, del menu de estudiantes***/
UPDATE twgrmenu SET twgrmenu_url = 'https://xe04desa.una.ac.cr:442/BannerExtensibility/customPage/page/GWvalidaJuramentacion'   WHERE twgrmenu_url_text = 'Juramentación Web' AND twgrmenu_name = 'bmenu.P_StuMainMnu' AND twgrmenu_source_ind = 'L';

/****Actualiza URL de opcion :Ingreso de resultados de pruebas extraordinarias, del menu de profesores***/
UPDATE twgrmenu SET twgrmenu_url = 'https://xe04desa.una.ac.cr:442/BannerExtensibility/customPage/page/NEXValidacionPeriodoRegistroNotas' WHERE twgrmenu_url_text = 'Ingreso de resultados de pruebas extraordinarias' AND twgrmenu_name = 'bmenu.P_FacMainMnu' AND twgrmenu_source_ind = 'L';


/****Actualiza URL de opción :Consulta Esquema Vacunación por NRC, del menú de estudiantes***/
update twgrmenu
set   twgrmenu_url = 'https://xe04desa.una.ac.cr:442/BannerExtensibility/customPage/page/VACCursosDocente'
where twgrmenu_url_text = 'Consulta Esquema Vacunación por NRC'
and   twgrmenu_name =  'bmenu.P_FacMainMnu'
and   twgrmenu_source_ind = 'L';

/****Actualiza URL de opción: Ingresar esquema de modificación de estudiantes ***/
update twgrmenu
set twgrmenu_url =  'https://xe04desa.una.ac.cr:442/BannerExtensibility/customPage/page/VACEsquemaVacunacion' 
where twgrmenu_url_text = 'Declarar Esquema de Vacunación  COVID-19 ' 
and twgrmenu_name =  'bmenu.P_StuMainMnu'
and twgrmenu_source_ind = 'L';


/****Actualiza URL de opción : Ingresar Beneficiarios para Póliza Estudiantil, del menú de estudiantes***/
update twgrmenu
set   twgrmenu_url = 'http://xe04desa.una.ac.cr:442/BannerExtensibility/customPage/page/BPEBeneficiarioPoliza'
where twgrmenu_url_text = 'Ingresar Beneficiarios para Póliza Estudiantil'
and   twgrmenu_name =  'bmenu.P_StuMainMnu'
and   twgrmenu_source_ind = 'L';

update twgrmenu set twgrmenu_url=replace(twgrmenu_url,'ssbprod.una.ac.cr:444','ssbtrng.una.ac.cr')
where twgrmenu_url like '%ssbprod%444%' ;


update twgrmenu set twgrmenu_url=replace(twgrmenu_url,'ssbprod.una.ac.cr/PROD','ssbtrng.una.ac.cr/TRNG')
where twgrmenu_url like '%ssbprod%' ;

update twgrmenu set twgrmenu_url=replace(twgrmenu_url,'ssb.una.ac.cr','ssbtrng.una.ac.cr')
where twgrmenu_url like '%ssb.una.ac.cr%' ;

update twgrmenu set twgrmenu_url=replace(twgrmenu_url,'xe06prod.una.ac.cr','xe04desa.una.ac.cr:442')
where twgrmenu_url like '%xe06prod%' ;

update twgrmenu set twgrmenu_url=replace(twgrmenu_url,'xe01prod.una.ac.cr','xe02desa.una.ac.cr:442')
where twgrmenu_url like '%xe01prod%' ;

COMMIT;
  • Modificar los menú personalizados GUAINFO y GUROCFG :

QA=>GUAINFO / GUROCFG

--FACULTYLANDINGPAGE

update GURINFO set GURINFO_TEXT=replace(GURINFO_TEXT,'autoservicio.una.ac.cr','xe02desa.una.ac.cr')
where GURINFO_LOCALE    = 'es' 
and   GURINFO_PAGE_NAME = 'FACULTYLANDINGPAGE' 
and   GURINFO_LABEL     = 'faculty.landpage.text';

update GURINFO set GURINFO_TEXT=replace(GURINFO_TEXT,'xe06prod.una.ac.cr'    ,'xe04desa.una.ac.cr')
where GURINFO_LOCALE    = 'es' 
and   GURINFO_PAGE_NAME = 'FACULTYLANDINGPAGE' 
and   GURINFO_LABEL     = 'faculty.landpage.text';

--STUDENTLANDINGPAGE

update GURINFO set GURINFO_TEXT=replace(GURINFO_TEXT,'autoservicio.una.ac.cr','xe02desa.una.ac.cr')
where GURINFO_LOCALE           = 'es' 
AND   GURINFO_PAGE_NAME        = 'STUDENTLANDINGPAGE' 
and   GURINFO_LABEL            = 'student.landpage.text'
and   GURINFO_SOURCE_INDICATOR = 'L';

update GURINFO set GURINFO_TEXT=replace(GURINFO_TEXT,'xe06prod.una.ac.cr'    ,'xe04desa.una.ac.cr')
    where GURINFO_LOCALE           = 'es' 
AND   GURINFO_PAGE_NAME        = 'STUDENTLANDINGPAGE' 
and   GURINFO_LABEL            = 'student.landpage.text'
and   GURINFO_SOURCE_INDICATOR = 'L';

update GURINFO set GURINFO_TEXT=replace(GURINFO_TEXT,'studentssb.una.ac.cr'   ,'xe03desa.una.ac.cr')
where GURINFO_LOCALE           = 'es' 
AND   GURINFO_PAGE_NAME        = 'STUDENTLANDINGPAGE' 
and   GURINFO_LABEL            = 'student.landpage.text'
and   GURINFO_SOURCE_INDICATOR = 'L';

update GURINFO set GURINFO_TEXT=replace(GURINFO_TEXT,'ssb.una.ac.cr/ssomanager/c/SSB?pkg=bvsktess.P_DispTerms'   ,'xe04desa.una.ac.cr/BannerExtensibility/customPage/page/EDEvaluacionEstu')
where GURINFO_LOCALE           = 'es' 
AND   GURINFO_PAGE_NAME        = 'STUDENTLANDINGPAGE' 
and   GURINFO_LABEL            = 'student.landpage.text'
and   GURINFO_SOURCE_INDICATOR = 'L';

--GUROCFG
update gurocfg set GUROCFG_VALUE='[''default'' : ''https://ssbqa.una.ac.cr/ssomanager/c/SSB?pkg='' , es : ''https://ssbqa.una.ac.cr/ssomanager/c/SSB?pkg='']'
where gurocfg_gubappl_app_id = 'GLOBAL' AND GUROCFG_NAME='banner8.SS.locale.url'; 

update gurocfg set GUROCFG_VALUE='https://ssbqa.una.ac.cr/ssomanager/c/SSB?pkg=https://ssbqa.una.ac.cr/QA/'
where gurocfg_gubappl_app_id = 'GLOBAL' AND GUROCFG_NAME='banner8.SS.url';

COMMIT;

TRNG=>GUAINFO / GUROCFG

--FACULTYLANDINGPAGE

update GURINFO set GURINFO_TEXT=replace(GURINFO_TEXT,'autoservicio.una.ac.cr','xe02desa.una.ac.cr:442')
where GURINFO_LOCALE    = 'es' 
and   GURINFO_PAGE_NAME = 'FACULTYLANDINGPAGE' 
and   GURINFO_LABEL     = 'faculty.landpage.text';

update GURINFO set GURINFO_TEXT=replace(GURINFO_TEXT,'xe06prod.una.ac.cr'    ,'xe04desa.una.ac.cr:442')
where GURINFO_LOCALE    = 'es' 
and   GURINFO_PAGE_NAME = 'FACULTYLANDINGPAGE' 
and   GURINFO_LABEL     = 'faculty.landpage.text';

--STUDENTLANDINGPAGE

update GURINFO set GURINFO_TEXT=replace(GURINFO_TEXT,'autoservicio.una.ac.cr','xe02desa.una.ac.cr:442')
where GURINFO_LOCALE           = 'es' 
AND   GURINFO_PAGE_NAME        = 'STUDENTLANDINGPAGE' 
and   GURINFO_LABEL            = 'student.landpage.text'
and   GURINFO_SOURCE_INDICATOR = 'L';

update GURINFO set GURINFO_TEXT=replace(GURINFO_TEXT,'xe06prod.una.ac.cr'    ,'xe04desa.una.ac.cr:442')
    where GURINFO_LOCALE           = 'es' 
AND   GURINFO_PAGE_NAME        = 'STUDENTLANDINGPAGE' 
and   GURINFO_LABEL            = 'student.landpage.text'
and   GURINFO_SOURCE_INDICATOR = 'L';

update GURINFO set GURINFO_TEXT=replace(GURINFO_TEXT,'studentssb.una.ac.cr'   ,'xe03desa.una.ac.cr:442')
where GURINFO_LOCALE           = 'es' 
AND   GURINFO_PAGE_NAME        = 'STUDENTLANDINGPAGE' 
and   GURINFO_LABEL            = 'student.landpage.text'
and   GURINFO_SOURCE_INDICATOR = 'L';

update GURINFO set GURINFO_TEXT=replace(GURINFO_TEXT,'ssb.una.ac.cr/ssomanager/c/SSB?pkg=bvsktess.P_DispTerms'   ,'xe04desa.una.ac.cr:442/BannerExtensibility/customPage/page/EDEvaluacionEstu')
where GURINFO_LOCALE           = 'es' 
AND   GURINFO_PAGE_NAME        = 'STUDENTLANDINGPAGE' 
and   GURINFO_LABEL            = 'student.landpage.text'
and   GURINFO_SOURCE_INDICATOR = 'L';

--GUROCFG
update gurocfg set GUROCFG_VALUE='[''default'' : ''https://ssbtrng.una.ac.cr/ssomanager/c/SSB?pkg='' , es : ''https://ssbtrng.una.ac.cr/ssomanager/c/SSB?pkg='']'
where gurocfg_gubappl_app_id = 'GLOBAL' AND GUROCFG_NAME='banner8.SS.locale.url'; 

update gurocfg set GUROCFG_VALUE='https://ssbtrng.una.ac.cr/ssomanager/c/SSB?pkg=https://ssbtrng.una.ac.cr/TRNG/'
where gurocfg_gubappl_app_id = 'GLOBAL' AND GUROCFG_NAME='banner8.SS.url';
COMMIT;
  • Modificar  función f_cambia_pwd_ldap:
create or replace FUNCTION          f_cambia_pwd_ldap (i_username IN VARCHAR2)
   RETURN VARCHAR2
IS
   pidm                  NUMBER;
   ldap_host             VARCHAR2 (256);
   ldap_port             PLS_INTEGER;
   ldap_user             VARCHAR2 (256);
   ldap_passwd           VARCHAR2 (256);
   ldap_base             VARCHAR2 (256);
   i_pwd                 VARCHAR2 (255);
   random_pwd            BINARY_INTEGER;
   retval                PLS_INTEGER;
   my_session            DBMS_LDAP.SESSION;
   emp_array             DBMS_LDAP.mod_array;
   emp_dn                VARCHAR2 (256);
   emp_vals              DBMS_LDAP.string_collection;
   lv_fecha_nacimiento   VARCHAR2 (6)                := '';
   lv_error              NUMBER                      := 0;
BEGIN
   -- Se genera una nueva semilla aleatoria
   DBMS_RANDOM.initialize (TO_CHAR (SYSTIMESTAMP, 'FF'));
   ---- Si tipo_password = 'A' = Password Aleatorio, 'F' = Password por Fecha de Nacimiento

   ----Error se inicializa en 0; si parametro de tipo de password no es ni A, ni F, el proceso no
   ----devuelve nada
   i_pwd := DBMS_RANDOM.STRING ('X', 6);
   -- Please customize the following variables as needed
   -- You will need to set the LDAP host as you OID server IP Address
   -- You will need to set you LDAP_Base as well
   ldap_host := '10.0.2.76';
   ldap_port := '389';
   ldap_user := 'cn=admin,dc=una,dc=ac,dc=cr';
   ldap_passwd := '123456';
   ldap_base := 'ou=People,dc=una,dc=ac,dc=cr';
   -- Choosing exceptions to be raised by DBMS_LDAP library.
   DBMS_LDAP.use_exception := TRUE;
-----------------------------------------------
--   Connect to the LDAP server
--   and obtain and ld session.
-----------------------------------------------
   my_session := DBMS_LDAP.init (ldap_host, ldap_port);
-----------------------------------------------
-- Bind to the directory
--
-----------------------------------------------
   retval := DBMS_LDAP.simple_bind_s (my_session, ldap_user, ldap_passwd);
----------------------------------------------------------
-- Código para modificar la clave
   emp_array := DBMS_LDAP.create_mod_array (1);
   emp_vals (1) := i_pwd;
----------------------------------------------------------
-- Modify Attribute Password
   DBMS_LDAP.populate_mod_array (emp_array,
                                 DBMS_LDAP.mod_replace,
                                 'userpassword',
                                 emp_vals
                                );
   emp_dn := 'uid=' || i_username || ',' || ldap_base;
   retval := DBMS_LDAP.modify_s (my_session, emp_dn, emp_array);
-- Codigo para forzar un cambio de contraseña
   emp_array := DBMS_LDAP.create_mod_array (1);
   --  emp_vals (1) := 'TRUE'; OJO DESTAPAR LINEA DESPUES
   emp_vals (1) := 'TRUE';
----------------------------------------------------------
-- Modify el atributo pwdReset
   DBMS_LDAP.populate_mod_array (emp_array,
                                 DBMS_LDAP.mod_replace,
                                 'pwdReset',
                                 emp_vals
                                );
   emp_dn := 'uid=' || i_username || ',' || ldap_base;
   retval := DBMS_LDAP.modify_s (my_session, emp_dn, emp_array);
----------------------------------------------------------
-- unbind from the directory
   retval := DBMS_LDAP.unbind_s (my_session);
   RETURN i_pwd;
EXCEPTION
   WHEN OTHERS
   THEN
      IF SQLCODE = -31202
      THEN
         SELECT spriden_pidm
           INTO pidm
           FROM spriden
          WHERE spriden_id = i_username AND spriden_change_ind IS NULL;

         RETURN insert_user_ldap (pidm, i_pwd);
      ELSE
         RETURN '*ERROR*';
      END IF;
END f_cambia_pwd_ldap; 
 /

Modificar el admin pages

Ingresar desde al admin pages desde con bansecr (BANSECR/u_pick_it) a la forma GSASECR y modificar el nombre de instancia el SID del trabajo (QA, TRNG)

QA=>https://inbqa.una.ac.cr/BannerAccessMgmt

TRNG=>https://inbtrng.una.ac.cr/BannerAccessMgmt

  • Cerramos esta ventana
  • Vamos al menú y buscamos
GSASECR
  • Vamos a menú -> Perfil de institución y buscamos «SID de trabajo del representante»
  • Y lo modificamos para y le damos guardar
TRNG
QA

Modificar Gurjobs

  • Ingresar a batch desa (10.0.3.34) por medio de ssh con c/u4c,
ssh 10.0.3.34 -l cgi
  • Luego con el usuario banjobs/adminbanner12
su - banjobs
  • Ejecutamos
. oraenv
ORACLE_SID = [banjobs] ?

# Aquí debemos digitar alguna de las siguietes opciones

# Producción
BANNER9

# QA
QA19

# TRNG
TRNG
  • Luego puede que nos pida el ORACLE_HOME es que es la ruta donde se encuentra instalado el oracle
/u01/app/oracle/product/19.0.0/client_1
  • Ejecutar el export de la variable TNS_ADMIN

QA

export TNS_ADMIN=/u01/banjobs/proxy_wallet_QA19/network_admin

TRNG

export TNS_ADMIN=/u01/banjobs/proxy_wallet_TRNG/network_admin

Para averiguar la ruta del TNS_ADMIN usar (Esto no se aplica solo para saber donde esta la ruta)

  1. Ejecutar:
    QA
more /u01/banjobs/bin/QA19/gurstart_QA19.shl

TRNG

more /u01/banjobs/bin/TRNG/gurstart_TRNG.shl
  • Ejecutar sqlplus  según la instancia que se esté clonando, si se loguea no debo construir el wallet

QA

sqlplus /@QA

TRNG

sqlplus /@TRNG
  • Resultado
  • Si logramos ingresar a SQL como en la imagen anterior todo esta bien
  • Sino debemos recontruir la wallet con esto

Reconstruir wallet

cd /u01/banjobs/proxy_wallet_QA19
# Eliminamos los archivos de la wallet
rm -rf cwallet.sso  cwallet.sso.lck  ewallet.p12  ewallet.p12.lck
  • Y nos ambientamos
. oraenv
ORACLE_SID = QA19
ORACLE_SID = TRNG
ORACLE_HOME=/u01/app/oracle/product/19.0.0/client_1
  • Crear el wallet
mkstore -wrl . -create  (pide contraseña y usar u_pick_it)
  • Configurar el usuario
mkstore -wrl /u01/banjobs/proxy_wallet_QA19 -createCredential QA BANJSPROXY u_pick_it (Según la instancia que esté clonando, utiliza el alias del TNSNAMES, por ejemplo QA19, no el service name)
  • Probar el wallet: (si hace login el gurjobs está funcionando)
sqlplus /@QA
sqlplus /@TRNG
  • Resultado
  • salimos
exit

Subir los GURJOBS:

  • Ingresar a batch desa (10.0.3.34) por medio de ssh con c/u4c,
ssh 10.0.3.34 -l cgi
  • Luego con el usuario banjobs/adminbanner12
su - banjobs
  • Ejecutamos
exit
su - banjobs / adminbanner12

. oraenv
ORACLE_SID = [banjobs] ?

# Aquí debemos digitar alguna de las siguietes opciones

# Producción
BANNER9

# QA
QA19

# TRNG
TRNG
  • Vamos a la ruta

QA

cd /u01/banjobs/bin/QA19

TRNG

cd /u01/banjobs/bin/TRNG
  • Verificar si hay Gurjobs ejecutándose: ps -ef |grep QA(según la instancia que se esté clonando)

QA

ps -ef |grep QA

TRNG

ps -ef |grep TRNG
  • Si existen grujobs ejecutándose: kill -9 PID, de lo contrario ejecute el comando siguiente:
kill -9 ####
  • Matar todos los procesos gurjobs:

QA

 . gurstop_QA19.shl

TRNG

 . gurstop_TRNG.shl
  • Arrancar los gurjobs:

QA

 . gurstart_QA19.shl

TRNG

 . gurstart_TRNG.shl
  • Resultado
  • tambien los podemos verificar en sqldeveloper
  • con el siguiente script
select * from gv$session where program like '%gur%';
  • Resultado
  • si no levantarón bien ejecutar en sqldeveloper
set serveroutpu on;
BEGIN

  FOR r IN (select SERIAL#,SID,MACHINE,logon_time,USER,STATUS,inst_id from gv$session where program like '%gur%') LOOP
      begin
          EXECUTE IMMEDIATE 'alter system kill session ''' || r.sid  || ',' || r.serial# || ',@'||r.inst_id||''' immediate' ;
            dbms_output.put_line('sid:'||r.sid||' serial='||r.serial#)        ;
          EXCEPTION
              WHEN OTHERS THEN
                 dbms_output.put_line('ya maracada para borrar sid:'||r.sid||' serial='||r.serial#)        ;
      end;
  END LOOP;
  FOR r IN (select count(*)  total from gv$session where program like '%gur%') LOOP  
    dbms_output.put_line('total pendientes:'||r.total);
  END LOOP;
END;
/

Si esta clonando TRNG en consola BD

  • nos abientamos
su - oracle
  • nos ambientamos
export ORACLE_SID=CTRNG
export ORACLE_SID=CQA
  • Ingresamos a sql
sqlplus / as sysdba
  • Ejecutamos
select name, log_mode from v$database;
  • Y nos tiene que mostrar
  • Si no lo esta ejecutamos
shut immediate
startup mount
alter database noarchivelog
shut immediate
startup

Cambiar el SSB en el ssoManager

  • Ir a la pestaña de «SSB Configuration»
  • Y cambiar los valores según sea TRNG o QA y guardar los cambios
#########################
#QA
#########################
## SSB url: 
https://ssbqa.una.ac.cr/QA/twbkwbis.P_GenMenu?name=bmenu.P_MainMnu

## Base url: 
https://ssbqa.una.ac.cr/QA

#########################
#TRNG
#########################

## SSB url
https://ssbtrng.una.ac.cr/TRNG/twbkwbis.P_GenMenu?name=bmenu.P_MainMnu

## Base url: 
https://ssbtrng.una.ac.cr/TRNG
  • Resultado

Ejecutar los pipes

  • Nos logeamos con SQLDeveloper en la bd requeridad TRNG o QA
  • Y ejecutamos el siguiente script yu debe dar como 40 registros
select * from Saturn.SFBPIPE;
  • Ahora a estos registros debemos comprobar cuales se encuentran activos, para esto ejecutamos el siguiente Select
select * from gv$session where program like '%pip%'; 
  • Si hay menos de 40 o no hay significa que se encuentran malos
  • Aca podemos observar que se encuentran correctos ya que hay 40
  • O puede que no existan
  • Ahora tambien podemos verificar con el siguiente select la fecha en la que fuerón creados, esto para verificar que un compañero no haya hecho ya el proceso
select SFBPIPE_ACTIVITY_DATE from Saturn.SFBPIPE;

regenerar los pipes para QA y trng

  • Para QA y TRNG se debe ejecutar una sola vez
REM to insert node specific pipe names.
REM 
REM INSERT INTO SFBPIPE(SFBPIPE_NAME,
REM                     SFBPIPE_QDEPTH,
REM                     SFBPIPE_ACTIVITY_DATE)
REM VALUES
REM    (lpad(dbms_utility.current_instance, 2, '0') || 'PROD01'
REM     0,
REM     SYSDATE);
REM
DECLARE
--
   -- The instance(PPRD,PROD,PROD) variable and the number of pipes
   -- can be alter per organizational preference.
   --
   number_pipes   NUMBER      DEFAULT 20;
   instance_name  VARCHAR2(5) DEFAULT 'PROD';
   i              INTEGER     DEFAULT 1;
BEGIN
   FOR i IN 1..number_pipes LOOP 
      INSERT INTO SFBPIPE(SFBPIPE_NAME,
                          SFBPIPE_QDEPTH,
                          SFBPIPE_ACTIVITY_DATE)
      SELECT 
         LPAD(dbms_utility.current_instance, 2,'0') || instance_name || LPAD(i,2,0),
         0,
         SYSDATE
         FROM DUAL
         WHERE NOT EXISTS ( SELECT 'X' 
                              FROM SFBPIPE 
                             WHERE SFBPIPE_NAME = LPAD(dbms_utility.current_instance, 2,'0') || instance_name || LPAD(i,2,0) );
   END LOOP;
   COMMIT;
END;
/

Paso 3: Verificar los pipes existentes

  • Ahora volvemos a comprobar los registros
select * from Saturn.SFBPIPE;

select SFBPIPE_ACTIVITY_DATE from Saturn.SFBPIPE;

  • Debe dar los 40 registros (ahorita da 20 xq estamos en sitio alterno)

Paso 4: lanzar configuración

  • Para terminar el proceso necesitamos ejecutar los siguiente en los servidores
    • BATCHSERVERDESA->10.0.3.34
ssh 10.0.3.34 -l banjobs / adminbanner12
  • Esto debe hacerse con el usuario banjobs
  • En caso de que le solicite el oracle_home poner:
/u01/app/oracle/product/19.0.0/client_1
  • Ambientamos
. oraenv
ORACLE_SID = [banjobs] ?
  • Y establecemos la instancia
# Producción
BANNER9

# TRNG
TRNG

#QA 
QA19
  • Ingresamos a la ruta
# Producción
cd /u01/banjobs/bin/BANNER9

# TRNG
cd /u01/banjobs/bin/TRNG

#QA19
cd /u01/banjobs/bin/QA19
  • y ejecutamos
# Producción Sitio alterno
. runPIPES_BANNER9.shl

# Producción Sitio Normal
. runPIPES_BANNER9_RAC.shl

# TRNG
. runPIPES_TRNG.shl

# QA19
. runPIPES_QA19.shl
  • Y verificamos la creación
select * from gv$session where program like '%pip%'; 

Si estamos clonando QA…

Importar los esquemas del ETHOS de los repaldos DMP´S

  • Ir al menú de Service Provider -> list
  • Eliminarlos todos los service de producción dando clic en Delete:
  • Y descargamos este archivo
  • Contenido
  • He importamos todos los archivos
  • resultado

Reiniciar EIS

  • Ingresamos a este servidor
  • Y ejecutamos
ssh 10.0.3.22 -l cgi / u4c
su - /adminbanner12



cd /u01/app/tomcat/TRNG
cd /u01/app/tomcat/QA

./bin/shutdown.sh

ps -ef |grep TRNG
ps -ef |grep QA

KILL -9 

rm -rf logs/* temp/* work

./bin/startup.sh

tail -f logs/catalina.out

Probar la aplicación

  • Para poder probar el funcionamiento correcto
  • Primero debemos tener un usuario y clave de ldap desarrollo
  • para esto ingresamos a
  • http://10.0.2.173:8080/
cn=admin,dc=una,dc=ac,dc=cr
123456
  • Buscamos el usuario
uid=111620857
  • Le damos clic
  • Y modificamos la contraseña con clear 123456
  • guardamos
111620857
123456
  • Si logramos ingresare ya esta correcto