Você está na página 1de 15

MYSQL

5
CAPTULO 1 Bem-vindo ao MySQL
1.1. O que MySQL Em um mundo onde a globalizao est cada vez mais presente, os processos cada vez mais automatizados e as barreiras de distncia sendo quebradas pelo aumento da popularizao da internet, a necessidade de armazenamento de dados e informaes de cada mercado torna-se o primeiro passo para a migrao de seu negcio para internet. nessa etapa que entra o MySQL, visando a suprir essa necessidade da melhor forma possvel. O MySQL um servidor e gerenciador de banco de dados (SGBD) relacional, de licena dupla (sendo uma delas de software livre), projetado inicialmente para trabalhar com aplicaes de pequeno e mdio portes, mas hoje atendendo a aplicaes de grande porte e com mais vantagens que os seus concorrentes. Possui todas as caractersticas que um banco de dados de grande porte precisa, sendo reconhecido por algumas entidades como o banco de dados open source com maior capacidade para concorrer com programas similares de cdigo fechado, tais como SQL Server (da Microsoft) e Oracle. 1.1.1. Histria do MySQL O MySQL teve origem quando os desenvolvedores David Axmark, Allan Larsson e Michael Monty Widenius, na dcada de 90, precisaram de uma interface SQL compatvel com as rotinas ISAM que utilizavam em suas aplicaes e tabelas. Em um primeiro momento, tentaram utilizar a API mSQL, contudo a API no era to rpida quanto eles precisavam, pois utilizavam rotinas de baixo nvel (mais rpidas que rotinas normais). Utilizando a API do mSQL, escreveram em C e C++ uma nova API que deu origem ao MySQL. Com o timo resultado gerado por essa nova API, o MySQL comeou a ser difundido e seus criadores fundaram a empresa responsvel por sua manuteno que a MySQL AB. A partir dessa fase, o MySQL tornou-se mais conhecido por suas caractersticas de rpido acesso e cada vez mais utilizado. Novas verses foram lanadas, contemplando novas necessidades e firmando, assim, sua posio no mercado. Sua mais recente verso (na escrita desta apostila) a 5.1, a qual conta com novos recursos, estabelecendo sua capacidade para competir com os bancos de dados privados de maior popularidade (SQL Server e Oracle). 1.1.2. Licena de uso O MySQL desenvolvido e distribudo por meio de duas licenas que iro depender do tipo de uso da ferramenta. Na maioria dos casos, seu uso livre. Contudo, vale a pena conhecer as duas possveis licenas do MySQL. A primeira, software livre, baseada nas clausulas da GNU-GPL (General Public Licence), a qual estabelece o que se pode ou no fazer com a ferramenta e demais recursos. Alm do programa, o seu cdigo-fonte tambm disponibilizado para que qualquer pessoa possa adapt-lo s necessidades; contudo, todas essas situaes sero tratadas e detalhadas na GNU-GPL. Basicamente, a licena do tipo GNU-GPL baseia-se nos seguintes princpios: Utilizao: Permite utilizar o software para qualquer propsito. Distribuio: Permite a livre distribuio do software entre todas as pessoas. Didtica: Permite que seu funcionamento seja estudado a partir de seu cdigo-fonte. Colaborao: Permite que seu cdigo-fonte seja alterado para evoluir a ferramenta, desde que seu novo cdigo- fonte continue sendo livre seguindo essa licena. Para saber mais sobre essa licena, acesse o seu site oficial (em ingls): http://www.gnu.org A segunda licena comercial. Para algumas situaes sobre como embutir o MySQL dentro de suas aplicaes comerciais (OEMs, ou seja, fora dos termos da GNU-GPL), obter suporte diferenciado, ou obter pacotes com mais ferramentas, essa licena pode ser mais apropriada. Maiores informaes podem ser obtidas no site oficial da ferramenta: http://www.mysql.com/oem/licensing.html O melhor tipo de licena variar de caso para caso, dependendo da necessidade de treinamentos, suportes, entre outros fatores. Geralmente o MySQL pode ser utilizado gratuitamente. Para saber de qual tipo de licena a sua aplicao necessita, consulte ambos os endereos eletrnicos disponveis nos pargrafos anteriores.

1.2. Utilizaes recomendadas Inicialmente, o MySQL foi projetado para trabalhar com aplicaes de pequeno a mdio porte, algo em torno de 100 milhes de registros por tabela, tendo como tamanho mdio em torno de 100 MB por tabela. Contudo, esses nmeros eram os recomendados para as primeiras verses da ferramenta. Atualmente os limites e capacidades do MySQL ultrapassaram essas fronteiras inmeras vezes. Uma reviso completa dos nmeros e capacidades de armazenamento do MySQL ser abordado no tpico 1.4. Alm de ser extremamente rpido pelo fato de armazenar os dados em tabelas no modo MyISAM (cdigo de baixo nvel), o MySQL altamente confivel. Por possuir essas caractersticas, a ferramenta indicada para uso em aplicaes em todas as reas de negcio, independentemente do tamanho de sua aplicao. Vale a pena ressaltar que a partir da verso 5, os cdigos ISAM foram substitudos por uma nova verso, chamada de MyISAM, que prov melhor desempenho, entre outras melhorias. Atualmente, tem sido o bando de dados open-sourec mais utilizado em aplicaes intensas para a internet (24 horas por dia, 7 dias na semana), tais como solues Web e lojas virtuais, pelo fato de essas aplicaes demandarem rpido acesso para a gerao de pginas HTML, qualquer que seja a linguagem de programaoo que faa a conexo com o banco. Uma lista de clientes e usurios do MySQL pode ser obtida no tpico 1.7, onde a maioria de misso crtica e atingindo o sucesso desejado. 1.3. Compatibilidade A seguir, algumas informaes gerais sobre a compatibilidade do MySQL no que diz respeito a sistemas operacionais que o suportam e verso de SQL utilizada. 1.3.1. Sistemas operacionais A maioria dos sistemas operacionais existentes no mercado suporta a execuoo do MySQL. Por ser um programa escrito em C e C++, isto torna extremamente fcil a sua portabilidade entre diferentes plataformas. Dentre as principais, pode-se destacar: Linux (Fedora Core, Debian, SuSE, RedHat) Unix (Solaris, HP-UX, AIX, SCO) FreeBSD; Mac OS X Server; Windows (2000, 2003, XP). As plataformas mais indicadas para o uso com o MySQL so aquelas que possuem a biblioteca thread e o gerenciador de arquivos mais estveis, entre outros fatores. 1.3.2. Verses de SQL O MySQL tem como base o padro de SQL-92 ODBC levels 0-3.51. Um dos principais objetivos da ferramenta evoluir para utilizar como base o padro SQL-99. Contudo, nem todos os cdigos para essa converso poderiam ser implementados na verso atual, sem que se abrisse mo da velocidade e confiana do banco de dados. Isto se deve ao fato de alguns comandos do padro SQL-99 demandarem maior processamento de dados, o que poderia comprometer algumas das principais caractersticas da ferramenta. Entre os prximos recursos do programa, faz parte atingir o objetivo de ter o padro SQL-99 como base (o qual j utilizado em grande parte), mantendo sua capacidade de processamento e segurana. 1.4. Caractersticas A seguir, algumas das principais caractersticas existentes no MySQL. 1.4.1. SGBD O MySQL, alm de banco de dados, contm todas as caractersticas de um SGBD (Sistema Gerenciador de Banco de Dados), que o MySQL Server. Alm de armazenar os dados, a ferramenta prov todas as caractersticas de multiacesso a estes, entre outras funcionalidades de um SGBD, como, por exemplo, gerenciamento de acesso, integridade dos dados e relacional, concorrncia, transaes, entre outros. 1.4.2. Portabilidade Desenvolvido utilizando as linguagens de programao C e C++, unido com o uso de GNU Automake, Autoconf e Libtool, torna o MySQL uma aplicaoo altamente portvel entre diferentes sistemas, plataformas e compiladores. Alm disso, fornece sua API para vrias outras linguagens, como Java, Python, PHP, Perl, C, C++, entre outras.

