31
Jan

Mi primer Artículo en Portugues

Guatemala, India and Brazil are working together to improve the knowledge in Latin America:


We are very proud of to share to you all our first article in Portuguese about Oracle Exadata Database Machine. The name of our article is "Oracle Exadata Database Machine: Segurança a nível de ASM e de Banco de Dados (Parte 1)".
http://www.oracle.com/technetwork/pt/articles/database-performance/seguranca-nivel-asm-banco-de-dados-2129933-ptb.html

Authors:
Deiby Gómez (Oracle ACE) from Guatemala
Yenugula Venkata RaviKumar (Oracle Certified Master) from India
David Siquiera (Oracle ACE) from Brazil

Oracle Exadata Database Machine: Segurança a nível de ASM e de Banco de Dados (Parte 1)

Por Deiby Gómez Robles , Yenugula Venkata RaviKumar (OCM) e David Siqueira 

Postado em janeiro 2014

Introdução: A questão de segurança no acessoaos dados é um tema muito importante dentros das empresas e algo que debemos dar maisatenção, implementar e não descartar esta opção. Em se tratando de ambientes EXADATA DATABASE MACHINE, temo suma organização do hardware dividos entre Servidores de Banco de Dados ( Database Servers) e Servidores de Armazenamento( Storage Servers ), a titulo de exemplo temo suma HALF HACK, que possui 4 servidores de Banco de Dados e 7 servidores para armazenamento, isto nos leva a umaquestão:Quais servidores de banco de dados, podemacessar os servidores de armazenamentoQuaisCluster de ASM podemacessarquais discos?Poisbem,este é o obejtivo principal desteartigo,entrarmosmais a fundo naadministração dos banco de dados, e tambémentendermos como é a forma de utilização da segurança e suaimplementaçãodenteo de um "Oracle ExadataDatabase Machine".

A segurança á nível de Célula de Exadata( ExadataCell ) éresponsaveldireta por determinar quem é que irá acessar as "ExadataCell" e seus respectivos "Grid Disks", este tipo de segurança pode ser implementado a partir de duaspespectivas:

  1. Segurança a nível de ASM
  2. Segurança a nível de Banco de Dados

As boas práticas da implementação de segurança, recomendam que seja realizado umplanejamento antes mesmo da existencia da Base de Dados no que dizrespeito a segurançaemASM .

Complete article here:

http://www.oracle.com/technetwork/pt/articles/database-performance/seguranca-nivel-asm-banco-de-dados-2129933-ptb.html

 

Facebooktwitterlinkedinmailby feather
31
Jan

Oracle ACE Newsletter January 2014

Oracle Technology Network
Oracle ACE Program Newsletter
By ACEs, For ACEs January 2014

Oracle ACE Spotlight Kellyn Pot'Vin, Oracle ACE DirectorKellynPotVin

Kellyn Pot'Vin is an Oracle ACE Director, Oak Table Member and Sr. Technical Specialist. She specializes in environment optimization tuning and creating systems that are robust and enterprise level. Kellyn works almost exclusively on mult-TB size databases, including Exadata and solid state disk solutions and is known for her extensive work with both the Enterprise Manager 12c and its command line interface. She is the co-author on a number of technical books, hosts webinars for ODTUG, OTN and All Things Oracle and has presented at Oracle Open World, HotSos, Collaborate, KSCOPE, along with numerous other US and European conferences. Kellyn is a strong advocate for Women in Technology, (WIT) citing education on topics regarding stereotypes and presenting opportunities early as the path to overcoming challenges.

Kellyn lives in Westminster, CO, which is northwest of Denver and near the beautiful Rocky Mountains. She lives with her partner, Tim Gorman (also an ACE Director) and is the proud mother of three children, Samuel, Caitlyn and Joshua. Her dog, DaVinci, a Jack Russel/Bull Terrier mix, can often be seen in her photos when she's capturing her adventures on telecommuting. She enjoys bike riding, yoga, knitting, painting and reading when she's not furthering the advancement for Women in Technology, the Rocky Mtn. Oracle User Group community and the DBA Kevlar brand on social media.

Kellyn is AKA "DBA Goth Cowgirl." You can read more about how that came to be here.

Oracle ACE Program News

Welcome New Oracle ACEs

Initiated Dec 2013 / Jan 2014

Name Location Focus
James Anthony United Kingdom DB
Martin Bach Germany DB
Deiby Gomez Guatemala DB
Chet Justice United States DB
Edelweiss Kammerman  Uruguay BI
Eduardo Legatti Brazil DB
Mike Nader United States BI
Martin Nash United Kingdom DB
Fabio Prado Brazil DB
Danilo Schmiedel Germany OFM
Wilfred van der Deijl  Netherlands OFM
Luis Weir United Kingdom OFM
Alex Zaballa Brazil DB

Oracle ACE Dinner at RMOUG 2014

Only a few days until RMOUG, Feb 5-7, Denver, CO. Don't miss out on this annual conference where you will be able to hang and have lunch with your 29 Oracle ACE and ACE Director participants. If you haven't registered yet, there's still time to reserve your spot.

You are also invited to join us at the Oracle ACE dinner on Thu, Feb 6, 6:30pmMaggiano's. Please RSVP to Vikki Lira if you are able to attend.

Upcoming Oracle Virtual Developer Days

Tuesday, Feb 4, 2014 – 9am to 1pm PT: Building and Deploying Oracle Database Apps Using Modern Talking technique

Thursday, Feb 20, 2014 – 9am to 1pm PT: Creating a Foundation for Cloud Applications using Oracle WebLogic and Oracle Coherence

Call for Papers

DOAG 2014 Business Intelligence | April 3, 2014 | Munich, Germany
Submission deadline: Jan 31

DOAG 2014 Database | June 3, 2014 | Düsseldorf, Germany
Submission deadline: Jan 31

