Dialog menus – Como simplificar la Administración de Sistemas

Hay muchas formas de administrar servidores, plataformas o aplicaciones y asegurar que el rendimiento de estas sea el óptimo. Cuando se empieza a trabajar en administración de sistemas uno busca la forma, de monitorizar los sucesos que hacer parar las aplicaciones o afectan a su rendimiento. Entonces se empieza a pensar en automatizar o en programar avisos que avisen cuando el espacio del disco duro se va a llenar o que se ha parado la aplicación de forma inesperada, etc.

El lenguaje más conocido en administración de sistemas basados en linux es el bash script, aunque hay un sin fin de lenguajes/terminales /consolas y aquí tenemos de diferenciar los lenguages de consolas ( shells ) y otros lenguages de programación interpretada como .js o python, ruby, etc.

El lenguaje más conocido es bash y desde 1989 se ha ido actualizando y se utiliza en casi todos los dispositivos de la iot.

Otros lenguajes de scripting de shell serían ( sh, csh, tcsh, ksh, msdos, zsh ).

Sin embargo no todos los administradores disponen de estos conocimientos, y muchas veces hay personas que aunque no disponan de estos scripts, pueden reaccionar a una alerta que se envie de una aplicación de monitoreo. En este caso se le puede dar un procedimineto o manual de como actuar. Una forma de simplicar las cosas son los. menus de usuario y estos se programan con un software llamado Dialog.

Dialog es un paquete de Linux que nos permite crear cuadros de diálogo en el terminal para que los utilices en tus scripts de programación, de esta forma se puede simplificar tareas de administración que por separado serían complejas de manera muy pragmatica y útil.

De esta forma uno puede ir creando tantas pantallas como desea y puede asociar acciones en cada una de ellas. Por ejemplo: una pantalla que tenga dos botones y en que se pregunte si se quiere apagar el servidor o el servicio de SAP HANA.

Estrategia Zero Downtime en SAP S/4HANA (ZDO)

En la nueva versión de Software Update Manager (SUM) viene una nueva funcionalidad liberada a todos los clientes. Hasta ahora, solo se permitía que los clientes solicitaran a SAP un piloto de la opción Zero Downtime Option (ZDO) y se concedía bajo unos requisitos muy estrictos.

Con la nueva versión esta opción esta liberada y permite realizare un Upgrade o Update técnico del sistema sin parada minimizando el tiempo de indisponibilidad para el negocio.

La idea es disponer de un sistema puente en el cual se actualice de forma paralela al sistema productivo y donde se aplique la nueva solución. El sistema puente es una copia del original y contiene todos los datos del sistema productivo, donde los usuarios pueden continuar trabajando incluso, durante la actualización del sistema.

Hay un momento en que los usuarios cambian del sistema original al sistema puente, y es en este momento en que las aplicaciones están indisponibles de forma temporal. Todas las condiciones se enumeran en la nota de SAP 2707731.

Esta opción es preferible en:

  ● Aplicar pilas de paquetes de soporte

  ● Aplicar paquetes de funciones

  ● Versiones del sistema del cliente

  ● Actualizaciones de versiones del sistema

La opción viene liberada por defecto en las versiones de SUM:

– Between 1.00.122.05 and 1.00.999
– Between 2.00.012.02 and 2.00.019
– Between 2.00.022 and 2.00.039
– 2.00.041 or higher

1. No se necesita una licencia adicional ni una herramienta separada.

2. El tamaño necesario en la clonación de la BBDD es reducido porque, solo se clonan tablas selectivas. Se determinan que tablas hay que clonar en función de los cambios que se realizarán durante el proceso de mantenimiento.

3. El tiempo de inactividad técnico se reduce a un solo reinicio de los servidores de aplicaciones. Sin embargo, la base de datos no se reinicia. Por lo general, el reinicio toma aproximadamente de 5 a 15 minutos dependiendo de la cantidad de servidores de aplicaciones.

Los usuarios trabajan con la versión 1 mientras la actualización se ejecuta online. Una vez se transfieren los usuarios de la versión 1 a la 2 se reconectan sin problemas al sistema puente sin ninguna interrupción.

Al final de la actualización, el servidor de aplicaciones debe reiniciarse para activar la nueva versión de SAP, lo que generalmente demora entre 5 y 15 minutos. La base de datos no se reinicia. Posteriormente, el sistema está actualizado.

Ping Buffer

Hay un bug de la aplicación ping en Red hat haciendo que cuando se ejecuta devuelve una ip diferente al que devuelve nslookup. El caso está documentado en el siguiente enlace :

https://access.redhat.com/solutions/4542771

Ping resolves a different IP than what is returned by nslookup. - Red
When attempting to ping by hostname it is pinging an address different from what is returned by nslookup

