viernes, 17 de septiembre de 2021

Restaurando archivelogs

 

Restaurando archivelogs

Hoy vamos a volver a las entradas para dummies .
En esta entrada vamos a ver en una entrada muy rapida algunas maneras de restaurar archivelogs.

Desde numero de secuencia

RUN
{
SET ARCHIVELOG DESTINATION TO '/ruta';
restore archivelog  logseq=8702;
}

Podemos hacerlo tambien con un rango con

restore archivelog from sequence 8619 until sequence 8702;

o tambien con

restore archivelog sequence between 8619 and  8702;

De un dia atras

Esta puede ser muy comoda a la hora de incrementales

RUN
{ 
SET ARCHIVELOG DESTINATION TO '/ruta';
ALLOCATE CHANNEL d1 DEVICE TYPE disk;
 restore ARCHIVELOG FROM TIME 'SYSDATE-1' UNTIL TIME 'SYSDATE';
}

Tambien podriamos indicarlo

restore ARCHIVELOG FROM TIME "to_date('11/04/20 00:00:01','DD/MM/YY HH24:MI:SS')
UNTIL TIME 'SYSDATE';

En RAC

En un rac es igual que en los anteriores, pero deberemos de indicar el numero de thread que nos corresponde

{
SET ARCHIVELOG DESTINATION TO '/ruta'
restore archivelog from logseq=8619 until logseq=8702 thread=2;
}

Specifying Records by SCN: Example This example restores backup archived redo log files from tape that fall within a range of SCNs:

RESTORE ARCHIVELOG SCN BETWEEN 94097 AND 106245;
RMAN> run {
2> ALLOCATE CHANNEL ch1 DEVICE TYPE DISK FORMAT = 'D:\dbawork\na38551\MKS01P_ARCH\';
3> RESTORE ARCHIVELOG FROM SEQUENCE 128458 UNTIL SEQUENCE 128510;
4> RELEASE CHANNEL ch1;
5> }

RMAN DUPLICATE ERROR ORA-19838 RMAN-06054: media recovery requesting unknown archived log

RMAN DUPLICATE ORA-19838 RMAN-06054 || ORA-19838: Cannot use this control file to open database || RMAN-06054: media recovery requesting unknown archived log
******************************************************************************************
RMAN DUPLICATE ORA-19838 RMAN-06054

****  Rman Script
connect catalog '/@';
connect auxiliary / ;

run {
allocate auxiliary channel t1_db device type sbt parms="ENV=(NB_ORA_SERV=, NB_ORA_CLIENT=)";
allocate auxiliary channel t2_db device type sbt parms="ENV=(NB_ORA_SERV=, NB_ORA_CLIENT=)";
allocate auxiliary channel t3_db device type sbt parms="ENV=(NB_ORA_SERV=, NB_ORA_CLIENT=)";
allocate auxiliary channel t4_db device type sbt parms="ENV=(NB_ORA_SERV=, NB_ORA_CLIENT=)";

duplicate database to ;
release channel t1_db;
release channel t2_db;
release channel t3_db;
release channel t4_db;
}
******************************************************************************************


Failed Database Duplication, recovery manager duplication was started after "open resetlogs" on source database and the last full backup was done with previous incarnation.
This is RMAN log file ->

archived log file name=/oradb1/archivelog//_285521_695915219.arc RECID=285737 STAMP=823973951
archived log file name=/oradb1/archivelog//_285522_695915219.arc thread=1 sequence=285522
channel clone_default: deleting archived log(s)
archived log file name=/oradb1/archivelog//_285522_695915219.arc RECID=285731 STAMP=823973836
unable to find archived log
archived log thread=1 sequence=285523
released channel: t1_db
released channel: t2_db
released channel: t3_db
released channel: t4_db
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 08/20/2013 17:39:30
RMAN-05501: aborting duplication of target database
RMAN-03015: error occurred in stored script Memory Script
RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 285523 and starting SCN of 15614356785656

Recovery Manager complete.

******************************************************************************************
*** After Alter database open

alter database open
*
ERROR at line 1:
ORA-19838: Nie mozna uzyc tego pliku sterujacego do otwarcia bazy danych

** So ..

sql> alter database backup controlfile to trace ;