DOAG 2014 Development | June 4, 2014 | Düsseldorf, Germany
Submission deadline: Jan 31

OUG Scotland | June 11-12, 2014 | Linlithgow, Scotland
Submission deadline: Feb 10

Austria OUG | June 17, 2014 | Vienna, Austria
Submission deadline: Feb 16

Call for Articles

OTech Magazine | Spring Edition
Submission deadline: TBD

UKOUG Oracle Scene Magazine | Summer Edition
Submission deadline: April 11

Oracle Press Authoring Opportunity

Have expertise in JAX-RS 2.0 or Java Embedded technologies? Contact Senior Acquisitions Editor, Brandi Shailer atbrandi.shailer@mheducation.com to discuss authoring opportunities.

Special Packt Publishing Video Discount

Receive 50% Oracle ACE discount for Packt's entire video range, including the brand new Oracle Coherence Quickstart and Oracle Data Integrator Essentials – just enter "ACE50VIDEO" at checkout.

Meeting the Challenge of Big Data E-Book: Part Two

Learn about the power of big data analytics from the eBook Meeting the Challenge of Big Data: Part Two and find value with the torrent of new data that’s available to your organization. Discover how Oracle Engineered Systems, powered by Intel® Xeon® processors, provide a powerful platform that will help you meet the challenge of big data and derive new value for your business.

Interested in Writing?

If you have the enthusiasm for communicating technical ideas and concepts, have a valuable experience or a technical skill that you're keen to share with readers, you should give serious consideration to authoring a book or becoming a technical reviewer. Please contactsheila.cepero@oracle.com for more details

> back to the top
 

Oracle ACE Quick Links

Oracle ACE Directory

Oracle ACE Nomination Forms

Oracle ACE Google Map

Follow @oracleace on Twitter

Join the Oracle ACE group on Facebook

Join the Oracle ACE group on LinkedIn

Oracle Blogs

Oracle Technology Network

OTN Discussion Forums

Oracle Wiki

Oracle.com

subscribe
Subscribe to Oracle newsletters
What Are You Doing?
Have you published an article? Are you speaking somewhere? Promote yourself here!
Comments? Suggestions?
Oracle ACE Watch

NEWS

Congratulations to our new usergroup board members:

NWOUG:
Membership Coordinator: Bex Huff
Secretary/Advertising: Ray Smith

Profit Magazine: Top Trends 2014

The 2014 Top Trends have been published in the latest edition of Profit Magazine. Special thanks to ACE Directors Sten Vesterli, Debra Lilley, Ron Batra and Oracle ACE Satyendra Kumar Pasalapudi for sharing their thoughts and insights.

Are you recognized as a leader in your field?

If not, are you ready to be? Then Apply to the ODTUG Leadership Program. The Leadership Program is a journey consisting of monthly webinars on subjects ranging from leadership styles, effective communication, mentoring, and ethics as well as the challenges of leading volunteers.Apply today for this very unique opportunity.

ADF Mastery Newsletter

ACE Director Sten Vesterli has started a monthly ADF newsletter called ADF Mastery. You can sign up to start receiving your free copy here.

ODTUG APEX Theming Competition 2014

This is your opportunity to create APEX themes and have them viewed by the entire international APEX community. ACE Director Martin D'Souza and Oracle ACE Christian Rokitta will part of the judging panel. The winner will be crowned 2014 ODTUG APEX Theme Developer of the Year during the Kscope conference, June 22-26. Learn more here.

NEW ARTICLES

Oracle Magazine: Hide from Prying Eyes, written by ACE Director Arup Nanda

Oracle Magazine: Get Started, written by Tom Haunert, interviewed ACE Director Arup Nanda. Listen to the podcast.

Oracle Magazine: Marking a Change, written by Jeff Erickson, interviewed ACE Director Kellyn Pot'Vin.

OTech Magazine: SOA Made Simple: choosing the right SOA and BPM Suite component based on classification, written by ACE Director Ronald van Luttikhuizen

OTech Magazine: Enforcing Principle of Least Privilege, written by Oracle ACE Biju Thomas

OTech Magazine: Maturity of Service Oriented Architectures, written by Oracle ACE Douwe Pieter van den Bos

OTech Magazine: The World According to Oracle: Oracle OpenWorld 2013 and beyond, written by ACE Director Lucas Jellema

OTech Magazine: Enterprise Deployment of Oracle Fusion Middleware Products, Part 1 written by ACE Director Simon Haslam

OTech Magazine: Case Management or Business Process Management? written by ACE Director Lonneke Dikmans

OTech Magazine: Why I Don't Use WebLogic JMS Topics written by Oracle ACE Ahmed Aboulnaga

OTech Magazine: Future is now, ODI 12c written by ACE Director Gurcan Orhan

OTech Magazine: From Requirements to Tool Choice, written by ACE Director Sten Vesterli

OTech Magazine: NoSQL and Oracle, written by Oracle ACE James Anthony

Java Magazine : Fix This Code Challenge, written by Oracle ACE Deepak Vohra

Java Magazine : Solution to Fix This Code Challenge, written by Oracle ACE Deepak Vohra

OTN: MorphoTrak – Biometrics ID (case study), written by Oracle ACE Aris Prassinos

OTN: Oracle Exadata Database Machine: IO Resource Manager (IORM), written by Oracle ACE Deiby Gomez (in Spanish)

OTN: Oracle RAC 12c: "Flex ASM" and "Flex Cluster", written by Oracle ACE Deiby Gomez (in Spanish)

OTN: Management Recommendations for Oracle SOA Suite 11G. Part 1 of 2, written by Oracle ACE Rolando Carrasco (in Spanish)

OTN: Oracle Database 12c: Transporte de Tablespaces de 11.2.0.3 a 12.1 ( Parte III ), written by ACE Director Joel Perez (in Spanish)

