quarta-feira, 23 de maio de 2018

EXÍMIO SOLUÇÕES EM TI




A Exímio Soluções em TI é uma empresa de Brusque - SC, especializada em entregar projetos de TI e Sustentação de ambientes de Banco de Dados e Middleware.

Surgiu com o propósito de prestar serviços de alta qualidade com profissionais especializados, comprometidos e inovadores que proporcionem satisfação e qualidade em seus entregáveis.

Apostamos na certificação e capacitação de seus profissionais para se destacar no mercado e prestar serviços que superem as expectativas de seus clientes.

Atualmente contamos com mais de 20 anos de experiência e mais de 20 certificações que comprovam nossas competências técnicas



quarta-feira, 11 de abril de 2018

#DICA ERROR 1819 (HY000): Your password does not satisfy the current policy requirements


Por padrão no mysql o nível de segurança para senha vem definido como médio através do plugin validate_password e por isso podemos ter o erro ERROR 1819 (HY000) na definição de uma senha, caso ela não atenda os requisitos mínimos de segurança.
mysql> create user lamim@'localhost' identified by 'lamim123';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql>
Porém em ambientes de teste ou homologação podemos precisar definir uma senha que não tenha alta complexidade ou a aplicação pode exigir uma senha especifica que não atenda esses requisitos. Apesar de não ser recomendado, esse nível de validação pode ser alterado através do parâmetro validate_password_policy, definindo o mesmo para LOW ao invés de MEDIUM  ou HIGH.
mysql> show global variables like 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.01 sec)

mysql>
Para alterar o parâmetro validate_password_policy, basta executar o comando abaixo.
mysql>  SET GLOBAL validate_password_policy=LOW;
Query OK, 0 rows affected (0.00 sec)
Após a alteração do parametro, vamos testar a criação do usuário que anteriormente apresentou erro.
mysql> create user lamim@'localhost' identified by 'lamim123';
Query OK, 0 rows affected (0.41 sec)

mysql>

domingo, 8 de abril de 2018

#Dica ORA-01017 durante switchover Oracle 12c


Durante uma janela de manutenção na qual foi preciso realizar um processo de switchover do ambiente, foi constatada a ocorrência do erro ORA-01017: invalid username/password; logon denied, como pode ser evidenciado abaixo.
DGMGRL> switchover to cdbprd1;
Performing switchover NOW, please wait...
Operation requires a connection to instance "cdbprd1" on database "cdbprd1"
Connecting to instance "cdbprd1"...
ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

        connect to instance "cdbprd1" of database "cdbprd1"

DGMGRL> exit
A primeira ação foi realizar um show configuration para validar as configurações e constatar a existência de algum erro, que neste caso não foi constatado.
[oracle@lamim12c:cdbprd1 dbs]$ dgmgrl
DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production

Copyright (c) 2000, 2013, Oracle. All rights reserved.

Welcome to DGMGRL, type "help" for information.
DGMGRL> connect sys
Password:
Connected as SYSDG.
DGMGRL> show configuration;

Configuration - broker_config

  Protection Mode: MaxPerformance
  Members:
  cdbadg1 - Primary database
    cdbadg2 - Physical standby database
    cdbprd1 - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS   (status updated 44 seconds ago)
Na próxima etapa foram validadas as conexões sysdba de ambos os ambientes e também não tivemos erro nos testes de conexão.
Basicamente o erro estava ocorrendo devido a conexão com o broker estar sendo realizada com as credenciais / as sysdba que não é recomendada pela Oracle, sendo necessário passar o usuário e senha.
Desta forma, foi realizada uma nova conexão passando o usuário e senha e na sequencia foi realizado o processo de switchover que foi executado com sucesso desta vez.
[oracle@lamim12c:cdbprd1 dbs]$ dgmgrl
DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production

Copyright (c) 2000, 2013, Oracle. All rights reserved.

Welcome to DGMGRL, type "help" for information.
DGMGRL> connect sys
Password:
Connected as SYSDG.
DGMGRL> show configuration;

Configuration - broker_config

  Protection Mode: MaxPerformance
  Members:
  cdbadg1 - Primary database
    cdbadg2 - Physical standby database
    cdbprd1 - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS   (status updated 52 seconds ago)

DGMGRL> switchover to cdbprd1;
Performing switchover NOW, please wait...
Operation requires a connection to instance "cdbprd1" on database "cdbprd1"
Connecting to instance "cdbprd1"...
Connected as SYSDBA.
New primary database "cdbprd1" is opening...
Oracle Clusterware is restarting database "cdbadg1" ...
Switchover succeeded, new primary is "cdbprd1"

DGMGRL> show configuration;

Configuration - broker_config

  Protection Mode: MaxPerformance
  Members:
  cdbprd1 - Primary database
    cdbadg1 - Physical standby database
    cdbadg2 - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS   (status updated 52 seconds ago)

Fonte:https://docs.oracle.com/en/database/oracle/oracle-database/12.2/dgbkr/oracle-data-guard-broker-commands.html#GUID-AC5DA9D2-5E60-4484-9099-0388BF238ACA

quinta-feira, 5 de abril de 2018

#Dica - Erro na coleta após migração para o 12c - ORA-20000: Unable to gather statistics concurrently: Resource Manager is not enabled.


