Administração de Sistemas de Gestão de Banco de Dados UFCG / CEEI / DSC SINBAD – Grupo de Sistemas de Informação e Banco de Dados http://www.lsi.dsc.ufcg.edu.br Disciplina: Administração de SGBD’s 2008.1 Cláudio de Souza Baptista • DBA X Mercado: um mundo de oportunidades! Information Week Dez/2000 mostrou numa pesquisa com gerentes de TI que as duas mais importantes questões relativas à gerência de BD são: – – • • • • • Facilidade de administração Disponibilidade de administradores qualificados Outra pesquisa mostra que as vagas para DBA demoram mais a ser preenchidas do que outras posições Acessando o Bureau of Labor Statistics Occupational Handbook Web site (www.bls.gov/oco), buscando por database administrator, entrontra-se que a ocupação de DBA é esperado crescer a uma taxa maior que a média (>36%) até 2012. O U.S. Department of Labor Statistics lista DBA como uma das 10 mais profissões em rápido crescimento. O governo americano prevê 66% de aumento na demanda por DBa até o final desta década. Por ser um “hot job”, DBAs requerem e obtêm salários altos!!!! DBA X Mercado: um mundo de oportunidades! • • • • Salários entre US$60.000 e US$80.000 Consultoria hora: US$81,00/hora DBA: responsável por projetar e manter uma banco de dados de uma empresa. Perfil de DBA: – Gostar de desafios – Ser um bom resolvedor de problemas DBA X Mercado: hard work ! • Nem tudo são flores : – Administração de BD é uma tarefa initerrupta (24X7) – Prepare-se para muitas horas extras de trabalho, especialmente em horários inconvenientes (madrugadas e fins-de-semana), ou seja, fora das horas de pico – Média de trabalho de DBA (fonte META Group) é de mais de 50 horas por semana. • Mas, as vantagens se sobrepõem às desvantagens como veremos neste curso ... ABD - Administrador de BD – Cada banco de dados requer pelo menos um ABD – A tarefa de um Administrador de Banco de Dados (ABD) pode ser exercida por uma única pessoa ou por um grupo de pessoas, dependendo do tamanho da empresa – Principal meta de um ABD: configurar o manter o BD de modo a torná-lo robusto, seguro e rápido nos serviços prestados – DBA deve ser pró-ativo: implementar práticas e procedimentos para evitar que ocorram problemas. DBA X Mercado • Avaliando uma oferta de emprego: – – – – – – Além do salário , é preciso indagar outras questões: A empresa oferece treinamento regular aos DBAs? A empresa permite DBA participar reuniões de user groups? Existe mais de um DBA (de modo que você não seja o único responsável por 24X7)? Existe Analista (ou Administrador) de Dados e administrador de sistemas? DBAs participam de revisões de design, discussões de orçamento e outros comitês de TI da empresa? Profissionais de TI • • • • • • Administrador de Dados Administrador de Sistemas Administrador de Banco de Dados Administrador de Rede Desenvolvedores de Aplicação Usuários Finais Tarefas • Principais Tarefas dos Administradores de Dados – – – – – – – – – Separar os aspectos de negócio da gestão de dados dos aspectos tecnológicos. Entender o negócio e traduzir para um modelo conceitual e lógico Fazer coleta de requisitos, análise e projeto de BD Identificar e catalogar os dados requeridos por usuários do negócio Produzir modelos de dados conceitual e lógico com a visão global da empresa, e dos diversos relacionamentos entre dados para processos de negócio Política de dados para a organização Estabelecimento de padronização Documentação, compartilhamento e implementação dos dados Uso de um repositório para metadados Tarefas de um ABD • • • • • • • • Entender os modelos de dados produzidos pelo DA e comunicar estes modelos com os desenvolvedores de aplicações Instalar e fazer upgrades do SGBD Inicializar e Finalizar o SGBD Alocar memória e planejar futuros requisitos de memória (crescimento) Criar estruturas de armazenamento de banco de dados (tablespaces) para as aplicações Criar tabelas, visões e índices Modificar esquemas Atribuir papéis a usuários e manter segurança Tarefas de um ABD • • • • • • • • • • • • • Fazer Auditoria Controlar e monitorar acesso dos usuários Migrar Banco de Dados para outras tecnologias Manter ambientes de BD de Teste e Produção Monitorar e otimizar performance Assegurar disponibilidade do SGBD Fazer backup e recuperação a falhas Manter a Integridade dos dados Realizar a migração de dados Contactar fabricante para suporte Participar de reuniões estratégicas e de projeto Descobrir e testar novas tecnologias Etc, etc, etc. Tarefas • Principais Tarefas dos Desenvolvedores de Aplicação – – projetar e desenvolver as aplicações definir as necessidades de memória de uma aplicação – especificar modificações em um esquema de BD – relacionar-se com o ABD – ajustar as aplicações durante o seu desenvolvimento Tarefas • Principais Tarefas dos Usuários Finais – – inserir, modificar e remover dados, onde permitido gerar relatórios Tarefas • Principais Tarefas dos Administradores de Rede – Responsáveis por administrar produtos de rede (p.e., Oracle Net). Tarefas • Principais Tarefas dos Administradores de Sistemas Operacionais – Responsáveis por administrar sistemas operacionais – (p.e., Windows Server, UNIX, Linux). Tarefas de um ABD: Tuning • • Tuning diz respeito ao ajuste do SGBD para melhor utilização dos recursos deste, provendo um uso eficaz e eficiente do SGBD. Tuning requer conhecimento de: – – – – Desenvolvimento de Aplicações SGBD Sistema operacional Hardware Tarefas de um ABD: Tuning • Em Tuning, comumente serão utilizadas informações de estatísticas de uso de HW: – – – – – Utilização do processador Atividade de I/O Paginação Memória utilizada ... Tarefas de um ABD: Tuning • Princípios básicos de Tuning (Shasha 2003): – Pense global, aja pontual – Particione os gargalos – Custos de inicialização são altos, custos de execução são baixos – Coloque no servidor apenas o que diz respeito ao servidor – Esteja preparado para trade-offs Tarefas de um ABD: Tuning • Princípio 1: Pense global, aja pontual – Tunning eficaz requer a identificação do problema e uma intervenção mínima – Como os médicos devem ( ou deveriam) fazer – Exemplo de falha deste princípio: consertar uma query que está rodando lentamente, mas que raramente é executada ou que ocupa 1% do tempo de CPU. Tarefas de um ABD: Tuning • Princípio 2: Particionar Gargalos – O sistema fica lento geralmente porquê há algum(uns) componentes limitando a performance como um todo. Agir nesta parte é o correto. – Particionar permite reduzir a carga de um certo componente do sistema. – Lição: quando encontrar um gargalo, primeiro tente agilizar o componente que causa o gargalo, se não conseguir sucesso particione. Tarefas de um ABD: Tuning • Princípio 3: Custos de inicialização são altos, custos de execução são baixos – Uma operação de leitura é cara para iniciar, mas menos cara enquanto se lê. Portanto, tente fazer leituras mais longas, colocando tabelas que sofrem scan constantemente serem armazenadas de forma contígua – O mesmo raciocínio vale para abertura de conexões com o SGBD, parsing de consultas muito usadas, envio de mensagens na rede (tamanho das mensagens) Tarefas de um ABD: Tuning • Princípio 4: Coloque no servidor apenas o que diz respeito ao servidor – Saber fazer o load-balancing, permitindo não sobrecarregar o servidor de banco de dados com tarefas que poderiam estar em outras camadas. Tarefas de um ABD: Tuning • Princípio 5: Esteja preparado para trade-offs – Adição de índices – Verificar as vantagens/desvantagens entre a compra de mais recursos versus a agilidade que se irá obter destas aquisições. Tarefas de um ABD: Tuning • Cinco fatores influem na performance: – – – – – Workload (carga) Throughput (Vazão) Recursos Otimização Contenção Tarefas de um ABD: Tuning • Workload – Define a demanda do BD. Combina transações online, batch jobs, consultas ad hoc, data warehousing, consultas analíticas, e comandos dirigidos ao SGBD – Pode variar drasticamente de dia para dia, hora para hora, minuto para minuto, segundo para segundo. – Algumas vezes é previsível (Rodar a folha de pagamento no final do mês), mas muitas vezes é imprevisível – Workload tem grande impacto na performance do SGBD Tarefas de um ABD: Tuning • Throughput – Define a capacidade do hardware/software para processar os dados – É composto de velocidade de I/O, velocidade de CPU, capacidades de paralelismo, e eficiência do SO. – Kernel do DB, espaço em disco, controladores de cache, e microcode são exemplos dos recursos a serem avaliados para computar throughput Tarefas de um ABD: Tuning • Otimização – Refere-se à análise das solicitações ao BD com custo de query que geram diferentes planos de acesso aos dados. • Contenção – Quando a demanda (workload) para uma recurso particular é alta então contenção acontece. – É a condição na qual dois ou mais componentes de workload estão tentando usar um recurso em modo conflitante. – À medida que a contenção aumenta, o throughput diminui. Tarefas de um ABD: Tuning • Resumindo: – Performance de BD pode ser definida como a otimização de uso de recursos para aumentar a throughput e minizar a contenção, possibilitando o maior workload possível ser processado. – Um monitoramento efetivo de performance e estratégia de tuning requer não apenas expertise no SGBD mas conhecimento que vai além da administração de BD. Disponibilidade • • • Manter o SGBD no ar e executando a contento Minimizar downtime requerido por tarefas administrativas Uso de tecnologias de clustering para implantar técnicas de failover Quantos DBAs? – – Um DBA sobre carregado pode produzir erros que cause downtime e problemas operacionais que representem prejuízo para empresa O número de DBAs depende de vários fatores: • • • • • • • • • • • • • Número de banco de dados Tamanho dos banco de dados Número de usuários Número de aplicações Service-Level Agreements (SLA) Requisitos de disponibilidade Impacto de downtime Requistos de performance Tipos de aplicações (OLTP e OLAP) ExperiÊncia de equipe de DBA Variedade de SGBDs Ferramentas de DBA Experiência de programadores e usuários finais Certificação de DBA • • Certificação profissional está em evidência recentemente em vários trabalhos de TI Em Bd existem vários programas de certificação: – – – – – Oracle: www.oracle.com/education/certification/ Microsoft SQL Server: www.microsoft.com/trainingandservices/default.asp?PageID=training IBM DB2: www.ibm.com/certify Sybase: www.sybase.com/education/profcert/ Informix: www.informix.com/informix/training/courses/certific/welcome.htm Sites dos Vendedores de SGBD • Oracle: www.oracle.com • MS SQL Server: www.microsoft.com/sql/default.asp • IBM DB2: www.ibm.com/software/data/db2/ • Informix: www.ibm.com/software/data/informix • Sybase: www.sybase.com • MySQL: http://www.mysql.com/ (SUN) • Ingres: http://www.ingres.com/ Sites dos SGBD • • • • Postgresql: www.postgresql.org Interbase: www.borland.com Firebird: www.firebirdsql.org/ Adabas: http://www.softwareag.com/corporate/products/adabas/default.asp • OODBMS: – – – – – UniSQL: ww.unisql.com Poet: www.poet.com Object Store: www.odi.com Ontos: www.ontos.com Jasmine: www.ca.com • XML-Native: – Tamino: www.softwareag.com/tamino/ Sites dos SGBD • PC-Based (brinquedos): – dBase: http://www.dbase.com/ – Filemaker: www.filemaker.com – Microsoft Access: www.microsoft.com/office/access/ – Visual FoxPro: www.microsoft.com/vfoxpro/ – Paradox: www.corel.com Ferramentas de Adm. de ISVs • • • • BMC: www.bmc.com Computer Associates: www.ca.com Embarcadero Tech: www.embarcadero.com Quest: www.quest.com OBS: ISV: Independent Software Vendors Ferramentas de Modelagem • • • • • • • • • ERWin (CA): www.ca,com DeZign for DB: www.datanimic.com Embarcadero: www.embarcadero.com MS Visio Enterprise: www.microsoft.com Oracle designer: www.oracle.com System Architect: www.popkin.com Rational Rose: www.rational.com Visible Analyst: www.visible.com Power Design: www.sybase.com Magazines • • • • • • • • Oracle Magazine: www.oracle.com/oramag/index.html DB2 Magazine: www.db2mag.com SQL Server Magazine: www.sqlmag.com Sybase Magazine: www.sybase.com/inc/sybmag Database Trends and Applications: www.dbta.com Data Management Review: www.dmreview.com Exploring Oracle: www.elementkjournals.com/dbm/ SQL Magazine: www.devmedia.com.br/sqlmagazine/ Consultores • • • • • • www.ylassoc.com www.tusc.com www.dbadirect.com www.dbdebunk.com www.craigmullins.com ASK TOM da Oracle Portais • • • • DBAzine.com: www.dbazine.com Searchbase.com: www.searchbase.com Data Administration newsletter: www.tdan.com Oracle: – – – • DB2: – – – • www.lazydba.com www.orafans.com www.oraworld.com www.ruban.de db2usa.hypermart.net/cindex.htm www7b.boulder.ibm.com/dmdd/ SQL Server: – – – www.sqlservercentral.com www.sql-server-performance.com www.swynk.com/sql Portais • Padronização (www.jcc.com/SQLPages/jccs_sql.htm): – ANSI: www.ansi.org – ISO: www.iso.ch – NIST: www.nist.gov • DAMA (Data Management Association: www.dama.org User Groups • • • • • Oracle: www.ioug.org DB2: www.idug.org SQL Server: www.sqlpass.org Informix: www.iiug.org Sybase: www.sybase.com/ISUG/ DBA: Visão Oracle • • ABD necessita de privilégios no sistema operacional Usernames do ABD Oracle: – SYS (password: CHANGE_ON_INSTALL) – SYSTEM (password: MANAGER) • Existe um papel DBA que pode ser atribuído a usuários que terão privilégios de administração exceto shutdown e startup Tarefas DBA: Visão Oracle • Tarefa 1: Avaliar o hardware do servidor – Quantos HD – Tape drives – Memória disponível • Tarefa 2: Instalar o software Oracle – server e front-end – Oracle Net Tarefas DBA: Visão Oracle • Tarefa 3: Planejar o Database – estrutura lógica de armazenamento – projeto físico do database – política de backup • Tarefa 4: Criar e Abrir o database – pode-se criar o db usando o Oracle Database Configuration Assistant, ou – criar scripts para criação do database Tarefas DBA: Visão Oracle • Tarefa 5: Backup do database – criar redo files adicionais – fazer backup do database completo – fazer backups incrementais • Tarefa 6: Atribuir papéis aos usuários – privilégios de acesso – políticas de segurança Tarefas DBA: Visão Oracle • Tarefa 7: Implementar o projeto do Database – criar tablespaces – criar os objetos do database • Tarefa 8: Ajustar a performance do database – – – – Ajuste de SQL Ajuste de Índices Ajuste de projeto do BD Ajuste de Hardware, SO e Rede Requisitos de Segurança: Visão Oracle • • • ABD precisa de privilégios especiais Cada BD Oracle tem um papel (role) DBA (database administrator) que permite realizar as tarefas de administração Existem dois usuários que têm o papel DBA: – SYS – SYSTEM Requisitos de Segurança: Visão Oracle • SYS – o dicionário de dados é armazenado no esquema SYS • SYSTEM – contém tabelas adicionais que mostram informações administrativas – contém tabelas e visões internas Requisitos de Segurança: Visão Oracle – Existem dois privilégios de administração: • SYSDBA – – – – – • inicializa e finaliza o banco de dados CREATE e ALTER DATABASE RECOVERY Permite um usuário se conectar como SYS Esquema é SYS SYSOPER – – – – inicializa e finaliza o banco de dados CREATE e ALTER DATABASE RECOVERY Permite executar tarefas básicas mas sem poder olhar os dados dos usuários – Esquema é PUBLIC 2. Instalação Criando o Ambiente de BD – Definir a estratégia da organização • • • Qual SGBD é desejável para a empresa? Deve-se procurar minimizar o número de SGBDs diferentes na empresa. Deve-se procurar os grandes fabricantes (IBM DB2, Oracle, SQL-Server), baseado no ditado: – • • • • Numa segunda opção, pode-se contactar o segundo escalão de fabricantes: Sybase e Informix Se a empresa adota a política de software open-source então Postgresql e MySQL são as escolhas Numa terceira opção, vem o terceiro escalão: ADABAS e INGRES Se há requisitos específicos do tipo: – – – • “you cannot go wrong with Oracle or DB2” Uso para BD muito grandes (Very Large DB) => NCR Teradata Uso exclusivo para XML => Tamino Uso de SGBD OO => ObjectDesign e Versant Importante saber se o fornecedor proverá no futuro novas funcionalidades (mínimas que sejam) com pequeno risco. Criando o Ambiente de BD – Definir a estratégia da organização • • • Qual SGBD é desejável para a empresa? Deve-se procurar minimizar o número de SGBDs diferentes na empresa. Deve-se procurar os grandes fabricantes (IBM DB2, Oracle, SQL-Server), baseado no ditado: – • • • • Numa segunda opção, pode-se contactar o segundo escalão de fabricantes: Sybase e Informix Se a empresa adota a política de software open-source então Postgresql e MySQL são as escolhas Numa terceira opção, vem o terceiro escalão: ADABAS e INGRES Se a requisitos específicos do tipo: – – – • “you cannot go wrong with Oracle or DB2” Uso para BD muito grandes (Very Large DB) => NCR Teradata Uso exclusivo para XML => Tamino Uso de SGBD OO => ObjectDesign e Versant Importante saber se o fornecedor proverá no futuro novas funcionalidades (mínimas que sejam) com pequeno risco. Criando o Ambiente de BD – Na escolha de um BD são importantes os seguintes aspectos: • • • • • • • • • Suporte ao Sistema Operacional Tipo da organização (conservadora ou liberal) Benchmarks (detalhes no próximo slide) Escalabilidade Disponibilidade de ferramentas de software de apoio Peopleware TCO (custo da licença + custo de software extra requerido + custo de profissionais + suporte + administração do SGBD) Política de Releases Referências de outros clientes Avaliando BenchMark – Benchmark • • – Teste usado para comparar performance de hardware e/ou software Existem vários benchmarks, em BD TPC é o mais respeitado TPC – Transaction Processing Performance Council • • • É um organização independente e que não visa lucro que gerencia e administra testes de benchmark Testes de benchmark medem performance baseados no número de transações que um dado sistema e SGBD podem executar por unidade de tempo (ex. num. de transações por minuto) TPC tem os seguintes benchmarks: – – – – – • • TPC-App: Application Server e Web services benchmark TPC-C: Workload de produção planejado num ambiente de transações TPC-H: processamento ad-hoc no qual transações não são conhecidas e prédefinidas TPC-R: ambiente de suporte à decisão TPC-W: Processamento de transações na Web Ver: http://www.tpc.org Ver: http://itautec.cin.ufpe.br/tpc.aspx#2 Criando o Ambiente de BD – Arquiteturas de SGBD • • Realidade atual: infraestrutura de TI é distribuída e heterogênea Quatro níveis de arquiteturas: – – – – Enterprise: » Projetado para escalabilidade e performance » Capaz de suportar grande volumes de dados, múltiplas transações e múltiplos tipos de aplicação » Executa numa máquina robusta (mainframe ou servidor rodando UNIX, Linux ou XP(NT) » Suporte para múltiplos processadores, queries paralelas, e outras características avançadas » Ex. Oracle Enterprise Edition, preço US$40,000.00 Departamental: » Também conhecido como Workgroup DBMS » Para empresas de médio a pequeno porte » Executa em UNIX, Linux e XP » Ex. Oracle Standard One, preço US$5,000.00 Personal: » Projetado para usuário único. » Roda em plataformas do tipo PC com Linux ou Windows » Ex. Microsoft Access, Personal Oracle Mobile » Projetado para usuários utilizarem remotamente sem conexão » Plataformas laptop, PDA e mobile phones » Ex. Personal Oracle Lite http://www.orafaq.com/faqpol.htm Criando o Ambiente de BD – • Arquiteturas de SGBD Clustering de SGBD – – – Clustering é o uso de computadores independentes trabalhando conjuntamente num único sistema, altamente disponível. Visa aumentar disponibilidade e escalabilidade Presta-se para load balancing e failover Há duas arquiteturas: • • shared-disk : todos os computadores compartilham os dispositivos de disco. Cada processador tem sua memória privada. shared-nothing: cada sistema tem seus próprios recursos privados (memória, disco, etc.) e os processadores se comunicam a através da troca de mensagens na rede Criando o Ambiente de BD • Comparação de Shared-disk e shared-nothing Shared-disk Shared-nothing Rápida adaptação à mudança de workloads Pode explorar hardware simples e baratos Alta disponibilidade Alta escalabilidade Bom para ambientes read-only Bom para ambientes read/write Dados não precisam ser particionados Dados são particionados pelo cluster Criando o Ambiente de BD • Comparação de Shared-disk e shared-nothing – Ex.: DB2 para OS/390 provê shared-disk clustering – DB2 Extended Enterprise Edition provê shared-nothing clustering – Oracle Real Application Clusters provê shared-disk clustering