OTN: Oracle Database 12c: Cloning Plugabble Databases (PDBs)
Parte I ), (parte II), written by ACE Director Joel Perez and Oracle ACE Wissem El Khlifi (in Spanish)

OTN: Oracle Database 12c: Upgrade Oracle Database 12c (Parte I), (Parte II), (Parte III), (Parte IV), written by ACE Director Joel Perez and Oracle ACE Wissem El Khlifi (in Spanish)

OTN: Oracle Database 12c: Flex ASM, written by ACE Director Joel Perez and Oracle ACE Wissem El Khlifi (in Spanish)

OTN: OBIEE 11.1.1.7 new feature: Custom Print Designs (Custom Print Layouts), written by Oracle ACE Edelweiss Kammermann (in Spanish)

OTN: Oracle Database 12c articles, written by Oracle ACE Alex Zaballa (in Spanish)

– Truncate Cascade 12c
– Queryable Patch Inventory 12c
– Dois novos recursos do Oracle Data Pump 12c
– Recuperando tabelas com o RMAN 12c

GPO: Oracle Database 12c articles, written by Oracle ACE Alex Zaballa (in Portuguese)

– 12c – Multiple Indexes on the same set of Columns
– 12c- SQL*Loader Express
– 12c – Invisible Columns
– 12c – Grid Infrastructure Management Repository (MGMTDB)

OTN: Oracle Database 12c: Transporte de Bases de Dados Cross-Platform (parte I), (parte II), written by ACE Director Joel Perez, Mahir M. Quluzade & Oracle ACE Rodrigo Mufalani (in Portuguese)

BLOG POSTS

Tag Cloud

This post written by ACE Director Lucas Jellema explores Data Visualization with an HTML 5 Canvas based Tag Cloud powered by JSON.

Configure OHS mod_wl_ohs.conf

Oracle HTTP Server (OHS) is the Web server component for Oracle Fusion Middleware. It provides a HTTP listener for Oracle WebLogic Server and the framework for hosting static pages, dynamic pages, and applications over the Web. In his blog, Oracle ACE Osama Mustafa describes how to configure Oracle WebTier for Redirecting Purpose.

Best practices in solution architecture for Oracle EBS, OBI, Hyperion Planning

Oracle ACE Alex Antonatos shares his hands on tips for best practices when designing your Oracle financial footprint information using R12, Hyperion and OBI.

Adding Targets and Keeping it Clean

Here is a post describing ACE Director Kellyn Pot'Vin's client's environment that shows just how important it is to ensure your server environment is kept pristine.

"Which Way Do I Go?"

ACE Director Debra Lilley guest posts on the Oracle AppAdvantage Blogand talks about how people are transforming their businesses using Oracle Technology.

Twelve new DBA commands for Oracle 12c

ACE Director Julian Dontcheff share 12 new commands in Oracle 12c that will help DBA's with database administration, consolidation, security and availability features.

ACE Director Markus Eisele's latest posts from his German Heise Blog

– NetBeans and WildFly grow together
– JavaLand Highlights
– Influence Java EE 8 (Survey Part 2)

Seconds_behind_master vs. Absolute slave lag

Read this post by Oracle ACE Shlomi Noach to learn about getting the definite metrics your application can trust.

SOA Governance FAQ

What is SOA Governance? Why do I need it? What are the benefits of implementing SOA Governance and SOA the most common pitfalls? This and many other questions are answered in the SOA Governance FAQ by Oracle ACE Luis Weir.

Luis also describes the different components that build up the Oracle Foundation Pack (former AIA Foundation Pack) and also provide some useful architectural diagrams describing its key components.

Practical Example for ADF Active Data Service

ACE Director Andrejus Baranovskis describes in his post the practical approach to implement Active Data Service push update mechanism in ADF applications, leveraging Oracle DB offered notifications functionality over JDBC.

Oracle PL/SQL Code Execution from TimesTen

This post written by Oracle ACE Gennady Sigalaev describes the example of execution of Oracle PL/SQL code from TimesTen.

If you're not using Hugepages, you're doing it Wrong!

Read this brief discussion of hugepages and why they're important for Oracle database configuration provided by Oracle ACE Mark Bobak.

How to Check Broken Job for Oracle Scheduler (DBMS_SCHEDULER)?

Oracle ACE Surachart Opun blogs an example with Oracle Scheduler and how DBAs can check broken job for Oracle Job (dbms_job) at *_JOBS.BROKEN column. DBAs have changed the use from DBMS_JOB to DBMS_SCHEDULER.

Oracle 11g New Optimizer Hint: APPEND_VALUES for Improving Insert Performance

One of the most common ways to improve the performance of an INSERT operation is to use the optimizer hint called APPEND. Find out why in Oracle ACE Ami Aharonovich's latest guest post.

Look who's tweeting now – Sending OEM Notifications via Twitter

Oracle ACE Leighton Nelson shares detailed steps for sending Tweets from Oracle Enterprise Manager in his latest post.

NEW BOOKS

Oracle PL/SQL Programming, 6th Edition by ACE Director Steven Feuerstein. Order a signed copy directly from Steven! It supports a good cause! (available now)

Practical Oracle Database Appliance by Oracle ACE Bobby Curtis, ACE Director Yury Velikanov, et al. (available now)

Oracle SOA Governance 11g Implementation by Oracle ACE Luis Weir and Andrew Bell. (available now)

Facebooktwitterlinkedinmailby feather
23
Jan

Oracle Database 12c: Dato curioso sobre UNDO Tablespace en PDBs

En Oracle Database 12.1.0.1 existe un dato curioso, no sé a ciencia cierta si el comportamiento del tablespace UNDO en una PDB es adecuado o se le pasó por alto a los desarrolladores de Oracle. Como bien indica la documentación de Oracle 12c, la nueva arquitectura Multitenant cuenta con tres tipos de bases de datos:

  • PDB (Pluggable Database)
  • non-CDB (Base de datos de tipo convencional, tal como la conociamos hasta la versión 11g)
  • CDB (Container Database)

