MENU

quarta-feira, 27 de junho de 2012

Computação em nuvem, para baixar custos


Até pouco tempo atrás, apenas as grandes empresas podiam ter acesso a ferramentas que agilizam processos e, consequentemente, baixam custos. Com a modernização dos serviços de TI, e a chegada do cloud computing (computação em nuvem), os pequenos e médios empreendedores já podem ter acesso a elas. Presença on line é uma garantia de aproveitar todas as oportunidades que a internet oferece, o que pode significar agilidade, economia, autonomia e modernidade nos processos da empresa. 

Computação em nuvem é a utilização da memória e das capacidades de armazenamento e cálculo de computadores e servidores compartilhados e interligados pela internet, seguindo o princípio da computação em grade. 
O armazenamento de dados é feito em serviços que poderão ser acessados de qualquer lugar do mundo, a qualquer hora, não havendo necessidade de instalação de programas ou de armazenar dados. O acesso aos programas, serviços e arquivos é remoto, através da internet - daí a alusão à nuvem. 
Num sistema operacional disponível na internet, a partir de qualquer computador e em qualquer lugar, pode-se ter acesso a informações, arquivos e programas num sistema único, independente de plataforma. O requisito mínimo é um computador compatível com os recursos disponíveis na internet. O PC torna-se apenas um chip ligado à internet — a "grande nuvem" de computadores — sendo necessários somente os dispositivos de entrada (teclado e mouse) e saída (monitor). 
O mercado brasileiro de computação em nuvem está em pé de igualdade com os melhores do mundo e oferece boas soluções para quem precisa modernizar seu funcionamento. 
Plataformas para hospedar sites e aplicativos, lojas virtuais, banco de dados, sistemas de gestão empresariais, com disponibilidade e segurança e velocidade no tráfego de dados são encontrados a um preço nem tão alto assim. Encontrar uma empresa que se responsabilize pelas configurações, modernização, ampliação da capacidade dos computadores, servidores, etc. acaba com metade da dor de cabeça do empreendedor, a um custo-benefício compensador, na maioria das vezes. Com uma breve pesquisa de mercado, pode-se descobrir, por cerca de R$ 150,00 mensais, uma dessas prestadoras de serviços de TI. 
Diversos empreendedores  estão começando a utilizar essas ferramentas, já que não precisarão mais guardar dados e softwares em computadores e servidores locais. 

Enviado por Sergio Malta.


segunda-feira, 25 de junho de 2012

NÃO PERCA A 3a.EDIÇÃO DO GUOB TECH DAY 2012 !!!



A 3a. edição do GUOB TECH DAY 2012 / OTN  TOUR LAD  será o MAIOR evento     técnico de Oracle já realizado no país. Na verdade nem é um evento  só, são dois ao mesmo tempo!
Palestras do OTN Tour LAD  10 palestrantes internacionais confirmados!!! Como Tom Kyte, Graham Wood, Andrew Holdsworth, Dimitri Gielies, Craig Shallahamer, Tim Tow, Bruno Souza, Patanjali Venkatacharaya, Dana Singleterry e Francisco Munoz Alvarez.
Teremos o evento mundialmente conhecido Real World Performance, onde Tom Kyte, Graham Wood e Andrew Holdsworth realizam simultaneamente um grande workshop sobre performance de banco de dados e aplicações. 
Serão abordados Administração de Bancos de Dados (Oracle e MySQL), como também também temas como Applications, Middleware, Java, e BI.
E ainda o importantíssimo networking e nosso encontro com os amigos !!!



AGENDA

Um pouco da história do ORACLE SGBD (sistema gerenciador de banco de dados)


Oracle é um SGBD (sistema gerenciador de banco de dados) que surgiu no fim dos anos 70, quando Larry Ellison vislumbrou uma oportunidade que outras companhias não haviam percebido, quando encontrou uma descrição de um protótipo funcional de um banco de dados relacional e descobriu que nenhuma empresa tinha se empenhado em comercializar essa tecnologia.
Ellison e os co-fundadores da Oracle Corporation, Bob Miner e Ed Oates, perceberam que havia um tremendo potencial de negócios no modelo de banco de dados relacional tornando assim a maior empresa de software empresarial do mundo.
Além da base de dados, a Oracle desenvolve uma suíte de desenvolvimento chamada de Oracle Developer Suite, utilizada na construção de programas de computador que interagem com a sua base de dados. A Oracle também criou a linguagem de programação PL/SQL, utilizada no processamento de transações.

