10 noviembre 2016

Nuevos parámetros SPFILE en base de datos Oracle 12.2.0.1

La Base de Datos Oracle 12.2.0.1 está disponible ahora en la nube de Oracle.

Y esta es la lista de los 46 nuevos parámetros init.ora / spfile comparados con la base de datos Oracle 12.1.0.2. Ojo que algunos de ellos están sin documentar a día de hoy.


Parameter
Description
allow_global_dblinks
ALLOW_GLOBAL_DBLINKS specifies whether LDAP lookup for database links is allowed for the database.
allow_group_access_to_sga
ALLOW_GROUP_ACCESS_TO_SGA controls group access to shared memory on UNIX platforms.

The default value is false, which means that database shared memory is created with owner access only. In Oracle Database releases prior to Oracle Database 12c Release 2 (12.2.0.1), database shared memory was created with owner and group access.
approx_for_aggregation
APPROX_FOR_AGGREGATION replaces exact query processing for aggregation queries with approximate query processing.

Data analysis applications heavily use aggregate function and analytic function queries. Aggregation functions and analytic functions require sorting of large volumes of data, and exact query answering requires lots of memory, and can be time consuming. With approximate query processing, the results of aggregate function and analytic function queries are returned much faster than with exact query processing.
approx_for_count_distinct
APPROX_FOR_COUNT_DISTINCT automatically replaces COUNT (DISTINCT expr) queries with APPROX_COUNT_DISTINCT queries.

Query results for APPROX_COUNT_DISTINCT queries are returned faster than the equivalent COUNT (DISTINCT expr) queries. APPROX_COUNT_DISTINCT queries are useful for situations where a tolerable amount of error is acceptable in order to obtain faster query results than with a COUNT (DISTINCT expr) query.
approx_for_percentile
APPROX_FOR_PERCENTILE converts exact percentile functions to their approximate percentile function counterparts.

Approximate percentile function queries are faster than their exact percentile function query counterparts, so they can be useful in situations where a tolerable amount of error is acceptable in order to obtain faster query results.
asm_io_processes
ASM_IO_PROCESSES specifies the number of I/O worker processes to be started in an Oracle Automatic Storage Management (Oracle ASM) IOServer instance.

This parameter is applicable only in an Oracle ASM IOServer instance, which runs out of an Oracle Grid home.

The default value should work in most cases
autotask_max_active_pdbs
AUTOTASK_MAX_ACTIVE_PDBS enables you to specify the maximum number of PDBs that can schedule automated maintenance tasks at the same time (during a maintenance window).
This parameter only affects PDBs. The CDB$ROOT container (CDB root) for a CDB can always schedule and run maintenance tasks during a maintenance window.
The default value is 2.
awr_pdb_autoflush_enabled
AWR_PDB_AUTOFLUSH_ENABLED enables you to specify whether to enable or disable automatic Automatic Workload Repository (AWR) snapshots for all the PDBs in a CDB or for individual PDBs in a CDB. Default value is false.
cdb_cluster
[undocumented]
cdb_cluster_name *
[undocumented]
clonedb_dir *
CLONEDB_DIR sets the directory path where CloneDB bitmap files should be created and accessed.
By default the CloneDB bitmap file is created under the $ORACLE_HOME/dbs directory.
containers_parallel_degree
CONTAINERS_PARALLEL_DEGREE can be used to control the degree of parallelism of a query involving containers(). The value of containers_parallel_degree, if set, will override the default DOP for a containers() query.
By default, a containers() query uses a degree of parallelism equal to (1 + number of open PDBs) in the case of CDB root and (1 + number of open application PDBs) in the case of application root.
If the value of CONTAINERS_PARALLEL_DEGREE is lower than 65535, then this value is used as the degree of parallelism of a query involving  containers(). Otherwise (when the value is 65535), the default degree of parallelism is (1 + number of open PDBs) or (1 + number of open application PDBs) as described above.
cursor_invalidation
CURSOR_INVALIDATION controls whether deferred cursor invalidation or immediate cursor invalidation is used for DDL statements by default.
data_guard_sync_latency
Data Guard SYNC latency
data_transfer_cache_size
DATA_TRANSFER_CACHE_SIZE sets the size of the data transfer cache (in bytes) used to receive data blocks (typically from a primary database in an Oracle Data Guard environment) for consumption by an instance during execution of an RMAN RECOVER ... NONLOGGED BLOCK command
default_sharing
DEFAULT_SHARING sets the value of the sharing clause in statements creating objects in an application root.
Specifying SHARING= in the create DDL overrides the value of the DEFAULT_SHARING parameter.
disable_pdb_feature *
 [undocumented]
