Páginas

25 de out. de 2013

Novidades do Oracle Database 12c (Parte 2)

Olá pessoal,

     Dando continuidade ao artigo Novidades do Oracle Database 12c (Parte 1), hoje irei comentar sobre novos recursos do Oracle Database 12c, tais como: recursos relacionados à segurança, ao Data Pump, ao Data Guard e alguns outros que facilitam o desenvolvimento de aplicações que utilizam Bancos de Dados Oracle.
 
     Como foi dito na primeira parte deste artigo, a numeração dos itens relacionados aos novos recursos seguirá a do artigo anterior:


16- Lista branca de objetos de BD para referenciar blocos PL/SQL
     Este recurso permite aumentar a segurança do BD criando uma lista branca (White List) de objetos, tais como visões, tabelas e triggers,  que podem acessar um determinado bloco PL/SQL (function, procedure, package ou type specification). A lista branca deve ser criada no mesmo schema do bloco PL/SQL sobre o qual o acesso será controlado.

17- Privilégios default da role RESOURCE
     O privilégio UNLIMITED TABLESPACE não faz mais parte da role RESOURCE. Esta mudança também permite aumentar a segurança do BD, porém é importante estar atento à ausência deste privilégio quando você for atualizar o BD (a partir de uma versão anterior).

18- Data/hora do último login do usuário
     Agora é possível consultar na tabela USER$ a data do último login de usuário no BD. Para mim, essa informação é extremamente útil, pois nos BDs que eu administro, configurei rotinas de manutenção que bloqueiam um usuário que não se loga no BD após um determinado período, e depois de mais outro período, este usuário é excluído do BD. Hoje, no 11G, tenho que verificar a última data de login através de registros de auditoria, o que não é muito seguro, pois eles podem ser excluídos a qualquer momento!

19- Oracle DataPump utiliza como default SecureFiles LOBs
     O utilitário impdp e a package DBMS_DATAPUMP possuem um novo parâmetro para indicar se os campos do tipo LOB serão criados como BasicFile LOBs ou SecureFiles LOBs. O valor default indica que os campos do tipo LOB serão importados como SecureFiles LOBs. Isso é muito bom para quem vai atualizar o BD a partir de uma versão anterior, pois SecureFiles LOBs permitem o uso de vários recursos (Criptografia, Compressão e Deduplicação) que o tipo BasicFile LOBs (mais antigo) não suporta.

20- Oracle DataPump suporta operações Full Transportable
     Visando a consolidação de Bancos de Dados, o DataPump agora suporta operações do tipo: mover um BD inteiro não-CDB para um BD PDB ou CDB, mover um PDB para outro PDB ou não-CDB, ou mover um BD CDB para outro CDB.

21- Oracle Datapump permite exportar visões como tabelas
     O utilitário expdp e a package DBMS_DATAPUMP agora possuem um novo parâmetro que permitem exportar visões como tabelas. Ao invés de exportar a definição da visão, o Data Pump a transforma em uma definição de tabela e carrega essa tabela com todos os dados que ele consultar na visão, no momento da exportação.

22- Oracle Datapump possui opção para fazer import sem logging
     Para agilizar o processo de importação e economizar espaço de redo/archive logs, o utilitário impdp e a package DBMS_DATAPUMP possuem um novo parâmetro chamado DISABLE_ARCHIVE_LOGGING, que permite desabilitar a geração de logs ao importar tabelas e índices.

23- Cross-Plataform Backup and Restore
     Visando facilitar migrações de Banco de Dados para plataformas diferentes, os comandos de BACKUP e RESTORE agora possuem opções para gerar/restaurar backups em plataformas diferentes. Este novo recurso diminui a complexidade de usar cross-plataform transportable tablespace e cross-plataform transportable database.
  
24- Image copies multi-seção
     Visando otimizar o tempo de geração de backups do tipo Image copies, o recurso de backups multi-seção, criado no 11G somente para BackupSets, foi estendido agora para os backups do tipo Image copies. 

25- RMAN CLI melhorado
     Este é um dos novos recursos que são simples, mas que facilitam muito o dia a dia de um DBA. No 12c, dentro do utilitário de linha de comando (CLI) do RMAN, nós podemos executar instruções SQL e comandos DESCRIBE diretamente, do mesmo modo que fazemos no SQL Plus, e também podemos ver o resultado de instruções SELECT.