** In controlfile recretion script the database name is the source db_name and the dir names for redo logs are still incorrect
******************************************************************************************
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 11680
LOGFILE
  GROUP 9 '/oradb1//redo09.log'  SIZE 150M BLOCKSIZE 512,
  GROUP 10 '/oradb1//redo10.log'  SIZE 150M BLOCKSIZE 512,
  GROUP 11 '/oradb1//redo11.log'  SIZE 150M BLOCKSIZE 512,
  GROUP 12 '/oradb1//redo012.log'  SIZE 150M BLOCKSIZE 512,
  GROUP 13 '/oradb1//redo013.log'  SIZE 150M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  '/oradb1//system01.dbf',
  '/oradb1//undotbs01.dbf',
  '/oradb1//sysaux01.dbf',
  '/oradb1//users01.dbf',
  '/oradb1//TBS1_DATA01.dbf',
  '/oradb1//
TBS1_DATA02.dbf',
................
................
  '/oradb1//
TBS1_IDX08.dbf',
  '/oradb1//
TBS1_DATA29.dbf',
  '/oradb1//
TBS1_IDX09.dbf',
  '/oradb1//
TBS1_IDX07.dbf',
  '/oradb1//
TBS1_237318729380334627.dbf'
CHARACTER SET EE8ISO8859P2
;
******************************************************************************************

SQL> alter system set db_name= scope=spfile;

*** or change it in pfile init.ora


SQL> @_ctl_recr.sql
ORACLE instance started.

Total System Global Area 4710043648 bytes
Fixed Size                  2229384 bytes
Variable Size            1962937208 bytes
Database Buffers         2734686208 bytes
Redo Buffers               10190848 bytes

Control file created.

SQL> alter database open resetlogs ;

Database altered.

SQL>

RMAN> recover database until sequence 9923;

lunes, 24 de mayo de 2021

DB_FILE_NAME_CONVERT