Índice

  [esconder

[editar]Evolução das versões do SGBD Oracle

Ao longo dos últimos 30 anos a Oracle vem aperfeiçoando seu principal produto e se mantém líder de mercado. A Oracle procura se destacar de seus concorrentes ao adicionar novas funcionalidade ao seu SGBD. Por exemplo, com a versão 8, lançado em 1997, foi adicionado a possibilidade de criação e armazenamento de objetos no banco de dados [1] . Já a versão 8i, lançada em 1999, iniciou melhorias que colocaram o Oracle8i com foco no cenário da Internet [2]. O Oracle8i iniciou a tradição de marketing da Oracle de adicionar uma letra como sufixo no nome da versão e o "i" presente no Oracle8i é para ressaltar seu foco na web [3]. O Oracle8i realmente tem foco na web, foi o primeiro objeto de banco de dados relacional (ORDBMS) mas representa apenas um esboço de características para o então Oracle9i, lançado em 2000 (ano posterior ao de lançamento do Oracle8i) e considerado por publicações oficiais da própria Oracle (Oracle Press Books) como o primeiro banco de dados relacional (RDBMS) que oferece uma plataforma de suporte e desenvolvimento para a Internet. [4][5] Além de oferecer toda infra-estrutura para o suporte ao modelo web, o Oracle9i inovou com uma ferramenta para Servidores Paralelos chamada Real Application Clusters [6], melhorou o suporte a documentos em XML e realizou melhorias fundamentais de performance e gerenciamento no SGBD para o trabalho via Internet. As versões 10g e 11g apresentam o "g" no lugar do sufixo "i", mas ao contrário do que ocorre tradicionalmente da indústria de software, não há nenhuma relação de precedência entre as letras, isto é, não há nenhuma versão anterior a Oracle 10g chamada Oracle 10f, por exemplo. As letras simplesmente representam um recurso de marketing para demonstrar o foco do produto em "Internet" ou "Grid".
Muita controvérsia existe quanto à definição de qual foi, de fato, a primeira versão do Oracle a oferecer uma plataforma para suporte e desenvolvimento de aplicações web, com algumas referência indicando o pioneirismo à versão 9i [4][7] enquanto outras apontam a versão 8i [2][3]. Apesar do pioneirismo do Oracle8i no introdução de características web (JServer e OAS), o Oracle9i foi responsável por oferecer um ambiente completo de desenvolvimento de aplicações voltadas para a web [8][5]. Após o primeiro lançamento da versão 9i, a Oracle lançou releases e continuou aprimorando a sua plataforma de desenvolvimento. Ofereceu melhorias de performance a características de tolerância a falhas e melhorou o suporte ao formato XML [9].

[editar]Edições

Além das diferentes versões do software de gerenciamento de banco de dados Oracle, a Oracle Corporation subdivide seu produto em "edições" variáveis - aparentemente por razões de marketing e controle de licenças.
  • Enterprise Edition (EE) inclui mais funcionalidades que a 'Standard Edition', especialmente nas áreas de performance e segurança. A Oracle Corporation licencia este produto na base de usuários ou de núcleos de processamento, normalmente para servidores com 4 ou mais UCPs. EE não tem limite de memória e pode utilizar clusterização usando o software Oracle RAC.
  • Standard Edition (SE) contem a funcionalidade básica de banco de dados. A Oracle Corporation licencia este produto na base de usuários ou de sockets, normalmente para servidores com um à quatro UCPs. Se o número de UCPs exceder 4, o usuário deve migrar para a licensa Enterprise. SE não possui limite de memória e pode utilizar clusterização com o Oracle RAC sem custo adicional.
  • Standard Edition One, introduzido com o Oracle 10g, possui algumas restrições de funcionalidades adicionais. A Oracle Corporation comercializa-o para uso em sistemas com uma ou duas UCPs. Ela não possui limitações de memória.
  • Express Edition ('Oracle Database XE'), introduzido em 2005, oferece o Oracle 10g livre para distribuição nas plataformas Windows e Linux (com uma limitação de apenas 150 MB e restrita ao uso de apenas uma UCP, um máximo de 4 GB de dados de usuário e 1 GB de memória). O suporte para esta versão é feito exclusivamente através de fóruns on-line, sem o suporte da Oracle.
  • Oracle Personal Edition fornece a funcionalidade de "alto fim" da Enterprise Edition mas é comercializada (e licenciada) para desenvolvedores específicos que trabalham em estações de trabalho pessoais.
  • Oracle Database Lite, destinada para rodar em dispositivos móveis. O banco de dados, localizado parcialmente no dispositivo móvel, pode sincronizar com uma instalação baseada em servidor.

[editar]Ver também

Referências

  1.  R. Greenwald, R. Stackowiak, and J. Stern. "Oracle essentials: Oracle9i, Oracle8i & Oracle8 (2nd ed.)". O’Reilly & Associates, Inc., 2001. ISBN 0-596-00179-7. URLhttp://oreilly.com/catalog/oressentials2/chapter/ch01.html
  2. ↑ a b M. Cyran, R. Baylis, P. Lane, and M. Niebur. "Getting to Know Oracle8i, Release 2 (8.1.6)". Oracle Corporation (December, 1999), 1999. URLhttp://www.oracle.com/pls/tahiti/tahiti.to_pdf?partno=a76962&remark=docindex
  3. ↑ a b J. Morle. "Scaling Oracle8i: building highly scalable OLTP system architectures". Addison-Wesley Professional (January 2, 2000), 2000. ISBN 0-201-32574-8. URL http://www.scaleabilities.co.uk/book/scalingOracle8i.pdf
  4. ↑ a b A. Adkoli and R. Velpuri. Oracle9i for Windows Handbook. McGraw-Hill Professional, 2002. ISBN 0072190922. URL http://books.google.com.br/books?id=L8K5BAt7kzcC&pg=PA2
  5. ↑ a b Overview of Oracle9i, Oracle9i Database New Features, Release 1 (9.0.1). All rights reserved. Disponível emhttp://download.oracle.com/docs/cd/A91202_01/901_doc/server.901/a90120/ch1_over.htm
  6.  Oracle9i Real Application Clusters Concepts, 2002. URL http://download.oracle.com/docs/cd/B10501_01/rac.920/a96597/psintro.htm#15217
  7.  Ferrari, Fabrício Augusto. Crie Banco de Dados em MySQL, 2007, Editora Digerati Books. All rights reserved. Disponível em http://books.google.com.br/books?id=mhPLNARi1NkC&pg=PT113
  8.  Oracle Internet Application Server 8i - A Sneak Preview URL http://www2.sys-con.com/ITSG/virtualcd/java/archives/0507/devin/index.html
  9.  Oracle 11g XML DB vs DB 2 9.5 pureXML v3.0, Oracle. All rights reserved. Disponível em http://www.oracle.com/technetwork/database/features/xmldb/db.pdf

[editar]Ligações externas

Origem: Wikipédia, a enciclopédia livre.

quinta-feira, 14 de junho de 2012

READ ONLY table? Abordando uma nova funcionalidade do Oracle 11g


Para permitir o acesso somente leitura a uma tabela no banco de dados Oracle, normalmente utilizamos a sintaxe GRANT SELECT ON [tabela] TO [usuario], ou seja, somente o privilégio de objeto SELECT será dado pelo usuário proprietário da tabela a um outro usuário do banco de dados. Bem, e se quisermos que o proprietário da tabela também tenha acesso somente leitura a esta tabela? Por padrão, o proprietário (owner) da tabela não possui nenhuma restrição de escrita em suas próprias tabelas e, neste caso, para que o proprietário da tabela tenha acesso somente leitura à tabela, seria necessário criar uma TRIGGER de banco de dados que restringiria operações de INSERTUPDATE e DELETE na tabela, ou até mesmo uma outra solução mais simples, como a de criar uma restrição CHECK no estado DISABLE VALIDATE como demonstrado abaixo:

oracle11g@linux-abr6:~> sqlplus / as sysdba
QL*Plus: Release 11.1.0.6.0 - Production on Sex Mai 2 19:15:56 2008
S Copyright (c) 1982, 2007, Oracle. All rights reserved.
11.1.0.6.0
Conectado a: Oracle Database 11g Enterprise Edition Releas e- Production
tioning, OLAP, Data Mining and Real Application Testing options SQL> conn sc
With the Part iott/tiger Conectado. SQL> create table test (id number); Tabela criada.
d constraint chk_read_only check(
SQL> insert into test values (1); 1 linha criada. SQL> alter table test a
d1=1) DISABLE VALIDATE;
abela alterada.
T
L> insert into test values (2);
S Q
nsert into test values (2)
i* ERRO na linha 1:
serção/atualização/deleção na tabela com restrição (SCOTT.CHK_READ_ONL
ORA-25128: Não há i nY) desativada e validada
update test set id=2;
SQL>
pdate test set id=2
u* ERRO na linha 1:
serção/atualização/deleção na tabela com restrição (SCOTT.CHK_READ_ONL
ORA-25128: Não há i nY) desativada e validada
delete from test;
SQL>
elete from test
d*
O na linha 1: OR
ER
RA-25128: Não há inserção/atualização/deleção na tabela com restrição
(SCOTT.CHK_READ_ONLY) desativada e validada
truncate table test;
SQL>
runcate table test
t* ERRO na linha 1:
serção/atualização/deleção na tabela com restrição (SCOTT.CHK_READ_ONL
ORA-25128: Não há i
nY) desativada e validada

Em resumo, se houver uma restrição DISABLE VALIDATE, então nenhuma modificação será permitida nas colunas restringidas, ou seja, qualquer comando DML e/ou DDL (truncate) não será permitido. Para informações adicionais, no artigo deFevereiro de 2008, eu descrevo sobre algumas funcionalidades dos estados das restrições de integridade.

Aliás, se você percebeu, eu estou conectado a um banco de dados Oracle 11g (11.1.0.6.0) e isso não é por acaso. Nas versões anteriores ao Oracle 11g, para criarmos uma tabela somente leitura teríamos que usar um dos métodos mencionados acima, mas agora poderemos utilizar a facilidade do comando ALTER TABLE que foi aprimorado no Oracle 11g para permitir alterar o estado de uma tabela do modo READ WRITE para o modo READ ONLY e vice versa.


Para demonstrar esta nova funcionalidade, irei criar uma nova tabela de teste.

SQL> drop table test;
Tabela eliminada.
st (id number); Tabela criada. SQ
SQL> create table t eL> insert into test values (1); 1 linha criada.
-- Acessando a view USER_TABLES, podemos verificar que a tabela não está no modo
-- somente leitura
SQL> select table_name, read_only from user_tables;
TABLE_NAME READ_ONLY
EST
------------------------------ ---------
TNO
-- Alterando a tabela para o modo somente leitura
SQL> alter table test READ ONLY;
abela alterada.
T
L> select table_name, read_only from user_tables;
S QTABLE_NAME READ_ONLY
EST
------------------------------ ---------
TYES
QL> insert into test values (2);
S
nsert into test values (2)
i * ERRO na linha 1:
ualização não permitida na tabela "SCOTT"."TEST" SQL>
ORA-12081: operação de a
tupdate test set id=2;
update test set id=2
* ERRO na linha 1:
de atualização não permitida na tabela "SCOTT"."TEST" SQL>
ORA-12081: operaçã
odelete from test;
delete from test
*
linha 1: ORA-12
ERRO n
a081: operação de atualização não permitida na tabela "SCOTT"."TEST"
QL> truncate table test;
S
runcate table test
t *
ha 1: ORA-12081:
ERRO na li
n operação de atualização não permitida na tabela "SCOTT"."TEST"

Então, uma vez que a tabela esteja no modo somente leitura (READ ONLY), nenhum comando DML ou comando DDL (truncate) que modifiquem os dados da tabela não poderão ser executados. Inclusive, os comandos MERGE ou até sentenças SELECT FOR UPDATE não serão permitidos. No meu ponto de vista, esta funcionalidade acrescentada ao comando ALTER TABLE é de muita utilidade quando por algum motivo precisarmos de forma fácil e rápida restringir o acesso de escrita aos usuários nas tabelas do banco de dados.

-- Alterando o modo da tabela para permitir operações de escrita
SQL> alter table test READ WRITE;
abela alterada.
T
L> select table_name, read_only from user_tables;
S QTABLE_NAME READ_ONLY
EST
------------------------------ ---------
TNO
QL> drop table test;
S
bela eliminada.
T a


Oracle Database 11G: 5 mudanças que ocorreram em relação ao 10G


     No artigo de hoje vou comentar sobre algumas mudanças que ocorreram no Oracle Database 11G, em relação a versão anterior deste Banco de Dados (BD), o Oracle Database 10G. Este artigo será bastante útil para quem deseja atualizar o BD para 11G ou para quem já atualizou e ainda não identificou todas as mudanças que ocorreram. Aconselho a aqueles que ainda irão fazer a atualização, que leiam antes o artigo Atualização/Migração de Banco de Dados Oracle 10G para 11G e que configurem o parâmetro COMPATIBLE do BD para manter o 11G com as características de um 10G temporariamente, com o objetivo de "dar um tempo" para que as aplicações sejam adaptadas às mudanças desta última versão.

     As principais mudanças que foram implementadas no 11G e que impactaram nos sistemas dos BDs que eu administro, são relacionadas à segurança do BD. O 11G está mais seguro, nele foram eliminadas várias brechas de segurança que existiam no 10G. Essas novas implementações de segurança, porém, podem gerar erros nas aplicações que já eram executadas no 10G sem problema algum. Neste artigo você verá alguns erros que podem acontecer e algumas formas de como evitá-los.
    
     Dentre as principais mudanças que ocorreram no 11G, irei destacar as seguintes:

        1- Senhas case sensitive: 
      No Oracle 10G as senhas de usuários não são sensíveis aos caracteres maiúsculos e minúsculos. No 11G, por padrão, as senhas são case sensitive.Para desabilitar esse novo comportamento, se for necessário, altere o parâmetro  sec_case_sensitive_logon do BD, como no exemplo abaixo:
            ALTER SYSTEM SET sec_case_sensitive_logon=FALSE SCOPE=BOTH;
        
          Na empresa em que trabalho precisei implementar esta alteração porque temos algumas aplicações que se autenticam com as contas de usuários Oracle. São aproximadamente 3 mil contas de usuários Oracle que são utilizadas diariamente pelos usuários para se autenticar em algumas aplicações. Para evitar suporte demasiado aos usuários com as senhas após a atualização dos BDs, achamos melhor manter as senhascase insensitive (mesmo comportamento da versão 10G).

        2- Roles default com senhas:
      No Oracle 10G se um usuário possui uma role default com senha, ele pode utilizar todos os privilégios daquela role sem fornecer a senha dela. Sempre que a role for default, o usuário nem precisa saber qual é a senha dela. No 11G isso mudou. Agora mesmo que a role seja default, o usuário terá que fornecer a senha para que ele possa utilizar os seus privilégios. Não adianta nem tentar criar uma trigger de logon para fornecer automaticamente a senha de uma role quando determinado usuário se logar, pois o BD não permite executar código para fornecer senhas de roles dentro de triggers de logon. Se você atualizou para 11G e seu BD não está configurado para o modo de compatibilidade com o 10G, você terá que resolver este problema através de 1 das soluções abaixo:
            a) A aplicação ou usuário que deseja utilizar os privilégios da role default com senha terá que executar o seguinte comando: SET ROLE  nome_role IDENTIFIED BY senha
            b) Você terá que alterar a role para não exigir senha (remover senha da role). Em ambientes de homologação eu não configurei o parâmetro COMPATIBLE, neste caso, tive que implementar esta solução nas roles com senha que existiam nestes BDs.
   
        3- Colunas ambíguas
      Ao atualizar para o Oracle 11G algumas funcionalidades das aplicações podem começar a disparar o erro "ORA-00918 column ambiguously defined". Por que isso não ocorria antes? No 11G o otimizador de queries está mais exigente. Se 2 ou mais tabelas possuem colunas com o mesmo nome, ao especificar estas colunas em uma instrução SQL você deverá obrigatóriamente prefixar o álias ou nome da tabela. Sem prefixá-las, acontecerá o erro ORA-00918. Em algumas versões/patchset do Oracle, ele aceitava nomes de colunas ambíguas sem prefixar álias ou nome da tabela. Para evitar este erro, sempre especifique álias ou nome da tabela como prefixo para nomes de colunas nas instruções SQL. Para mais informações, leia: http://dbaspot.com/oracle-faq/475942-ora-00918-column-ambiguously-defined.html.
  
  
        4- Coluna PASSWORD da visão DBA_USERS
      No Oracle 10G, ao consultar a visão DBA_USERS, a coluna PASSWORD exibia a senha criptografada dos usuários do BD. Com isso, usuários com privilégios de DBA, podiam hackear as senhas de usuários de BD (para mais informações leia o artigo http://www.rodrigoalmeida.net/blog/tecnica-de-hack-em-senhas-armazenadas-pelo-oracle). No Oracle 11G a coluna PASSWORD da visão DBA_USERS não exibe mais a senha criptografada dos usuários. Para fazer isso, agora é necessário consultar a visão USER$.
           Ex.:  SELECT NAME, PASSWORD FROM USER$;
     
        5- Compilação de objetos remotos
      No Oracle 11G, objetos remotos são verificados em tempo de compilação. Isso não ocorria no 10G. Antes, se você referenciava um objeto remoto inexistente em uma Stored Procedure (SP), a SP era compilada sem nenhum problema, pois o Oracle só iria validar a existência daquele objeto em tempo de execução. No 11G o Oracle já faz essa validação em tempo de compilação. Achei essa característica muito boa. Isso evita a compilação de objetos que possam retornar erros futuros. Quando atualizei alguns BDs para 11G, o número de objetos inválidos em alguns desses BDs aumentou consideravelmente, devido a objetos remotos que eram referenciados e que não existiam mais. Estes objetos eram lixo que estavam no BD e que só consegui identificá-los na versão 11G.
   
      

quarta-feira, 13 de junho de 2012

SGDB ORACLE 11g R1 e R1.2 - CONCEITOS BÁSICOS


Oque significa SID?
Oracle System ID (SID)

Para que é usado o SID?
É usado para identificar uma instancia do ORACLE no seu Sistema Nativo(Windows,Linux), ou seja A instância do Oracle tem nomenclatura de SID.

Como eu crio Instancias do Oracle em meu Sistema Nativo?
Utilizando a ferramente dbca(explicada no próximo post(Utilitários do Oracle)) ou manualmente, que realmente para quem não quer ser DBA, não interessa tanto.
Posso ter uma Instancia do Oracle ou ter “n” Instancias, ou seja Posso ter 1 SID ou “n” SIDs.

Como configurar o SID?
Configure a variavel de ambiente, ORACLE_SID . Oque quer dizer que você trabalha em particular com aquela instancia do Oracle. So podemos ter uma instancia configurada na variavel SID.

Qual a relação SID e BD ?
SID é oque chamamos em outros SGBD de Criar um BD, em oracle não se cria um Banco de dados, se instala o SGBD Oracle e se cria Instancias do BD ou seja SIDs.


Como configurar manualmente, ORACLE_SID, ORACLE_HOME and PATH?
. oraenv
So serve para plataformas Nativas derivadas de UNIX, ela configura as variavel de ambiente para que o usuario possa se conectar a uma Instancia do banco de dados. Se essas variáveis não estiverem configuradas utilitários como sqlplus,dbca não vão funcionar.

Oque é um Schema?
É o conjunto de TODOS os objetos que pertencem ao usuário.

Oque são esses objetos pertecentes ao usuário do Schema?
tabelas, views, procedures, functions, packages, etc

Quem é o dono do Schema?
O próprio usuário.

Como Criar um Schema?
Crie um Usuário.

Qual o nome do Schema do Usuário?
O nome do Schema do Usuário é o mesmo do usuário, em um usuário chamado “joao”, temos um Schema respectivo a ele chamado “joao”.

Como é feito a criação do Schema?
Após criar um usuário, o Schema daquele usuário é criado automaticamente pelo Oracle.

Como criar um usuário?
CREATE USER IDENTIFIED BY senha;
Isso é feito no SQLPLUS, que esta logo abaixo em Utilitários do Oracle.

Como criar um banco de dados em Oracle?
Em oracle não temos o conceito de Criar um novo banco de dados, o utilitário – dbca – Cria novas Instâncias ou seja (SID), portanto para criar oque em outros SGBD chamamos de novo banco de dados, Em oracle CRIAMOS tabelas nos usuários ou SID(instancias do Oracle via dbca). Então parar criar um novo “BANCO DE DADOS” em oracle CRIE TABELAS NO USUARIO ou crie novos SID. ISSO É EXPLICADO MELHOR EM UTILITÁRIOS DO ORACLE, logo abaixo.


Qual a relação SID e usuários?
Todos os usuários pertecem a um SID(ou seja o criado com dbca, ou seja o BD).

Como eu crio tabelas?
Crie tabelas usando o usuário que você criou.

Se eu criar as tabelas, de quem serão elas?
Quando você cria as tabelas, elas pertecem ao usuário que criou elas.

Quais são os usuário root do oracle?
System e sys, Porem eles não devem ser usados, somente para a criação de novos usuário. Eles são considerados o “root” em sistemas de plataforma Nativa derivadas de UNIX.

Oque é um Listener?
É um processo, que fica Esperando requisição de Conexão a Instancia do banco de dados, no Servidor.

Oque faz o Listener?
Ele estabelece a conexão entre um client para ter acesso ao Oracle em um Servidor, ou seja:
Cliente <-----> Listener <------> Servidor
Se o Listener achar que a Conexão pode ser estabelecidade, os dados fluem normalmente do Cliente para o Servidor, ou seja

Cliente <--------------------> Servidor
E o processo do Listener fica Aguardando Conexões de outros Clientes.

Aonde ficam armazenados os dados do Listener?
No arquivo Listener.ora

Oque devo Intender do Listener.ora?
01. O nome default do listener é listener;
02. O paramêtro ADDRESS_LIST contém um bloco de endereços nos quais o listener atende as conexões recebidas. Cada endereço definido nesse bloco representa uma maneira diferente pela qual um listener recebe uma conexão;
03. Os endereços IPC identificam solicitações de conexão recebidas de aplicações no mesmo nó do listener e informações enviadas ou registradas pelo dispatcher de um banco de dados. Se os endereços IPC identificarem solicitações de conexão do mesmo nó, o valor KEY será igual ao nome de serviço do banco de dados. Se os endereços identificarem o dispatcher de um banco de dados, o valor KEY será igual ao identificador do sistema de banco de dado(SID). Se o nome de serviço é o mesmo do SID, será necessário apenas um endereço IPC.
04. O endereço TCP identifica as conexões TCP recebidas de clientes na rede que estão tentando se conectar à porta 1521. Os clientes utilizam a porta definida no arquivo tnsnames.ora para conectar-se a esse listener. De acordo com o SID_LIST definido para esse listener, o listener especifica o banco de dados ao qual se conectar.
05. Um listener pode atender a mais de um banco de dados em uma máquina. O bloco SID_LIST_listener_name é onde esses SIDs são definidos.
06. O parâmetro SID_LIST será definido se mais de um SID for definido.
07. O parâmetro SID_DESC deve existir para cada SID definido.
08. ORACLE_HOME é onde o diretório home do banco de dados é definido. Ele permite ao listener identificar o local do arquivo executável de um banco de dados.
09. O parâmetro SID_NAME define o nome do SID com o qual o listener aceita conexões.

Como gerenciar o Listener?
Pelo comando em linha de comando: lsnrctl

Como criar Listener?
Pelo comando em linha de comando: netca

terça-feira, 12 de junho de 2012

Habilitando o archivelog mode no Oracle 11g


Para efetuar backups online (hot backup), isto é, fazer backup do banco de dados com ele UP, não havendo necessidade de parar o banco para fazer (cold backup). Você precisa ativar o modo archivelog, desta maneira, os redo logs online são arquivados, criando arquivos de log de todas as transações do banco de dados.
O Oracle grava nos arquivos de redo log online de maneira cíclica: após preencher o primeiro arquivo de log, ele começa a gravar no segundo, até que ele esteja cheio, e em seguida, começa a gravar no terceiro. uma vez que o último arquivo de redo log online esteja cheio, o processo em segundo plano LGWR (log write) começa a sobrescrever o conteúdo do primeiro arquivo.
Por default o modo NOARCHIVELOG vem como padrão, ele protege a integridade do banco de dados no caso de falha de uma instância ou uma queda de sistema, porque todas as transações encerradas com commit, mas que ainda não foram gravadas nos arquivos de dados estarão disponíveis nos arquivos de redo log online.
Quando o Oracle está executando no modo ARCHIVELOG, o processo em background ARCn (archiver process) faz uma cópia de cada arquivo de redo log antes de sobrescrevê-lo. Exemplo: se o disco que esta os data files der algum problema, com os archives logs podemos reconstruir o banco de dados até o momento anterior ao problema, devido a um backup recente dos data files e aos arquivos de redo log que foram gerados desde que ele ocorreu. Abaixo, uma imagem para ilustrar o processo ARC, copiando os arquivos do redo log e passando para a localização do archive log.


Chega de teoria e vamos para a pratica; verificando se esta ativado o archivelog:
SQL> select log_mode from v$database;
LOG_MODE
————
NOARCHIVELOG

Com esta seleção, percebemos que a resposta é que não esta com o archive log mode ativado, outra forma de verificar se esta em archive log mode é:
SQL> archive log list
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     61
Current log sequence           63

Caso queira mudar a localidade dos archives logs, você pode mudar com o seguinte comando:
alter system set LOG_ARCHIVE_DEST_1=’LOCATION=/u01/app/oracle/flash_recovery_area/ mandatory’ scope=both;

Ok, vimos que o modo archivelog esta desabilitado, para habilitar precisamos parar o banco:
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

Subindo a base no estado mount:
SQL> startup mount;
ORACLE instance started.
Total System Global Area  535662592 bytes
Fixed Size                  1337720 bytes
Variable Size             327157384 bytes
Database Buffers          201326592 bytes
Redo Buffers                5840896 bytes
Database mounted.
SQL>

Alterado o banco para o modo archivelog:
SQL> alter database archivelog;
Database altered.

Abrindo o banco:
SQL> alter database open;
Database altered.

Verificando o estado do archive log:
SQL> archive log file;
SP2-0718: illegal ARCHIVE LOG option
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     78
Next log sequence to archive   80
Current log sequence           80

Forçando a troca do archive log, com isso, podemos ver se já foi gerado o arquivo de archive log:
SQL> alter system switch logfile;
System altered.

Descobrindo a onde estão sendo salvos os archives logs:
SQL> show parameter DB_RECOVERY_FILE_DEST
NAME                                 TYPE        VALUE
———————————— ———– ——————————
db_recovery_file_dest                string      $ORACLE_BASE/flash_recovery_area
db_recovery_file_dest_size           big integer 2G

Agora podemos verificar se foi gerado o archivelog, com o comando pwd mostro o diretório corrente e com o ls eu listo os arquivos da pasta:
[oracle@oracle11g 2011_07_13]$ pwd
/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_07_13
[oracle@oracle11g 2011_07_13]$ ls -lah
total 22M
drwxr-x— 2 oracle oinstall 4.0K Jul 13 10:08 .
drwxr-x— 3 oracle oinstall 4.0K Jul 13 09:59 ..
-rw-r—– 1 oracle oinstall 21M Jul 13 09:59 o1_mf_1_80_71v96hr3_.arc
-rw-r—– 1 oracle oinstall 978K Jul 13 10:08 o1_mf_1_81_71v9pr0h_.arc

Algumas views importantes para informações do archive log:
ViewsDescrição
V$DATABASEMostra se a base de dados esta em ARCHIVELOG ou NOARCHIVELOG
V$ARCHIVED_LOGExibe historico dos ARCHIVELOGS do CONTROL FILES. Se você usar um catálogo de recuperação, a view RC_ARCHIVED_LOG contém informações semelhantes.
V$ARCHIVE_DESTDescreve o estado atual da instância, todos os destinos dos archives e o tamanho atual.
V$ARCHIVE_PROCESSESExibe informações sobre o estado dos processos de arquivo diferentes para uma instância.
V$BACKUP_REDOLOGContém informações sobre todos os backups dos archived logs. Se você usa o recovery catalog, o RC_BACKUP_REDOLOG contém informações similares.
V$LOGExibe todos os grupos de redo log para o banco de dados e indica que precisam ser arquivados.
V$LOG_HISTORYContém informações de logs registros, que marca os archives com o range de SCN, para cada archive log.