1.4.3. Multithreads Usa programao de threads utilizando-as diretamente no kernel da plataforma. Alm de aumentar significativamente a velocidade de processamento, ainda facilita a integraoo da ferramenta em hardwares com mais de uma CPU. 1.4.4. Formas de armazenamento O MySQL disponibiliza vrios tipos de tabelas para armazenamento de dados, tendo cada tipo suas prprias caractersticas. A vantagem dessa variedade de tabelas a possibilidade de escolher o tipo em cada situao diferente. Enquanto um tipo prioriza velocidade, outro prioriza volume de dados, entre outras caractersticas. Para conhece com mais detalhes os principais tipos de tabelas e mtodos de armazenamento do MySQL, leia o tpico 3.1. 1.4.5. Velocidade Maior velocidade no acesso aos dados em razo de vrios fatores em seu desenvolvimento como tabelas ISAM (substitudas pelo novo mecanismo MyISAM na verso 5), utilizao de cachs em consultas, utilizao de indexao BTREE para tabelas do tipo HEAP, algoritmos de buscas, entre outros recursos. 1.4.6. Segurana Sistema gerenciador de conexos que trabalha com criptografia no trfego de senhas. Ainda, em complemento ao uso de autenticao baseado em senhas, possvel habilitar uma espcie de firewall de autenticaoo, responsvel por habilitar as devidas conexes somente para estaes e domnios especificados em sua lista de acesso. 1.4.7. SQL O SQL utilizado pelo MySQL altamente veloz. Isto se deve ao fato de a linguagem ter sido implementada por meio de cdigos e funes altamente otimizadas pelos seus desenvolvedores. Essa caracterstica de otimizao tem como consequncia uma grande vantagem e uma desvantagem: o lado bom a velocidade na execuo dos cdigos SQL. O lado ruim que para otimizar tais cdigos, nem todos os padres da verso mais atual do SQL foram migrados para o MySQL, pois poderiam comprometer a velocidade do banco de dados. O MySQL baseia- se nas verses mais atuais do SQL, em parte incluindo sua verso 2003. Mas na maioria dos casos, essa desvantagem no deve influenciar na aplicao. 1.4.8. Fulltext search A funcionalidade de busca no estilo fulltext search j estava presente na verso 4 do MySQL, tendo aparecido pela primeira vez entre as verses 3 e 4. Este tipo de busca um dos mais utilizados em grandes solues integradas com bancos de dados. Existem dois modos com que o MySQL gerencia os ndices, sendo um a criao de ndices, tendo como base campos do tipo texto (recomendado para bancos de dados de pequeno e mdio portes), e outros em uma tabela prpria de ndices, fornecendo um melhor desempenho para bancos de dados de grande porte. 1.4.9. Capacidades O MySQL tem um alto poder de execuo e de armazenamento. Dependendo da plataforma onde a ferramenta ser utilizada, suas tabelas podero armazenar espaos extraordinrios, ficando limitadas somente ao tamanho mximo de arquivos com que a plataforma em questo pode manipular. No caso de tabelas do tipo InnoDB, cujo armazenamento pode ser realizado por um ou mais arquivos separados, possvel armazenar at 65.536 TB (terabytes). No caso de expresses SQL e SGBD suporta execues de scripts SQL com at 61 unies de tabelas (joins), e em se tratando de velocidade de execuo, o MySQL pode ser enquadrado entre os mais velozes, se no o mais veloz, justamente por este ter sido um dos motivos que levou seus programadores a desenvolv-lo, baseado em tecnologias que permitiram tal fato. O MySQL um banco de dados extremamente poderoso, pronto para executar mais de um bilho de consultas por dia de um site, ou at mesmo processar milhares de transaes por minuto, conforme os prprios papers e artigos do MySQL AB. 1.5. Novidades na verso 5 A cada nova verso do MySQL, novas funcionalidades so implementadas, mas foi com a verso 5 que o programa alcanou definitivamente sua posio como concorrente de grandes bancos de dados existentes no mercado. Os recursos que ainda faltavam no MySQL foram implementados e disponibilizados nesta verso. Dentre as principais demandas existentes e atendidas, podemos citar as stored procedures e triggers, que so blocos de cdigo armazenados no banco de dados, geralmente de execues de alta frequncia, ou acionadas por eventos. A seguir, um breve resumo das principais funcionalidades incorporadas no MySQL 5. 1.5.1. Stored procedures Dentre as funcionalidades mais aguardadas para o MySQL, sem dvida podemos citar as stored procedures, que so blocos de cdigo SQL armazenados no servidor, os quais so chamados (ou se preferir, invocados) a partir das aplicaes integradas ao banco de dados. Seu conceito foi padronizado pela primeira vez na verso SQL-99. De l para c, os grandes bancos de dados tem disponibilizado este recurso, que alm de centralizar cdigos para no haver redundncia deles em diversas partes do