enable_automatic_maintenance_pdb
Enable/Disable Automated Maintenance for Non-Root PDB
enable_dnfs_dispatcher
Enable DNFS Dispatcher
enabled_PDBs_on_standby
List of Enabled PDB patterns
encrypt_new_tablespaces
whether to encrypt newly created tablespaces
exafusion_enabled
Enable Exafusion
external_keystore_credential_location
external keystore credential location
inmemory_adg_enabled
Enable IMC support on ADG
inmemory_expressions_usage
Controls which In-Memory Expressions are populated in-memory
inmemory_virtual_columns
Controls which user-defined virtual columns are stored in-memory
instance_abort_delay_time
time to delay an internal initiated abort (in seconds)
instance_mode
indicates whether the instance read-only or read-write or read-mostly
long_module_action
Use longer module and action
max_datapump_jobs_per_pdb
maximum number of concurrent Data Pump Jobs per PDB
max_idle_time
maximum session idle time in minutes
max_iops
MAX IO per second
max_mbps
MAX MB per second
max_pdbs
max number of pdbs allowed in CDB or Application ROOT
ofs_threads
Number of OFS threads
one_step_plugin_for_pdb_with_tde *
[undocumented] Facilitate one-step plugin for PDB with TDE encrypted data
optimizer_adaptive_plans
controls all types of adaptive plans
optimizer_adaptive_statistics
controls all types of adaptive statistics
outbound_dblink_protocols
Outbound DBLINK Protocols allowed
remote_recovery_file_dest
default remote database recovery file location for refresh/relocate
resource_manage_goldengate
RESOURCE_MANAGE_GOLDENGATE determines whether Oracle GoldenGate apply processes in the database are resource managed.

To enable Resource Manager, set the RESOURCE_MANAGER_PLAN parameter.

By default, Oracle GoldenGate apply processes in the database are not resource managed. Given that replication to a PDB requires a separate Oracle GoldenGate apply process,
sga_min_size
SGA_MIN_SIZE sets the guaranteed SGA size for a pluggable database (PDB). When SGA_MIN_SIZE is set for a PDB, it guarantees the specified SGA size for the PDB.
Setting this parameter at the CDB level has no effect.
shrd_dupl_table_refresh_rate
duplicated table refresh rate (in seconds)
standby_db_preserve_states
STANDBY_DB_PRESERVE_STATES is meaningful on a physical standby database that is open in real-time query mode. The parameter controls whether user sessions and other internal states of the instance are retained when a readable physical standby database is converted to a primary database.

The possible values for the parameter are NONE, SESSION, and ALL
target_pdbs*
 [undocumented] Parameter is a hint to adjust certain attributes of the CDB
uniform_log_timestamp_format
UNIFORM_LOG_TIMESTAMP_FORMAT specifies that a uniform timestamp format be used in Oracle Database trace (.trc) files.

When the value of UNIFORM_LOG_TIMESTAMP_FORMAT is TRUE, the format used for timestamps in trace files is standardized on universal time with millisecond precision.

JRockit, Hotspot, solo puede quedar uno, ... como en los Inmortales

Un poco de historia

En 2008 BEA es comprada por Oracle, lo que causó algunas dudas en el equipo, pero aparentemente el equipo fue poco a poco ganando protagonismo y atención. Y probablemente en breve tanto lo que era la máquina virtual de Sun, HotSpot, como la de Oracle, jRockit se juntarán en una única solución mucho más potente.



Conocí a uno de los autores en un evento que organizó  BEA Systems España, y fue allí donde empecé a conocer esta Java Virtual Machine, JVM.

¿Qué es una JVM?

Una máquina virtual de Java (JVM) es un programa que traduce el código Java en el código de máquina para una plataforma de hardware específica. Las JVM son las que hacen de Java portable; una aplicación Java debe ser capaz de funcionar en cualquier JVM, aunque cada JVM está escrito específicamente para una sola plataforma.

Pero basta de de historias de la guerra del abuelo, veamos que ocurre en momentos mas actuales

Para la mayoría de los nuevos sistemas y / o desarrollo, Oracle recomienda usar JVM / JDK 7.  Java 7 release 7u55 incluye JavaFX y muchas nuevas correcciones de errores y parches de seguridad. Para la mayoría de los nuevos sistemas y / o desarrollo, Oracle recomienda usar JVM / JDK 7. A veces, se prefiere JVM / JDK 8. Java 7 release 7u55 incluye JavaFX y muchas nuevas correcciones de errores y parches de seguridad.

