- 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)
- 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
- Ingresamos a con BANSECR/u_pick_it

- 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
- Ingresamos a la pagina
- https://banner9eisqa.una.ac.cr/carbon/admin/login.jsp
- ingresamos con admin/admincc12
- NOTA Adicional: Este es el de prodicción https://eis.una.ac.cr/carbon/admin/login.jsp

- Ir al menú de Service Provider -> list

- Eliminarlos todos los service de producción dando clic en Delete:

- Ahora dentro del instructivo
- https://universidadnacional.atlassian.net/wiki/spaces/DI/pages/1856536601/Clonaci+n+de+Base+de+Datos+BANNER9
- Vamos a adjuntos

- Y descargamos este archivo

- Contenido

- Regresamos a la aplicación
- https://banner9eisqa.una.ac.cr/carbon/application/list-service-providers.jsp?region=region1&item=list_service_providers_menu
- en menu -> Server Providres -> add

- 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

- Tambien debemos entrar a
- https://inbqa.una.ac.cr/
- https://inbtrng.una.ac.cr/
- y ingresamos con los datos
111620857
123456

- Si logramos ingresare ya esta correcto