sistema, tambm aumenta a velocidade de processamento das consultas e torna os cdigos das aplicaes mais claros e simples, pois vrias consistncias sobre dados e relacionamentos podem ser feitas no lado do servidor de banco de dados. A verso implementada no MySQL baseia-se no modelo ANSI 2003. 1.5.2. Triggers Assim como as stored procedures, os triggers (tambm conhecidos como gatilhos) so blocos de cdigo SQL armazenados no servidor, mas no para serem invocados pela aplicao integrada ao banco de dados, e sim ser iniciados a partir de algum evento pr-cadastrado que ocorre no sistema (determinado horrio do dia no caso dos event schedulers, antes de uma insero ou alterao, entre outras possibilidades). 1.5.3. Vises Outra novidade na verso 5 do MySQL a implementao de vises, que so consultas pr-programadas ao Banco de Dados que permitem unir duas ou mais tabelas e retornar uma nica tabela como resultado, quando invocadas. Alm disso, podem ser utilizadas para filtrar informaes, exibindo somente os dados especficos de uma determinada categoria de uma ou mais colunas da tabela. O uso de vises torna o banco de dados mais prtico, rpido e otimizado, pois operaes frequentes com unies de tabelas podem agora ser centralizadas. possvel tambm utiliz-las para controle de acesso, permitindo que determinados usurios acessem dados de uma viso, mas no das tabelas utilizadas por esta, restringindo assim algumas informaes que no deveriam ser disponibilizadas a todos. 1.5.4. Cursores A partir dessa nova verso do MySQL tambm possvel a utilizao de cursores para navegaoo em conjuntos de resultados. De forma simples, possvel navegar pelos registros de uma tabela a partir de laos de repetio, permitindo realizar operaes necessrias e transaes parte para cada linha da tabela. 1.5.5. Information Schema Assim como nos grande bancos de dados e sistemas gerenciadores deles, existem algumas tabelas responsveis apenas pela organizao dos recursos do banco de dados, conhecidos como dicionrio de dados, ou metadados. Desta forma possvel realizar consultas sobre a estrutura do banco de dados por meio dessas tabelas. 1.5.6. Transaes distribudas XA O que garante a qualidade e confiabilidade de uma transao em um banco de dados o conjunto de propriedades conhecidas como ACID (Atomicidade, Consistncia, Isolamento e Durabilidade). O conceito de transaes distribudas XA uma espcie de extenso da ACID que fornece a possibilidade de gerenciamento destas transaes realizadascom a unio de mltiplos bancos de dados (transaes distribudas) para a execuo de uma mesma transao. Por exemplo, em determinadas situaes pode surgir a necessidade de integrao de duas bases de dados distintas, mas que em algum momento necessitem uma da outra para realizar uma operao. 1.5.7. Integridade referencial Os relacionamentos entre tabelas distintas agora so gerenciados pelo banco de dados nos momentos de incluso, alterao e excluso. Este recurso visa a manter confivel as relaes existentes no banco de dados. 1.5.8. Replicao Visando a aumentar ainda mais a disponibilidade do servidor, tornou-se possvel a partir da verso 5 configurar servidores rplicas (clones) com o MySQL, unidirecionais e bidirecionais. Em outras palavras, rplicas so outros servidores qeu esto com suas informaes sincronizadas em um servidor principal, geralmente visando a aumentar o poder de processamento e disponibilidade na parte de hardware. 1.5.9. Clusterizao Assim como o objetivo da utilizao da replicao, a clusterizao baseada na integrao e sincronismo de dois ou mais servidores para dividirem a demanda de execues entre si. Novamente, o principal objetivo deste recurso possibilitar que mais hardware seja utilizado, podendo alcanar poder de processamento de quantos hardwares estiverem integrados ao cluster. Alm da sincronizaoo de um cluster, possvel tambm especificar um balanceador de cargas para este. Desta forma, este recurso no gerenciar apenas o redirecionamento de servidores secundrios no caso de o primrio sair do ar, mas sim balancear as consultas recebidas pelo cluster e ir distribu-las pelos servidores de acordo com suas ociosidades. 1.6. Comparaes com outros bancos de dados O MySQL conta com uma srie de recursos para anlise do tempo de execuo de operaes. Isto possibilitou que seus desenvolvedores realizassem alguns testes comparativos com outros bancos de dados. Esses testes foram realizados baseados em um computador com Windows NT4 e acesso via ODBC. Dentre os bancos de dados mais conhecidos, os resultados mostrados nas tabelas 1.1. e 1.2. foram obtidos:


Tabela 1.1 Leitura de 2.000.000 por ndice Banco de Dados Segundos mysql_odbc 464 db2_odbc 1.206 ms-sql_odbc 1.634 oracle_odbc 20.800 sybase_odbc 17.614 Tabela 1.2 Insero de 350.768 linhas Banco de Dados Segundos mysql_odbc 619 db2_odbc 3.460 ms-sql_odbc 4.012 oracle_odbc 11.291 sybase_odbc 4.802

