Displaying posts with tag: Banco de dados (reset)
[MS SQL Server] - Conflitos de COLLATION em operações de comparação

Em bancos de dados SQL Server, as Collations são utilizadas para definir a maneira como os dados do tipo string (nchar, nvarchar, e ntext) são armazenados.

Em resumo, uma collation define:

A codificação (Character Set) utilizada para armazenar os caracteres não-Unicode. O algoritmo de ordenação utilizado para ordenar o retorno das consultas

O SQL Server permite que seja configurada uma

DatabaseCast 56: Sintaxe SQL

Olá, pessoal! Neste episódio do DatabaseCast, Mauro Pichiliani (Twitter | Blog), Wagner Crivelini (@wcrivelini) e os ouvintes Alex Zaballa (@alexzaballa) e Henrique Jardim (@henriquejardim) quebram a cabeça tentando descobrir o problema na sintaxe do comando SQL. Você também vai saber um pouco mais sobre o padrão SQL, descobrir por que fugir da álgebra relacional, evitar colocar hints de instrução na forma de comentários, odiar a sintaxe (+)= e =(+) e não dar ouvidos ao diabinho e ao anjinho que ficam em cima dos ombros.

[Leia mais]
Chaves artificiais ou naturais no banco de dados?

Faça essa pergunta em uma mesa de DBAs ou arquitetos de software no bar, se afaste, pegue um chopp e assista a um episódio live de Spartacus!

Alguns dizem que se uma chave natural está disponível, ela deve ser utilizada. Eu prefiro pensar que não, não tenho o hábito de usar cpf, rg, dog-tag-id e outros como identificador de uma pessoa num banco de dados.

Meu argumento é que esses campos podem ser únicos, mas não são controlados por mim, o freak dev/dba/designer/barista e, se não está sob meu controle, eu não sei o que pode acontecer com ele.

Pode ser que o Bolsonado acorde um dia com desejo de colocar uma letra no início de cada RG e aí já viu… nem disco da Xuxa sendo tocado ao contrário junto a um coral de apitos astecas pode impedi-lo.

Já a chave artificial é minha, e sob essa ótica artificial deixa de ser quase pejorativo para ser carinhoso.

“Essa chave aí?… Eu …

[Leia mais]
Utilizando Docker com MySQL

Numa definição muito simplista, o Docker é um modo de virtualização mais leve. Na virtualização “tradicional” para ter imagem utilizável você precisa criar a máquina virtual e depois instalar o Sistema Operacional. Com o Docker, você pode ter várias imagens sobre o mesmo SO ao mesmo tempo em que mantém o isolamento das aplicações e bibliotecas em cada imagem.

Ao invés de múltiplas VMs, teremos múltiplos containers. Múltiplos SOs dão suporte à tecnologia de containers, em destaque o Linux. Sendo assim, o kernel do SO provê o suporte aos containers e o Docker é uma camada de abstração para facilitar seu uso, similar ao que o Vagrant faz para VMs. Isto nos dá a vantagem adicional do Docker ser agnóstico ao …

[Leia mais]
MySQL Utilities – Tarefas administrativas

No último artigo, mostrei ao amigo leitor como configurar de forma muito fácil a replicação GTID entre servidores de bancos de dados MySQL com alguns dos scripts do pacote MySQL Utilities, disponível para download via YUM ou pelo site do MySQL. A parte II sobre Replicação GTID ainda está no forno, mas tive uma oportunidade de executar várias tarefas administrativas em um servidor de produção com alguns outros scripts do MySQL Utilities. Então, resolvi passar este na frente e focar em ajudar o DBA naquelas tarefas executadas no seu dia a dia.

São muitas as possibilidades, vários os scripts, que se encaixam em diversas situações. Lembro que a versão do MySQL Utilities que utilizo na escrita deste artigo é a 1.6.1, que ainda está em desenvolvimento. …

[Leia mais]
Desnormalização e redundância controlada em bancos de dados relacionais

Com o aumento do número de linhas presentes nas tabelas de uma base de dados, percebe-se o aumento da utilização de recursos computacionais para realizar consultas mais complexas, principalmente aquelas que envolvem junções entre duas ou mais tabelas.