Las características importantes de Java 8 incluyen:
  • Lambda Expressions, una nueva característica de lenguaje, que le permite tratar la funcionalidad como un argumento de método o codificar como datos.
  • Las anotaciones de tipo permiten aplicar una anotación en cualquier lugar donde se utilice un tipo, no sólo en una declaración.     
  • Cliente TLS 1.2 habilitado por defecto.
  • Algoritmos más fuertes para cifrado de contraseñas.
  • Integración con Solaris 8 y mejoras de rendimiento relacionadas.

Debes de comprobar la matriz de compatibilidad de software aplicable para obtener recomendaciones actualizadas sobre la versión recomendada para su aplicación o implementación.

¿JRockit esta aún soportado?

JRockit y HotSpot se fusionan en una sola JVM, incorporando las mejores características de ambos. El resultado será aportado gradualmente a OpenJDK. JRockit se libera bajo Binary Code License Agreement  (BCL).

Aquí hay un enlace para ver la presentación oficial de Oracle de su nueva política, si estas mas interesado.

Oracle planea soportar el último lanzamiento de JRockit 6 - R28.2.7 hasta el 2017 JRockit Support. Las actualizaciones de esta versión estaban disponibles para el público durante el tiempo JDK 6 estaba disponible para el público. Tenga en cuenta las advertencias de texto en rojo en la página de descarga, ya que esta versión no está actualizada con los parches de seguridad. No se recomienda utilizar esta versión en producción ya que las nuevas versiones Java con parches de seguridad no están disponibles en Jrockit. Aún así, se podría usar la versión pública de JRockit 6 sin un cargo, siempre y cuando se cumplan los requisitos de BCL.

Las actualizaciones de Oracle a JRockit 6 hechas después de febrero de 2013 ahora sólo están disponibles para soporte a los clientes. Si un cliente ya tiene JRockit y quiere quedarse con JRockit, Oracle recomienda mantenerlo al día con las actualizaciones de $eguridad, que ahora requieren un contrato de $oporte.

Tenemos un cliente que usa Flight recorder y Mission Control con JRockit, se van a perder estas características con JRockit.

A pesar de que Java SE 7u40 fue lanzado en el otoño de 2013, todavía hay cierta confusión acerca de las características y funciones en las últimas versiones de Java.  
El Mission Control de java (JMC) y las características de Java Flight Recorder (JFR) de JDK/JRE SE 7u40 debería ser técnicamente equivalente a JRockit Java en este momento.


JConsole ha sido una herramienta popular a través de los años y proporciona un seguimiento básico de las aplicaciones. Para una mejor integración en la pila de Oracle, intenta utilizar Java Flight Recorder y Java Mission Control combinados con WebLogic Diagnostics Framework (WLDF)


(WLDF) es un marco de monitoreo y diagnóstico que define e implementa un conjunto de servicios que se ejecutan en los procesos de WebLogic Server y participan en el ciclo de vida del servidor estándar. Mediante WLDF, puede crear, recopilar, analizar, archivar y acceder a los datos de diagnóstico generados por un servidor en ejecución y las aplicaciones desplegadas dentro de sus contenedores. Estos datos proporcionan información sobre el rendimiento en tiempo de ejecución de los servidores y las aplicaciones y permiten aislar y diagnosticar fallas cuando se producen.

Si bien puede parecer que el recorte en las opciones de la Plataforma Java reduce las opciones y la flexibilidad, la convergencia resultará una planificación simplificada. Con Java Flight Recorder y Java Mission Control incluidos en la última versión de JVM 7, los diagnósticos, el monitoreo y el análisis de eventos se pueden realizar con una versión estándar de Java con relativa confianza en futuras versiones y actualizaciones de aplicaciones.



07 noviembre 2016

Puesto: DBA No SQL, eso, ... ¿existe?

Tengamos claro que soluciones del tipo NoSQL o Big Data están tomando el mundo por montera  y son cada vez más usados en entornos corporativos para mejorar el tiempo de puesta en producción y aumentar la agilidad de desarrollo. En resumen beneficios y eso nos importa a todos.

Con el advenimiento de novedades en el mundo de los sistemas de gestión de datos que se acumulan en principios distintos del álgebra relacional, una creciente duda ha crecido en torno a la necesidad y el papel del administrador de base de datos (nuestros “amados” DBAs) en este escenario. Incluso si la mayoría de estos nuevos sistemas son totalmente dependientes de los equipos de desarrollo y todos los esfuerzos de mantenimiento parecen redundantes (a partir de aquí el gerente de Dilbert, deja de leer, :) ). Una vez que se consideran todas las demandas de la puesta y mantenimiento en producción: 
  • La disponibilidad 24x7
  • La plena coherencia transaccional
  • La estrategia de recuperación fiable 