nscd -i hosts

 
Ping resolves a different IP than what is returned by nslookup.
SOLUTION VERIFIED - Updated October 30 2019 at 8:24 PM -
English
Environment
Red Hat Enterprise Linux
Issue
When attempting to ping by hostname it is pinging an address different from what is returned by nslookup
Resolution
ï	Clear the nscd hosts db
Raw
 
# nscd -i hosts
 
 
Root Cause
The entry for the host in /var/db/ncsd/hosts was not correct. glibc will check the entry for the host in /var/db/ncsd/hosts via /var/run/nscd/socket before referencing /etc/nsswitch.conf.
Snip from an strace of a ping
Raw
 
23237 11:45:36.523725 socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 5<UNIX:[1814099]> <0.000008>
23237 11:45:36.523797 connect(5<UNIX:[1814099]>, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) <0.000012>
23237 11:45:36.523865 close(5<UNIX:[1814099]>) = 0 <0.000008>
23237 11:45:36.523916 socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 5<UNIX:[1814100]> <0.000005>
23237 11:45:36.523960 connect(5<UNIX:[1814100]>, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) <0.000008>
23237 11:45:36.524014 close(5<UNIX:[1814100]>) = 0 <0.000005>
23237 11:45:36.524068 open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 5</etc/nsswitch.conf> <0.000007>
23237 11:45:36.524107 fstat(5</etc/nsswitch.conf>, {st_dev=makedev(253, 1), st_ino=526196, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=1768, st_atime=1572435989 /* 2019-10-30T07:46:29.194508306-0400 */, st_atime_nsec=194508306, st_mtime=1544905437 /* 2018-12-15T15:23:57.226889025-0500 */, st_mtime_nsec=226889025, st_ctime=1544905437 /* 2018-12-15T15:23:57.226889025-0500 */, st_ctime_nsec=226889025}) = 0 <0.000005>
23237 11:45:36.524154 read(5</etc/nsswitch.conf>, "#\n# /etc/nsswitch.conf\n#\n# An example Name Service Switch config file. This file should be\n# sorted with the most-used services at the beginning.\n#\n# The entry '[NOTFOUND=return]' means that the search for an\n# entry should stop if the search in the previous entry turned\n# up nothing. Note that if the search failed due to some other reason\n# (like no NIS server responding) then the search continues with the\n# next entry.\n#\n# Valid entries include:\n#\n#\tnisplus\t\t\tUse NIS+ (NIS version 3)\n#\tnis\t\t\tUse NIS (NIS version 2), also called YP\n#\tdns\t\t\tUse DNS (Domain Name Service)\n#\tfiles\t\t\tUse the local files\n#\tdb\t\t\tUse the local database (.db) files\n#\tcompat\t\t\tUse NIS on compat mode\n#\thesiod\t\t\tUse Hesiod for user lookups\n#\t[NOTFOUND=return]\tStop searching if not found so far\n#\n\n# To use db, put the \"db\" in front of \"files\" for entries you want to be\n# looked up first in the databases\n#\n# Example:\n#passwd:    db files nisplus nis\n#shadow:    db files nisplus nis\n#group:     db files nisplus nis\n\npasswd:      files sss systemd\nshadow:     files sss\ngroup:       files sss systemd\n\n#hosts:     db files nisplus nis dns\nhosts:      files mdns4_minimal [NOTFOUND=return] dns myhostname mymachines\n\n# Example - obey only what nisplus tells us...\n#services:   nisplus [NOTFOUND=return] files\n#networks:   nisplus [NOTFOUND=return] files\n#protocols:  nisplus [NOTFOUND=return] files\n#rpc:        nisplus [NOTFOUND=return] files\n#ethers:     nisplus [NOTFOUND=return] files\n#netmasks:   nisplus [NOTFOUND=return] files\n\nbootparams: nisplus [NOTFOUND=return] files\n\nethers:     files\nnetmasks:   files\nnetworks:   files\nprotocols:  files\nrpc:        files\nservices:   files sss\n\nnetgroup:   files sss\n\npublickey:  nisplus\n\nautomount:  files sss\naliases:    files nisplus\n", 4096) = 1768 <0.000005>
23237 11:45:36.524203 read(5</etc/nsswitch.conf>, "", 4096) = 0 <0.000005>
23237 11:45:36.524231 close(5</etc/nsswitch.conf>) = 0 <0.000005>
 
 
Diagnostic Steps
ï	Confirm the IP returned by nslookup
Raw
 
[testbuild root @ test ~]
# nslookup test.example.com
Server:         192.168.0.65
Address:        192.168.0.65#53

Non-authoritative answer:
Name:   test.example.com
Address: 192.168.0.182
 
 
ï	Check ip used by ping
Raw
 
[testbuild root @ test ~]
# ping test.example.com
PING test.example.com (192.168.0.118) 56(84) bytes of data.
From 192.168.0.123 (192.168.0.123) icmp_seq=1 Destination Host Unreachable
From 192.168.0.123 (192.168.0.123) icmp_seq=2 Destination Host Unreachable
^C
--- test.example.com ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1001ms
 
 
ï	Check /etc/hosts to make sure there is no entry pointing to the wrong IP
Raw
 