Outras vantagens do MySQL a possibilidade de realizar excluses de tabelas diferentes em um nico comando DELETE, permitir utilizar tabelas ade bancos de dados distintos em uma mesma consulta de unio (JOIN), maior capacidade de colunas em uma nica tabela, entre outros, Uma tabela comparativa completa entre o MySQL e diversos outros bancos de dados pode ser obtida em http://dev.mysql.com/tech-resources/crash-me.php Importante: Ao se comparar dois ou mais bancos de dados fundamental levar em conta os aspectos tcnicos de que cada aplicao ou servidor necessita. No so todos os casos em que as aplicaes utilizaro tabelas de tamanha superior a 65.000TB (terabytes), ou que utilizaro 2.500 colunas em uma nica tabela. Portanto, um dos fatores mais importantes na comparao entre os bancos de dados a sua velocidade de execuo, entre outros fatores tcnicos. 1.7. Casos de Uso O portflio de clientes e usurios MySQL conta com centenas de grandes projetos bem-sucedidos e de grande porte ao redor do mundo. Entre os cases mais famosos, vale a pena citar o da NASA. O departamento NAIS (Dentro da NASA) responsvel pela gerncia dos contratos da empresa, movimentando transaes que chegam a milhes de dlares por ano. Em razo da grande demanda de sua utilizao e altos custos de manuteno do banco de dados Oracle utilizados anteriormente no sistema, a equipe do NAIS optou por migrar os seus bandos de dados para uma soluo open source. Com base nisso, estudaram qual seria a melhor opo de cdigo aberto e optaram por utilizar o MySQL. De incio, muitas pessoas ficaram apreensivas com a alterao do banco de dados, contudo o sucesso da migrao e as vantagens oferecidas por ele garantiram a satisfao de todos. Perguntaram ao diretor do NAIS os motivos que o levaram a migrar para o MySQL, e ele respondeu que o custo de suporte tcnico do MySQL era praticamente 1% do que o NAIS gastava com suporte tcnico da Oracle. Alm deste, diversos outros grandes cases podem ser destacados em projetos de misso crtica, entre eles: Bradesco, Telemar, HP-Compaq, Sony, Cisco Systems, Dataprev, Nokia, Motorola, Alcatel, Ibest, Yahoo Finance, US Navy, US Army, US Federal Reserve Bank, Suzuki, Hyperion, Lycos, alm de muitos outros que podem ser obtidos no site oficial do MySQL. Dentre os principais cases do MySQL, podem-se destacar bancos de dados com mais de 60 mil tabelas, tabelas com aproximadamente 5 trilhes de registros (linhas), ressaltando que esses valores so apenas cases existentes do MySQL, sendo o seu limite de capacidade muito acima dos apresentados. 1.8. Sites relacionados Site oficial: http://www.mysql.com Site de ajuda (fruns, listas de discusso, canais IRC) http://www.mysql.com/support/ Site do MySQL Brasil: http://www.mysqlbrasil.com.br Site da licena de uso GNU http://www.gnu.org

CAPTULO 2 Criando um Banco de Dados

Neste captulo, sero apresentados alguns dos principais recursos necessrios para a definio, criao e administrao de um banco de dados no MySQL. Como o assunto de administrao de banco de dados relativamente extenso, este captulo contemplar os requisitos bsicos, e os demais captulos deste livro abordaro os aspectos avanados de cada assunto envolvido neste contexto. O programa de interface com o MySQL utilizado neste captulo o MySQL Command Line Client (tambm conhecido como MySQL Client), que o cliente mais comum utilizado entre os disponveis, tambm da MySQL AB. 3.1. Mtodos de funcionamento Antes de apresentar os comandos de criao de um banco de dados, tabelas e outros recursos fundamental conhecer e optar pelos mtodos de funcionamento e armazenamento disponibilizados pelo MySQL. Cada mtodo possui caractersticas prprias, e devem ser utilizados de acordo com cada situao. Uns so mais rpidos em relao ao processamento, outros ocupam menos espao em disco, outros permitem o uso de transaes e outros podem possuir ou no demais caractersticas. Para saber qual o mtodo adequado para a sua necessidade, leia a descrio de todos os tipos de armazenamento, os quais esto apresentados a seguir. 3.1.1. MyISAM O mtodo de armazenamento MyISAM o mecanismo instalado e configurado como padro pelo MySQL, justamente por apresentar um dos melhores resultados em todos os aspectos possveis. um mtodo de armazenamento muito rpido, de bom armazenamento em disco, sem restries de uso de tipo de dados, que permite o uso de todos os recursos do MySQL, com exceo do suporte a transaes. A menos que a necessidade seja o uso de transaes, este o mtodo indicado para a maioria dos casos, desde pequenos at grandes bancos de dados. o nico mecanismo de armazenamento do MySQL que suporta buscas do Fulltext Searches. Outra caracterstica que o seu nvel de bloqueio (LOCK/UNLOCK) de tabela, no to prtico quanto os nveis mais aprofundados. Contudo, como no utiliza o suporte a transaes, o nmero geral de solicitaes de bloqueio menor, mantendo a boa disponibilidade deste mtodo de armazenamento. Nome de uso: MyISAM Suporte a ndices: Sim Suporte a transaes : No Tipos de dados no suportados: Nenhum Nvel de bloqueio: Tabela 3.1.2. InnoDB Apesar de no ser o mtodo de armazenamento padro configurado pelo MySQL, o mais recomendado para grandes e complexos bancos de dados, pois alm de oferecer todos os recursos disponibilizados pelo mtodo MyISAM, ainda permite o uso de transaes com as propriedades ACID (Atomicidade, Consistncia, Isolamento e Durabilidade). Desenvolvido pela Innobase Oy, alm do armazenamento dos dados e ndices em disco, algumas dessas informaes so armazenadas tambm na memria enquanto o servidor est ativo, fazendo com que o seu processamento seja ainda mais veloz. Outra caracterstica que o diferencia do mtodo MyISAM que seu nvel de bloqueio (LOCKS) de linha, sendo mais eficiente e aumentando sua disponibilidade, pois apenas os registros comprometidos em uma transao so bloqueados, e no a tabela toda. Recomendado para todos os tamanhos de banco de dados, especialmente os de grande porte. Nome de uso: InnoDB Suporte a ndices: Sim Suporte a transaes: Sim (ACID) Tipos de dados no suportados: Nenhum Nvel de bloqueio: Linha 3.1.3. MERGE Diferentemente dos mtodos apresentados anteriormente, o MERGE possibilita combinar duas ou mais tabelas, desde que idnticas em nvel estrutural, em uma mesma expresso SQL de consulta (no se tratando de unio de tabelas por meio de comandos JOIN, e sim combinao natural de seus registros como uma tabela nica). Este tipo de procedimento normalmente associado a bancos de dados cujas tabelas possuam estruturas idnticas, contudo as tabelas podero ocorrer falhas em seu mecanismo. Nome de Uso: MERGE