Queda claro que los DBA tienen que seguir siendo una parte vital de la cadena de responsabilidad de la empresa. Aun cuando la tecnología subyacente se aleja del sistema de gestión de base de datos relacional - ya sea  transaccional o de tipo datawarehouse

La siguiente tabla representa el paisaje actual del ecosistema de gestión de datos, con las convenciones de nombres que se utilizan.


RDBMS
NoSQL
Big Data
Ecosistema
Base de datos
Datastore
Dataset
Propietario
DBA
Desarrollador
Analista de datos
Propiedades
ACID
BASE
CAP
Clustering
Todo compartido
Nada compartido
Nada compartido
Madurez
mMás de 40 años
Más de 10 años
Más de 10 años
Cuota de mercado estimada
75%
20%
5%

Aunque los términos "NoSQL" y "Big Data" a menudo se utilizan indistintamente, la distinción es evidente, con respecto a sus áreas de uso, utilidad estrategia de negocio y la capacidad para gestionar tráfico concurrente. Dicho esto, NoSQL se ajusta más al espacio OLTP y Big Data es más de un tipo de datawarehouse (DWH).

En el paisaje que evoluciona rápidamente de soluciones de gestión de datos, será cada vez más importante, para aprovechar la mayor cantidad de conocimientos y experiencias relacionales en la arquitectura y la ingeniería de DWH y conjuntos de datos.

  • Manejar una auditoría Sarbanes-Oxley o del ENS, en España, 
  • Manejar una actualización en marcha, 
  • Realizar una migración con tiempo de inactividad casi cero.
  • Recuperarse de un desastre

Esos conocimientos, ya están dentro del know-how del DBA del dia a dia. Sólo necesita que se extiende hacia las disciplinas de gestión de datos de reciente introducción.



Programador
Analista
bbdd
Diseñador
bbdd
Arquitecto
BBDD
DBA
Especialista
Sistemas
Especialista
Almacenamiento
Especialista
Red
Especialista
Seguridad
Arquitecto
Solución
Diseño
BBDD
indirecto
indirecto
directo
indirecto
indirecto




directo
Desarrollo
BBDD
directo

directo
indirecto
directo
indirecto
indirecto
indirecto
indirecto
indirecto
Arquitectura
BBDD
directo
directo
indirecto
indirecto
indirecto
indirecto
indirecto
Análisis
Datos
directo
directo

directo
indirecto





Instalación/
actualización
bbdd
indirecto
directo
directo
indirecto
indirecto
indirecto
Optimizador
Consultas
directo
directo
indirecto
indirecto
directo





Copia
Restauración
bbdd
indirecto
directo
indirecto
indirecto
indirecto
Aprovisionamiento
Nube


indirecto
directo
directo
directo
directo
directo
directo
directo
Operaciones
Almacenamiento

indirecto
indirecto
directo
directo


indirecto
Operaciones
Red



indirecto
indirecto
directo
indirecto


indirecto
Control
Seguridad



indirecto
indirecto
directo
indirecto
indirecto
directo
indirecto

El dato es el rey

Observando la evolución del panorama de los sistemas de gestión de datos desde el año 2000, es una apuesta bastante segura suponer que la tecnología en sí comenzará a perder su importancia, mientras que las habilidades tecnológicas prosperarán como el panorama de software de gestión de datos se expande y se diversifica. Aunque NoSQL y Big data ofrecen  nuevas técnicas para el tratamiento de la información, esta proposición está todavía lejos de ser completa y es aquí donde los DBA pueden llenar el vacío.


Esto a su vez induce un cambio importante en la perspectiva y la forma de pensar de los expertos en tecnología relacional actuales. Técnicas, algoritmos y patrones que son comunes a NoSQL y big data pueden ser implantados en los sistemas de bases de datos para mejorar la disponibilidad, la capacidad y el rendimiento. 

Esto ya ha empezado: Map Reduce ha sido utilizado en los datawarehouse durante muchos años, sólo con una terminología diferente. Del mismo modo, los patrones de acceso de clave y valor de los DWH no son nuevos en absoluto a las bases de datos que eran capaces de trabajar de forma asíncrona desde hace décadas. Lo que hizo fue el cambio continuo avance en la tecnología de hardware ligada a la evolución de los requisitos de disponibilidad y tamaño de los datos. A punto de romper la ley de Moore y justo por delante de la próxima revolución en-memoria, puede resultar que todos los sistemas de gestión de datos usen ambas aproximaciones de mana conjunta.