En una base de datos de tipo CDB, las PDBs comparten los mismos archivos de redo log, el mismo tablespace UNDO y el tablespace TEMP (opcional) del ROOT. De esta manera, la información de todas las transacciones de las PDBs son logeadas a los mismos redo logs agregando una "etiqueta" dentro de los redo logs para indicar de qué PDB es cual operación. Oracle Golden Gate 12c fué actualizado para poder entender este tipo de redo logs extendido. El comportamiento del tablespace UNDO es similar al de los redo logs, todas las PDBs comparten el mismo UNDO, el cual pertenece al ROOT.  

arquitectura

Una vez dado esta pequeña introducción pasemos a ver el dato curioso, que en lo personal, categorizo como "bug" pues considero que no debería ser el comportamiento adecuado. Posiblemente Oracle vaya a eliminar este comportamiento en sus releases futuros.

Comportamiento de los switches de los redo logs:

[oracle@orcl12c ~]$ export ORACLE_SID=cdb1
[oracle@orcl12c ~]$ sqlplus / as sysdba

SQL> select pdb_id, pdb_name, status from cdb_pdbs;

PDB_ID PDB_NAME             STATUS
—— ——————– ————-
     3 PDB1                 NORMAL
     2 PDB$SEED             NORMAL
     4 PDB2                 NORMAL

Como bien se ve, en el CDB existen 2 PDBs (PDB1 y PDB2), más el SEED.

Se procede a realizar un switch de los redo logs:

SQL> alter session set container=cdb$root;

Session altered.

SQL> show con_name

CON_NAME
——————————
CDB$ROOT
SQL> alter system switch logfile;

System altered.

La operación a nivel del CDB es terminada correctamente, es coherente, los redo logs pertenecen al ROOT.

Realizar switch de los redo logs en una PDB:

SQL> alter session set container=pdb1;

Session altered.

SQL> show con_name

CON_NAME
——————————
PDB1

SQL> alter system switch logfile;
alter system switch logfile
*
ERROR at line 1:
ORA-65040: operation not allowed from within a pluggable database

Esto también es coherente, los redo logs son del ROOT y no de los PDBs. Las PDBs unicamente agregan una "etiqueta" en sus operaciones dentro de los redo logs para indicar que dichas operaciones le pertenecen.

Hasta aqui vemos todo normal con el comportamiento de los redo logs, pero… ¿qué pasa con el UNDO tablespace? ¿sucederá lo mismo?

Comportamiento de UNDO Tablespace en un PDB:

Información sobre los tablespaces y sus respectivos datafiles a traveS de todo el CDB:

select tablespace_name, file_name from cdb_data_files

TABLESPACE_NAME      FILE_NAME
——————– —————————————————————————————————-
USERS                +DATA/CDB1/DATAFILE/users.273.819646749
UNDOTBS1             +DATA/CDB1/DATAFILE/undotbs1.274.819646753
SYSAUX               +DATA/CDB1/DATAFILE/sysaux.271.819646307
SYSTEM               +DATA/CDB1/DATAFILE/system.272.819646523
SYSTEM               +DATA/CDB1/DD7C48AA5A4404A2E04325AAE80A403C/DATAFILE/system.285.819646843
SYSAUX               +DATA/CDB1/DD7C48AA5A4404A2E04325AAE80A403C/DATAFILE/sysaux.284.819646843
SYSTEM               +DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/DATAFILE/system.288.819647541
SYSAUX               +DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/DATAFILE/sysaux.289.819647541

USERS                +DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/DATAFILE/users.291.819647593

9 rows selected.

Como se ve, existe un solo Tablespace UNDO, este tablespace tiene un solo datafile (+DATA/CDB1/DATAFILE/undotbs1.274.819646753).

Información de los tablespace dentro de PDB1:

SQL> alter session set container=pdb1;

Session altered.

SQL> show con_name

CON_NAME
——————————
PDB1

SQL> select tablespace_name, file_name from dba_data_files;

TABLESPACE_NAME      FILE_NAME
——————– —————————————————————————————————-
SYSTEM               +DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/DATAFILE/system.288.819647541
SYSAUX               +DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/DATAFILE/sysaux.289.819647541
USERS                +DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/DATAFILE/users.291.819647593

La información es coherente pues el UNDO que utiliza PDB no de ella, sino del ROOT. Es por eso que no lo vemos como un tablespace propio de PDB1.

Creación de un Tablespace UNDO en PDB1:

A continuación crearé un nuevo tablespace UNDO con un datafile fuera de ASM para que pueda destacarse de todos los demás existentes, sin embargo, el comportamiento es igual si se mandara el nuevo datafile hacia ASM.

SQL> create undo tablespace dgomez_undo datafile '/home/oracle/dgomez_undo.dbf' size 50M;

Tablespace created.

surprise!!!

Oracle dice que ha creado un tablespace UNDO en el PDB….. frown

Veamos si el tablespace existe:

SQL> select tablespace_name, file_name from dba_data_files;

TABLESPACE_NAME      FILE_NAME
——————– —————————————————————————————————-
SYSTEM               +DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/DATAFILE/system.288.819647541
SYSAUX               +DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/DATAFILE/sysaux.289.819647541
USERS                +DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/DATAFILE/users.291.819647593

No, nada por aqui…. será que habrá algo por allá?

SQL> alter session set container=cdb$root;

Session altered.

SQL> select tablespace_name, file_name from cdb_data_files;