Suporte a ndices: No Suporte a transaes: No Tipo de dados no suportados: Nenhum Nvel de bloqueio: Tabela 3.1.4. Memory (HEAP) Como o seu prprio nome informa, o armazenamento das informaes de dados realizado na memria RAM do computador em questo. Esse mecanismo de armazenamento fornece uma grande vantagem e uma grande desvantagem: a velocidade de processamento mais rpida, pois no h busca em disco, e, em contrapartida, os dados so perdidos quando o servidor desligado ou reiniciado. Seu uso indicado em aplicaes cujas informaes precisam ser armazenadas apenas temporariamente, como sesses, por exemplo. Desta forma, no h necessidade de armazen-las, e tira-se proveito apenas de sua velocidade de processamento. Com base nas caractersticas, algumas restries so impostas, as quais esto descritas a seguir. Nome de uso: MEMORY Suporte a ndices: No Suporte a transaes: No Tipos de dados no suportados: BLOB e TEXT (por serem muito grandes) Nvel de bloqueio: Tabela. 3.1.5. BekeleyDB(BDB) Desenvolvido pela SleepyCat Software, este mtodo de armazenamento se baseia na gerao de um cdigo HASH (identificador nico) que armazenado com cada registro inserido no banco de dados, funcionando como uma espcie de chave primria de registros do banco de dados. Seu uso mostra-se eficaz quando h recuperao de dados baseada em chaves nicas (HASH), fazendo com que a recuperao seja muitas vezes mais rpida que outros mtodos de armazenamento. Contudo, a recuperao de mltiplos registros sequenciais pode ser mais lenta que o normal. Seu bloqueio limitado em tabela, com tamanho mximo de 8.192 bytes, no sendo muito eficaz. Outra desvantagem que se houver corrompimento das informaes do HASH gerado para um determinado registro, todas as informaes ligadas a ele podero perder-se. Nome de uso: BDB Suporte a ndices: Sim Suporte a transaes: Sim Tipos de dados no suportados: Nenhum Nvel de bloqueio: Pgina (blocos de 8.192 bytes) 3.1.6. EXAMPLE O mtodo de armazenamento EXAMPLE , na verdade, um modelo bsico para ser utilizado como molde para quem deseja criar o seu prprio mtodo de armazenamento. 3.1.7. ARCHIVE Assim como nos primrdios da era de banco de dados, as informaes neste mtodo de armazenamento so gravadas em arquivos-texto, no formato de tabelas sequenciais (ordem de gravao). Seu mecanismo de funcionamento bastante limitado, pois suporta apenas os comandos de insero (INSERT) e recuperao (SELECT) de dados. Como no h suporte a ndices, cada Select necessita percorrer a tabela inteira para garantir que todos os resultados foram obtidos. Dependendo de como for usado (aplicaes de log, por exemplo), seu uso pode ser eficiente em grandes bancos de dados, que geram um volume de informao muito grande, podendo ser armazenado posteriormente em mdias digitais ou unidades de backup, mensalmente ou no perodo de tempo que for mais adequado. Nome de Uso: ARCHIVE Suporte a ndices: No Suporte a transaes: No Tipos de dados no suportados: Nenhum Nvel de bloqueio: No utilizado

3.1.8. CSV Similar ao mtodo de armazenamento ARCHIVE, o CSV (Command Separated Values) armazena os dados em um arquivo- texto, cujos valores so separados por vrgula ou outro caractere definido previamente. Seu uso normalmente o de migrao ou backup de informaes, pois meios de armazenamento do tipo texto no so apropriados para serem utilizados como bancos de dados. Por utilizar o padro CSV, suas informaes tornam-se portveis para outras aplicaes de forma simples e rpida. Muito utilizado para transportar dados entre o MySQL e o MS Excel (planilhas em geral), MS Access ou outras aplicaes de mesmo gnero. Uma recomendao para este mtodo de armazenamento no utilizar formatos binrios ou de tipo BLOB e TEXT muito grandes, pois podem comprometer sua portabilidade dependendo de onde os dados sero utilizados posteriormente. Nome de uso: CSV Suporte a ndices: No Suporte a transaes: No Tipos de dados no suportados: Nenhum Nvel de bloqueio: Tabela. 3.1.9. Blackhole O mtodo de funcionamento BLACKHOLE no armazena nem altera informaes de dados em suas tabelas. Particularmente, funciona apenas para as estruturas dos bancos de dados (formatos de tabelas, ndices, colunas, entre outros), sem realizar qualquer alterao em relao a registros. Seu uso pode ser considerado eficiente quando se trata de disponibilizar o modelo de um banco de dados para outras pessoas ou servidores Slaves, sem comprometer os dados existentes. Nome de uso: BLACKHOLE Suporte a ndices: No Suporte a transaes: No Tipos de dados no suportados: No armazena informaes Nvel de bloqueio: No utiliza. 3.2. Banco de dados A seguir sero apresentados os comandos bsicos para gerenciamento estrutural de um banco de dados, o que engloba sua criao, alterao e excluso do sistema. 3.2.1. Criando um Banco de Dados Para criar um banco de dados, necessrio possuir poderes de criao (CREATE). Com posse de tais poderes, utilize a seguinte sintaxe no MySQL Client: CREATE DATABASE <nome> [CHARACTER SET <conjunto>] [COLLATE <subconjunto>]; Neste comando, necessrio informar o nome do banco de dados, que no deve possuir espao em branco e, em seguida, informaes opcionais referentes ao conjunto de caracteres que ser utilizado no banco em questo. Uma das opes para a lngua portuguesa so os itens latin1_bin e latin1_swedish_ci, pertencentes ao grupo do latin1. Para ingls internacional, uma opo o item utf8_bin. 3.2.2. Visualizando um banco de dados Para visualizar os bancos de dados existentes no MySQL, utilize o comando a seguir: SHOW DATABASES; Um exemplo de retorno deste comando est apresentado a seguir: mysql> SHOW DATABASES;
+----------------------------+ | Database | +----------------------------+ | information_schema | | cluster | | dbs | | mysql | | outros | +----------------------------+