Durante a execução de uma coleta de estatística na versão 12.2 tivemos a ocorrência do erro ORA-20000: Unable to gather statistics concurrently: Resource Manager is not enabled. 
Ao verificar o mesmo, identificamos que este erro é comum em ambiente igrados de 11g para 12c. (DOC ID 2049013.1), exatamente o mesmo cenário que tínhamos. 
SQL> begin
dbms_stats.gather_schema_stats(
ownname=>'LAMIM',
options=>'GATHER',
method_opt => 'FOR ALL COLUMNS SIZE AUTO',
degree=>5) ;
end;  2    3    4    5    6    7
  8  /
begin
*
ERROR at line 1:
ORA-20000: Unable to gather statistics concurrently: Resource Manager is not
enabled.
ORA-06512: at "SYS.DBMS_STATS", line 35980
ORA-06512: at line 2
Afim de evitar o erro, basta habilitarmos o resource Manager ou desabilitar as estatísticas concorrentes. Para a efetivação das alterações, será necessário realizar um restart da instância.

Enable Resource Manager:

SQL> alter system set resource_manager_plan = 'DEFAULT_PLAN' scope=spfile;

Disable concurrent statistics gathering by setting the CONCURRENT preference to OFF:

SQL> exec dbms_stats.set_global_prefs('CONCURRENT', 'FALSE');

Unable To Gather Statistics, Receive "ORA-20000: Resource Manager Plan Is Not Active or is not managing CPU usage" Error Following Upgrade to 12c (Doc ID 2049013.1)

terça-feira, 27 de março de 2018

Oracle 18c On Premise


A versão mais recente do Oracle (18c) atualmente está disponível apenas para ambientes Cloud, Exadata e Supercluster, conforme pode ser verificado através do Oracle Software Delivery Cloud desde 16 de fevereiro de 2018.

Conforme descrito por Mike Dietrich, a Oracle prevê a liberação da versão oficial para os demais ambiente em Julho de 2018. Essa informação pode ser validada através da DOC ID 742060.1.

Release Schedule of Current Database Releases (Doc ID 742060.1)

terça-feira, 6 de março de 2018

#DICA Pacotes pdksh-5.2.14 e elfutils-libelf-devel-0.97 faltantes Oracle 11.2.0.4 no Oracle Linux 7


Durante a instalação do Oracle 11.2.0.4 na última versão do Oracle Linux (7.x - atualmente na 7.4), podemos ter a advertência de que os pacotes pdksh e elfutils estejam faltando. Isso ocorre devido ao bug 19947777 e os mesmos podem ser ignorados da instalação. 
Oracle 11.2.0.4.0 on Oracle Linux 7
Para ignorar os mesmos na instalação, basta cancelar o processo e executar novamente com o parâmetro ignorePrereq. Vale destacar que este comando ignora qualquer um dos pré requisitos, desta forma devemos validar que as únicas advertências estão relacionadas aos pacotes mencionados.
$ ./runInstaller -ignorePrereq
Referências: Missing pdksh-5.2.14 package during Oracle database 11.2.0.4 install on Oracle Linux 7 (Doc ID 1962046.1)

quinta-feira, 22 de fevereiro de 2018

#DICA - Limpando um SQL da Shared Pool



A limpeza completa da Shared pool pode ser executada através de um alter system flush shared_pool. Porém algumas vezes, podemos nos deparar com a necessidade de "limpeza" de apenas um comando SQL da Shared Pool e não podemos realizar uma limpeza de toda a Shared Pool, uma vez que este processo ocasionará um impacto significativo se executado em um ambiente produtivo.

A partir da versão 11G,a Oracle introduziu a procedure Purge na package DBMS_SHARED_POOL. Permitindo que seja realizada a limpeza de apenas um SQL. Para execução deste processo, precisaremos identificar o address e o hash_value do processo que iremos limpar.
DBMS_SHARED_POOL.PURGE (
   name    VARCHAR2, 
   flag    CHAR DEFAULT 'P', 
   heaps   NUMBER DEFAULT 1)
O parâmetro name é composto pelo address e hash_value. Já o parâmetro flag deve ser definido como:
P para package/procedure/function, 
T para type, 
R para trigger 
Q sequence e 
C para um SQL ou cursor.

No exemplo abaixo vamos efetuar a limpeza do sql select 1 from dual da shared_pool.
SQL> SELECT ADDRESS, HASH_VALUE, SQL_ID,sql_text FROM V$SQL WHERE sql_id='520mkxqpf15q8';

ADDRESS          HASH_VALUE SQL_ID        SQL_TEXT
---------------- ---------- ------------- ---------------------------------------------
00000003D51EAFF8 2866845384 520mkxqpf15q8 select 1 from dual

SQL> exec DBMS_SHARED_POOL.PURGE ('00000003D51EAFF8,2866845384','C');

PL/SQL procedure successfully completed.

SQL> SELECT ADDRESS, HASH_VALUE, SQL_ID,sql_text FROM V$SQL WHERE sql_id='520mkxqpf15q8';

no rows selected

SQL>
Fonte:
https://docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_shared_pool.htm#i996877
Proxima → Página inicial