TABLESPACE_NAME      FILE_NAME
——————– —————————————————————————————————-
USERS                +DATA/CDB1/DATAFILE/users.273.819646749
UNDOTBS1             +DATA/CDB1/DATAFILE/undotbs1.274.819646753
SYSAUX               +DATA/CDB1/DATAFILE/sysaux.271.819646307
SYSTEM               +DATA/CDB1/DATAFILE/system.272.819646523
SYSTEM               +DATA/CDB1/DD7C48AA5A4404A2E04325AAE80A403C/DATAFILE/system.285.819646843
SYSAUX               +DATA/CDB1/DD7C48AA5A4404A2E04325AAE80A403C/DATAFILE/sysaux.284.819646843
SYSTEM               +DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/DATAFILE/system.288.819647541
SYSAUX               +DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/DATAFILE/sysaux.289.819647541
USERS                +DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/DATAFILE/users.291.819647593

9 rows selected.

No, nada por aqui. No existe un tablespace llamado dgomez_undo, tampoco existe el datafile creado en /home/oracle como parte del actual Tablespace UNDO (UNDOTBS1).

Este es el comportamiento que a mi parecer no es correcto. Considero que Oracle, al igual que sucedió con los ALTER SYSTEM SWITCH LOGFILE, tendría que informar que la operación CREATE UNDO TABLESPACE no es posible a nivel de un PDB.

¿Qué piensan ustedes?

 

 

Facebooktwitterlinkedinmailby feather
22
Jan

Oracle Database 12c: shutdown transactional

Significado de colores:

  • Sessión donde se realiza la transacción.
  • Sessión donde se realiza el shutdown transactional.
  • Visualización del alert log (tail -f)

Creacion de una transacción en una PDB:

[oracle@orcl12c ~]$ export ORACLE_SID=pdb1

[oracle@orcl12c ~]$ sqlplus dgomez@pdb1

SQL> select * from dgomez.dgomez;

        ID FIRST_NAME           LAST_NAME
