Baixe o app para aproveitar ainda mais
Prévia do material em texto
Copyright © 2004, Oracle. Todos os direitos reservados. Banco de Dados Oracle 10g: Workshop de Administração I Apresentação Eletrônica D17090BP10 Produção 1.0 Junho 2004 D39461 ® Copyright © 2004, Oracle. Todos os direitos reservados. Copyright © 2004, Oracle. Todos os direitos reservados. Esta documentação contém informações de propriedade da Oracle Corporation. Ela é fornecida sob um contrato de licença que contém restrições quanto ao uso e à divulgação, além de ser protegida pela legislação de direitos autorais. É proibida a engenharia reversa do software. Se esta documentação for distribuída a uma Agência Governamental subordinada ao Departamento de Defesa dos EUA, ela terá direitos restritos e o seguinte aviso deverá ser aplicado: Aviso de Direitos Restritos A utilização, a duplicação ou a divulgação pelo governo estará sujeita às restrições impostas a um software comercial e deverão ser aplicadas as leis federais relativas a um software com direitos restritos, como definidos no subparágrafo (c)(1)(ii) de DFARS 252.227-7013, Rights in Technical Data and Computer Software (Direitos sobre Dados Técnicos e Software de Computadores) (outubro de 1988). Este material, ou parte dele, não poderá ser copiado de qualquer forma ou por qualquer meio sem a prévia permissão expressa por escrito da Oracle Corporation. Qualquer outra cópia constituirá uma violação da legislação de direitos autorais e poderá resultar em indenizações civis e/ou criminais. Se esta documentação for distribuída a uma Agência Governamental que não pertença ao Departamento de Defesa dos EUA, ela terá "direitos restritos", conforme definido no FAR 52.227-14, Rights in Data-General (Direitos Gerais sobre Dados), incluindo Alternate III (Alternativa III) (junho de 1987). As informações contidas neste documento estão sujeitas a alterações sem aviso prévio. Se você encontrar algum problema na documentação, envie ao departamento Worldwide Education Services uma descrição de tal problema por escrito. Oracle Corporation, 500 Oracle Parkway, Box SB-6, Redwood Shores, CA 94065 - USA. Distribuidor no Brasil: Oracle do Brasil Sistemas Ltda. Rua José Guerra, 127, São Paulo, SP - 04719-030 - Brasil - CNPJ: 59.456.277/0001-76. A Oracle Corporation não garante que esta documentação esteja isenta de erros. Oracle e todas as referências a produtos da Oracle são marcas comerciais ou registradas da Oracle Corporation. Todos os outros nomes de empresas e produtos são usados com o único propósito de identificação e podem ser marcas comerciais dos respectivos proprietários. Autor Ric Van Dyke Russ Lowenthal Revisores e Colaboradores Técnicos Donna Keesling S. Matt Taylor Jean-Francois Verrier Craig Hollister Bob Bungenstock Tony Woodell Joel Goodman John Watson Dairy Chan Martin Jensen Janet Stern Dr. Sabine Teuber Kyle Hailey Christopher Lawless Dominique Laugraud Isabelle Marchand Yi Lu Editores Elizabeth Treacy Jobi Varghese Copyright © 2004, Oracle. Todos os direitos reservados. Introdução Copyright © 2004, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Explicar os objetivos do curso • Identificar a linha de produtos Oracle • Descrever os conceitos básicos de um banco de dados relacional • Listar as principais tarefas de um administrador de banco de dados Copyright © 2004, Oracle. Todos os direitos reservados. Objetivos do Curso Neste curso, você irá adquirir experiência prática para executar as seguintes tarefas: • Instalar, criar e administrar um banco de dados Oracle Database 10g Enterprise Edition. • Configurar o banco de dados para uma aplicação • Implementar uma estratégia de backup e recuperação • Utilizar procedimentos básicos de monitoração Copyright © 2004, Oracle. Todos os direitos reservados. Produtos Oracle • Banco de Dados Oracle • Oracle Application Server • Oracle Applications • Oracle Collaboration Suite • Oracle Development Suite • Oracle Services Copyright © 2004, Oracle. Todos os direitos reservados. Sistemas de Banco de Dados Relacional Tabela Campo ou célulaLinha Coluna Copyright © 2004, Oracle. Todos os direitos reservados. Modo de Organização dos Dados EMPLOYEES DEPARTMENTS Copyright © 2004, Oracle. Todos os direitos reservados. Constraints de Integridade Copyright © 2004, Oracle. Todos os direitos reservados. SQL (Structured Query Language) • SQL (Structured query language): uma linguagem de programação padrão interativa usada para obter informações de um banco de dados e atualizar suas informações • A linguagem SQL fornece instruções para diversas tarefas, incluindo: – Consulta a dados – Inserção, atualização e deleção das linhas de uma tabela – Criação, substituição, alteração e eliminação de objetos – Controle de acesso ao banco de dados e a seus objetos – Garantia de consistência e integridade do banco de dados Copyright © 2004, Oracle. Todos os direitos reservados. Tarefas de um Administrador de Bancos de Dados Oracle Abordagem priorizada para elaboração, implementação e manutenção de um banco de dados Oracle: 1. Avaliar o hardware do servidor de banco de dados. 2. Instalar o software Oracle. 3. Planejar o banco de dados. 4. Criar e abrir o banco de dados. 5. Fazer backup do banco de dados. 6. Inscrever os usuários do sistema. 7. Implementar o design do banco de dados. 8. Efetuar a recuperação após uma falha do banco de dados. 9. Monitorar o desempenho do banco de dados. Copyright © 2004, Oracle. Todos os direitos reservados. Sumário Nesta lição, você aprendeu a: • Explicar os objetivos do curso • Descrever a linha de produtos Oracle • Identificar os conceitos básicos de um banco de dados relacional • Listar as principais tarefas do Administrador de Bancos de Dados Copyright © 2004, Oracle. Todos os direitos reservados. Instalando o Software do Banco de Dados Oracle 10g Copyright © 2004, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Identificar os requisitos de sistema • Utilizar a Optimal Flexible Architecture • Instalar o software com o Oracle Universal Installer Copyright © 2004, Oracle. Todos os direitos reservados. Requisitos de Sistema Hardware: • 512 MB de RAM (random access memory, memória de acesso aleatório) física • 1 GB de espaço de swap (ou o dobro do tamanho de RAM) • 400 MB de espaço em disco no diretório temporário (/tmp ou \Temp) • 1,5 GB de espaço em disco para o software Oracle • 1,5 GB de espaço em disco para o banco de dados pré-configurado Sistema operacional: Consulte a documentação Copyright © 2004, Oracle. Todos os direitos reservados. OFA (Optimal Flexible Architecture) A OFA foi projetada para: • Organizar grandes volumes de softwares • Facilitar as tarefas administrativas rotineiras • Facilitar a alternância entre vários bancos de dados Oracle • Gerenciar e administrar adequadamente o crescimento do banco de dados • Ajudar a eliminar a fragmentação do espaço livre Copyright © 2004, Oracle. Todos os direitos reservados. Usando a Optimal Flexible Architecture Nomeando pontos de montagem: • /u01 • /disk01 Nomeando diretórios: • /u01/app/oracle • /u01/app/applmgr Nomeando arquivos: • Arquivos de controle: controln.ctl • Arquivos de redo log: redon.log • Arquivos de dados: tn.dbf Copyright © 2004, Oracle. Todos os direitos reservados. Definindo Variáveis do Ambiente • ORACLE_BASE: A base da estrutura de diretórios Oracle para a OFA • ORACLE_HOME: O diretório que contém o software Oracle. • ORACLE_SID: O nome inicial da instância (ORCL, por default) • NLS_LANG: As definições do conjunto de caracteres de idioma, território e cliente Copyright © 2004, Oracle. Todos os direitos reservados. O Que Deve Ser Verificado Antes da Instalação Copyright © 2004, Oracle. Todos os direitos reservados. Oracle Universal Installer Copyright © 2004, Oracle. Todos os direitos reservados. Nome do Inventário e do Grupo UNIX Copyright © 2004,Oracle. Todos os direitos reservados. orainstRoot.sh # sh /u01/app/oracle/oraInventory/orainstRoot.sh Criando o arquivo de ponteiro de inventário do Oracle (/etc/oraInst.loc) Alterando o nome de grupo /u01/app/oracle/oraInventory para oinstall. Copyright © 2004, Oracle. Todos os direitos reservados. Localização dos Arquivos Copyright © 2004, Oracle. Todos os direitos reservados. Tipo de Instalação Copyright © 2004, Oracle. Todos os direitos reservados. Verificação de Pré-requisitos Copyright © 2004, Oracle. Todos os direitos reservados. Banco de Dados Inicial Copyright © 2004, Oracle. Todos os direitos reservados. Configuração e Gerenciamento Copyright © 2004, Oracle. Todos os direitos reservados. Armazenamento de Arquivos e Recuperação de Backup Copyright © 2004, Oracle. Todos os direitos reservados. Senhas e Sumário Copyright © 2004, Oracle. Todos os direitos reservados. Instalação Copyright © 2004, Oracle. Todos os direitos reservados. Assistentes de Configuração Copyright © 2004, Oracle. Todos os direitos reservados. Sumário Nesta lição, você aprendeu a: • Identificar os requisitos do sistema • Utilizar a Optimal Flexible Architecture • Instalar o software com o Oracle Universal Installer Copyright © 2004, Oracle. Todos os direitos reservados. Exercício 2: Instalando o Software Oracle Este exercício aborda a instalação do software Oracle. Copyright © 2004, Oracle. Todos os direitos reservados. Criando um Banco de Dados Oracle Copyright © 2004, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Descrever a arquitetura do banco de dados Oracle • Compreender a arquitetura de instâncias • Usar a estrutura de gerenciamento • Usar o DBCA para – Criar um banco de dados – Configurar um banco de dados – Eliminar um banco de dados – Gerenciar gabaritos Copyright © 2004, Oracle. Todos os direitos reservados. Arquitetura do Banco de Dados Arquivos de dados Arquivos de redo log on-line Arquivo de senha Arquivo de parâmetros Arquivos de log arquivados Arquivos de controle Copyright © 2004, Oracle. Todos os direitos reservados. Explorando a Estrutura de Armazenamento Clique nos links para exibir informações detalhadas Copyright © 2004, Oracle. Todos os direitos reservados. Arquivos de Controle. • Contêm informações sobre a estrutura física do banco de dados • São multiplexados para proteger contra perdas • Necessários para iniciar a instância. Arquivos de controle Copyright © 2004, Oracle. Todos os direitos reservados. Arquivos de Redo Log • Registram alterações no banco de dados • São multiplexados para proteger contra perdas Buffer de redo log Log writer LGWR Grupo 1 Grupo 2 Grupo 3 Copyright © 2004, Oracle. Todos os direitos reservados. Tablespaces e Arquivos de Dados • Os tablespaces consistem em um ou mais arquivos de dados • Os arquivos de dados pertencem a apenas um tablespace Tablespace USERS Arquivo de dados 1 Arquivo de dados 2 Copyright © 2004, Oracle. Todos os direitos reservados. Segmentos, Extensões e Blocos • Existem segmentos em um tablespace. • Os segmentos são compostos de um conjunto de extensões. • As extensões são um conjunto de blocos de dados. • Os blocos de dados são mapeados para blocos do sistema operacional. Segmento Extensões Blocos de dados Blocos do sistema operacional Copyright © 2004, Oracle. Todos os direitos reservados. Oracle Instance Management System Monitor SMON. Database Writer DBW0. Log Writer LGWR Process Monitor PMON. Archiver ARC0 SGA Java Pool. Shared Pool. Large Pool.Streams Pool Cache de Buffer do Banco de Dados Buffer de Redo Log Check- point CKPT Copyright © 2004, Oracle. Todos os direitos reservados. Estruturas de Memória Oracle Java Pool Cache de buffer do Banco de Dados Buffer de Redo Log Shared Pool. Large Pool SGA Streams Pool Processo do Servidor 1 PGA Processo do Servidor 2 PGA Processo de Back- ground PGA Copyright © 2004, Oracle. Todos os direitos reservados. Processos Oracle System Monitor SMON. Database Writer DBWn Check- point CKPT Log Writer LGWR Process Monitor PMON Archiver ARCn Processo do Servidor Processo do Servidor Processo do Servidor Processo do Servidor Área Global do Sistema SGA Processos de Background Copyright © 2004, Oracle. Todos os direitos reservados. Dicionário de Dados Copyright © 2004, Oracle. Todos os direitos reservados. Database Control Database control Copyright © 2004, Oracle. Todos os direitos reservados. Controle de Grade Controle de grade Servidor de gerenciamento Repositório de gerenciamento Controle do banco de dados Banco de dados Sistema operacional/ aplicação de terceiros Servidor de aplicações Controle do servidor de aplicações Alvos gerenciados Agente AgenteAgente Copyright © 2004, Oracle. Todos os direitos reservados. Visão Geral do DBCA (Database Configuration Assistant) Copyright © 2004, Oracle. Todos os direitos reservados. Criando um Banco de Dados Copyright © 2004, Oracle. Todos os direitos reservados. Database Identification Copyright © 2004, Oracle. Todos os direitos reservados. Management Options Copyright © 2004, Oracle. Todos os direitos reservados. Senhas e Armazenamento Copyright © 2004, Oracle. Todos os direitos reservados. Localização dos Arquivos e Recuperação de Backup Copyright © 2004, Oracle. Todos os direitos reservados. Variáveis de Localização de Arquivos Copyright © 2004, Oracle. Todos os direitos reservados. Conteúdo e Parâmetros de Inicialização Copyright © 2004, Oracle. Todos os direitos reservados. Database Storage Copyright © 2004, Oracle. Todos os direitos reservados. Opções de Criação Copyright © 2004, Oracle. Todos os direitos reservados. Outras Ações com o DBCA Copyright © 2004, Oracle. Todos os direitos reservados. Sumário Nesta lição, você aprendeu a: • Descrever a arquitetura do banco de dados Oracle • Compreender a arquitetura de instâncias • Usar o framework de gerenciamento • Usar o DBCA para – Criar um banco de dados – Configurar um banco de dados – Eliminar um banco de dados – Gerenciar gabaritos Copyright © 2004, Oracle. Todos os direitos reservados. Exercício 3: Criando um Banco de Dados Oracle Este exercício aborda a criação de um banco de dados Oracle usando o DBCA. Copyright © 2004, Oracle. Todos os direitos reservados. Interfaces de Banco de Dados Copyright © 2004, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Usar o SQL*Plus e o iSQL*Plus para acessar o Banco de Dados Oracle 10g • Descrever a estrutura lógica das tabelas • Usar a linguagem SQL para consultar, manipular e definir dados • Identificar interfaces de banco de dados comuns Copyright © 2004, Oracle. Todos os direitos reservados. O Que É SQL? O SQL fornece instruções para diversas tarefas, incluindo: • Consulta a dados • Inserção, atualização e deleção das linhas de uma tabela • Criação, substituição, alteração e eliminação de objetos • Controle de acesso ao banco de dados e a seus objetos A linguagem SQL unifica todas as tarefas precedentes em uma linguagem consistente. Copyright © 2004, Oracle. Todos os direitos reservados. Usando SQL Várias ferramentas são usadas para fazer interface com o banco de dados que utiliza SQL: • Oracle SQL*Plus e iSQL*Plus • Oracle Forms, Reports e Discoverer • Oracle Enterprise Manager • Ferramentas de terceiros Copyright © 2004, Oracle. Todos os direitos reservados. Enterprise Manager: Exibindo o Código SQL Copyright © 2004, Oracle. Todos os direitos reservados. O Que É SQL*Plus? • Ferramenta da linha de comandos • Usado interativamente ou no modo batch $ sqlplus /nolog SQL*Plus: Release 10.1.0.2.0 - Production on Tue Feb 17 06:17:14 2004 Copyright (c) 1982, 2004, Oracle. All rights reserved. SQL> connect ric Enter password: Connected. SQL>SELECT * FROM dual; D - X SQL> Copyright © 2004, Oracle. Todos os direitos reservados. O Que É iSQL*Plus? Copyright © 2004, Oracle. Todos os direitos reservados. Usando o iSQL*Plus Copyright © 2004, Oracle. Todos os direitos reservados. Descrevendo Dados Copyright © 2004, Oracle. Todos os direitos reservados. Consultando Dados A instrução SELECT possui três partes básicas: • A Lista SELECT • Cláusula FROM • A condição WHERE (opcional) Copyright © 2004, Oracle. Todos os direitos reservados. Classificando os Dados SQL> SELECT last_name, department_id, phone_number 2 FROM employees 3 ORDER BY last_name; LAST_NAME DEPARTMENT_ID PHONE_NUMBER --------------- ------------- -------------------- Abel 80 011.44.1644.429267 Ande 80 011.44.1346.629268 Atkinson 50 650.124.6234 Austin 60 590.423.4569 Baer 70 515.123.8888 Baida 30 515.127.4563 Banda 80 011.44.1346.729268 Copyright © 2004, Oracle. Todos os direitos reservados. Unindo Tabelas Obtendo dados de mais de uma tabela Copyright © 2004, Oracle. Todos os direitos reservados. Manipulando Dados SQL> INSERT INTO employees 2 (EMPLOYEE_ID,FIRST_NAME,LAST_NAME,EMAIL,PHONE_NUMBER, 3 HIRE_DATE,JOB_ID,SALARY,COMMISSION_PCT, 4 MANAGER_ID,DEPARTMENT_ID) 5 VALUES 6 (9999,'Bob','Builder','bob@abc.com',NULL,sysdate, 7 'IT_PROG’,NULL,NULL,100,90); 1 row created. SQL> UPDATE employees SET SALARY=6000 2 WHERE EMPLOYEE_ID = 9999; 1 row updated. SQL> DELETE from employees 2 WHERE EMPLOYEE_ID = 9999; 1 row deleted. Copyright © 2004, Oracle. Todos os direitos reservados. Definindo Dados Copyright © 2004, Oracle. Todos os direitos reservados. Visão Geral de Transações Transação 1 Transação 2COMMIT; Copyright © 2004, Oracle. Todos os direitos reservados. Instruções de Controle de Transações SQL> SELECT * FROM local_temp; no rows selected SQL> INSERT INTO local_temp VALUES 2 (SYSDATE, 76, 58); 1 row created. SQL> SELECT * from local_temp; TEMP_DATE HI_TEMP LO_TEMP --------- ---------- ---------- 27-OCT-03 76 58 SQL> ROLLBACK; Rollback complete. SQL> SELECT * FROM local_temp; no rows selected Copyright © 2004, Oracle. Todos os direitos reservados. Bloqueando Dados O Banco de Dados Oracle 10g bloqueia dados automaticamente, de modo que apenas um usuário possa fazer alterações de cada vez. Copyright © 2004, Oracle. Todos os direitos reservados. Outras Categorias de Instrução • Instruções de controle de sessões: Gerenciam as propriedades de uma sessão de usuário • Instrução de controle do sistema: Gerencia as propriedades de uma instância Oracle • Instruções SQL incorporadas: Instruções SQL em um programa de linguagem procedural Copyright © 2004, Oracle. Todos os direitos reservados. O Que É PL/SQL? PL/SQL é uma linguagem estruturada em blocos, que estende o SQL com: • Declarações: – Variáveis – Constantes – Cursores • Estruturas de controle: – Controle condicional – Controle iterativo – Controle seqüencial • Tratamento de erros Copyright © 2004, Oracle. Todos os direitos reservados. Exemplo de Bloco PL/SQL DECLARE qty_on_hand NUMBER(5); BEGIN SELECT quantity INTO qty_on_hand FROM inventory WHERE product = 'TENNIS RACKET' FOR UPDATE OF quantity; IF qty_on_hand > 0 THEN -- check quantity UPDATE inventory SET quantity = quantity - 1 WHERE product = 'TENNIS RACKET'; INSERT INTO purchase_record VALUES ('Tennis racket purchased', SYSDATE); ELSE INSERT INTO purchase_record VALUES ('Out of tennis rackets', SYSDATE); END IF; COMMIT; END; Copyright © 2004, Oracle. Todos os direitos reservados. Usos de PL/SQL Os blocos de PL/SQL são usados em: • Blocos anônimos • Functions • Procedures • Packages • Triggers • Tipos de objetos Copyright © 2004, Oracle. Todos os direitos reservados. O Que É Java? Java é uma linguagem de programação orientada a objeto considerada padrão do setor. Ela inclui os seguintes conceitos: • Uma JVM (Java Virtual Machine), que permite uma independência de plataforma • Técnicas automatizadas de gerenciamento de armazenamento • Sintaxe emprestada da linguagem C e que impõe um uso muito rígido de tipos de dados Copyright © 2004, Oracle. Todos os direitos reservados. Oracle e Java Uma function PL/SQL: CallableStatement cstmt = conn.prepareCall("{? = CALL balance(?)}"); cstmt.registerOutParameter(1, Types.FLOAT); cstmt.setInt(2, acctNo); cstmt.executeUpdate(); float acctBal = cstmt.getFloat(1); FUNCTION balance (acct_id NUMBER) RETURN NUMBER IS acct_bal NUMBER; BEGIN SELECT bal INTO acct_bal FROM accts WHERE acct_no = acct_id; RETURN acct_bal; END; Chamando a function com Java: Copyright © 2004, Oracle. Todos os direitos reservados. O Que É OCI? A OCI permite: • A OCI (Oracle Call Interface) é a forma como todos os recursos do banco de dados tornam-se acessíveis aos desenvolvedores de aplicação. • Ela viabiliza as aplicações escalonáveis e de alto desempenho. • As ferramentas e as APIs de nível superior utilizam a OCI indiretamente para acessar o banco de dados. Copyright © 2004, Oracle. Todos os direitos reservados. Outras APIs • JDBC (Java Database Connectivity) • Pro*C/C++ • Pro*COBOL • OCCI (Oracle C++ Interface) • ODBC (Open Database Connectivity) • ODP.NET (Oracle Data Provider for .NET) • OO4O (Oracle Objects for OLE) Copyright © 2004, Oracle. Todos os direitos reservados. Sumário Nesta lição, você aprendeu a: • Usar o SQL*Plus e o iSQL*Plus para acessar o Banco de Dados Oracle 10g • Descrever a estrutura lógica das tabelas • Usar código SQL para consultar, manipular e definir dados • Identificar interfaces de banco de dados comuns Copyright © 2004, Oracle. Todos os direitos reservados. Exercício 4: Usando SQL Este exercício aborda o uso do iSQL*Plus para: • Descrever tabelas • Fazer seleções em tabelas • Atualizar uma tabela • Fazer deleções em uma tabela • Desfazer alterações Copyright © 2004, Oracle. Todos os direitos reservados. Controlando o Banco de Dados Copyright © 2004, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Iniciar e interromper o iSQL*Plus • Iniciar e interromper o Database Control do Enterprise Manager • Iniciar e interromper o Oracle Listener • Inicializar e fazer shutdown do Banco de Dados Oracle 10g Copyright © 2004, Oracle. Todos os direitos reservados. Iniciando e Interrompendo o iSQL*Plus $ isqlplusctl start iSQL*Plus 10.1.0.2.0 Copyright (c) 2004 Oracle. All rights reserved. Starting iSQL*Plus ... iSQL*Plus started. $ isqlplusctl stop iSQL*Plus 10.1.0.2.0 Copyright (c) 2004 Oracle. All rights reserved. Stopping iSQL*Plus ... iSQL*Plus stopped. Copyright © 2004, Oracle. Todos os direitos reservados. Framework de Gerenciamento Os três componentes do framework de gerenciamento do Banco de Dados Oracle 10g são: • Instância de banco de dados • Listener • Interface de gerenciamento – Controle do Banco de Dados – Agente de gerenciamento (quando o controle de grade é utilizado) ListenerControle do Banco de Dados Agente de gerenciamento Interface de gerenciamento -ou- Copyright © 2004, Oracle. Todos os direitos reservados. Iniciando e Interrompendo o Controle do Banco de Dados $ emctl start dbconsole TZ set to US/Pacific Oracle Enterprise Manager 10g Database Control Release 10.1.0.2.0 Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved. http://edrsr9p1.us.oracle.com:5500/em/console/aboutApplication Starting Oracle Enterprise Manager 10g Database Control ...................... started. ------------------------------------------------------------------ Logs are generated in directory /u01/app/oracle/product/10.1.0/db_1/edrsr9p1.us.oracle.com_orcl/sy sman/log $ emctl stop dbconsole TZ set to US/Pacific Oracle Enterprise Manager 10g Database Control Release 10.1.0.2.0 Copyright (c) 1996, 2004 Oracle Corporation.All rights reserved. http://edrsr9p1.us.oracle.com:5500/em/console/aboutApplication Stopping Oracle Enterprise Manager 10g Database Control ... ... Stopped. Copyright © 2004, Oracle. Todos os direitos reservados. Acessando o Controle do Banco de Dados Copyright © 2004, Oracle. Todos os direitos reservados. SYSOPER e SYSDBA Copyright © 2004, Oracle. Todos os direitos reservados. Home Page Database Copyright © 2004, Oracle. Todos os direitos reservados. Alterando o Status do Listener Copyright © 2004, Oracle. Todos os direitos reservados. Inicialização e Shutdown Clique em Advanced Options para selecionar as opções de inicialização e o modo de shutdown Copyright © 2004, Oracle. Todos os direitos reservados. Iniciando um Banco de Dados NOMOUNT OPEN MOUNT NOMOUNT SHUTDOWN Instância inicializada STARTUP Copyright © 2004, Oracle. Todos os direitos reservados. Iniciando um Banco de Dados MOUNT OPEN MOUNT NOMOUNT SHUTDOWN Arquivo de controle aberto para esta instância STARTUP SHUTDOWN Instância inicializada Copyright © 2004, Oracle. Todos os direitos reservados. Iniciando um Banco de Dados OPEN OPEN MOUNT NOMOUNT SHUTDOWN Todos os arquivos são abertos conforme descrito pelo arquivo de controle desta instância Arquivo de controle aberto para esta instância Instância inicializada STARTUP SHUTDOWN Copyright © 2004, Oracle. Todos os direitos reservados. Fazendo Shutdown do Banco de Dados Modo de shutdown: • A = ABORT • I = IMMEDIATE • T = TRANSACTIONAL • N = NORMAL A Não Não Não Não T Não Não Sim Sim I Não Não Não Sim Modo de Shutdown Permite novas conexões Aguarda o fim das sessões atuais Aguarda o fim das transações atuais Impõe um checkpoint e fecha os arquivos N Não Sim Sim Sim Copyright © 2004, Oracle. Todos os direitos reservados. Opções de SHUTDOWN Durante o shutdown: • Cache de buffer de banco de dados gravado para os arquivos de dados • Rollback das alterações não submetidas a commit • Os recursos são liberados Durante o shutdown: • Não há recuperação da instância Durante SHUTDOWN NORMAL ou SHUTDOWN TRANSACTIONAL ou SHUTDOWN IMMEDIATE Banco de dados consistente (banco de dados limpo) Copyright © 2004, Oracle. Todos os direitos reservados. Opções de SHUTDOWN Durante o shutdown: • Os buffers modificados não são gravados nos arquivos de dados • Não é efetuado rollback das alterações não submetidas a commit Na inicialização: • Os arquivos de redo log on-line são usados para reaplicar alterações • Os segmentos de undo são usados para efetuar rollback das alterações não submetidas a commit • Os recursos são liberados Durante SHUTDOWN ABORT ou Falha de Instância ou STARTUP FORCE Banco de dados inconsistente (banco de dados sujo) Copyright © 2004, Oracle. Todos os direitos reservados. spfiledb01.ora Arquivos de Parâmetros de Inicialização Copyright © 2004, Oracle. Todos os direitos reservados. Exibindo Parâmetros de Inicialização Copyright © 2004, Oracle. Todos os direitos reservados. Exibindo o Log de Alerta Copyright © 2004, Oracle. Todos os direitos reservados. Sumário Nesta lição, você aprendeu a: • Iniciar e interromper o iSQL*Plus • Iniciar e interromper a Console de Banco de Dados do Enterprise Manager • Iniciar e interromper o listener • Inicializar e fazer shutdown do banco de dados Copyright © 2004, Oracle. Todos os direitos reservados. Exercício 5: Controlando o Banco de Dados Este exercício aborda os seguintes tópicos: • Estabelecendo conexão com o banco de dados usando o SQL*Plus e o iSQL*Plus • Interrompendo e iniciando o Database Control do Enterprise Manager • Interrompendo e iniciando o banco de dados • Interrompendo e iniciando o iSQL*Plus Copyright © 2004, Oracle. Todos os direitos reservados. Estruturas de Armazenamento Copyright © 2004, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Definir o objetivo de tablespaces e arquivos de dados • Criar tablespaces • Gerenciar tablespaces • Obter informações sobre tablespaces Copyright © 2004, Oracle. Todos os direitos reservados. Tablespaces e Arquivos de Dados O Oracle armazena dados logicamente em tablespaces e fisicamente em arquivos de dados. • Tablespaces: – Só podem pertencer a um banco de dados por vez – Consistem em um ou mais arquivos de dados – São divididos posteriormente em unidades lógicas de armazenamento • Arquivos de dados: – Podem pertencer a apenas um tablespace e um banco de dados – São um repositório para dados de objetos do esquema Banco de dados Tablespace Arquivos de dados Copyright © 2004, Oracle. Todos os direitos reservados. Gerenciamento de Espaço em Tablespaces • Tablespace gerenciado localmente: – As extensões livres são gerenciadas no tablespace. – Um bitmap é usado para registrar extensões livres. – Cada bit corresponde a um bloco ou grupo de blocos. – O valor do bit indica bloco livre ou utilizado. • Tablespace gerenciado por dicionário: – As extensões livres são gerenciadas pelo dicionário de dados. – As tabelas apropriadas são atualizadas quando as extensões são alocadas ou desalocadas. Copyright © 2004, Oracle. Todos os direitos reservados. Criando um Novo Tablespace Copyright © 2004, Oracle. Todos os direitos reservados. Armazenamento para Tablespaces Gerenciados Localmente Copyright © 2004, Oracle. Todos os direitos reservados. Tablespaces no Banco de Dados Pré-configurado • SYSTEM • SYSAUX • TEMP • UNDOTBS1 • USERS • EXAMPLE Copyright © 2004, Oracle. Todos os direitos reservados. Alterando um Tablespace Copyright © 2004, Oracle. Todos os direitos reservados. Ações com Tablespaces Copyright © 2004, Oracle. Todos os direitos reservados. Eliminando Tablespaces Copyright © 2004, Oracle. Todos os direitos reservados. Exibindo Informações sobre o Tablespace Copyright © 2004, Oracle. Todos os direitos reservados. Sumário Nesta lição, você aprendeu a: • Usar tablespaces para separar dados • Criar vários tipos de tablespaces • Gerenciar tablespaces • Obter informações sobre tablespaces Copyright © 2004, Oracle. Todos os direitos reservados. Exercício 6: Trabalhando com Tablespaces Este exercício aborda os seguintes tópicos: • Criação de tablespaces • Reunindo informações sobre tablespaces Copyright © 2004, Oracle. Todos os direitos reservados. Administrando Usuários Copyright © 2004, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Criar e gerenciar contas de usuário do banco de dados • Criar e gerenciar atribuições • Conceder e revogar privilégios com os comandos Grant e Revoke • Controlar o uso de recursos pelos usuários Copyright © 2004, Oracle. Todos os direitos reservados. Contas de Usuário do Banco de Dados Cada conta de usuário do banco de dados possui: • Um nome de usuário exclusivo • Um método de autenticação • Tablespace default • Tablespace temporário • Perfil de usuário Copyright © 2004, Oracle. Todos os direitos reservados. Criando um Usuário Selecione Users na página de propriedades Administration. Clique no botão Create. Copyright © 2004, Oracle. Todos os direitos reservados. Perfis e Usuários Os usuários recebem apenas um perfil em qualquer momento. Perfis: • Controlar o consumo de recursos • Gerenciar senhas Copyright © 2004, Oracle. Todos os direitos reservados. Autenticando Usuários • Senha • External • Global Copyright © 2004, Oracle. Todos os direitos reservados. Bloqueio e Tablespaces Default e Temporários • Default: Local default dos objetos de banco de dados • Temporário: Usado para a classificação Copyright © 2004, Oracle. Todos os direitos reservados. Esquemas e Usuários de Banco de Dados Objetos do Esquema Tabelas Triggers Índices Views Seqüências Unidades de programa armazenadas Sinônimos Tipos de dados definidos pelo usuário Vínculos de bancos de dados• Esquema é o conjunto de objetos pertencentes a um usuário. • Só é possível associar um usuário a um esquema. • O nome de usuário e o esquema são, em geral, usados alternadamente. Copyright © 2004, Oracle. Todos os direitos reservados. Lista de Verificação para Criar Usuários • Selecione um perfil. • Selecione uma técnica de autenticação. • Designe um tablespace default e um tablespace temporário. • Conceda privilégios e atribuições ao usuário. • Defina as cotas de cada tablespace. Copyright © 2004, Oracle. Todos os direitos reservados. Há dois tipos de privilégios de usuário: • System: Permite que os usuários executem determinadas ações no banco de dados • Objeto: Permite que os usuários acessem e manipulem um objeto específico Privilégios Copyright © 2004, Oracle. Todos os direitos reservados. Privilégios de Sistema Copyright © 2004, Oracle. Todos os direitos reservados. Privilégios de Objeto Para conceder privilégios de objeto: • Escolha o tipo de objeto • Selecione os objetos • Privilégios Select Copyright © 2004, Oracle. Todos os direitos reservados. Atribuindo uma Cota aos Usuários Os usuários que não tiverem o privilégio de sistema de tablespace unlimited deverão receber uma cota antes de criarem objetos em um tablespace. As cotas podem ser: • Ilimitado • Um valor específico em megabytes ou em kilobytes Copyright © 2004, Oracle. Todos os direitos reservados. Designando Atribuições aos Usuários Copyright © 2004, Oracle. Todos os direitos reservados. Usuários Privilégios Atribuições HR_CLERKHR_MGR Atribuições Neena Girard Vance Delete employees Selecione employees Atualizar employees Inserir employees Copyright © 2004, Oracle. Todos os direitos reservados. • Gerenciamento mais fácil de privilégios • Gerenciamento dinâmico de privilégios • Disponibilidade seletiva dos privilégios • Podem ser concedidas pelo sistema operacional Vantagens das Atribuições Copyright © 2004, Oracle. Todos os direitos reservados. Atribuições Predefinidas CREATE ANY JOB, CREATE JOB, EXECUTE ANY CLASS, EXECUTE ANY PROGRAM, MANAGE SCHEDULER SCHEDULER_ ADMIN Não contêm privilégios de sistema, porém, contêm mais de 1600 privilégios de objeto no dicionário de dados SELECT_ CATALOG_ ROLE Inclui a maioria dos privilégios de sistema, várias outras atribuições Não deve ser concedida a usuários que não são administradores. DBA CREATE TABLE, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TRIGGER, CREATE TYPE, CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR RESOURCE CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE SYNONYM, CREATE SEQUENCE, CREATE DATABASE LINK, CREATE CLUSTER, ALTER SESSION CONNECT Copyright © 2004, Oracle. Todos os direitos reservados. As atribuições podem ser protegidas através de autenticação. CREATE ROLE secure_application_role IDENTIFIED USING <security_procedure_name>; Atribuições Seguras As atribuições também podem ser protegidas através de programa. As atribuições podem ser não-default. SET ROLE vacationdba; Copyright © 2004, Oracle. Todos os direitos reservados. Sumário Nesta lição, você deverá ter aprendido a: • Criar e gerenciar contas de usuário • Criar e gerenciar atribuições • Conceder e revogar privilégios com os comandos Grant e Revoke • Controlar o uso de recursos pelos usuários Copyright © 2004, Oracle. Todos os direitos reservados. Exercício 7: Administrando Usuários Este exercício aborda o seguinte: • Criação de um perfil para limitar o consumo de recursos • Criação de duas atribuições: a. HRCLERK b. HRMANAGER • Criação de três novos usuários, um gerente e dois funcionários Copyright © 2004, Oracle. Todos os direitos reservados. Gerenciando Objetos de Esquema Copyright © 2004, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Criar e modificar tabelas • Definir constraints • Exibir os atributos de uma tabela • Exibir o conteúdo de uma tabela • Criar índices e views Copyright © 2004, Oracle. Todos os direitos reservados. O Que É um Esquema? Esquema HR Usuário HR possui Copyright © 2004, Oracle. Todos os direitos reservados. Esquemas Esquemas criados como parte do processo de criação de bancos de dados: • SYS • SYSTEM • Amostras de esquemas Copyright © 2004, Oracle. Todos os direitos reservados. Acessando Objetos de Esquema Clique em um link para acessar os objetos de esquema. Copyright © 2004, Oracle. Todos os direitos reservados. Nomeando Objetos de Banco de Dados • Os nomes devem conter de 1 a 30 bytes, com estas exceções: – Os nomes de bancos de dados estão limitados a 8 bytes – Os nomes de links de banco de dados podem ter 128 bytes • Os nomes sem aspas não podem ser palavras reservadas do Oracle. • Esses nomes devem começar com um caractere alfabético do conjunto de caracteres do banco de dados. Copyright © 2004, Oracle. Todos os direitos reservados. Nomeando Objetos de Banco de Dados • Os nomes sem aspas só podem conter – Caracteres alfanuméricos do conjunto de caracteres do banco de dados – Sublinhado (_) – Cifrão ($) – Cerquilha (#) • Dois objetos não podem ter o mesmo nome no mesmo namespace Copyright © 2004, Oracle. Todos os direitos reservados. Namespaces de Objetos de Esquema Os seguintes itens têm seu próprio namespace: • Índices • Constraints • Clusters • Triggers de banco de dados. • Links para bancos de dados particulares • Dimensões Os seguintes itens estão no mesmo namespace: • Tabelas • Views • Seqüências • Sinônimos particulares • Procedures stand-alone • Funções stand-alone armazenadas • Packages • Views materializadas • Tipos definidos pelo usuário Copyright © 2004, Oracle. Todos os direitos reservados. Especificando Tipos de Dados em Tabelas Tipos de dados comuns: • CHAR(size): Dados de caracteres de tamanho fixo em bytes • VARCHAR2(size): String de caracteres de tamanho variável com bytes de tamanho máximo • DATE: A faixa de datas válida é 1o de janeiro de 4712 AC a 31 de dezembro de 9999 DC • NUMBER(p,s) Número que tem a precisão p e a escala s Copyright © 2004, Oracle. Todos os direitos reservados. Outros Tipos de Dados • FLOAT • INTEGER • NCHAR • NVARCHAR2 • LONG • LONG RAW • RAW • ROWID • UROWID • BLOB • CLOB • NCLOB • BFILE • TIMESTAMP Copyright © 2004, Oracle. Todos os direitos reservados. Criando e Modificando Tabelas Especifique o nome da tabela e o esquema. Especifique os nomes das colunas, os tipos de dados e os tamanhos. Copyright © 2004, Oracle. Todos os direitos reservados. Noções Básicas sobre Integridade de Dados Copyright © 2004, Oracle. Todos os direitos reservados. Definindo Constraints Copyright © 2004, Oracle. Todos os direitos reservados. Exibindo os Atributos de uma Tabela Copyright © 2004, Oracle. Todos os direitos reservados. Exibindo o Conteúdo de uma Tabela Copyright © 2004, Oracle. Todos os direitos reservados. Ações e Tabelas Copyright © 2004, Oracle. Todos os direitos reservados. Criando Índices Copyright © 2004, Oracle. Todos os direitos reservados. O Que É uma View? • Uma representação adaptada dos dados em uma tabela ou view • As views não contêm dados Copyright © 2004, Oracle. Todos os direitos reservados. Criando Views Copyright © 2004, Oracle. Todos os direitos reservados. O Que É uma Seqüência? Copyright © 2004, Oracle. Todos os direitos reservados. Usando uma Seqüência Copyright © 2004, Oracle. Todos os direitos reservados. Sumário Nesta lição, você aprendeu a: • Criar e modificar tabelas • Definir constraints • Exibir os atributos de uma tabela • Exibir o conteúdo de uma tabela • Criar índices e views Copyright © 2004, Oracle. Todos os direitos reservados. Exercício 8: Trabalhando com Tabelas Este exercício aborda o seguinte: • Criando tabelas e índices • Modificando tabelas • Eliminando uma tabela • Criando uma view Copyright © 2004, Oracle. Todos os direitos reservados. Gerenciando Dados Copyright© 2004, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Manipular dados por meio de instruções SQL • Usar Data Pump para exportar dados • Usar Data Pump para importar dados • Carregar dados com o SQL Loader Copyright © 2004, Oracle. Todos os direitos reservados. Manipulando Dados por Meio de Instruções SQLSQL> INSERT INTO employees VALUES 2 (9999,'Bob','Builder','bob@abc.net',NULL,SYSDATE, 3 'IT_PROG',NULL,NULL,100,90); 1 row created. SQL> UPDATE employees SET SALARY=6000 2 WHERE EMPLOYEE_ID = 9999; 1 row updated. SQL> DELETE from employees 2 WHERE EMPLOYEE_ID = 9999; 1 row deleted. Copyright © 2004, Oracle. Todos os direitos reservados. O Comando INSERT • Criar uma linha de cada vez. • Inserir várias linhas de outra tabela. Copyright © 2004, Oracle. Todos os direitos reservados. O Comando UPDATE Use este comando para alterar linhas de uma tabela. Copyright © 2004, Oracle. Todos os direitos reservados. O Comando DELETE Use este comando para remover linhas de uma tabela. Copyright © 2004, Oracle. Todos os direitos reservados. Os Comandos COMMIT e ROLLBACK São usados para finalizar uma transação. • Commit: Torna a alteração permanente • Rollback: Desfaz a alteração Copyright © 2004, Oracle. Todos os direitos reservados. Constraints de Integridade e DML Copyright © 2004, Oracle. Todos os direitos reservados. Data Pump Export Copyright © 2004, Oracle. Todos os direitos reservados. Data Pump Import Copyright © 2004, Oracle. Todos os direitos reservados. Objetos DIRECTORY SQL> CREATE DIRECTORY dpump_dir1 2 AS '/usr/apps/datafiles'; Directory created. SQL> SELECT * FROM DBA_DIRECTORIES 2 WHERE DIRECTORY_NAME = 'DPUMP_DIR1'; OWNER DIRECTORY_NAME DIRECTORY_PATH ------- --------------- -------------------- SYS DPUMP_DIR1 /usr/apps/datafiles Copyright © 2004, Oracle. Todos os direitos reservados. SQL*Loader Arquivos de dados de entrada Arquivo de Controle SQL*Loader Arquivo de log Arquivos de erros Arquivos de descarte Tabelas e índices Copyright © 2004, Oracle. Todos os direitos reservados. O Arquivo de Controle do SQL*Loader O arquivo de controle do carregador fornece as seguintes informações ao SQL*Loader: • Onde encontrar os dados de carga • O formato dos dados • Detalhes de configuração: – Gerenciamento da memória – Rejeição de registros – Detalhes do tratamento de carga interrompida • Como manipular os dados Copyright © 2004, Oracle. Todos os direitos reservados. Considerações sobre a Sintaxe do Arquivo de Controle • O formato da sintaxe é livre. • A sintaxe não faz distinção entre letras maiúsculas e minúsculas. • Os comentários se estendem dos dois hífens (--), que marcam o início do comentário, até o fim da linha. • A palavra-chave CONSTANT é reservada. Copyright © 2004, Oracle. Todos os direitos reservados. Dados de Entrada e Arquivos de Dados • O SQL*Loader lê os dados de um ou mais arquivos especificados no arquivo de controle. • Na perspectiva do SQL*Loader, os dados do arquivo de dados são organizados como registros. • Um arquivo de dados pode ter um destes três formatos: – Formato de registro fixo – Formato de registro variável – Formato de registro de fluxo Copyright © 2004, Oracle. Todos os direitos reservados. Métodos de Carga Convencional Caminho direto Inserção de array Gravações de bloco Tabela SGA HWM (High-Water Mark) Copyright © 2004, Oracle. Todos os direitos reservados. Comparando as Cargas de Caminho Direto e Convencional Carga Convencional Usa COMMIT para tornar as alterações permanentes Sempre são geradas entradas de redo Impõe todas as constraints Triggers INSERT são acionados Pode fazer cargas em tabelas clusterizadas Outros usuários podem fazer alterações em tabelas Carga de Caminho Direto Usa salvamento de dados Gera redo apenas em condições específicas Impõe apenas PRIMARY KEY, UNIQUE e NOT NULL Triggers INSERT não são acionados Não faz cargas em tabelas clusterizadas Outros usuários não podem fazer alterações em tabelas Copyright © 2004, Oracle. Todos os direitos reservados. Carregando Dados com o SQL*Loader Copyright © 2004, Oracle. Todos os direitos reservados. Sumário Nesta lição, você aprendeu a: • Manipular dados por meio de instruções SQL • Usar Data Pump para exportar dados • Usar Data Pump para importar dados • Carregar dados com o SQL Loader Copyright © 2004, Oracle. Todos os direitos reservados. Exercício 9: Usando Data Pump Export e Import Este exercício aborda o seguinte: • Criando um objeto de diretório • Extraindo objetos do esquema HR • Usando Data Pump Import para carregar tabelas em um esquema distinto Copyright © 2004, Oracle. Todos os direitos reservados. PL/SQL Copyright © 2004, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Identificar objetos PL/SQL • Descrever triggers e eventos de trigger • Identificar as opções de configuração que afetam o desempenho dos códigos PL/SQL Copyright © 2004, Oracle. Todos os direitos reservados. PL/SQL A linguagem PL/SQL é uma linguagem de programação 4GL. Ela fornece: • Extensões procedurais para códigos SQL • Portabilidade entre plataformas e produtos • Suporte à programação orientada a objeto Copyright © 2004, Oracle. Todos os direitos reservados. Administrando Objetos PL/SQL Os administradores de banco de dados devem ser capazes de: • Identificar objetos PL/SQL com problema • Recomendar o uso adequado do código PL/SQL • Carregar objetos PL/SQL no banco de dados • Ajudar os desenvolvedores de PL/SQL na solução de problemas Copyright © 2004, Oracle. Todos os direitos reservados. Objetos PL/SQL Há vários tipos de objetos de banco de dados PL/SQL: • Package • Package body • Type body • Procedure • Function • Trigger Copyright © 2004, Oracle. Todos os direitos reservados. Functions Copyright © 2004, Oracle. Todos os direitos reservados. Procedures Os procedures são usados para executar uma ação específica. Procedures: • Transferem valores por meio de uma lista de argumentos • São chamados com o comando CALL Copyright © 2004, Oracle. Todos os direitos reservados. Packages Os packages são conjuntos de functions e procedures. Cada package deve consistir em dois objetos: • Especificação do package • Package body Copyright © 2004, Oracle. Todos os direitos reservados. Package Body Copyright © 2004, Oracle. Todos os direitos reservados. Packages Internos O Oracle Database 10g vem com mais de 350 packages PL/SQL internos que fornecem: • Utilitários de administração e manutenção • Funcionalidade estendida Use o comando DESCRIBE para exibir subprogramas SQL> DESCRIBE dbms_stats PROCEDURE ALTER_DATABASE_TAB_MONITORING Argument Name Type In/Out Default? --------------- ------- ------ -------- MONITORING BOOLEAN IN DEFAULT SYSOBJS BOOLEAN IN DEFAULT ... Copyright © 2004, Oracle. Todos os direitos reservados. Triggers Copyright © 2004, Oracle. Todos os direitos reservados. Opções de Configuração de Instruções PL/SQL Há várias definições do compilador PL/SQL que controlam o seu desempenho. Para obter o desempenho mais rápido, defina: • PLSQL_CODE_TYPE=NATIVE • PLSQL_DEBUG=FALSE • PLSQL_OPTIMIZE_MODE=2 • PLSQL_WARNING=DISABLE:ALL Copyright © 2004, Oracle. Todos os direitos reservados. Sumário Nesta lição, você deverá ter aprendido a: • Identificar objetos PL/SQL • Descrever triggers e eventos de trigger • Identificar as opções de configuração que afetam o desempenho do código PL/SQL Copyright © 2004, Oracle. Todos os direitos reservados. Visão Geral do Exercício Não há exercícios nesta lição. Você gerenciará e criará objetos PL/SQL várias vezes durante o restante do curso. Copyright © 2004, Oracle. Todos os direitos reservados. Segurança do Banco de Dados Oracle Copyright © 2004, Oracle. Todos os direitos reservados. ObjetivosAo concluir esta lição, você será capaz de: • Aplicar o princípio de privilégio mínimo • Gerenciar contas de usuário default • Implementar recursos de segurança de senha padrão • Fazer auditoria da atividade do banco de dados Copyright © 2004, Oracle. Todos os direitos reservados. Segurança do Banco de Dados Um sistema seguro garante a confidencialidade dos dados nele contidos. A segurança envolve diversos aspectos: • Restrição do acesso aos dados e serviços • Autenticação dos usuários • Monitoração de atividades suspeitas Copyright © 2004, Oracle. Todos os direitos reservados. Aplicar o Princípio de Privilégio Mínimo • Proteger o dicionário de dados • Revogar os privilégios desnecessários de PUBLIC • Restringir os diretórios que os usuários podem acessar • Limitar os usuários com privilégios administrativos • Restringir a autenticação remota do banco de dados Copyright © 2004, Oracle. Todos os direitos reservados. Proteger o Dicionário de Dados • Proteja o dicionário de dados garantindo que o seguinte parâmetro de inicialização seja definido como FALSE: • Essa configuração impede que usuários com privilégios de sistema ANY TABLE acessem as tabelas-base de dicionário de dados. • A definição FALSE também impede que o usuário SYS efetue login como um usuário diferente de SYSDBA • O valor default desse parâmetro é FALSE. Se o parâmetro de inicialização tiver sido definido como TRUE, deverá haver um bom motivo para isso. O7_DICTIONARY_ACCESSIBILITY = FALSE Copyright © 2004, Oracle. Todos os direitos reservados. Revogar Privilégios Desnecessários de PUBLIC • Revogue todas as atribuições e privilégios desnecessários do grupo de usuários PUBLIC do servidor de banco de dados. • Vários packages internos concedem o privilégio EXECUTE a PUBLIC. • Geralmente, o privilégio execute deve ser revogado de PUBLIC nos seguintes packages: – UTL_SMTP – UTL_TCP – UTL_HTTP – UTL_FILE – DBMS_OBFUSCATION_TOOLKIT • Exemplo: SQL> REVOKE execute ON utl_file FROM PUBLIC; Copyright © 2004, Oracle. Todos os direitos reservados. Restringir os Diretórios do Sistema Operacional Acessíveis ao Usuário O parâmetro de configuração UTL_FILE_DIR: • Designa quais diretórios estão disponíveis para a entrada/saída de arquivos PL/SQL • Permite que os usuários do banco de dados leiam ou gravem nos diretórios listados do servidor de banco de dados Copyright © 2004, Oracle. Todos os direitos reservados. Limitar os Usuários com Privilégios Administrativos • Restrinja os seguintes tipos de privilégios: – Concessões de privilégios de sistema e de objeto – Conexões com privilégios de SYS: SYSDBA e SYSOPER – Privilégios de DBA, como DROP ANY TABLE – Permissões de runtime • Exemplo: Liste todos os usuários com a atribuição DBA: SQL> SELECT grantee FROM dba_role_privs 2 WHERE granted_role = 'DBA'; GRANTEE ------------------------------ SYS SYSTEM Copyright © 2004, Oracle. Todos os direitos reservados. Desativar a Autenticação Remota do Sistema Operacional • Só utilize autenticações remotas quando tiver certeza de que todos os clientes autenticam os usuários de forma adequada. • Processo de autenticação remota: – O usuário do banco de dados é autenticado externamente. – O sistema remoto autentica o usuário. – O usuário efetua logon no banco de dados sem autenticação adicional. • Para desativar, verifique se o seguinte parâmetro de inicialização da instância está configurado com sua definição default: REMOTE_OS_AUTHENT = FALSE Copyright © 2004, Oracle. Todos os direitos reservados. Gerenciar Contas de Usuário Default • O DBCA expira e bloqueia todas as contas, exceto: – SYS – SYSTEM – SYSMAN – DBSNMP • Para os bancos de dados criados manualmente, bloqueie e expire todas as contas não utilizadas. Copyright © 2004, Oracle. Todos os direitos reservados. Usuário Expiração e vencimento da senha Verificação da senha Configuração de perfis Implementar Recursos de Segurança de Senha Padrão Histórico de senha Bloqueio de conta Copyright © 2004, Oracle. Todos os direitos reservados. Bloqueio de Conta por Senha Incorreta Número de dias em que a conta permanece bloqueada após o número especificado de tentativas de login malsucedidas PASSWORD_LOCK_TIME Número de tentativas de login malsucedidas antes do bloqueio da conta FAILED_LOGIN_ATTEMPTS DescriçãoParâmetro Copyright © 2004, Oracle. Todos os direitos reservados. Expiração e Vencimento de Senha Período de tolerância, em dias, para alterar a senha após o primeiro login bem-sucedido depois da expiração da senha PASSWORD_GRACE_TIME Tempo de vida útil da senha, em dias, após o qual a senha expira PASSWORD_LIFE_TIME DescriçãoParâmetro Copyright © 2004, Oracle. Todos os direitos reservados. Histórico de Senhas Número de alterações de senha necessárias antes de a senha atual poder ser reutilizada PASSWORD_REUSE_MAX Número de dias antes de uma senha poder ser reutilizada PASSWORD_REUSE_TIME DescriçãoParâmetro Copyright © 2004, Oracle. Todos os direitos reservados. Verificação de Senha As functions de verificação de senha devem: • Pertencer ao usuário SYS • Retornar um valor Booleano (verdadeiro ou falso) Uma function PL/SQL que executa uma verificação de complexidade antes que a senha seja designada PASSWORD_VERIFY_ FUNCTION DescriçãoParâmetro Copyright © 2004, Oracle. Todos os direitos reservados. Function de Verificação de Senha Fornecida: VERIFY_FUNCTION A function de verificação de senha fornecida impõe as seguintes restrições de senha: • O tamanho mínimo é de quatro caracteres • A senha não pode ser igual ao nome do usuário • A senha deve ter, no mínimo, um caractere alfabético, um numérico e um especial • A senha deve ter pelo menos três letras diferentes da senha anterior Copyright © 2004, Oracle. Todos os direitos reservados. Criando um Perfil de Senha Copyright © 2004, Oracle. Todos os direitos reservados. Designando Usuários a um Perfil de Senha Copyright © 2004, Oracle. Todos os direitos reservados. Monitorando Atividades Suspeitas A monitoração ou a auditoria deve ser parte integrante dos procedimentos de segurança. As ferramentas internas de auditoria do Oracle incluem: • Auditoria de banco de dados • Auditoria baseada em valor • FGA Copyright © 2004, Oracle. Todos os direitos reservados. Comparações das Ferramentas de Auditoria Conjunto fixo de dados, incluindo a instrução SQL Instruções SQL (insert, update, delete e select) baseadas em conteúdo FGA Definido pelo administrador Dados alterados por instruções DML Auditoria baseada em valor Conjunto fixo de dados Uso de privilégios, inclu- indo acesso a objetos Auditoria de banco de dados padrão Qual o Conteúdo da Trilha de Auditoria? O que É Auditado?Tipo de Auditoria Copyright © 2004, Oracle. Todos os direitos reservados. Auditoria de Banco de Dados Padrão Ativada por meio do parâmetro AUDIT_TRAIL • NONE: Desativa a coleta de registros de auditoria • DB: Ativa a auditoria com os registros armazenados no banco de dados • OS: Ativa a auditoria com os registros armazenados na trilha de auditoria do sistema operacional Pode fazer auditoria do(s): • Eventos de login • Exercício dos privilégios de sistema • Exercício dos privilégios de objeto • Uso de instruções SQL Copyright © 2004, Oracle. Todos os direitos reservados. Especificando Opções de Auditoria • Auditoria de instruções SQL • Auditoria (não específica e específica) de privilégios de sistema • Auditoria (não específica e específica) de privilégios de objeto • Auditoria de sessões AUDIT select any table, create any trigger; AUDIT select any table BY hr BY SESSION; AUDIT table; AUDIT ALL on hr.employees; AUDIT UPDATE,DELETE on hr.employees BY ACCESS; AUDIT session whenever not successful; Copyright © 2004, Oracle. Todos os direitos reservados. View do Dicionário de Dados ALL_DEF_AUDIT_OPTS DBA_STMT_AUDIT_OPTS DBA_PRIV_AUDIT_OPTS DBA_OBJ_AUDIT_OPTSDescrição Opções de auditoria default Opções de auditoria de instrução Opções de auditoria de privilégio Opções de auditoria de objeto de esquema Exibindo Opções de Auditoria Copyright © 2004, Oracle. Todos os direitos reservados. Trilha de auditoria Arquivo de parâmetros Especificar opções de auditoria Gerar trilha de auditoria Revisar informações de auditoria Auditoria de Banco de Dados Padrão DBA Usuário Ativar auditoria de banco de dados executa o comando Banco de dados Trilha de auditoria do SO Opções de auditoria Processo do servidor Copyright © 2004, Oracle. Todos os direitos reservados. View da Trilha de Auditoria DBA_AUDIT_TRAIL DBA_AUDIT_EXISTS DBA_AUDIT_OBJECT DBA_AUDIT_SESSION DBA_AUDIT_STATEMENT Descrição Todas as entradas da trilha de auditoria Registros para AUDIT EXISTS/NOT EXISTS Registros referentes aos objetos de esquema Todas as entradas de conexão e desconexão Registros de auditoria de instrução Exibindo os Resultados da Auditoria Copyright © 2004, Oracle. Todos os direitos reservados. Auditoria Baseada em Valor A alteração do usuário é efetuada O trigger é acionado O registro de auditoria é criado pelo trigger E inserido em uma tabela de trilha de auditoria O usuário efetua a alteração Copyright © 2004, Oracle. Todos os direitos reservados. FGA • Monitora o acesso aos dados com base no conteúdo • Faz auditoria de SELECT ou de INSERT,UPDATE, DELETE • Pode ser vinculada a uma tabela ou view • Pode acionar um procedure • É administrada com o package DBMS_FGA employees Política: AUDIT_EMPS_SALARY SELECT name, salary FROM employees WHERE department_id = 10; Copyright © 2004, Oracle. Todos os direitos reservados. Política de FGA dbms_fga.add_policy ( object_schema => 'hr', object_name => 'employees', policy_name => 'audit_emps_salary', audit_condition=> 'dept_id=10', audit_column => 'salary', handler_schema => 'secure', handler_module => 'log_emps_salary', enable => TRUE, statement_types=> 'select' ); SELECT name, job_id FROM employees; SELECT name, salary FROM employees WHERE department_id = 10; SECURE.LOG_ EMPS_SALARY employees • Define: – Critérios de auditoria – Ação de auditoria • É criada com DBMS_FGA .ADD_POLICY Copyright © 2004, Oracle. Todos os direitos reservados. Política de FGA dbms_fga.add_policy ( object_schema => 'hr', object_name => 'employees', policy_name => 'audit_emps_salary', audit_condition => 'department_id = 10', audit_column => 'salary', handler_schema => 'secure', handler_module => 'log_emps_salary', enable => TRUE ); SELECT name, salary FROM employees; SELECT name, salary FROM employees WHERE department_id = 10; SECURE.LOG_ EMPS_SALARY Employees • Define – Critérios de auditoria – Ação de auditoria • É criada com DBMS_FGA .ADD_POLICY Copyright © 2004, Oracle. Todos os direitos reservados. Package DBMS_FGA • Use o package DBMS_FGA para manter as políticas de FGA • Conceda o privilégio de execução somente aos administradores • Inclui os seguintes subprogramas: Desativa uma política de auditoriaDISABLE_POLICY Ativa uma política de auditoriaENABLE_POLICY Elimina uma política de auditoriaDROP_POLICY Cria uma política de auditoria usando o predicado fornecido como a condição de auditoria ADD_POLICY DescriçãoSubprograma Copyright © 2004, Oracle. Todos os direitos reservados. Ativando e Desativando uma Política de FGA • Ativar uma política: • Desativar uma política: dbms_fga.enable_policy ( object_schema => 'hr', object_name => 'employees', policy_name => 'audit_emps_salary' ); dbms_fga.disable_policy ( object_schema => 'hr', object_name => 'employees', policy_name => 'audit_emps_salary' ); Copyright © 2004, Oracle. Todos os direitos reservados. Eliminando uma Política de FGA SQL> EXEC dbms_fga.drop_policy ( - > object_schema => 'hr', - > object_name => 'employees', - > policy_name => 'audit_emps_salary'); PL/SQL procedure successfully completed. SQL> Copyright © 2004, Oracle. Todos os direitos reservados. Disparando Eventos de Auditoria • As seguintes instruções SQL geram uma auditoria: • A seguinte instrução não gera uma auditoria: SELECT count(*) FROM hr.employees WHERE department_id = 10 AND salary > v_salary; SELECT salary FROM hr.employees; SELECT last_name FROM hr.employees WHERE department_id = 10; Copyright © 2004, Oracle. Todos os direitos reservados. Views de Dicionário de Dados Todas as políticas de FGA referentes aos objetos do esquema do usuário atual USER_AUDIT_POLICIES Todas as políticas de FGA do banco de dados DBA_AUDIT_POLICIES Todas as políticas de FGA referentes aos objetos que o usuário atual pode acessar ALL_AUDIT_POLICIES Todos os eventos de FGADBA_FGA_AUDIT_TRAIL DescriçãoNome da View Copyright © 2004, Oracle. Todos os direitos reservados. DBA_FGA_AUDIT_TRAIL SQL> SELECT to_char(timestamp, 'YYMMDDHH24MI') 2 AS timestamp, 3 db_user, 4 policy_name, 5 sql_bind, 6 sql_text 7 FROM dba_fga_audit_trail; TIMESTAMP DB_USER POLICY_NAME SQL_BIND ---------- ------- ----------------- ---------- SQL_TEXT ----------------------------------------------- 0201221740 SYSTEM AUDIT_EMPS_SALARY #1(4):1000 SELECT count(*) FROM hr.employees WHERE department_id = 10 AND salary > :b1 Copyright © 2004, Oracle. Todos os direitos reservados. Diretrizes de FGA • Para fazer auditoria de todas as instruções, use uma condição nula. • Se você tentar adicionar uma política que já exista, o erro ORA-28101 ocorrerá. • A tabela ou a view auditada já deverá existir quando você criar a política. • Se a sintaxe da condição de auditoria for inválida, ocorrerá um erro ORA-28112 quando o objeto auditado for acessado. • Se a coluna de auditoria não existir na tabela, nenhuma linha será auditada. • Se o handler de eventos não existir, nenhum erro será retornado, e os registros de auditoria ainda serão criados. Copyright © 2004, Oracle. Todos os direitos reservados. Fazendo Auditoria dos Usuários SYSDBA e SYSOPER Os usuários com privilégios SYSDBA ou SYSOPER podem se conectar com o banco de dados fechado. • A trilha de auditoria deve ser armazenada for a do banco de dados. • A conexão como SYSDBA ou SYSOPER é sempre auditada. • Ative a auditoria adicional das ações de SYSDBA ou de SYSOPER com audit_sys_operations. • Controle a trilha de auditoria com audit_file_dest. O default é: – $ORACLE_HOME/rdbms/audit (UNIX/Linux) – Log de Eventos do Windows (Windows) Copyright © 2004, Oracle. Todos os direitos reservados. Atualizações de Segurança • A Oracle publica os alertas de segurança no Web site Oracle Technology Network em: http://otn.oracle.com/deploy/security/alerts.htm • Os desenvolvedores e administradores de bancos de dados Oracle também podem se inscrever para receber uma notificação dos alertas de segurança críticos via e-mail, clicando no link "Subscribe to Security Alerts Here". Copyright © 2004, Oracle. Todos os direitos reservados. Sumário Nesta lição, você deverá ter aprendido a: • Aplicar o princípio de privilégio mínimo • Gerenciar contas de usuário default • Implementar recursos de segurança de senha padrão • Fazer auditoria da atividade do banco de dados Copyright © 2004, Oracle. Todos os direitos reservados. Visão Geral do Exercício 11-1: Segurança do Banco de Dados (Parte 1) Tarefas: • Impedir o uso de senhas simples • Impor o bloqueio das contas por 10 minutos após quatro tentativas malsucedidas de login • Isentar o login do servidor de aplicações das alterações de senha impostas • Fazer auditoria das tentativas malsucedidas de conexão com o banco de dados Copyright © 2004, Oracle. Todos os direitos reservados. Visão Geral do Exercício 11-2: Segurança do Banco de Dados (Parte 2) Tarefas: • Fazer auditoria da operação de seleção na coluna SALARY da tabela EMPLOYEES • Fazer auditoria das alterações efetuadas na coluna SALARY da tabela EMPLOYEES, capturar: – O antigo valor –O novo valor – O usuário que efetuou a alteração – O local de origem da alteração Copyright © 2004, Oracle. Todos os direitos reservados. Oracle Net Services Copyright © 2004, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Usar o Database Control para: – Criar listeners adicionais – Criar apelidos para o Oracle Net Services – Configurar o failover de tempo de conexão – Controlar o Oracle Net Listener • Usar o Oracle Net Manager para configurar conexões de clientes e de camada intermediária. • Usar o TNSPING para testar a conectividade do Oracle Net Copyright © 2004, Oracle. Todos os direitos reservados. Oracle Net Services Aplicação Oracle Net RDBMS Oracle Net Cliente ou Camada Intermediária Servidor de banco de dados Rede TCP/IP Listener Arquivos de configuração do Oracle Net Arquivos de configuração do Oracle Net Copyright © 2004, Oracle. Todos os direitos reservados. Oracle Net Listener Listener $ORACLE_HOME/network/admin/listener.ora sqlnet.ora Banco(s) de dados Oracle Controle do banco de dados Arquivos de configuração do Oracle Net Copyright © 2004, Oracle. Todos os direitos reservados. Monitorando o Listener Copyright © 2004, Oracle. Todos os direitos reservados. Criando um Listener 1 2 3 4 Copyright © 2004, Oracle. Todos os direitos reservados. Endereços de Listening 8 9 7 5 6 Copyright © 2004, Oracle. Todos os direitos reservados. Configurando Parâmetros Opcionais Copyright © 2004, Oracle. Todos os direitos reservados. Registro Estático de Banco de Dados Copyright © 2004, Oracle. Todos os direitos reservados. Listener Control Utility Os listeners do Oracle Net também podem ser controlados com o utilitário de linha de comandos lsnrctl. #lsnrctl LSNRCTL for Linux: Version 10.1.0.1.0 on 05-NOV-2003 13:27:51 Copyright (c) 1991, 2003, Oracle. All rights reserved. Welcome to LSNRCTL, type "help" for information. LSNRCTL> help The following operations are available An asterisk (*) denotes a modifier or extended command: start stop status services version reload save_config trace spawn change_password quit exit set* show* Copyright © 2004, Oracle. Todos os direitos reservados. Sintaxe do Utilitário de Controle do Listener É possível executar os comandos do Utilitário de Controle do Listener na linha de comandos ou no prompt do LSNRCTL. • Sintaxe de linha de comandos do UNIX ou Linux: • Sintaxe do prompt: # lsnrctl <nome do comando> # lsnrctl start # lsnrctl status LSNRCTL> <nome do comando> LSNRCTL> start LSNRCTL> status Copyright © 2004, Oracle. Todos os direitos reservados. Monitorando com o Listener Control O Listener Control contém duas opções de monitoramento, services e status. LSNRCTL> SERVICES Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC))) Services Summary... Service "dba10g" has 1 instance(s). Instance "dba10g", status READY, has 1 handler(s)for this service... Handler(s): "DEDICATED" established:12 refused:0 state:ready … The command completed successfully Copyright © 2004, Oracle. Todos os direitos reservados. Conexões com o Oracle Net Para estabelecer uma conexão com o cliente ou om a camada intermediária, o Oracle Net requer que o cliente conheça: • O host em que o listener está sendo executado • A porta que o listener está monitorando • O protocolo que o listener está usando • O nome do serviço que o listener está manipulando Aplicação Cliente/Servidor Oracle Net Arquivos de configuração do Oracle Net Copyright © 2004, Oracle. Todos os direitos reservados. Resolução de Nomes O Oracle Net oferece suporte a vários métodos de resolução de informações de conexão: • Conexão Fácil • Nomeação local • Nomeação de diretórios • Nomeação externa Cliente/Servidor de aplicações Oracle Net Arquivos de configuração do Oracle Net Copyright © 2004, Oracle. Todos os direitos reservados. Conexão Fácil • Ativada por default • Não requer nenhuma configuração de cliente • Oferece suporte apenas ao protocolo TCP/IP (sem SSL) • Não oferece suporte a opções de conexão avançadas, como: – Failover de tempo de conexão – Roteamento de origem – Balanceamento de carga SQL> CONNECT hr/hr@db.us.oracle.com:1521/dba10g Nenhum arquivo de configuração do Oracle Net Copyright © 2004, Oracle. Todos os direitos reservados. Nomeação Local • Requer um arquivo de resolução de nomes do cliente • Oferece suporte a todos os protocolos Oracle Net • Oferece suporte a opções de conexão avançadas, como: – Failover de tempo de conexão – Roteamento de origem – Balanceamento de carga SQL> CONNECT hr/hr@fin1 Arquivos de configuração do Oracle Net Copyright © 2004, Oracle. Todos os direitos reservados. Nomeação de Diretórios • Requer o LDAP (Lightweight Directory Access Protocol) com as informações carregadas sobre resolução de nomes do Oracle Net – Oracle Internet Directory – Serviços Microsoft Active Directory • Suporta todos os protocolos Oracle Net • Suporta opções de conexão avançadas SQL> CONNECT hr/hr@fin1Arquivos de configuração do Oracle Net Diretório OLAP Copyright © 2004, Oracle. Todos os direitos reservados. Configurando os Apelidos de Serviços Criar ou editar Adicionar Copyright © 2004, Oracle. Todos os direitos reservados. Opções de Conexão Avançadas O Oracle Net oferece suporte a opções de conexão avançadas com nomeação local e de diretórios • Failover de tempo de conexão • Balanceamento de carga • Roteamento de origem Copyright © 2004, Oracle. Todos os direitos reservados. Oracle Net Manager Copyright © 2004, Oracle. Todos os direitos reservados. Escolhendo Métodos de Nomeação O Oracle Net Manager configura os métodos de resolução de nomes que serão usados por um cliente ou uma camada intermediária e a ordem em que serão verificados. Copyright © 2004, Oracle. Todos os direitos reservados. Configurando Apelidos de Serviços com o Net Manager Use o Oracle Net Manager para configurar os apelidos de nomeação local e de diretórios. Copyright © 2004, Oracle. Todos os direitos reservados. Opções de Conexão Avançadas Usando o Oracle Net Manager O Oracle Net suporta as opções de conexão avançadas com nomeação local e de diretórios • Failover de tempo de conexão • Balanceamento de carga • Roteamento de origem Copyright © 2004, Oracle. Todos os direitos reservados. Testando a Conectividade do Oracle Net O utilitário tnsping testa os apelidos do Oracle Net Services • Garante a conectividade entre o cliente e o Oracle Net Listener • Não verifica se o serviço solicitado está disponível • Suporta a resolução de nomes da Conexão Fácil • Suporta a nomeação local e de diretórios # tnsping db.us.oracle.com:1521/dba10g # tnsping foo Copyright © 2004, Oracle. Todos os direitos reservados. Sumário Nesta lição, você deverá ter aprendido a: • Usar o Database Control para: – Criar listeners adicionais – Proteger o listener com senha – Criar apelidos para o Oracle Net Services • Controlar o Oracle Net Listener • Usar o Oracle Net Manager para configurar conexões de cliente e de camada intermediária • Usar o utilitário TNSPING para testar a conectividade do Oracle Net Copyright © 2004, Oracle. Todos os direitos reservados. Visão Geral do Exercício 12: Oracle Net Services Este exercício aborda os seguintes tópicos: • Criando um listener • Configurando a resolução local de nomes • Configurando o failover de tempo de conexão Copyright © 2004, Oracle. Todos os direitos reservados. Servidores Compartilhados Oracle Copyright © 2004, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Identificar quando usar Servidores Compartilhados Oracle • Configurar Servidores Compartilhados Oracle • Monitorar Servidores Compartilhados Copyright © 2004, Oracle. Todos os direitos reservados. ListenerEstabelecendo uma Conexão Solicitação de conexão de entrada Copyright © 2004, Oracle. Todos os direitos reservados. Processo do Servidor Dedicado Listener Processo do servidor Processo do usuário Copyright © 2004, Oracle. Todos os direitos reservados. Processo do servidor Sessões do Usuário PGA Listener Sessão do Usuário Processo do usuário Copyright © 2004, Oracle. Todos os direitos reservados. Sessões do Usuário Servidor Dedicado Sessões do usuário Processo do servidor Processo do servidor Processo do servidor Sessão do usuário Copyright © 2004, Oracle. Todos os direitos reservados. Sessões do Usuário Servidor Compartilhado Listener Dispatcher Processo do servidor Copyright © 2004, Oracle. Todos os direitos reservados. Fila de respostas para D001 Fila de respostas para D002 Instância SGA Processos do servidor compartilhado Servidor de banco de dados Cliente ou camada intermediária S001 S002 Processo do usuário Dispatcher D001 Dispatcher D002 S000 Dispatcher D000 Fila de respostas para D000 Processando uma Solicitação Processo do usuário 1 2 3 4 6 5 Fila comum de solicitações para todos os dispatchers Copyright © 2004, Oracle. Todos os direitos reservados. SGA Servidor Compartilhado Oracle: Os dados da sessão do usuário são mantidos na SGA. SGA Shared pool e outras estruturas de memória Estado do cursor Shared pool e outras estruturas de memória Espaço da pilha PGA Servidor dedicado: Os dados da sessão do usuário são mantidos na PGA. Espaço da pilha Dados da sessão do usuário Estado do cursor PGA A SGA e a PGA Dados da sessão do usuário Copyright © 2004, Oracle. Todos os direitos reservados. Configurando o Servidor Compartilhado Oracle Parâmetro necessário • DISPATCHERS Parâmetros opcionais • SHARED_SERVERS • MAX_SHARED_SERVERS • CIRCUITS • SHARED_SERVER_SESSIONS Copyright © 2004, Oracle. Todos os direitos reservados. DISPATCHERS = “(PROTOCOL=TCP)(DISPATCHERS=2)\ (PROTOCOL=IPC)(DISPATCHERS=1)” Dispatcher D001 TCP/IP Dispatcher D002 IPC Dispatcher D000 TCP/IP DISPATCHERS Especifica o número de dispatchers que, a princípio, são inicializados para determinado protocolo. Copyright © 2004, Oracle. Todos os direitos reservados. SHARED_SERVERS = 6 S000 S001 S002 S003 S004 S005 SHARED_SERVERS Especifica o número de processos de servidor compartilhado criados quando uma instância é inicializada e retidos durante a operação da instância. Copyright © 2004, Oracle. Todos os direitos reservados. MAX_SHARED_SERVERS = 10 S000 S001 S002 S003 S004 S005 S006 S007 S008 S009 MAX_SHARED_SERVERS • Especifica o número máximo de servidores compartilhados que podem ser iniciados • Permite que servidores compartilhados sejam alocados dinamicamente com base no tamanho da fila de solicitações Copyright © 2004, Oracle. Todos os direitos reservados. CIRCUITS = 100 CIRCUITS • Especifica o número total de circuitos virtuais disponíveis para sessões de rede de entrada e de saída. • Contribui para o tamanho total da SGA Copyright © 2004, Oracle. Todos os direitos reservados. SHARED_SERVER_SESSIONS = 100 SHARED_SERVER_SESSIONS • Especifica o número total de sessões permitidas para o usuário do Servidor Compartilhado Oracle. • Permite reservar as sessões do usuário para servidores dedicados Copyright © 2004, Oracle. Todos os direitos reservados. Parâmetros Relacionados É possível que outros parâmetros de inicialização afetados pelo Servidor Compartilhado Oracle tenham de ser ajustados. • LARGE_POOL_SIZE • SESSIONS • PROCESSES • LOCAL_LISTENER Copyright © 2004, Oracle. Todos os direitos reservados. • Verifique se o dispatcher foi registrado no listener quando o banco de dados foi iniciado. Para isso, execute: • Verifique se você está conectado por meio de servidores compartilhados, estabelecendo uma conexão e efetuando uma consulta à view V$CIRCUIT para exibir uma entrada por conexão de servidor compartilhado. $ lsnrctl SERVICES Verificando a Configuração do Servidor Compartilhado Copyright © 2004, Oracle. Todos os direitos reservados. Views de Dicionário de Dados • V$CIRCUIT • V$SHARED_SERVER • V$DISPATCHER • V$SHARED_SERVER_MONITOR • V$QUEUE • V$SESSION Copyright © 2004, Oracle. Todos os direitos reservados. Escolhendo um Tipo de Conexão A menos que sejam configuradas de outra maneira, as conexões do Oracle Net usarão: • Um servidor compartilhado se houver algum disponível • Um servidor dedicado se uma conexão de servidor compartilhado não estiver disponível Com o uso da nomeação local ou de diretórios, é possível especificar o tipo de conexão como parte do apelido do serviço de rede. Copyright © 2004, Oracle. Todos os direitos reservados. Quando Não Usar o Servidor Compartilhado Certos tipos de trabalho de banco de dados não devem ser realizados por meio de servidores compartilhados: • Administração de bancos de dados • Operações de backup e recuperação • Processamento batch e operações de carga em alto volume • Operações de data warehouse Dispatcher Processo do servidor Copyright © 2004, Oracle. Todos os direitos reservados. Sumário Nesta lição, você deverá ter aprendido a: • Identificar quando usar Servidores Compartilhados Oracle • Configurar Servidores Compartilhados Oracle • Monitorar Servidores Compartilhados Copyright © 2004, Oracle. Todos os direitos reservados. Visão Geral do Exercício 13: Servidores Compartilhados Oracle Este exercício aborda os seguintes tópicos: • Investigando o impacto de conexões de servidor dedicado no sistema • Configurando o sistema para usar servidores compartilhados • Investigando o impacto de conexões de servidor compartilhado no sistema Copyright © 2004, Oracle. Todos os direitos reservados. Monitoramento do Desempenho Copyright © 2004, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Diagnosticar e solucionar problemas com objetos inválidos e que não podem ser utilizados • Coletar estatísticas do otimizador • Exibir métricas de desempenho • Reagir a problemas de desempenho Copyright © 2004, Oracle. Todos os direitos reservados. Monitoramento do Desempenho Alocação de Memória Alocação de Memória Disputa por dispositivo de entrada/saída Disputa por dispositivo de entrada/saída Problemas do código da aplicação Problemas do código da aplicação Disputa por recursos Disputa por recursos Gargalos de rede Gargalos de rede ? DBA Copyright © 2004, Oracle. Todos os direitos reservados. Metodologias de Monitoramento • Reativas • Pró-ativas – Alertas gerados pelo servidor – ADDM (Automated Database Diagnostic Monitor) Copyright © 2004, Oracle. Todos os direitos reservados. Métricas de Banco de Dados e de Instância Centenas de estatísticas de desempenho estão disponíveis por meio de: • Dicionário de dados • Views dinâmicas de desempenho • Estatísticas do otimizador DBA Copyright © 2004, Oracle. Todos os direitos reservados. Métricas de Dicionário de Dados Status de objetos: • Objetos de código PL/SQL • Índices Copyright © 2004, Oracle. Todos os direitos reservados. Objetos Inválidos e Inutilizáveis • Os objetos de código PL/SQL são recompilados. • Os índices são reconstruídos. Copyright © 2004, Oracle. Todos os direitos reservados. Estatísticas do Otimizador As estatísticas do otimizador: • Não são em tempo real • São persistentes em reinicializações de instâncias SQL> SELECT COUNT(*) FROM hr.employees; COUNT(*) ---------- 214 SQL> SELECT num_rows FROM dba_tables 2 WHERE owner='HR' AND table_name = 'EMPLOYEES'; NUM_ROWS ---------- 107 Copyright © 2004, Oracle. Todos os direitos reservados. Coletar Manualmente as Estatísticas do Otimizador • Se o banco de dados não tiver sido criado com o DBCA • Se as tabelas forem extremamente voláteis Copyright © 2004, Oracle. Todos os direitos reservados. Automatizar a Coleta de Estatísticas
Compartilhar