26- Recuperação de tabelas a partir de backup do RMAN
     Este é mais um dos novos recursos que eu achei fantástico! Recuperar uma tabela de um backup em versões anteriores não era algo simples nem tão rápido. Em versões anteriores, temos que criar um banco auxiliar, restaurar um backup nele, fazer um export com as tabelas desejadas, e por fim, importar o dump no BD target. No 12c este trabalho todo ficou mais simples, agora temos a opção de restaurar apenas 1 ou mais tabelas de um backup. Este recurso além de simplificar bastante o trabalho de um DBA, permite também aumentar a sua produtividade.

27- Active Data Guard suporta DML em GTTs
     Em um ambiente com Data Guard, aplicações que geram relatórios e que precisam gravar dados  temporariamente, poderão usar tabelas globais temporárias (GTTs) no Standby Database, quando ele estiver habilitado como Active Data Guard, no 12c.

28- Active Data Guard suporta o uso de sequences de sessão
     Do mesmo modo que no item anterior o Active Data Guard suporta GTTs, agora ele também suporta sequences de sessão, que viabilizam o uso de valores sequenciais únicos, ao inserir dados nas PKs das GTTs.

29- Extensão de tipos de dados permitidos em instruções SQL que invocam blocos PL/SQL
     Nas versões anteriores do Oracle Database, você NÃO podia chamar dentro de uma instrução SQL, um bloco PL/SQL, como por exemplo, uma função, que continha um parâmetro do tipo BOOLEAN. Essa e outras restrições foram removidas, quando você chamar a função a partir de uma instrução SQL que está dentro de um bloco anônimo.

30- Colunas invisíveis
     No 12c pode criar colunas que podem ser acessadas somente quando forem explicitamente referenciadas. Instruções do tipo DESCRIBE ou SELECT * não mostram as colunas invisíveis. Este recurso é bastante útil para evitar erros inesperados nas aplicações que utilizam a prática ruim de executar SELECT * para recuperar dados.

31- Valor default para colunas utilizando Sequences
     Agora você pode definir como valor default de uma coluna, uma referência às funções NEXTVAL e CURRVAL de uma SEQUENCE. Isso permite a criação de uma espécie de coluna de auto-incremento, que é muito comum em outros SGBDs.

32- Colunas do tipo IDENTITY
     Esse recurso está extremamente ligado ao recurso anterior. Para suportar o padrão ANSI SQL, que especifica tipos de dados IDENTITY, a Oracle criou um novo tipo de dado que permite auto-incremento (útil para as PKs), que nada mais é do que a implementação interna de um mecanismo composto de uma coluna com uma Sequence como valor default. Muito bom para Desenvolvedores que já trabalham com outros SGBDs e que são iniciantes em Oracle.

33- Result Sets implícitos
     Para pegar os resultados de uma instrução SELECT executada em um bloco PL/SQL (Ex.: Procedure)  você não precisa mais da declaração de um CURSOR como parâmetro de saída. Isso permite chamar mais facilmente, Stored Procedures que retornam dados para a aplicação, efetuando um procedimento parecido com o que é feito em outros SGBD´s (retorno dos dados sem a declaração de cursores explícitos). Muito bom para Desenvolvedores que já trabalham com outros SGBDs e que são iniciantes em Oracle. 

34- TRUNCATE TABLE CASCADE
     Este novo recurso é bom para quem cria FKs com a opção ON DELETE CASCADE, onde ao apagar linhas da tabela pai, as linhas da tabela filha também são apagadas automaticamente. Ao executar TRUNCATE TABLE CASCADE na tabela pai, as linhas da tabela filha também serão truncadas (se a FK for do tipo ON DELETE CASCADE). Em quase 13 anos trabalhando na área de TI, raramente vi FKs desse tipo, mas o recurso é bastante útil para quem precisar.

Bom pessoal, por hoje é só! 

A 3ª e última parte deste artigo já está disponível neste link.
 
   
[]s

Referências:
   - Pro Oracle Database 12c Administration, Editora: Apress, Autor: Darl Kuhn;
   
   - Oracle Database New Features guide 12c Release 1

Nenhum comentário:

Postar um comentário