IMPORTANTE: Somente os bancos de dados que o usurio logado em questo possui acesso sero exibidos. Poder haver mais bandos de dados existentes no servidor, cujo acesso ao usurio utilizado esteja restringido. 3.2.3. Ativando um banco de dados Para a maioria das aes realizadas em um banco de dados no MySQL necessrio ativ-lo para uso. Este procedimento feito a partir do comando apresentado a seguir. USE <nome do banco de dados>; 3.2.4. Alterando um banco de dados possvel alterar as propriedades gerais de um banco de dados, que sp suas caractersticas de conjuntos de caracteres utilizados. Alm disso possvel renomear um banco de dados. possvel alterar as propriedades gerais de um banco de dados, que so suas caractersticas de conjuntos de caracteres utilizados. Alm disso, possvel renomear um banco de dados. Para cada uma das alteraes apresentadas anteriormente, existe um comando especfico. Para alterar o nome do banco de dados, utilize o seguinte comando: RENAME DATABASE <nome atual> TO <novo nome>; Para alterar as caractersticas de conjunto de caracteres de um banco de dados, utilize o seguinte comando: ALTER DATABASE [<nome>] [CHARACTER SET <conjunto>] [COLLATE <subconjunto>]; Neste caso, opcional informar o nome do banco de dados que est sendo alterado. No caso da omisso desse parmetro, o banco de dados ativo ser alterado. 3.2.5. Excluindo um banco de dados Para excluir um banco de dados do sistema, necessrio possuir o acesso DROP para o usurio em questo. Para maiores informaes sobre direitos de acesso, leia o tpico 5.1. Possuindo as permisses necessrias para excluir um banco de dados, utilize a seguinte expresso para realizar tal tarefa. DROP DATABASE <nome>; IMPORTANTE: Toda a estrutura e dados contidos no banco de dados em questo sero excludos de forma definitiva e irreversvel. Por isso, certifique-se de estar excluindo o banco de dados que realmente deseja deletar. 3.3. Tabelas Este tpico aborda os comandos bsicos para criao e manipulao de estrutura de tabelas no MySQL. O gerenciamento estrutural de tabelas um dos conjuntos de comandos mais completos e customizveis tendo em vista a grande quantidade de parmetros que podem ser utilizados. Inicialmente sero mostrados os parmetros mais bsicos e necessrios para executar tal tarefa. 3.3.1. Criando uma tabela Para criar uma tabela, ative o banco de dados onde deseja cria-la e execute o comando a seguir. Ainda possvel criar uma tabela sem ativar um banco de dados, contudo necessrio informar o nome do banco de dados com o nome da tabela em seu comando de criao, no modo banco_de_dados.nome_da_tabela. CREATE [TEMPORARY] TABLE <nome> (<colunas>) [opes_avanadas>]; Iniciando a anlise da expresso apresentada, o primeiro parmetro opcional o TEMPORARY, cujo uso faz com que a tabela em questo exista somente durante a conexo do usurio em questo, sendo excluda em seu encerramento. Recomenda-se seu uso somente se for estritamente necessrio, tendo em vista que a maioria dos bancos de dados demanda o armazenamento definitivo das informaes cadastradas. Em seguida, necessrio definir o nome da tabela (recomenda-se sem espaos em branco e de at 64 caracteres) e, dentro de parnteses, definir a coleo de colunas que a tabela ir possuir. Cada coluna cadastrada deve seguir o modelo de definio apresentado a seguir: <nome coluna> <tipo de dado> [NULL | NOT NULL] [DEFAULT <valor>] [AUTO_INCREMENT] [PRIMARY KEY | INDEX]

O nome de cada coluna tambm preferencialmente no deve utilizar espaos em branco e ser inferior a 64 caracteres, seguido do tipo de dado da coluna em questo. Em seguida, informar a possibilidade de valores NULL ou no na coluna em questo, seu valor-padro (caso haja) e se do tipo AUTO_INCREMENT ou no. Por ltimo, possvel definir a coluna em questo como chave primria (PRIMARY KEY) ou, se for o caso, como ndice. Outra forma de definir chave primria , aps detalhar todas as colunas, utilizar a seguinte expresso, antes de fechar os parnteses de definio de colunas existente no comando de criao de tabela: PRIMARY KEY (<nome da coluna>) Ou para definir de outra forma colunas como ndices: INDEX (<nome da coluna>) E ainda, para definir uma coluna como FULLTEXT nas buscas realizadas pelo MySQL, possvel adicionar a informao a seguir, tambm dentro dos parnteses de definio de colunas, e separado por vrgula dos demais: FULLTEXT (<nome da coluna>) IMPORTANTE: O recurso FULLTEXT suportado somente pelo mecanismo de armazenamento MyISAM. Para definir mais colunas, estas devem ser separadas por vrgula. A criao de um ndice ou chave primria ser abordada com mais detalhes nos prximos tpicos. Por ltimo, retornando expresso de criao de tabela, possvel definir algumas opes avanadas. Entre os principais parmetros avanados na criao de uma tabela, pode-se citar: ENGINE = <valor> Define o mecanismo de armazenamento que ser utilizado para esta tabela. Para maiores informaes sobre os mtodos de armazenamento, leia o tpico 3.1. AUTO_INCREMENT = <valor> Define qual valor a coluna de auto-incremento deve assumir no momento. Este parmetro praticamente obrigatrio em migrao e backups de banco de dados, para que este assuma sua posio atual quando reconstrudo. CHARACTER SET = <valor> Define qual o conjunto de caracteres a tabela em questo deve utilizar. Uma das opes para a lngua portuguesa so os itens latin1_bin e latin1_swedish_ci, pertencentes ao grupo do latin1. Para ingls internacional, uma opo o item utf8_bin. IMPORTANTE: No possvel definir duas ou mais colunas com o mesmo nome (idnticos). Um exemplo de criao de tabela utilizando vrios dos recursos apresentados est disponvel para consulta a seguir: mysql> CREATE TABLE tb_modelo ( ID INT NOT NULL, NOME VARCHAR(64) NOT NULL, SALARIO DOUBLE NOT NULL DEFAULT 1000, COMENTARIO TEXT NULL, PRIMARY KEY (ID), INDEX (NOME), FULLTEXT (COMENTARIO) ) ENGINE = MyISAM CHARACTER SET latin1 COLLATE latin1_bin; 3.3.2. Visualizando uma tabela Neste tpico sero abordados o comando de visualizao das tabelas existentes em um banco de dados e, em seguida, o comando que visualiza as informaes estruturais de uma tabela especfica. Para visualizar as tabelas cujo usurio conectado ao MySQL tenha acesso, ative o banco de dados em questo por meio do comando USE e, em seguida, utilize o seguinte comando: SHOW TABLES;