———- ——————– ——————–
         1 U*@GY                bXvXA
         2 Ee;d                 XBR;aP
         3 LW3Zx7               ?0Q[&

SQL> insert into dgomez.dgomez values(4,'Deiby','Gomez');

1 row created.

Realizar shutdown transactional

[oracle@orcl12c ~]$ export ORACLE_SID=cdb1

[oracle@orcl12c ~]$ sqlplus / as sysdba

QL> shutdown transactional;
Database closed.
Database dismounted.
ORACLE instance shut down.

Visualización del alert log

Wed Jan 22 10:17:14 2014
Shutting down instance (transactional)
Stopping background process SMCO
Shutting down instance: further logons disabled
Stopping background process CJQ0
Stopping background process MMNL
Stopping background process MMON
All transactions complete. Performing immediate shutdown
License high water mark = 24
Wed Jan 22 10:17:17 2014
All dispatchers and shared servers shutdown
ALTER DATABASE CLOSE NORMAL

Resultado: Como se pudo observar, "Shutdown transactional" no espera por transacciones activas en las PDBs.

 

Creacion de una transacción en el CDB:

[oracle@orcl12c ~]$ export ORACLE_SID=cdb1

[oracle@orcl12c ~]$ sqlplus / as sysdba

SQL> create table dgomez (id number primary key, value varchar2(29));

Table created.

SQL> insert into dgomez values (1,'deiby');

1 row created.

Realizar shutdown transactional

[oracle@orcl12c ~]$ export ORACLE_SID=cdb1

[oracle@orcl12c ~]$ sqlplus / as sysdba

SQL> shutdown transactional;

(La operación esperó hasta que la transacción activa en el CDB terminara)

Visualización del alert log

Wed Jan 22 10:24:04 2014
Opening pdb PDB1 (3) with no Resource Manager plan active
Pluggable database PDB1 opened read write
Completed: alter pluggable database pdb1 open
Shutting down instance (transactional)
Stopping background process SMCO
Shutting down instance: further logons disabled
Stopping background process CJQ0
Stopping background process MMNL
Stopping background process MMON

(Esa fué la ultima linea registrada en el alert log luego de lanzar el shutdown transactional)

Terminando la transacción:

SQL> commit;

Commit complete.

El shutdown transaccional finalizó luego de realizar commit:

Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>

En el alert log se registró la finalización de la operacion:

Wed Jan 22 10:24:04 2014
Opening pdb PDB1 (3) with no Resource Manager plan active
Pluggable database PDB1 opened read write
Completed: alter pluggable database pdb1 open
Shutting down instance (transactional)
Stopping background process SMCO
Shutting down instance: further logons disabled
Stopping background process CJQ0
Stopping background process MMNL
Stopping background process MMON
All transactions complete. Performing immediate shutdown
License high water mark = 8
Wed Jan 22 10:34:52 2014
All dispatchers and shared servers shutdown
ALTER DATABASE CLOSE NORMAL
Wed Jan 22 10:34:54 2014
SMON: disabling tx recovery
Wed Jan 22 10:34:54 2014

Resultado: La operación "Shutdown transactional" espera hasta que todas las transacciones activas en el CDB finalicen.

Facebooktwitterlinkedinmailby feather
22
Jan

Password file format=12 vs format=Legacy

Dentro de mis prácticas para prepararme para el upgrade de OCP 12c me surgió la duda de cómo luce un password file con format=12 y un password file con format=legacy. Bueno, no me quedé con la duda y aqui les comparto la información que obtuve:

La principal diferencia es que en 12 los privilegios SYSDG, SYSBACKUP y SYSKM son soportados, mientras que en Legacy no.

Nota: Esta práctica se realizó con una no-CDB recien creada, sin usuarios adicionales.

orapwd file=orapworcl password=manager1 format=12 force=y;

SQL> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP SYSAS SYSBA SYSDG SYSKM     CON_ID
—————————— —– —– —– —– —– —– ———-
SYS                            TRUE  TRUE  FALSE FALSE FALSE FALSE          0
SYSDG                          FALSE FALSE FALSE FALSE TRUE  FALSE          0
SYSBACKUP                      FALSE FALSE FALSE TRUE  FALSE FALSE          0
SYSKM                          FALSE FALSE FALSE FALSE FALSE TRUE           0

orapwd file=orapworcl password=manager1 format=legacy force=y;

SQL> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP SYSAS SYSBA SYSDG SYSKM     CON_ID
—————————— —– —– —– —– —– —– ———-
SYS                            TRUE  TRUE  FALSE FALSE FALSE FALSE          0

Facebooktwitterlinkedinmailby feather
20
Jan

Fusionar tablas no-particionadas dentro de una tabla particionada

Reciban un cordial saludo colegas de Oracle, en este nuevo artículo veremos un tema muy curioso que quizas no es tan común en la vida laboral, sin embargo, es bueno que lo conozcamos. 

Alguna vez se han preguntado: ¿Como uno N tablas no-particionadas en una sola tabla particionada?

Bueno, en este momento asumo que ya están pensando en respuestas a esta posible pregunta…..

La primer opcion que considero que a la mayoría se les viene a la mente es:

  • CREATE AS SELECT * FROM TABLE1 UNION SELECT * FROM TABLE2 …. UNION SELECT * FROM TABLEN;

Pues bueno, esta solución no es tan eficiente como veremos en la practica de este articulo. Lo recomendado sería un intercambio de particiones. La sintaxis para el intercambio de particiones es la siguientes:

exchange partition

 

 

 

 

 

 

 

 

 

 

Las tablas  DGOMEZ.table_from_1_to_5000000 y  DGOMEZ.table_from_5000000_to_10000000 son las que se desean fusionar:

SQL> desc DGOMEZ.table_from_1_to_5000000;

 Name                                      Null?    Type
 —————————————– ——– —————————-
 ID                                        NOT NULL NUMBER
 OWNER                                     NOT NULL VARCHAR2(128)
 OBJECT_NAME                               NOT NULL VARCHAR2(128)
 SUBOBJECT_NAME                                     VARCHAR2(128)
 OBJECT_ID                                 NOT NULL NUMBER
 DATA_OBJECT_ID                                     NUMBER
 OBJECT_TYPE                                        VARCHAR2(23)
 CREATED                                   NOT NULL DATE
 LAST_DDL_TIME                             NOT NULL DATE
 TIMESTAMP                                          VARCHAR2(19)
 STATUS                                             VARCHAR2(7)
 TEMPORARY                                          VARCHAR2(1)
 GENERATED                                          VARCHAR2(1)
 SECONDARY                                          VARCHAR2(1)

SQL> DESC dgomez.table_from_5000000_to_10000000;
 Name                                      Null?    Type
 —————————————– ——– —————————-
 ID                                         NOT NULL        NUMBER
 OWNER                                     NOT NULL VARCHAR2(128)
 OBJECT_NAME                               NOT NULL VARCHAR2(128)
 SUBOBJECT_NAME                                     VARCHAR2(128)
 OBJECT_ID                                 NOT NULL NUMBER
 DATA_OBJECT_ID                                     NUMBER
 OBJECT_TYPE                                        VARCHAR2(23)
 CREATED                                   NOT NULL DATE
 LAST_DDL_TIME                             NOT NULL DATE
 TIMESTAMP                                          VARCHAR2(19)
 STATUS                                             VARCHAR2(7)
 TEMPORARY                                          VARCHAR2(1)
 GENERATED                                          VARCHAR2(1)
 SECONDARY                                          VARCHAR2(1)


exec dbms_stats.gather_table_stats(ownname=>'DGOMEZ',tabname=>'TABLE_FROM_1_TO_5000000',cascade=>TRUE);
exec dbms_stats.gather_table_stats(ownname=>'DGOMEZ',tabname=>'TABLE_FROM_5000000_TO_10000000',cascade=>TRUE);

Tamaño de cada una de las tablas:

SQL> SELECT SEGMENT_NAME , SUM(BYTES/1024/1024) MB FROM DBA_SEGMENTS WHERE SEGMENT_NAME LIKE ('TABLE_FROM%') GROUP BY SEGMENT_NAME;

SEGMENT_NAME                           MB
—————————— ———-
TABLE_FROM_1_TO_5000000               576
TABLE_FROM_5000000_TO_10000000        576

Como pueden ver, las tablas no son tan grandes (0.5 GB), sin embargo, es suficiente para esta demostración

 

Union de las dos tablas no particionadas dentro de la tabla particonada usando CREATE AS SELECT:

SQL> CREATE TABLE "DGOMEZ"."TABLE_FUSION" TABLESPACE "USERS"
  2  PARTITION BY RANGE (id) (PARTITION dgomez_part1 VALUES LESS THAN (5000001), PARTITION dgomez_part2 VALUES LESS THAN (10000001))
  3  AS SELECT * FROM DGOMEZ.TABLE_FROM_1_TO_5000000
  4  UNION
  5  SELECT * FROM DGOMEZ.TABLE_FROM_5000000_TO_10000000;

Table created.

Elapsed: 00:04:42.44

Creación de la llave primaria:

SQL> alter table dgomez.TABLE_FUSION add constraint TABLE_FUSION_PK primary key(id);

Table altered.

Elapsed: 00:02:09.31

Verificación de las filas:

exec dbms_stats.gather_table_stats(ownname=>'DGOMEZ',tabname=>'TABLE_FUSION',cascade=>TRUE);

SQL> SELECT PARTITION_NAME , NUM_ROWS FROM DBA_TAB_PARTITIONS WHERE TABLE_NAME='TABLE_FUSION';

PARTITION_NAME                   NUM_ROWS
—————————— ———-
DGOMEZ_PART1                      5000000
DGOMEZ_PART2                      5000000

Tiempo Total: 06 minutos con 51 segundos.

Resultado: Como se pudo apreciar, la técnica milenaria CREATE AS SELECT produce una gran cantidad de tiempo para unas tablas relativamente pequeñas. ¿Se imaginan cuando tiempo tomaria usar esta tecnica con tablas de Teras?

Ahora veamos la tecnica del intercambio de particiones:

Eliminación de la tabla:

SQL> drop table dgomez.table_fusion purge;

Table dropped.

Elapsed: 00:00:01.30

Creación de la tabla particonada:


CREATE TABLE "DGOMEZ"."TABLE_FUSION"
   (    "ID" NUMBER,
        "OWNER" VARCHAR2(128) NOT NULL ENABLE,
        "OBJECT_NAME" VARCHAR2(128) NOT NULL ENABLE,
        "SUBOBJECT_NAME" VARCHAR2(128),
        "OBJECT_ID" NUMBER NOT NULL ENABLE,
        "DATA_OBJECT_ID" NUMBER,
        "OBJECT_TYPE" VARCHAR2(23),
        "CREATED" DATE NOT NULL ENABLE,
        "LAST_DDL_TIME" DATE NOT NULL ENABLE,
        "TIMESTAMP" VARCHAR2(19),
        "STATUS" VARCHAR2(7),
        "TEMPORARY" VARCHAR2(1),
        "GENERATED" VARCHAR2(1),
        "SECONDARY" VARCHAR2(1)
   )   TABLESPACE "USERS" 
PARTITION BY RANGE (id) (PARTITION dgomez_part1 VALUES LESS THAN (5000001), PARTITION dgomez_part2 VALUES LESS THAN (10000001));

Table created.

Elapsed: 00:00:00.24

Creación de la llave primaria:


SQL> alter table dgomez.TABLE_FUSION add constraint table_fusion_pk primary key(id);

Table altered.

Elapsed: 00:00:00.08

Intercambio de la primer partición con la primera tabla: 


SQL> ALTER TABLE DGOMEZ.TABLE_FUSION EXCHANGE PARTITION DGOMEZ_PART1 WITH table DGOMEZ.TABLE_FROM_1_TO_5000000 WITHOUT VALIDATION ;


Table altered.

Elapsed: 00:00:03.56

Intercambio de la segunda partición con la segunta tabla:

SQL> ALTER TABLE DGOMEZ.TABLE_FUSION EXCHANGE PARTITION DGOMEZ_PART2 WITH table DGOMEZ.TABLE_FROM_5000000_TO_10000000 WITHOUT VALIDATION ;

Table altered.

Elapsed: 00:00:04.97

Verificación de las filas:

SQL> SELECT PARTITION_NAME , NUM_ROWS FROM DBA_TAB_PARTITIONS WHERE TABLE_NAME='TABLE_FUSION';

PARTITION_NAME                   NUM_ROWS
—————————— ———-
DGOMEZ_PART1                      5000000
DGOMEZ_PART2                      5000000

Tiempo Total: 8 segundos aproximadamente. ¡WOW!

Resultado: Algunos han logrado aumentos de salario utilizando esta tecnica con tablas de Terasbytes :)

 