É nítido que, mesmo em um cenário ideal, com todas as tabelas normalizadas e perfeitamente indexadas, as junções tendem a ser o mais frequente problema de desempenho nas consultas para geração de relatórios ou análises mais complexas entre os dados dispersos por várias tabelas. Este cenário é ainda mais crítico em aplicações web que disponibilizam dados em tempo real, como a maioria dos sites sociais, onde a informação deve estar atualizada sempre que o usuário executa uma ação ou recarrega uma página.

Evitar junções que sejam custosas para as consultas realizadas mais frequentemente é a proposta da implementação da redundância controlada de dados em …

[Leia mais]
DatabaseCast: Planilhas e bancos de dados

Olá, pessoal! Neste episódio do DatabaseCast, Mauro Pichiliani (Twitter | Blog), Wagner Crivelini (@wcrivelini) e o convidado Elton Rabello fazem as contas e fórmulas usando planilhas. Hoje você vai entender a dificuldade de usar planilhas no DOS, saber por que contadores adoram calculadores; quando vale a pena ou não trocar planilhas por banco de dados e vice-versa, aprender a convencer o usuário a largar a planilha e descobrir porque a rede fica lenta quando um documento é aberto.

Não deixe de nos incentivar digitando o seu comentário no final deste artigo, mandando um e-mail para  …

[Leia mais]
MySQL Utilities – replicação

Há algum tempo a turma que desenvolve o MySQL Oracle começou com a ideia de entregar ao administrador de bancos de dados uma série de ferramentas, também conhecidas como scripts, para a realização de tarefas bem conhecidas no dia-a-dia de um DBA. Pude perceber no evento MySQL Central @ OOW 2014 que essa mesma turma estava lá e conversando com o Product Manager, Chuck Bell. Eu soube que eles realmente estão investindo tempo para se obter scripts realmente robustos e que entregue rapidamente o que se deseja obter a respeito de status dos bancos de dados, replicação, comparação de dados entre bancos rodando em instâncias diferentes e outras operações.

O que é o MySQL Utilities?

O MySQL Utilities é um conjunto de aplicativos ou scripts escritos em Python, empacotado e disponibilizado pela Oracle. Dentro deste …

[Leia mais]
Alterações a quente de tabelas Innodb no MySQL

Olá, leitor, tudo bem?

Em resumo, com a compra da MySQL pela Oracle, alguns de nós usuários e fãs do MySQL pensamos que poderia ser seu fim. Ou que problemas estariam à vista em pouco tempo. E é com muito prazer que hoje nós, usuários do banco de dados MySQL, percebemos que o que ocorreu foi o contrário. O banco de dados MySQL está muito bem e cada vez mais forte.

A Oracle colocou, na versão 5.6 em diante do MySQL, vários recursos realmente importantes vindos do oracle knowledge base, entre eles a otimização e a alteração de tabelas innodb a quente.

É claro! Não é mágico! Não basta instalar a nova versão e sair mandando ver! Por isso, segue uma dica do seu amigo aqui!

Seguem as etapas: Planejamento, Execução, Guardando as ferramentas!

Planejamento

Escolha a tabela que pretende otimizar, busque-a no banco “information_schema” com o seguinte comando:

SELECT * …
[Leia mais]
Replicação MySQL em 5 minutos

Configurar a replicação do MySQL é extremamente simples. Este artigo demonstra como criar em minutos um master replicando para um slave.

A replicação é um recurso nativo do MySQL e tem vários usos, tais como como backup, alta-disponibilidade, redundância e distribuição geográfica de dados, escalabilidade horizontal, entre outros.

Para este teste simples, vamos usar o Linux e configurar a replicação no MySQL 5.6 entre duas instâncias: uma master e outra slave. Serão criadas duas instâncias MySQL a partir do zero, ou seja, sem dados. Elas estarão na mesma máquina, mas respondendo em portas diferentes: 3310 e 3311.

O único pré-requisito é ter o MySQL 5.6 instalado.

  • Caso o tenha instalado, basta usar o caminho onde está o bin/mysqld como basedir nos passos abaixo. Por exemplo, no Oracle Linux 7 ou RHEL 7 o binário fica em /usr/sbin/mysqld, portanto basedir=/usr;
  • Caso …
[Leia mais]