terça-feira, 23 de outubro de 2018

Analisando o valor do tmp_table_size


1. Encontrar o valor atual do tmp_table_size

mysql> show global variables like 'tmp_tables_size';
Empty set (0,26 sec)

2. Encontrar a porcentagem de tabelas criadas no disco

mysql> show global status like 'created_tmp_disk_tables';
+-------------------------+--------+
| Variable_name           | Value  |
+-------------------------+--------+
| Created_tmp_disk_tables | 125193 |
+-------------------------+--------+
1 row in set (0,00 sec)

3. Continuando

mysql> show global status like 'created_tmp_tables';
+--------------------+--------+
| Variable_name      | Value  |
+--------------------+--------+
| Created_tmp_tables | 411690 |
+--------------------+--------+
1 row in set (0,01 sec)

4. Calculando

Tmp_disk_tables=((created_tmp_disk_tables*100/(created_tmp_tables+created_tmp_disk_tables))
= ((125193*100/(411690 + 125193))
= 23.32%

5. Ajustando

Caso o valor encontrado no cálculo do item 4 exceda 25%, aumentar o valor da variável tmp_table_size e repetindo o mesmo valor na variável max_heap_table_size

vi /etc/my.cnf
tmp_table_size=xxx
max_heap_table_size=xxx

6. Reiniciar o serviço MySQL

segunda-feira, 22 de outubro de 2018

Otimizazando o table_open_cache

Para obter os melhores valores desta variável, acesse o banco de dados e siga os passos abaixo:

1. Pegando os valores atuais de open_tables e opened_tables

mysql> show global status like 'open%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| Open_files               | 0     |
| Open_streams             | 0     |
| Open_table_definitions   | 363   |
| Open_tables              | 400   |
| Opened_files             | 658   |
| Opened_table_definitions | 363   |
| Opened_tables            | 42565 |
+--------------------------+-------+
7 rows in set (0,00 sec)

2. Descobrindo a taxa de ocorrência do Table Cache

Taxa de ocorrência = table_open_cache*100/Opened_tables.  
                   = 400*100/42565
                   = 0.94%
Em geral este valor deve ser acima de 50%.

3. Achar o total de tabelas do seu banco de dados

mysql> SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE';
+----------+
| COUNT(*) |
+----------+
|      144 |
+----------+
1 row in set (0,01 sec)

4. Encontrar threads atualmente conectadas ao banco de dados

mysql> show global status like '%Threads_connected%';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_connected | 199   |
+-------------------+-------+
1 row in set (0,00 sec)

5. Calculando o valor do table_open_cache

Table_open_cache = total_tables*Threads_connected*.50
                 = 144*199*.50
                 = 14328

6. Calculando o valor do open_files_limit

open_files_limit= Table_open_cache*2
                = 14328*2
                = 28656

7. Editar as variáveis no arquivo

vi /etc/my.cnf
table_open_cache=39390
open_files_limit=78780

8. Reiniciar o serviço MySQL
 

terça-feira, 5 de junho de 2018

Console com caracteres diferentes

Algumas vezes via console, o mesmo fica com o teclado e os caracteres desconfigurados. Para corrigir esse problema e reconfigurá-los para o padrão PT_BR, basta seguir os passos abaixo.

dpkg-reconfigure locales

"Locales" a serem gerados:
  • en_US.UTF-8 UTF-8
  • pt_BR ISO-8859-1

Locale padrão para o ambiente do sistema
  • pt_BR.UTF-8

apt-get install console-data
dpkg-reconfigure console-data

  • Política para gerenciar mapas de teclados: Selecionar mapa de teclado da lista de arquiteturas
  • Família do layout do teclado: qwerty
  • Layout de teclado: Brazilian
  • Variante do teclado: BR-Latin1

dpkg-reconfigure console-setup

  • Configuração para usar no console: UTF-8
  • Conjunto de caracteres suportados: Latin1 e Latin5
  • Fonte para o console: Fixed
  • Tamanho da fonte: 8x16

Ubuntu Server Atualizar Versão

O tutorial abaixo serve para atualizar da versão 16.04 LTS para versão 18.04 LTS.

apt update
apt dist-upgrade
apt autoremove
apt-get install update-manager-core
nano /etc/update-manager/release-upgrades

Verificar se no final do arquivo /etc/update-manager/release-upgrades

Prompt=lts

do-release-upgrade -d

Confirmar nas solicitações.

terça-feira, 2 de janeiro de 2018

Aumentar a capacidade de um RAID 1 via software

Para iniciar este procedimento presumirei que no computador possui 3 HD's e o RAID 1 (espelhamento) será aumentado de 1 TB para 2 TB, com a seguinte configuração:

HD 1 (SDA) - Sistema Operacional [160GB]
HD 2 (SDB) - HD 1 do RAID [1 TB]
HD 3 (SDC) - HD 2 do RAID [1 TB]

HD 4 - HD novo 1 [2 TB]
HD 5 - HD novo 2 [2 TB]

1) Marcar o SDC como Falho no RAID
mdadm --manage /dev/md0 --fail /dev/sdc1

2) Remover o SDC do RAID
mdadm --manage /dev/md0 --remove /dev/sdc1

3) Desligar o PC e remover o disco e adicionar o novo disco 1 e ligar o PC novamente

4) Verificar qual o nome do novo disco 1, provavelmente será SDC
fdisk -l

5) Criar uma nova partição no novo disco 1 (sdc1)
cfdisk /dev/sdc
Opções:
DOS > NOVA > TIPO = FD Linux RAID > GRAVAR > SAIR

6) Adicionar o novo disco 1 ao RAID
mdadm --manage /dev/md0 --add /dev/sdc1

7) Checar o status do RAID e esperar pela sincronização [UU]
mdadm -D /dev/md0
ou
cat /proc/mdstat

8) Marcar o SDB como Falho no RAID
mdadm --manage /dev/md0 --fail /dev/sdb1

9) Remover o SDB do RAID
mdadm --manage /dev/md0 --remove /dev/sdb1

10) Desligar o PC e remover o disco e adicionar o novo disco 2 e ligar o PC novamente

11) Verificar qual o nome do novo disco 2, provavelmente será SDB
fdisk -l

12) Criar uma nova partição no novo disco 2 (sdb1)
cfdisk /dev/sdb
Opções:
DOS > NOVA > TIPO = FD Linux RAID > GRAVAR > SAIR

13) Adicionar o novo disco 2 ao RAID
mdadm --manage /dev/md0 --add /dev/sdb1

14) Checar o status do RAID e esperar pela sincronização [UU]
mdadm -D /dev/md0
ou
cat /proc/mdstat

15) Apesar dos 2 HD's serem maiores, precisamos crescer o RAID com a maior quantidade de espaço
do HD
mdadm --grow /dev/md0 -z max

16) Mudar o tamanho da partição do RAID
Para partição RaiserFS
resize_reiserfs /dev/md0
Para partição EXT3 ou EXT4
resize2fs /dev/md0

Pronto [UU]!