Facebooktwitterlinkedinmailby feather
19
Jan

Mejoras en la clausula SELECT en Oracle Database 12c

En Oracle Database 12 la clausula SELECT ha sido mejorada y ahora soporta los siguientes filtros:

  • Retornar las primeras X filas: Esto puede lograrse mediante el filtro FETCH FIRST X ROWS ONLY
  • Retornar las Y filas siguientes a X: Esto puede lograrse mediante el filtro OFFSET X ROWS FETCH NEXT Y ROWS ONLY; 
  • Retornar todas las filas posteriores a la fila X: Esto puede lograrse mediante el filtro OFFSET X ROWS
  • Retornar el M porcentaje de filas unicamente: Esto es posible mediante el filtro FETCH FIRST M PERCENT ROWS ONLY

Sintaxis: 

fetch

 

 

 

 

 

 

 

 

 

Esto es muy interesante pues permite mucha flexibilidad a la hora de manejar las filas retornadas por una consulta.

Por ejemplo, si queremos el TOP 10 de Consultas ordernadas por CPU podriamos hacer uso de FETCH FIRST 10 ROWS ONLY.

Bueno, ahora procedamos a lo que más interesa: La práctica.

Creación de una tabla ejemplo:

SQL> create table dgomez(id number not null primary key, value varchar(20));

Table created.

Insertar 10 filas las cuales servirán de ejemplo:

SQL> insert into dgomez values (1,'deiby');

1 row created.

SQL> insert into dgomez values (2,'mauricio');

1 row created.

SQL> insert into dgomez values (3,'gomez');

1 row created.

SQL> insert into dgomez values (4,'robles');

1 row created.

SQL> insert into dgomez values (5,'guatemala');

1 row created.

SQL> insert into dgomez values (6,'oracle');

1 row created.

SQL> insert into dgomez values (7,'database');

1 row created.

SQL> insert into dgomez values (8,'ajedrez');

1 row created.

SQL> insert into dgomez values (9,'darth vader');

1 row created.

SQL> insert into dgomez values (10,'batman');

1 row created.

SQL>

Seleccionar las primeras X filas:

SQL> select id, value from dgomez order by id FETCH FIRST 3 ROWS ONLY;

        ID VALUE
———- ——————–
         1 deiby
         2 mauricio
         3 gomez

Seleccionar las Y filas posteriores a X:

SQL> select id, value from dgomez order by id OFFSET 3 ROWS FETCH NEXT 3 ROWS ONLY;

        ID VALUE
———- ——————–
         4 robles
         5 guatemala
         6 oracle

Seleccionar todas las filas posteriores a X+Y:

SQL> select id, value from dgomez order by id OFFSET 6 ROWS ;

        ID VALUE