Um exemplo de seu uso est apresentado a seguir: mysql> SHOW TABLES; +-------------------------------------------------------+ | Tables_in_portal_central | +-------------------------------------------------------+ | setores | | equipes | | usuarios | +-------------------------------------------------------+ Para visualizar todas as informaes estruturais das colunas de uma tabela, use o comando DESCRIBE. Para utiliz-lo, siga o modelo apresentado a seguir: DESCRIBE <nome da tabela>; Um exemplo de seu uso est apresentado a seguir: mysql> DESCRIBE USUARIOS; +--------------------+---------------------+-------------+-------------------------------+--------------------------------+ | Field | Type | Null | Key | Extra | +--------------------+---------------------+-------------+-------------------------------+--------------------------------+ | ID | int(11) | No | PRI | auto_increment | | LOGIN | varchar(32) | No | | | | NOME | varchar(32) | No | | | | SOBRENOME | varchar(32) | No | | | | EMAIL | varchar(32) | No | | | | CELULAR | varchar(8) | No | | | | ISADM | tinyint(1) | No | | | +--------------------+---------------------+-------------+-------------------------------+--------------------------------+ 3.3.3. Alterando uma tabela possvel alterar todas as caractersticas de uma tabela por meio do comando: ALTER TABLE <nome> <opes>; As opes de customizao so as mesmas do comando de criao de tabelas. Portanto, para conhecer as opes mais importantes, leia o tpico 3.3.1. Algumas das alteraes mais importantes se diz respeito ao gerenciamento de colunas (insero, alterao e excluso), estando estes procedimentos descritos a seguir. 3.3.3.1 Adicionando uma coluna em uma tabela existente Para incluir uma coluna em uma tabela j existente, utilize o comando descrito a seguir. ALTER TABLE <nome da tabela> ADD <nome da nova coluna> <tipo de dado> [CHARACTER SET <conjunto>] [COLLATE <subconjunto>] [NULL | NOT NULL] [ DEFAULT <valor>] [FIRST | AFTER <coluna existente>]; Note que, aps a definio de todas as propriedades da nova coluna, possvel indicar em que posio da tabela a mesma dever ser criada. Se especificado FIRST a coluna ser criada no incio da tabela. Para que o novo campo seja alocado aps uma coluna especfica, utilize o parmetro AFTER indicando o nome da coluna existente. Se no especificado nenhum destes dois parmetros, o campo ser criado no final da tabela. 3.3.3.3. Removendo uma coluna de uma tabela existente Para remover uma coluna de uma determinada tabela, utilize a sintaxe apresentada a seguir. Lembre-se de que ao executar este comando, todos os valores desta coluna sero perdidos. ALTER TABLE <nome da tabela> DROP <nome da coluna>; Alm das opes exibidas anteriormente, possvel renomear uma tabela por meio do comando:

RENAME TABLE <nome> TO <novo nome>; 3.3.4. Excluindo uma tabela Para excluir uma tabela, tanto sua estrutura quanto todos os seus dados, utilize o comando a seguir: DROP TABLE <nome da tabela>; DICA: Se deseja excluir somente os registros de uma tabela, mas manter a sua estrutura, utilize o comando TRUNCATE < nome da tabela>. 3.3.5. Bloqueando uma tabela (comando LOCK TABLES) Em algumas situaes, geralmente em transaes ou em alteraes em grandes volumes de dados, e at mesmo na exportao de backups, necessrio garantir o estado consistente do banco de dados, o qual possvel por meio do comando LOCK TABLES. Esse comando bloqueia as tabelas em questo para que outros usurios ou outras solicitaes no possam alterar as informaes enquanto estas estiverem em uso pelo processo que as bloqueou. Quando uma tabela bloqueada, outras solicitaes de bloqueio para a mesma tabela podem ser realizadas ou no, dependendo dos tipos de bloqueios envolvidos no processo, como ser abordado a seguir. Para bloquear uma tabela, utilize a sintaxe apresentada a seguir. LOCK TABLES <nome da tabela> [AS <alias>] <tipo de bloqueio> [, <nome da tabela 2>, ...] Alm do nome da tabela em questo, possvel especificar o seu alias. A seguir, os tipos de bloqueio possveis: READ: Faz com que a thread que solicitou o bloqueio e todas as demais possam somente ler informaes da tabela, mas no adicionar nem alterar nenhum registro READ LOCAL: Permite que inseres no-conflitantes sejam realizadas. No funciona para tabelas do tipo InnoDB. WRITE: Permite que a thread que solicitou o bloqueio insira ou altere registros na tabela em questo e que as demais threads possam somente ler informaes. LOW_PRIOITY_WRITE: Bloqueia a tabela em questo para poder inserir e alterar registros e permite que outros processos bloqueiem essa mesma tabela para leitura (READ). Nestas ocasies, a thread que solicitou o bloqueio de escrita (WRITE) aguarda a thread que realizou o bloqueio de leitura (READ) terminar suas aes para prosseguir, quando necessrio, e alterar informaes. 3.3.6. Desbloqueando uma tabela (comando unlock tables) Para desbloquear todas as tabelas bloqueadas, utilize o comando a seguir. UNLOCK TABLES; Ou, ainda, caso o seu processo encerre a execuoo, ou seu usurio feche a conexo, as tabelas sero liberadas para uso novamente. Aps o uso do comando UNLOCK TABLES, recomenda-se utilizar o comando FLUSH TABLES, o qual garante com que todas as informaes sobre ndices sejam atualizadas e armazenadas em disco. A sintaxe do comando est apresentada a seguir. 3.4. ndices ndice um recurso intimamente ligado otimizao de um servidor de banco de dados, pois prepara algumas estruturas de organizao de registros para tornar a sua busca e consulta mais rpida e precisa. Neste tpico , sero abordados os comandos necessrios para a criao e o gerenciamento de ndices. Para maiores informaes sobre otimizao de bancos de dados, leia o Captulo 11. 3.4.1. Criando um ndice Para criar um ndice, utilize a sintaxe apresentada a seguir. CREATE [<tipo de ndice>] INDEX <nome do ndice> ON <nome da tabela>(<coluna>) Existem trs tipos de ndices que podem ser criados. So eles:

UNIQUE: Os valores dos ndices no se repetem, fazendo com que este fato seja levado em conta em seu armazenamento. FULLTEXT: Torna possvel criar ndices para campos de texto, inclusive para uma faixa de caracteres iniciais se for o caso (somente para o mecanismo de armazenamento e funcionamento MyISAM). Para criar um ndicie somente para os n primeiros caracteres de uma coluna do tipo VARCHAR, utilize (n) aps o nome da coluna substituindo n pelo nmero de caracteres desejado. SPATIAL: Suporta ndices para os tipos de dados geomtricos (somente para o mecanismo de armazenamento e funcionamento MyISAM). Nas prximas verses do MySQL, ser possvel optar pela ordem ascendente ou descendente na tabela de ndices, contudo este recurso ainda no foi implementado. IMPORTANTE: Colunas do tipo BLOB ou TEXT somente podem ser transformadas em ndices se seus mecanismos de armazenamento forem do tipo MyISAM ou InnoDB. Colunas que possuam valores nulos (NULL) somente podero ser transformadas em ndices nos mecanismos de armazenamento MyISAM, InnoDB ou MEMORY. O tipo de busca realizado quando um ndice invocado BTREE. Contudo, para o mtodo de armazenamento e funcionamento MEMORY (HEAP), possvel definir logo aps o tipo de ndice o parmetro USING <tipo de busca> entre os citados a seguir. BTREE: Mtodo-padro utilizado pelo MySQL HASH: Mtodo mais eficiente quando a maioria das solicitaes de ndices encontra seus resultados espalhados na tabela de ndice, e no entre os primeiros registros. 3.4.2. Alterando um ndice No existe um comando de alterao de ndice no MySQL. Neste caso, para realizar este processo, necessrio excluir o ndice em questo e recri-lo com suas novas propriedades, as quais se deseja alterar. 3.4.3. Removendo um ndice Para remover um ndice, basta utilizar o comando DROP INDEX, como mostrado a seguir: DROP INDEX <nome do ndice> ON <nome da tabela> Ao remover uma tabela do sistema, automaticamente seus ndices sero excludos. 3.5. Vises Vises um recurso bastante til quando necessrio acessar dados a partir de uma expresso previamente conhecida e rotineira, sem necessariamente ter que digit-la e utiliz-la. Uma viso a estrutura de uma consulta, que se mantm sempre atualizada quando invocada, melhorando a qualidade da programao das aplicaes que a utilizam, tendo em vista que o cdigo para gerar tal resultado permanece centralizado no servidor MySQL. O exemplo abordado neste tpico utiliza como base a seguinte tabela: mysql> SELECT * FROM FUNCIONARIOS; +--------------------------------+------------------------+ | FUNCIONARIO | SALARIO | +--------------------------------+------------------------+ | Andre | 500 | | Otvio | 750 | | Marco s | 1100 | | Ivete | 500 | +--------------------------------+------------------------+ 3.5.1. Criando uma viso Para criar uma viso, utilize o comando a seguir: CREATE VIEW <nome> as <expresso SQL>;

Por exemplo, para criar uma viso que traga somente funcionrios com salario superior a R$ 1.000,00, a seguinte expresso SQL poderia ser utilizada: CREATE VIEW func_maior_1000 AS SELECT FUNCIONARIO FROM FUNCIONARIOS WHERE SALARIO > 1000; A criao de vises acompanhada de algumas restries impostas pelo MySQL. Muitas delas so as mesmas de criao de tabelas, como, por exemplo, no poder haver no resultado duas colunas com o mesmo nome, no poder referenciar variveis de sistema, no pode contar uma subquery, entre outros fatores menos relevantes. 3.5.2. Visualizando uma viso Para visualizar o resultado de uma viso, basta invoc-la normalmente, como se fosse uma tabela. Um exemplo apresentado a seguir: mysql> SELECT * FROM func_maior_1000; + -------------------------- + | FUNCIONARIO | + -------------------------- + | Marcos | | Ivete | + -------------------------- + 3.5.3. Alterando uma viso possvel alterar uma viso de duas formas. A primeira substituindo suas informaes por meio do comando de criao adicionado com o parmetro de substituioo, como mostra o comando a seguir: CREATE OR REPLACE VIEW <nome> AS <expresso SQL>; A segunda forma de realizar tal procedimento por meio do comando ALTER, o qual segue o mesmo modelo do comando de criao de vises, como mostra a sintaxe a seguir: ALTER VIEW <nome> AS <expresso SQL>; 3.5.4. Excluindo a Viso Para excluir uma viso do banco de dados, basta utilizar a seguinte expresso: DROP VIEW <nome>; 3.6. LOG O MySQL, por padro, no instalado com o recurso de log binrio habilitado. Para isso, necessrio configurar no arquivo my.ini /my.cnf a varivel log-bin. Este tpico aborda a ferramenta para leitura e anlise dos arquivos de log. Para maiores informaes sobre como habilitar este recurso, ou customiz-lo, leia o tpico 9.4.1 referente s informaes sobre habilitao do log binrio. O MySQL disponibiliza uma ferramenta prpria para leitura e criao de filtros para anlise de arquivos de log. Por padro, os arquivos de log, quando habilitados, so escritos em formato binrio pelo servidor, o que dificulta a leitura em modo texto para seus usurios. Contudo, esse formato utilizado tendo em vista caractersticas de escrita e leitura de arquivos entre servidores MySQL. O programa mysqlbinlog, que acompanha o MySQL, uma ferramenta de filtro e converso de logs binrios para modo texto. A partir do uso do mysqlbinlog possvel filtrar informaes de log, como, por exemplo, datas de incio e fim de sua leitura, obter somente os eventos de um determinado banco de dados, entre outras possibilidades. O mysqlbinlog est disponvel no mesmo diretrio onde o MySQL Client encontra-se instalado, e se o diretrio em questo estiver configurado em sua varivel PATH, possvel invoc-lo a partir de qualquer diretrio em seu terminal de comando. D preferncia de invoca-lo a partir do diretrio onde esto localizados os arquivos de log no MySQL. Localizao dos arquivos de log: WINDOWS: Pasta data, dentro do diretrio onde o MySQL Foi instalado.

Fedora Core: /var/lib/mysql Debian: /var/lib/mysql A sintaxe de execuoo do programa mysqlbinlog a seguinte: <prompt> mysqlbinlog <caminho completo | nome do arquivo> [opes] [>> <sada.txt>] Dentre as principais opes para este comando, destacam-se as apresentadas a seguir: -- start-datetime = yyyy-mm-dd hh:mm:ss Inicia a leitura do arquivo de log somente a partir de uma instruo realizada na data igual ou superior informada. -- stop-datetime=yyyy-mm-dd hh:mm:ss Encerra a leitura do arquivo de log ao encontrar uma instruo executada na data igual ou superior informada. --start-position=<posio> Inicia a leitura do arquivo de log a partir da posio informada. --stop-position=<posio> Encerra a leitura do arquivo de log na posio informada. --database=<banco de dados> Define para que a leitura de o arquivo de log seja feita somente em eventos ocorridos no banco de dados especificado. No possvel definir mais de um banco de dados para esta opo. --host=<endereo ip> Especifica o endereo do servidor, no caso de o arquivo de log estar em um computador remoto. --port=<porta> Especifica a porta de conexo do servidor, no caso do arquivo de log estar em um computador remoto e a porta ser diferente da padro. -u Especifica um usurio em casos de conexo remota. -p Utiliza a autenticao com senha em casos de conexo remota. Ainda, possvel armazenar o resultado da leitura de log em um arquivo-texto comum, utilizando o ltimo parmetro exibido em sua sintaxe >> <sada.txt>.