# cat etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       localhost.localdomain localhost
::1     localhost6.localdomain6 localhost6
 
 
ï	confirm if ncsd is configured to cache hosts
Raw
 
# cat /etc/nscd.conf
----------snip----------
        enable-cache            hosts           yes
        positive-time-to-live   hosts           3600
        negative-time-to-live   hosts           20
        suggested-size          hosts           211
        check-files             hosts           yes
        persistent              hosts           yes
        shared                  hosts           yes
        max-db-size             hosts           33554432
---------snip------------
 
 
ï	Product(s)
ï	Red Hat Enterprise Linux
ï	Category
ï	Configure
ï	Tags
ï	nscd
This solution is part of Red Hatís fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Ping resolves a different IP than what is returned by nslookup. - Red
When attempting to ping by hostname it is pinging an address different from what is returned by nslookup


Solution Manager 7.2 vs SAP Cloud ALM

El Solution Manager es un producto que es una herramienta que te permite gestionar de forma centralizada, todas las aplicaciones en el mundo SAP, en los aspectos de monitoreo, alertas, analíticas y administración. Hace unos años era imprescindible instalar en cada cliente. En las instalaciones de cualquier otro producto de SAP te exigía tener un código, que se obtenía en la transacción MOPZ del SAP Solution Manager, los datos que eran necesarios eran el hostname, SID del sistema y el numero de instancia. En uno de los pasos de la instalación con SAPINSTintroducias este “código” y sin él no podías continuar. En todos los clientes se instalaba almenos un solution manager.

A finales de 2023 SAP anuncio que SAP Solution Manager 7.2 dejara de tener soporte de mantenimiento a finales de 2027 de la misma forma que los otros productos SAP Business Suite 7. Su remplazo será SAP Cloud ALM el cual permite gestionar el ciclo de vida de las aplicaciones para clientes centrados en la nube. Proporciona amplias capacidades de implementación, operaciones y servicios para soluciones en la nube e híbridas (on-premise). Con SAP Cloud ALM puedes:

  • Implementar soluciones centradas en la nube con un espacio de trabajo preconfigurado, basado en la metodología SAP Activate y Mejores Prácticas
  • Gestionar todas las actividades de implementación, prueba e implementación
  • Garantizar operaciones de negocio fluidas sin interrupciones con supervisión y alertas proactivas
  • Aumentar la calidad y el rendimiento de la ejecución de procesos de negocio al encontrar y analizar problemas a nivel de procesos de negocio, integración, usuarios y aplicaciones
  • Aumentar la eficiencia en la colaboración durante todo el proceso de Service Delivery
  • Tener acceso a resultados de servicio estandarizados y digitalizados para un consumo más fácil

SAP Cloud ALM es una buena opción para los clientes que necesitan una solución ágil basada en la nube que se integre fácilmente con otras soluciones de SAP. SAP Solution Manager es una mejor opción para los clientes que necesitan una herramienta integral y altamente personalizable con un historial comprobado.

En conlusión, la tendéncia sigue siendo mover a la nube los productos SAP.

Recover Standby Database using single Command.

Recover Large Archive Gap In Standby Database using single Command.

If the archive gap is substantial between the primary and physical standby databases, and it cannot be recovered through the MRP process or Archivelog deleted before applying on standby db then there is no need to refresh the standby database with incremental backup. Instead, the standby database can be recovered using primary services

RMAN> RECOVER STANDBY DATABASE FROM SERVICE testDB;

Starting recover at 10-JAN-24

Oracle instance started

Total System Global Area 53687090008 bytes

Fixed Size 30145368 bytes

Variable Size 7247757312 bytes

Database Buffers 46305116160 bytes

Redo Buffers 104071168 bytes

contents of Memory Script:

{

restore standby controlfile from service ‘testDB’;

alter database mount standby database;

}

executing Memory Script

Starting restore at 10-JAN-24

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=1334 instance=testDB device type=DISK

channel ORA_DISK_1: starting datafile backup set restore

channel ORA_DISK_1: using network backup set from service testDB

channel ORA_DISK_1: restoring control file

channel ORA_DISK_1: restore complete, elapsed time: 00:00:03

output file name=+DATA/testDB/control01.ctl

output file name=+FRA/testDB/control02.ctl

Finished restore at 10-JAN-24

released channel: ORA_DISK_1

Statement processed

Executing: alter system set standby_file_management=manual

contents of Memory Script:

{

set newname for tempfile 2 to

“+DATA/testDB/TEMPFILE/temp.295.1068761213”;

switch tempfile all;

set newname for datafile 1 to

“+DATA/testDB/DATAFILE/system01.dbf”;

set newname for datafile 2 to

“+DATA/testDB/DATAFILE/sysaux01.dbf”;

set newname for datafile 3 to

“+DATA/testDB/DATAFILE/undotbs01.dbf”;

set newname for datafile 4 to

“+DATA/testDB/DATAFILE/users01.dbf”;

set newname for datafile 5 to

“+DATA/testDB/DATAFILE/undotbs1.290.1068759067”;

set newname for datafile 6 to

“+DATA/testDB/DATAFILE/dwe.259.1068759067”;

set newname for datafile 7 to

“+DATA/testDB/DATAFILE/dwe_ndx.258.1068759067”;

.

“+DATA/testDB/DATAFILE/dwe.304.1081717387”;

catalog datafilecopy “+DATA/testDB/DATAFILE/system01.dbf”,

“+DATA/testDB/DATAFILE/sysaux01.dbf”,

“+DATA/testDB/DATAFILE/undotbs01.dbf”,

“+DATA/testDB/DATAFILE/users01.dbf”,

“+DATA/testDB/DATAFILE/undotbs1.290.1068759067”,

“+DATA/testDB/DATAFILE/dwe.259.1068759067”,

“+DATA/testDB/DATAFILE/dwe_ndx.258.1068759067”,

“+DATA/testDB/DATAFILE/dwh.264.1068759067”,

“+DATA/testDB/DATAFILE/dwh_ndx.263.1068759067”,

“+DATA/testDB/DATAFILE/dww.266.1068759067”,

“+DATA/testDB/DATAFILE/dww_ndx.262.1068759067”,

..

..

executing Memory Script

executing command: SET NEWNAME

Starting implicit crosscheck backup at 10-JAN-24

allocated channel: ORA_DISK_1

Crosschecked 6 objects

Finished implicit crosscheck backup at 10-JAN-24

Starting implicit crosscheck copy at 10-JAN-24

using channel ORA_DISK_1

Crosschecked 2 objects

Finished implicit crosscheck copy at 10-JAN-24

searching for all files in the recovery area

cataloging files…

cataloging done

List of Cataloged Files

=======================

File Name: +FRA/testDB/AUTOBACKUP/2024_01_06/s_1081649857.272.1081649889

File Name: +FRA/testDB/AUTOBACKUP/2024_01_06/s_1081671425.333.1081671459

File Name: +FRA/testDB/ARCHIVELOG/2024_01_08/thread_1_seq_1764.323.1082613623

File Name: +FRA/testDB/ARCHIVELOG/2024_01_08/thread_1_seq_1765.288.1082634551

File Name: +FRA/testDB/ARCHIVELOG/2024_01_08/thread_1_seq_1766.283.1082646769

File Name: +FRA/testDB/ARCHIVELOG/2024_01_08/thread_1_seq_1767.315.1082656825

File Name: +FRA/testDB/ARCHIVELOG/2024_01_08/thread_1_seq_1768.376.1082663419

File Name: +FRA/testDB/ARCHIVELOG/2024_01_08/thread_1_seq_1769.348.1082671631

..

renamed tempfile 2 to +DATA/testDB/TEMPFILE/temp.295.1068761213 in control file

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

..

cataloged datafile copy

datafile copy file name=+DATA/testDB/DATAFILE/system01.dbf RECID=82 STAMP=1082821215

cataloged datafile copy

datafile copy file name=+DATA/testDB/DATAFILE/sysaux01.dbf RECID=83 STAMP=1082821215

cataloged datafile copy

datafile copy file name=+DATA/testDB/DATAFILE/undotbs01.dbf RECID=84 STAMP=1082821215

cataloged datafile copy

datafile copy file name=+DATA/testDB/DATAFILE/users01.dbf RECID=85 STAMP=1082821215

cataloged datafile copy

datafile copy file name=+DATA/testDB/DATAFILE/undotbs1.290.1068759067 RECID=86 STAMP=1082821215

cataloged datafile copy

datafile copy file name=+DATA/testDB/DATAFILE/dwe.259.1068759067 RECID=87 STAMP=1082821215

cataloged datafile copy

datafile copy file name=+DATA/testDB/DATAFILE/dwe_ndx.258.1068759067 RECID=88 STAMP=1082821215

cataloged datafile copy

datafile copy file name=+DATA/testDB/DATAFILE/dwh.264.1068759067 RECID=89 STAMP=1082821215

cataloged datafile copy

datafile copy file name=+DATA/testDB/DATAFILE/dwh_ndx.263.1068759067 RECID=90 STAMP=1082821215

cataloged datafile copy

datafile copy file name=+DATA/testDB/DATAFILE/dww.266.1068759067 RECID=91 STAMP=1082821215

cataloged datafile copy

datafile copy file name=+DATA/testDB/DATAFILE/dww_ndx.262.1068759067 RECID=92 STAMP=1082821215

cataloged datafile copy

datafile copy file name=+DATA/testDB/DATAFILE/dwe.267.1068759067 RECID=93 STAMP=1082821215

..

datafile 1 switched to datafile copy

input datafile copy RECID=82 STAMP=1082821215 file name=+DATA/testDB/DATAFILE/system01.dbf

datafile 2 switched to datafile copy

input datafile copy RECID=83 STAMP=1082821215 file name=+DATA/testDB/DATAFILE/sysaux01.dbf

datafile 3 switched to datafile copy

input datafile copy RECID=84 STAMP=1082821215 file name=+DATA/testDB/DATAFILE/undotbs01.dbf

datafile 4 switched to datafile copy

input datafile copy RECID=85 STAMP=1082821215 file name=+DATA/testDB/DATAFILE/users01.dbf

datafile 5 switched to datafile copy

input datafile copy RECID=86 STAMP=1082821215 file name=+DATA/testDB/DATAFILE/undotbs1.290.1068759067

datafile 6 switched to datafile copy

input datafile copy RECID=87 STAMP=1082821215 file name=+DATA/testDB/DATAFILE/dwe.259.1068759067

datafile 7 switched to datafile copy

input datafile copy RECID=88 STAMP=1082821215 file name=+DATA/testDB/DATAFILE/dwe_ndx.258.1068759067

datafile 8 switched to datafile copy

input datafile copy RECID=89 STAMP=1082821215 file name=+DATA/testDB/DATAFILE/dwh.264.1068759067

datafile 9 switched to datafile copy

input datafile copy RECID=90 STAMP=1082821215 file name=+DATA/testDB/DATAFILE/dwh_ndx.263.1068759067

datafile 10 switched to datafile copy

input datafile copy RECID=91 STAMP=1082821215 file name=+DATA/testDB/DATAFILE/dww.266.1068759067

datafile 11 switched to datafile copy

input datafile copy RECID=92 STAMP=1082821215 file name=+DATA/testDB/DATAFILE/dww_ndx.262.1068759067

datafile 12 switched to datafile copy

input datafile copy RECID=93 STAMP=1082821215 file name=+DATA/testDB/DATAFILE/dwe.267.1068759067

datafile 13 switched to datafile copy

input datafile copy RECID=94 STAMP=1082821216 file name=+DATA/testDB/DATAFILE/dwe.269.1068759067

datafile 14 switched to datafile copy

..

contents of Memory Script:

{

recover database from service ‘testDB’;

}

executing Memory Script

Starting recover at 10-JAN-24

using channel ORA_DISK_1

channel ORA_DISK_1: starting incremental datafile backup set restore

channel ORA_DISK_1: using network backup set from service testDB

destination for restore of datafile 00001: +DATA/testDB/DATAFILE/system01.dbf

channel ORA_DISK_1: restore complete, elapsed time: 00:00:07

channel ORA_DISK_1: starting incremental datafile backup set restore

channel ORA_DISK_1: using network backup set from service testDB

destination for restore of datafile 00002: +DATA/testDB/DATAFILE/sysaux01.dbf

channel ORA_DISK_1: restore complete, elapsed time: 00:00:35

channel ORA_DISK_1: starting incremental datafile backup set restore

channel ORA_DISK_1: using network backup set from service testDB

destination for restore of datafile 00003: +DATA/testDB/DATAFILE/undotbs01.dbf

channel ORA_DISK_1: restore complete, elapsed time: 00:01:15

channel ORA_DISK_1: starting incremental datafile backup set restore

channel ORA_DISK_1: using network backup set from service testDB

destination for restore of datafile 00004: +DATA/testDB/DATAFILE/users01.dbf

channel ORA_DISK_1: restore complete, elapsed time: 00:00:02

channel ORA_DISK_1: starting incremental datafile backup set restore

channel ORA_DISK_1: using network backup set from service testDB

destination for restore of datafile 00005: +DATA/testDB/DATAFILE/undotbs1.290.1068759067

channel ORA_DISK_1: restore complete, elapsed time: 00:01:25

channel ORA_DISK_1: starting incremental datafile backup set restore

channel ORA_DISK_1: using network backup set from service testDB

destination for restore of datafile 00006: +DATA/testDB/DATAFILE/dwe.259.1068759067

channel ORA_DISK_1: restore complete, elapsed time: 00:02:46

channel ORA_

..

destination for restore of datafile 00038: +DATA/testDB/DATAFILE/dww.305.1081717339

channel ORA_DISK_1: restore complete, elapsed time: 00:00:36

channel ORA_DISK_1: starting incremental datafile backup set restore

channel ORA_DISK_1: using network backup set from service testDB

destination for restore of datafile 00039: +DATA/testDB/DATAFILE/dwe.304.1081717387

channel ORA_DISK_1: restore complete, elapsed time: 00:00:15

starting media recovery

archived log for thread 1 with sequence 1782 is already on disk as file +FRA/testDB/ARCHIVELOG/2024_01_08/thread_1_seq_1782.438.1082821213

archived log file name=+FRA/testDB/ARCHIVELOG/2024_01_08/thread_1_seq_1782.438.1082821213 thread=1 sequence=1782

media recovery complete, elapsed time: 00:00:02

Finished recover at 10-JAN-24

Executing: alter system set standby_file_management=auto

Finished recover at 10-JAN-24

4. Recover the standby database upto consistent mode .

SQL> select name,open_Mode from v$database;

NAME OPEN_MODE

——— ——————–

testDB MOUNTED

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE UNTIL CONSISTENT;

Database altered.

SQL>select name,open_Mode from v$database;

NAME OPEN_MODE

——— ——————–

testDB MOUNTED

SQL> alter database open read only;

Database altered.

SQL> select name,open_mode from v$database;

NAME OPEN_MODE

——— ——————–

testDB READ ONLY

SQL> alter database recover managed standby database disconnect from session;

Database altered.

Recovery Completed.

How to debug a Background Job?

Background jobs are scheduled for programs which usually take longer to complete. Many times the background job ends up with some error which can only be generated by a background job, and to find out the root cause debugging background job is necessary.

You can debug background jobs, when they are active, finished or in a cancelled state.

If you want to debug a job which is already completed then it will replicate the same run in debug mode.

To debug a background job you can follow steps below:

■ Goto SM37 and select Job

■ Enter JDBG in ok command box

■ Press Enter

This will trigger the job in debug mode. And will perform the same task it has earlier.

Actualización del kernel para sistemas SAP

  1. En primer lugar, debemos asegurarnos de que la versión deseada del kernel de SAP sea
    compatible con la versión existente del kernel del sistema operativo y las versiones de productos SAP con
    la ayuda de la matriz de disponibilidad de productos (PAM).
  2. Después de decidir la versión del kernel de destino, descargue la base de datos independiente, DB
    archivos dependientes (SAPEXE_..SAR y SAPEXEDB_..SAR) y colocar
    ellos en el servidor.
  3. Cree un directorio en el servidor con el siguiente comando.
    mkdir nuevo núcleo
  4. Copie los archivos dependientes de la base de datos e independientes de la base de datos en el archivo recién creado.
    directorio.

cp –pr SAPEXE_..SAR SAPEXEDB_..SAR /nuevokernel

  1. Extraiga los archivos utilizando el ejecutable SAPCAR. (Se puede descargar explícitamente o
    se puede utilizar el existente en el servidor).

./SAPCAR.EXE –xvf SAPEXE_..SAR
./SAPCAR.EXE –xvf SAPEXEDB_..SAR

  1. Una vez extraídos los archivos, asigne la autorización y los permisos adecuados para
    el ejecutable.

chown –R adm:sapsys *
chmod –R 755 *

  1. Ahora detenga los servicios de la aplicación y asegúrese de que no haya procesos.
    ejecutándose con el usuario adm.
  2. Realice una copia de seguridad coherente del directorio global. (Asegúrese de tomar el
    copia de seguridad del directorio global como las copias de seguridad realizadas en los directorios locales
    sería sobrescrito por el kernel en el directorio global durante el inicio de la aplicación y en tales casos no será posible revertir el kernel).
  3. Copie el kernel recién extraído al directorio global desde la ruta extraída.
    cp –pr * /sapmnt//exe/uc/linuxx86_64
  4. Una vez copiado el kernel, verifique la versión del kernel usando el ejecutable.
    “disp+trabajo”.
  5. Ejecute el comando ./saproot.sh con el usuario root desde el directorio global. (Este comando
    asigna la propiedad y los permisos deseados al ejecutable, como br**,
    sapuxusrechk, icmbnd, etc.).
  6. Una vez realizadas las comprobaciones podemos iniciar la instancia de SAP.
  7. La instancia de SAP copia el kernel desde los puntos de montaje globales al local.
    puntos de montaje y directorios de aplicaciones utilizando el programa back-end “sapcpe” para
    todos los servidores de aplicaciones.
  8. Una vez que la instancia esté en funcionamiento, valide la versión del kernel desde el
    capa de aplicación también.

Joule el asistente IA de SAP

Se trata de un copiloto de IA generativa en lenguaje natural, con el que pretende que los usuarios SAP formulen sus preguntas directamente en el chat y les responda con soluciones contextualizadas basadas en una amplia BD de datos.

Prometen que con este IA los trabajadores harán su trabajo de una forma más:
rápida, inteligente, con mejores resultados y con control total de las decisiones ->run smarter, run faster,  run better.

 “Joule comprenderá lo que quieres decir, no solo lo que dices”, dijo el CEO de SAP SE, Christian Klein.

Joule estará disponible con SAP SuccessFactors y SAP Start en noviembre de este año, y con SAP S/4HANA Cloud Public Edition a principios del próximo año. Le seguirán SAP Customer Experience y SAP Ariba, junto con SAP Business Technology Platform, así como muchas otras actualizaciones
 en toda la cartera de SAP que se anunciarán en los diferentes eventos que la compañía irá celebrando entre octubre y noviembre de este año.

https://www.sap.com/products/artificial-intelligence/ai-assistant.html

El ABAP no se va a acabar… pero si cambiará

Ya sabemos que a finales de 2027 los productos basados en Business suite o Netweaver van a ir quedando fuera de mantenimiento y con la aparición de la plataforma S4HANA todo se vuelve menos personalizable. Solo hay que ver la apuesta de SAP en el offering de servicios cloud como RISE, en el que se deja de tener la propiedad de todo el producto y se basa en ser dueño de los datos.

La noticia es que a finales de julio dejaron de estar vigentes las certificaciones de desarrollador ABAP NetWeaver C_TAW12 y C_S4HDEV

Puede parecer que SAP no quiere que haya programadores que hagan sus “Zetas”, sino que se estan adaptando a las nuevas tecnologias cloud. Tiene todo el sentido, si la dirección es mantener un software administrado por SAP, se programe las necesidades de los clientes en la tecnologia SAP BTP.

El nuevo modelo es ABAP Platform y puedes ver el itinerario en SAP Leaning en el que introducen a programar en ABAP Cloud ( SAP BTP, ABAP environment ) si, si, esto es desarrollar aplicaciones ABAP en un modelo RESTful Application Programming.

Pues si no teniais nada que hacer este verano ya podéis descargar la plataforma trial y empezar a desarrollar en ABAP Cloud.

Buenas vacaciones 🙂

SWPM / SAPINST opciones adicionales

En el SWPM podemos pasarle diferentes opciones al llamarlo por comandos. Si queremos ver todas esas opciones solo tenemos de escribir ./sapinst -p

Example :- ./sapinst -p

Available options

Sapinst :-

[root@<USERNAME> SWPM]# ./sapinst -p [==============================] / extracting… done!

== This will start the list ==

SAPinst properties: =====================

  •SAPINST_CONTROL_URL:

points to a control(control.xml) or a catalog(product.catalog) file.

•SAPINST_CWD:

directory that SAPinst should use as its working directory (works only if  SAPinst has write permissions in that directory) •GUISERVER_DIALOG_PORT:

the port for communication of the GUI Server with the GUI  default: 21212

•SAPINST_MESSAGE_CONSOLE_THRESHOLD:

trace level console  values: flow_trace, trace, info, phase, warning, error, external(for ACC);  default: error

•SAPINST_MESSAGE_DEVLOG_THRESHOLD(sapinst_dev.log):

trace level developer log file  values: flow_trace, trace, info, phase, warning, error  default: flow_trace

•SAPINST_JSLIB_TRACE:

switch to activate the JS trace functionality for specific JS classes;  value: comma separated list of JS classes or all  default: empty  if the value contains ‘flow_trace’ and ‘Retry’ is pressed then the  framework activates flow trace

•SAPINST_RFCLIB_TRACE:

switch to enable traces for RFC calls issued by SAPinst  attention: setting this variable to true may cause  passwords to appear in clear text in log files;  default: false •SAPINST_MSLIB_TRACE:

determines trace level of kernel trace library  allowed values: 0-3  default: 1

•SAPINST_PACKAGES_URL:

path and name of CD names and labels file

•SAPINST_SAVE_INPUT:

after each dialog step write user input to keydb file if a dialog was  displayed; default: false

•SAPINST_SKIP_DIALOGS:

skip all the installation dialogs?; default: false

•SAPINST_SKIP_ERRORSTEP:

skip the first step whose status is ERROR; set the step status to OK;  default: false

•SAPINST_START_GUI:

automatically start the GUI; default: true

•SAPINST_START_GUISERVER:

automatically start the GUI Server; default: true

•SAPINST_TOPLEVEL_URL:

name of file which is used to override the top-level components in the control  file

•SAPINST_RESOURCE_URL:

path and name of file which contains F1 help used during the installation

•SAPINST_USE_HOSTNAME:

framework will return the value of that property in case of calling the  getHostName() function (value will not be checked)

•SAPINST_PARAMETER_CONTAINER_URL:

framework will use that keydb container for reading initial values for the  instance parameters

•SAPINST_EXECUTE_PRODUCT_ID:

if the SAPinst is starting using a product.catalog file this value is used to  select the service to be installed (attribute ID at the component tag);  if no product exists with that ID the product selection dialog will be shown

•SAPINST_INIFILE_MODE:

define the handling of the ini file parameter  values:  ignore do not read parameter from file but write them  after dialog phase  default values (default) read parameter from file and use them as defaults  final same as default values, in addition set the parameters to not  changeable and tag them with  GUIENG_USER_INPUT=GUIENG_TRUE, that means if each  parameter on a dialog is tagged with that  property, the dialog isn’t shown

•SAPINST_STOP_AFTER_DIALOG_PHASE:

values:  true stops the execution after processing all dialog steps  false (default) go on with doing phase after dialog phase

•SAPINST_LABEL_IDX_URL:

path to directory which contains LABELIDX.ASC or LABEL.ASC file

•SAPINST_SLIDE_SHOW_URL:

path and name of file which contains images shown in a slide show during the  doing phase

•SAPINST_JVM_PROPERTIES

Property file for the framework JVM usage. Default: jvmUsage.properties

•SAPINST_GUI_ACCESSIBLE:

run GUI in accessibility mode, requires additional software/hardware  default: false

•JCE_POLICY_ZIP

This property is obsolete and not supported any more.

•SAPINST_REMOTE_ACCESS_USER

name of an OS user which may logon remotely (with name and password). See also SAP Note 1745524.  default: name and password of the SAPinst process owner are needed

•SAPINST_REMOTE_ACCESS_USER_IS_TRUSTED

enables or disables warning concerning remote access user: this user has to be a trusted user. See also SAP Note 1745524.  default: false •SAPINST_AUTHENTICATION_UNLIMITED

true set user and password field length of the remote dialog to unlimited.  false (default)

•SAPINST_INPUT_PARAMETERS_URL:

points to a text file containing key=value pairs. If the SAPINST_INPUT_PARAMETERS_URL is defined and a component gets processed the first time  SAPInst is checking for each component parameter the existence of attribute defval-for-inifile-generation.  If an attribute is specified SAPinst is using the attribute value as a key for the search within the SAPINST_INPUT_PARAMETERS_URL key/value pairs.  If SAPinst can find a key matching to the attribute value it is setting the component parameter to the corresponding value.

•SAPINST_SDT_USER:

This property is obsolete and not supported any more.

•SAPINST_SDT_PASSWORD:

This property is obsolete and not supported any more.

•GUISERVER_HTTP_PORT:

This property is obsolete and not supported any more.

•SAPINST_JRE_HOME:

path to external SAP Java Runtime Environment (JRE). E.g. /usr/sap/jvm6138/jre

•SAPINST_HTTP_PORT:

HTTP port of SAPinst. Used for sending feedback to SAP.

•SAPINST_SEND_ANALYTICS:

If true, dialog for sending feedback to SAP is shown in the end. Default: true.

•SAPINST_STACK_XML:

Path and name of stack.xml file as described in SAP Note 1680045.

Instalar Data Provisioning Agent

Como paso previo para poder conectar los sistemas on premise a SAP Datasphere o SAP Data Warehouse Cloud es instalar un DP agent. Este agente es un midellware que se encargará de traducir los comandos entre diferentes plataformas, traduciendo el formato del sistema origen al destino. Genera una carga mínima en el sistema donde se instala y lleva los adaptadores para las siguientes BBDD:

  • DB2LogReaderAdapter
  • MssqlLogReaderAdapter
  • OracleLogReaderAdapter
  • TeradataAdapter

Aunque también soporta las siguientes base de datos con el adaptador jdbc

más información : https://help.sap.com/docs/AGILE_DATA_PREPARATION/a8c7476dbef64e14b42939606e1d0c2e/cac0dc01fa704b16a98431101d648319.html?version=1.0.24&locale=en-US

https://support.sap.com/content/dam/launchpad/en_us/pam/pam-essentials/TIP/PAM_SAP_ADP_1_0.pdf

Reader Rights Credential for ADS: Not allowed by credential error while applying usage right to PDF

A principios de este año 2023 un cliente nos reporto que inesperadamente habían dejado de visualizar PDFs interactivos. ¿ Qué es un ADS document reader rights? Son un tipo de formularios o documentos que se programan con la finalidad que muestren en formato PDF, como si fuese una plantilla en que se rellenan ciertos campos. Un ejemplo sería el documento PDF que obtienes en la venta de entradas a un concierto, en que solo se rellena los campos con tus nombres y apellidos.

Hace un tiempo, me pidieron configurar este tipo de formularios por primera vez. Serían los años 2009-2010 y el hecho es que en un punto de la configuración piden instalar un certificado en formato p12. Este se utiliza para que, cuando se muestra el documento en el navegador no aparazca el mensaje “Página web no segura”. Pués bien, este certificado tenía una fecha de validez a “9 de Enero del 2023“.

El problema se resolvio, una vez intercambiado por uno de válido, y entonces ya se pueden visualizar de nuevo los PDF’s interactivos. La pregunta clave és, ¿cuál es la nueva fecha de validez de dicho certificado? Pués ni más ni menos que el 1 de Enero del 2026 !!!

Feliz año nuevo a todos los SAP Basis y un prospero 2026 🙂

Ref: 736902 – Adobe Credentials

El mensaje que aparece cuando el certificado caduca és: Reader Rights Credential for ADS: Not allowed by credential error while applying usage right to PDF