db_file_name_convert=('/u02/oradata/proddb01/datafile','/u02/oradata/testdb01',
                      '/u02/oradata/proddb01/tempfile',/u02/oradata/testdb01')

log_file_name_convert=('proddb01','testdb01')
When using an spfile:
alter system set db_file_name_convert='/u02/oradata/proddb01/datafile','/u02/oradata/testdb01',
                                      '/u02/oradata/proddb01/tempfile',/u02/oradata/testdb01' scope=spfile;

alter system set log_file_name_convert='proddb01','testdb01' scope=spfile;

miércoles, 12 de mayo de 2021

ALTER DATABASE CLEAR LOGFILE - GRUPOS DE REDOLOG

SQL> select group#,status from v$log;

    GROUP# STATUS

---------- ----------------

1 CURRENT

2 ACTIVE

3 INACTIVE


PROCEDIMIENTO INACTIVE

sql> alter database clear logfile group #;

PROCEDIMIENTO ACTIVE

sql> alter database clear unarchived logfile group # 

PROCEDIMIENTO CURRENT

 sql> alter database clear unarchived logfile group 1 unrecoverable datafile;

DAÑO ARCHIVO DE CONTROL

PROCEDIMIENTO I

 SQL>startup nomount;


RMAN> STARTUP NOMOUNT;

RMAN> ALTER DATABASE MOUNT;

RMAN> RECOVER DATABASE;

RMAN> ALTER DATABASE OPEN RESETLOGS;



lunes, 10 de mayo de 2021

ANALYZE TABLE

 The following statement analyzes the emp table:

ANALYZE TABLE emp VALIDATE STRUCTURE;

You can validate an object and all dependent objects (for example, indexes) by including the CASCADE option. The following statement validates the emp table and all associated indexes:

ANALYZE TABLE emp VALIDATE STRUCTURE CASCADE;

By default the CASCADE option performs a complete validation. Because this operation can be resource intensive, you can perform a faster version of the validation by using the FAST clause. This version checks for the existence of corruptions using an optimized check algorithm, but does not report details about the corruption. If the FAST check finds a corruption, you can then use the CASCADE option without the FAST clause to locate it. The following statement performs a fast validation on the emp table and all associated indexes:

ANALYZE TABLE emp VALIDATE STRUCTURE CASCADE FAST;

You can specify that you want to perform structure validation online while DML is occurring against the object being validated. There can be a slight performance impact when validating with ongoing DML affecting the object, but this is offset by the flexibility of being able to perform ANALYZE online. The following statement validates the emp table and all associated indexes online:

ANALYZE TABLE emp VALIDATE STRUCTURE CASCADE ONLINE;

martes, 6 de abril de 2021

IaaS, SaaS, PaaS, FaaS, CaaS

¿Qué es IaaS, SaaS, PaaS, FaaS, CaaS? Te explicamos en qué consisten los diferentes servicios de la Nube

IaaS (Infrastructure as a Service)

IaaS es Infrastructure as a Service, la Infraestructura como Servicio. Básicamente, el proveedor alquila la infraestructura y otorga al cliente el control casi total sobre ella. Así, es posible garantizar el acceso a los recursos de computación —como procesador, memoria RAM, disco duro…— y a las estructuras de red integradas —firewalls, routers, sistemas de seguridad y backup— en función de las necesidades.

El cliente puede escoger los recursos que necesita para sus propósitos. Además, este servicio es muy flexible en el sentido de que el cliente puede ampliar la capacidad contratada —o reducirla— siempre que lo necesite.

El proveedor se encarga de garantizar la fiabilidad y la seguridad a largo plazo mediante el mantenimiento de la infraestructura, instalando dispositivos y sistemas de seguridad, y manteniendo el hardware al día. El modelo típico de facturación suele ser el pago por uso o pay per use.

Se trata, por tanto, de una solución que ofrece grandes ventajas a las empresas por la desaparición de los costes por hardware y el mantenimiento del control sobre los gastos corrientes gracias al pago por uso. Además, es destacable el ahorro del gasto por instalación, mantenimiento y modernización del hardware, salvo en el caso de un IaaS privado.

Ejemplos de IaaS serían los Servidores Cloud Next de Arsys.

SaaS (Software as a Service)

Sin duda, es el servicio más utilizado por usuarios individuales. El SaaS, o Software as a Service, es también conocido como software bajo demanda, o software out-of-the-box. Se trata de un servicio que ofrece a los usuarios una aplicación determinada que pueden utilizar inmediatamente, sin necesidad de instalar nada, de hacer ningún despliegue, ni de llevar su mantenimiento.

Los usuarios simplemente acceden al software con un thin client a través de un navegador web. Todo está gestionado por el proveedor de servicio: aplicaciones, sistema en tiempo de ejecución, datos, middleware, sistemas operativos, virtualización, servidores, almacenamiento, redes… El usuario tan solo contrata el servicio —o accede a él de forma gratuita— y utiliza el software de inmediato.

PaaS (Platform as a Service)

PaaS son las siglas de Plataforma como Servicio, que proporciona una plataforma y un entorno que permiten a los desarrolladores crear aplicaciones y servicios. Estas aplicaciones y servicios se pueden crear gracias a las herramientas que proporciona el proveedor, por ejemplo, mediante funcionalidades preconfiguradas por suscripción que permitan al cliente elegir cuáles va a utilizar. Estos paquetes de funcionalidades pueden ser de todo tipo, desde las más sencillas e intuitivas hasta opciones de desarrollo avanzado.

Se pueden entender mejor estos servicios PaaS describiendo algunas de las algunas de las funcionalidades que suelen incluir: sistema operativo, sistema de gestión de base de datos, software de servidor, soporte técnico, almacenamiento, hosting o herramientas de diseño y desarrollo, además de acceso a la red.

Con PaaS, los desarrolladores no necesitan invertir en infraestructura física, ni emplear tiempo en administrarlo, concentrándose exclusivamente en sus desarrollos. Los servicios PaaS proporcionan un entorno de trabajo para el desarrollo de aplicaciones.


FaaS (Functions as a Service)

FaaS, o Funciones como Servicio, se conoce como serverless architecture. Por serverless se entiende que los servidores se utilizan como un elemento más de la infraestructura gracias a las ventajas de la computación en la Nube —y no significa «sin servidor», como podría suponerse.

Esta arquitectura permite la ejecución de aplicaciones a través de contenedores efímeros. Dichos contenedores se crean en el momento, de manera que el desarrollador no se ha de preocupar de la gestión de la infraestructura sobre la que se ejecuta su función, centrándose, por tanto, en la funcionalidad.

Con la arquitectura serverless se simplifica el ciclo de desarrollo y, por otro lado, favorece el desarrollo de arquitecturas basadas en microservicios, facilitando el ciclo de vida y los despliegues continuos.

Con FaaS podemos reducir la inversión en infraestructura y, además, solo se generan costes cuando se utiliza el servicio, esto es, cuando se ejecuta la función.

CaaS (Container as a Service)

El Contenedor como Servicio se encuentra en un punto intermedio entre el IaaS y el PaaS. Se trata de una forma de virtualización basada en contenedores en la que los motores de contenedores, la orquestación y los recursos informáticos subyacentes se entregan a los usuarios como un servicio de un proveedor en la Nube.

¿Cuántos servicios en la Nube existen?

Hemos visto, sin profundizar, los servicios en la Nube más frecuentes, pero no nos debería extrañar si decimos que el número de servicios posible es enorme, y crece cada día.

Algunos ejemplos serían los DaaS —Desktop as a Service, de los que hablamos en nuestro reciente artículo sobre escritorios virtuales—, o AaaS —Authentication as a Service—, por ejemplo, que proporcionan servicios muy concretos a sus usuarios. Pero la verdad es que prácticamente cualquier servicio que nos podamos imaginar en físico tiene su alter ego en la Nube:

  • Analytics as a Service
  • Backup as a Service
  • Business as a Service
  • Communications as a Service
  • Content as a Service
  • Logging as a Service
  • Monitoring as a Service
  • Network as a Service
  • Payments as a Service
  • Robot as a Service
  • Search as a Service
  • Security as a Service
  • Storage as a Service

Y podríamos seguir. La flexibilidad de la Nube y los menores costes de acceso a los servicios, en comparación con cualquier otra solución hacen que la oferta de servicios en la Nube crezca sin aparente fin.

viernes, 19 de marzo de 2021

PRINCIPIO PRIVILEGIO MINIMO

 DBA SQL> create user dbo identified by oracle123;

DBA SQL> grant create session to dbo;

USER SQL>select * from hr.departments;

DBA  SQL> grant select on hr.deparments to dbo;

domingo, 7 de febrero de 2021

SOFTWARE FREE

Bizagi Modeler

Wireless Network Watcher

Map Toolkit  Inventario Maquinas Windows 

Gestion de Proyectos.

Jira | Software de seguimiento de proyectos e incidencias | Atlassian

VULNERABILIDADES SEGURIDAD

Nessus

Download Microsoft Assessment and Planning Toolkit from Official Microsoft Download Center

Pentaho (ETL Hitachi)

Apache superset (Visualizacion de Datos) Software free

Apache JMeter - Apache JMeter™

The Grinder, a Java Load Testing Framework (sourceforge.net)

DIAGRAMAS

diagrams.net

CONTRASEÑAS

https://bitwarden.com/

Zabbix: una herramienta de monitoreo de red de código abierto que permite el monitoreo en tiempo real de redes, servidores, aplicaciones y servicios.

GLPI: una herramienta de gestión de activos de TI de código abierto que permite la gestión de inventarios de hardware y software, la gestión de tickets de soporte, la gestión de contratos y la gestión de recursos.

Inicio - GLPI Project (glpi-project.org)

OCS Inventory NG: una herramienta de inventario de hardware y software de código abierto que permite la gestión remota de activos de TI, la recopilación de información del hardware y software, y la generación de informes detallados.

Nagios: una herramienta de monitoreo de red de código abierto que permite la supervisión y alerta de servicios de red, servidores y aplicaciones.

iTop: una herramienta de gestión de servicios de TI de código abierto que permite la gestión de servicios de TI, la gestión de incidentes, la gestión de cambios, la gestión de problemas y la gestión de configuraciones.

SuiteCRM: una herramienta de gestión de relaciones con clientes (CRM) de código abierto que permite la gestión de ventas, marketing y soporte al cliente.

OpenNMS: una herramienta de gestión de red de código abierto que permite el monitoreo y gestión de redes complejas y heterogéneas.

Live optics: Collector Software

  1. OpenVAS: una herramienta de escaneo de vulnerabilidades de código abierto que permite la detección de vulnerabilidades en sistemas y redes.

  2. Nmap: una herramienta de escaneo de puertos de código abierto que permite la detección de puertos abiertos en sistemas y redes.

  3. Nikto: una herramienta de escaneo de vulnerabilidades web de código abierto que permite la detección de vulnerabilidades en aplicaciones web.

  4. Snort: una herramienta de detección de intrusiones de código abierto que permite la detección de ataques en tiempo real en redes.

  5. OSSEC: una herramienta de detección de intrusiones de código abierto que permite la detección de ataques en tiempo real en sistemas.

  6. Wireshark: una herramienta de análisis de tráfico de red de código abierto que permite la captura y análisis de paquetes de red para detectar posibles vulnerabilidades y ataques.

  7. Metasploit: una herramienta de pruebas de penetración de código abierto que permite la simulación de ataques para detectar vulnerabilidades en sistemas y redes.

  8. Cacti: Es una herramienta de gráficos y monitoreo basada en RRDTool. Permite visualizar datos de rendimiento en forma de gráficos y ayudar a identificar patrones y tendencias.

  9. Git: Es un sistema de control de versiones distribuido. Permite gestionar el código fuente y colaborar en proyectos de desarrollo de software de manera eficiente.

HERRAMIENTAS DE DISEÑO

  1. Sweet Home 3D: Es una herramienta de diseño de interiores gratuita y de código abierto que permite a los usuarios crear modelos en 3D de sus hogares. La herramienta cuenta con una gran biblioteca de muebles y objetos decorativos que pueden ser utilizados para crear diseños personalizados.

  2. Blender: Aunque es una herramienta de modelado 3D más general, Blender se puede utilizar para el diseño de interiores también. Es una herramienta muy potente que permite a los usuarios crear modelos en 3D, animaciones y gráficos. Es un poco más complicado de usar que Sweet Home 3D, pero también ofrece una amplia variedad de herramientas de diseño y opciones de personalización.

  3. SketchUp: Es una herramienta de modelado 3D que es especialmente popular entre los arquitectos y diseñadores de interiores. SketchUp es fácil de usar y cuenta con una amplia variedad de herramientas para crear diseños precisos y detallados.

  4. RoomSketcher: Es una herramienta de diseño de interiores en línea que permite a los usuarios crear planos de planta, diseños de interiores y renderizaciones en 3D. RoomSketcher es fácil de usar y cuenta con una gran variedad de herramientas para crear diseños personalizados.

viernes, 5 de febrero de 2021

GRANULO MEMORIA

 SQL> select (bytes/1024/1024) from v$sgainfo where name='Granule Size';

(BYTES/1024/1024)

-----------------

4

SQL> select (bytes) from v$sgainfo where name='Granule Size';

     BYTES

----------

   4194304

SQL> 


miércoles, 3 de febrero de 2021

RESULT_CACHE EJEMPLO IMPLEMENTACION

 select /*+ RESULT_CACHE */ department_id, avg(salary) from hr.employees group by department_id

select /*+ NO_RESULT_CACHE */ department_id, avg(salary) from hr.employees group by department_id


Execution Plan
----------------------------------------------------------
Plan hash value: 1192169904

--------------------------------------------------------------------------------
------------------

| Id  | Operation     | Name | Rows  | Bytes | Cost
(%CPU)| Time |

--------------------------------------------------------------------------------
------------------

|   0 | SELECT STATEMENT    | |    11 |    77 |     3
   (0)| 00:00:01 |

|   1 |  RESULT CACHE     | cs8656szabsxu2j64yh85u2ppq | | |
      | |

|   2 |   HASH GROUP BY     | |    11 |    77 |     3
   (0)| 00:00:01 |

|   3 |    TABLE ACCESS FULL| EMPLOYEES |   107 |   749 |     3
   (0)| 00:00:01 |

--------------------------------------------------------------------------------
------------------


Result Cache Information (identified by operation id):
------------------------------------------------------

   1 - column-count=2; dependencies=(HR.EMPLOYEES); name="select /*+ RESULT_CACH
E */ department_id, avg(salary) from hr.employees group by department_id"



Statistics
----------------------------------------------------------
  1  recursive calls
  0  db block gets
  0  consistent gets
  0  physical reads
  0  redo size
869  bytes sent via SQL*Net to client
543  bytes received via SQL*Net from client
  2  SQL*Net roundtrips to/from client
  0  sorts (memory)
  0  sorts (disk)
12  rows processed

SQL> 


select  department_id, avg(salary) from hr.employees group by department_id

SQL> select  department_id, avg(salary) from hr.employees group by department_id;

12 rows selected.


Execution Plan
----------------------------------------------------------
Plan hash value: 1192169904

--------------------------------------------------------------------------------
| Id  | Operation    | Name      | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |        |    11 |    77 |     3 (0)| 00:00:01 |
|   1 |  HASH GROUP BY    |        |    11 |    77 |     3 (0)| 00:00:01 |
|   2 |   TABLE ACCESS FULL| EMPLOYEES |   107 |   749 |     3 (0)| 00:00:01 |
--------------------------------------------------------------------------------


Statistics
----------------------------------------------------------
  1  recursive calls
  0  db block gets
  7  consistent gets
  0  physical reads
  0  redo size
869  bytes sent via SQL*Net to client
543  bytes received via SQL*Net from client
  2  SQL*Net roundtrips to/from client
  0  sorts (memory)
  0  sorts (disk)
12  rows processed

SQL> execute dbms_result_cache.flush;

PL/SQL procedure successfully completed.