———- ——————–
         7 database
         8 ajedrez
         9 darth vader
        10 batman

Seleccionar el M% de filas:

SQL> select id, value from dgomez order by id FETCH FIRST 31 PERCENT ROWS ONLY;

        ID VALUE
———- ——————–
         1 deiby
         2 mauricio
         3 gomez
         4 robles

Nota: Tal como se ve el valor indicado es redondeado hacia arriba. En este casó 31% lo redondeó a 4 filas de las 10 que existen en la tabla.

Para más información consultar la documentación oficial de Oracle:

http://docs.oracle.com/cd/E16655_01/server.121/e17209/statements_10002.htm#SQLRF55266

Facebooktwitterlinkedinmailby feather
13
Jan

Oracle Exadata Database Machine: IO Resource Manager (IORM)

Deiby Gómez (Oracle ACE) de Guatemala y Yenugula Venkata RaviKumar (Oracle Certified Master) de India han escrito un nuevo artículo sobre Oracle Exadata Database Machine titulado "Oracle Exadata Database Machine: IO Resource Manager (IORM)". Guatemala e India estan trabajando juntos para mejorar el conocimiento en Latinoamerica. 

Oracle Exadata Database Machine: IO Resource Manager (IORM)

Por Deiby Gómez Robles  y Yenugula Venkata RaviKumar (Oracle Certified Master) 

Publicado en enero 2014

Introducción

La distribución de los recursos no es un tema nuevo dentro de una base de datos Oracle, siempre ha existido la posibilidad de distribuir recursos de CPU en una base de datos, sin embargo, la distribución de los recursos de escritura y lectura (IO) es una característica que solamente existe en "Oracle Database Machine" y es posible gracias a la "inteligencia" que los "Exadata Storage Server" tienen.

"IO Resource Manager (IORM)" es un componente muy importante dentro de un "Exadata Storage Server" el cual tiene como objetivo distribuir los recursos de IO hacia diferentes receptores. 

Para leer el articulo completo ir al siguiente link:

http://www.oracle.com/technetwork/es/articles/database-performance/io-resource-manager-2100979-esa.html

Facebooktwitterlinkedinmailby feather
10
Jan

Oracle Exadata Database Machine: “Write-Back Flash Cache”

Esta es la primera vez en que Venezuela, Guatemala e India se han unido para trabajar juntos con el objetivo de mejorar el conocimiento de Oracle en America Latina. Joel Pérez (Oracle ACE Director) de Venezuela, Deiby Gómez (Oracle ACE) de Guatemala y Yenugula Venkata RaviKumar (Oracle Certified Master) de India han escrito el artículo sobre Oracle Exadata Database Machine titulado "Oracle Exadata Database Machine: Write-Back Flash Cache". 

Oracle Exadata Database Machine: “Write-Back Flash Cache”

Por Joel Pérez  , Deiby Gómez  y Y.V RaviKumar (OCM)

Publicado en enero 2014

Desde el nacimiento de “Oracle Exadata” en el año 2008 en su primera versión optimizada para “Data Warehousing”, progresivamente se han adicionado nuevas características para aumentar su capacidad de trabajo para base de datos de tipo “Data warehousing” (muchas consultas contra grandes cantidades de datos) y OLTP (muchas sentencias de escritura y lectura) o incluso para ser capaz de soportar cargas combinadas.

Tener un óptimo rendimiento siempre ha sido el principal objetivo de la solución “Oracle Exadata” y esto ha sido posible gracias al surgimiento de nuevas características como “Smart Scan”, “Smart Flash Cache”, “Smart Flash Log”, “Storage Indexes”, entre otros. La ultima característica que fue adicionada para asegurar el mejor rendimiento de “Oracle Exadata” fue "Write-Back Flash Cache" la cual surge como una combinación de hardware (Flash Drives) y el Software (Exadata Storage Server Software).

Para ver el articulo completo ir al siguiente link:

http://www.oracle.com/technetwork/es/articles/database-performance/exadata-write-back-flash-cache-2101480-esa.html

Facebooktwitterlinkedinmailby feather
7
Jan

Oracle Exadata Database Machine: “Exadata Hybrid Columnar Compression (EHCC)”

Deiby Gómez (Oracle ACE) de Guatemala y Yenugula Venkata RaviKumar (Oracle Certified Master) de India han escrito un nuevo artículo sobre Oracle Exadata Database Machine titulado "Oracle Exadata Database Machine: Exadata Hybrid Columnar Compression (EHCC)". Guatemala e India estan trabajando juntos para mejorar el conocimiento en Latinoamerica. 

 

Oracle Exadata Database Machine: “Exadata Hybrid Columnar Compression (EHCC)”

Por Deiby Gómez Robles  y Yenugula Venkata RaviKumar (Oracle Certified Master) 

Publicado en enero 2014

Introducción

Reciban un cordial saludo estimados tecnólogos Oracle, en esta oportunidad estaremos tratando un tema muy común, que en más de alguna ocasión tuvimos que pasar (o pasaremos), estamos refiriéndonos al problema de manejar grandes cantidades de datos en una ambiente donde no tenemos suficiente espacio y además, no debemos afectar tanto el rendimiento de nuestras aplicaciones. Bueno, una de las características que Oracle nos provee para manejar adecuadamente este tipo de escenarios es la compresión de los datos utilizando "Hybrid Columnar Compression" que en esta ocasión lo estaremos aplicando en un ambiente de "Oracle Exadata Machine". Veremos en qué nos puede beneficiar esta característica y también analizaremos resultados de Compresión entre los diferentes tipos que existen.

Para ver el artículo completo visite el siguiente link:

http://www.oracle.com/technetwork/es/articles/database-performance/exadata-hybrid-columnar-compression-2098797-esa.html

Facebooktwitterlinkedinmailby feather