Espaço em disco ocupado pelo Windows

As coisas recentemente mudaram com a disponibilidade de SSDs com capacidades de armazenamento inferior a tendência de drives de rotação. O consumo de disco do Windows crescia com o passar do tempo. Apesar de indesejado, o nível que isso era permitido era devido em grande parte ao aumento da capacidade de discos rígidos, combinado com a necessidade dos consumidores e foco de engenheiros em recursos de recuperabilidade, proteção de dados, a necessidade crescente de suporte a dispositivos, e a demanda para novos recursos inovadores. Porém, a proliferação de Solid State Drives (SSDs) mudou esta tendência, e está nos levando a considerar o impacto do espaço em disco de um modo muito mais inteligente do que o levado em consideração para o Windows 7.

Como todos nós já sabemos, adicionar novas funcionalidades consome espaço adicional em disco – no Windows ou qualquer outro software. Na verdade, o “código” ocupa uma porcentagem relativamente baixa do tamanho total do Windows. O código necessário para a instalação do Windows é aproximadamente 2 GB, enquanto o restante é devido a arquivos de exemplo, vídeos, planos de fundo de alta resolução, entre outros recursos que permitem aos usuários customizar sua experiência, e testar novos recursos.

Confiança e segurança foram considerações essenciais durante o processo de engenharia do Windows Vista. Grande parte do espaço total ocupado pelo Windows vem de um grande número de recursos de confiabilidade que os usuários dependem para restaurar o sistema, performance, proteção de dados e solução de problemas. Alguns destes recursos incluem a Restauração do sistema, hibernação, arquivo de paginação, backup do registro, atualizações e logs escritos por serviços. Cada um deles representa um “estado de backup” disponível para recuperar o sistema em situações diversas, algumas planejadas e outras não.

A Restauração do sistema e Hibernação são recursos que ajudam os usuários a recuperar o sistema e prevenir a perda de dados em situações como bateria baixa (hibernação), má instalação de aplicativos ou outro tipo de corrupção (restauração do sistema).

A Hibernação é usada primariamente em PCs móveis e salva seu trabalho no disco rígido e coloca o computador em um estado de extrema economia de energia. A Hibernação é usada em PCs móveis quando a bateria é drenada abaixo de um certo limite ou quando desligamos o computador sem usar a opção Desligar para estender a bateria o quanto for possível. No Windows Vista, a Hibernação também é usada automaticamente ao Suspender computadores desktop para manter uma cópia dos programas e trabalhos abertos. Este recurso é chamado Suspensão Híbrida (Hybrid Sleep) e é usada para salvar o estado para o disco rígido caso a energia falhe enquanto o computador estiver dormindo. Portanto, o tamanho reservado ao arquivo Hiberfil.sys é equivalente a quantidade de memória RAM do computador. A quantidade de memória RAM que acompanham os computadores aumentou de forma significativa, assim o espaço em disco ocupado pela Hibernação tornou-se mais notável do que antes. Este espaço deve ser reservado para garantir que em uma situação crítica de baixa bateria, o sistema pode facilmente escrever o conteúdo da memória para o disco. Qualquer usuário de PCs portáteis que já presenciou seu computador hibernando automaticamente quando a bateria está criticamente baixa pode apreciar a paz de espírito que este espaço ocupado provê.

Uma das razões por trás da compressão para salvar o arquivo de hibernação em disco não ser realizada: funcionalidades avançadas geralmente possuem a desvantagem de complexidade, que reflete-se em bugs em software ou pelo menos em comportamento inesperado. E comportamentos inesperados é tudo que um atacante precisa para obter acesso não autorizado. Outra razão é o modo como o NT inicia. Após o BIOS (ou EFI) passar o controle da iniciação para o NT, o bootloader inicia e carrega o suporte básico de hardware, que lê as informações de boot para saber onde o sistema está. É neste ponto que o arquivo de hibernação é carregado para a memória simplesmente copiando byte-por-byte. Tudo isso antes do kernel ser carregado, antes de qualquer driver complexo de sistema de arquivos estar presente. Para suportar compressão, uma lógica maior deveria ser puxada para esta camada. Ou, alternativamente, carregar os dados do arquivo de hibernação após carregar o kernel e todos os drivers associados e gerenciamento de memória. A primeira opção envolve tornar o sistema mais complexo (e assim mais exposto a falhas) enquanto a segunda opção torna a iniciação ainda mais longa.

A tabela abaixo exibe o espaço total ocupado pela instalação completa do Windows Vista Premium/Ultimate.

picture2_thumb

Aqui estão alguns itens que merecem destaque:

  • ~1GB para suporte a drivers. Windows Vista trabalha com milhares e milhares de dispositivos diferentes. A habilidade de plugar quase todos os dispositivos, mesmo sua impressora antiga, e tê-la reconhecida e instalada automaticamente é algo que os consumidores esperam do Windows. Nós recebemos muitos feedbacks para remover alguns drivers e a cada lançamento do Windows nós cuidadosamente polimos o suporte “in-box” a dispositivos de acordo com informações de telemetria relacionadas ao uso de dispositivos. A habilidade de instalar uma impressora ou dispositivo offline é um valor chave, especialmente para laptops, que representam quase a metade de todos os PCs sendo vendidos. Este cache local fica desatualizado a medida que fabricantes lançam atualizações para seus dispositivos, e como resultado, os usuários são direcionados ao Windows Update para obter a última versão quando um dispositivo é plugado. No futuro nós provavelmente poderemos assumir “sempre usar o Windows Update” mas a internet ainda não está presente na maioria dos lugares do mundo.
  • ~1GB de espaço ocupado por componentes do sistema para permitir um sistema de reversão e recuperação após a instalação de atualizações de segurança e recomendadas. Nós recebemos muitos feedbacks positivos sobre a robustez de manutenção. O desejo de desinstalar uma atualização específica por uma variedade de motivos continua sendo um importante indicador de confiabilidade. Uma das razões para disponibilizar a desinstalação de uma atualização ou service pack disponível é, como você sabe, permitir a desinstalação de uma atualização quando ela causa um problema. A questão é: “Quando você sabe que tudo está funcionando?” Alguns bugs são sutis e podem demorar a aparecer para alguns usuários.
  • ~1GB para suporte a hibernação necessária para prevenir perda de dados quando o computador encontra-se em estado de espera por muitas horas.
  • ~315mb de Fontes. Usuários do Windows falam muitas linguagens diferentes, frequentemente no mesmo PC, e desejam que o Windows “fale” com eles. O Windows Vista contém suporte nativo a fontes para permitir usuários com sistemas de um idioma possam ler ou acessar websites em outro.
  • ~52MB de arquivos de log. Sejam logs de eventos, de instalação de atualizações, ou logs de instalação de dispositivos, este espaço consumido torna-se crítico ao tentar diagnosticar um problema. Estes logs são frequentemente usados pela nossa equipe de suporte ou helpdesks corporativos para diagnosticar uma falha específica. [Este número é tão insignificante perto da quantidade de material legível que ele representa].

Disk Space – Engineering Windows 7 – MSDN Blogs – http://blogs.msdn.com/b/e7/archive/2008/11/19/disk-space.aspx

Exportando declarações do RAIS

O que é o RAIS?

É a declaração de ganhos do funcionário durante o ano que passou.

Exemplo: Estamos em 2014. Temos até 20/fev. para enviar ao MTE (Ministério do Trabalho) a declaração dos ganhos do funcionário usando o RAIS 2013.

Como exportar declarações do RAIS para o RAIS Genérico

Todos os anos, o MTE lança uma nova versão do RAIS para o ano vigente. Para declarações de anos anteriores, usamos o RAIS Genérico.

No diretório DADOS estão todas as informações salvas.

O programa é escrito em Delphi e usa o BDE como DB.

Arquivos para salvar:

  • BDEmp1999.DB, BDEmp1999.PX
  • BDVinc1999.PX, BDVinc1999.DB

RAIS Genérico 2007-2011

Podemos ainda gerar uma cópia de segurança do ANO no menu Utilitários > Cópia de Segurança.

Caso não seja possível importar para uma versão mais nova. (Ex: Já possui os arquivo citados acima na versão mais recente e sobrescrevendo-os perderá as declarações realizadas até o momento):

Abra o RAIS, no Menu Declaração > Gravar Declaração.

Após salvar a declaração, ela é salva em:

[Diretório de instalação do RAIS]\Transmite

Diferenças entre Modem, Hub e Switch

Neste artigo, vamos comentar um pouco sobre as principais diferenças de um modem para um hub e switch, e princípios básicos de funcionamento dos mesmos.

Modem

A maioria das pessoas usam um modem (roteadores NAT) em casa para conectar-se a Internet, e a maioria dos roteadores NAT oferecem alguma versão limitada do DHCP para atribuir automaticamente endereços IP para computadores de mesa, laptops, consoles de vídeo-game e smartphones e uma versão limitada do DNS para tornar possível a todos os dispositivos da rede conhecerem como os outros dispositivos são chamados. O DHCP lida com endereços, porém não diz aos outros dispositivos da rede quem possuí tal endereço; o DNS sabe relacionar nomes com endereços mas não atribuí endereços sozinho. (BigDinosaur Blog, 2012)

Um modem pode prover internet apenas para um computador, já que possuí apenas uma entrada para linha telefônica (de onde vem a internet) e uma entrada Ethernet, como pode ser visto na imagem abaixo:

Traseira do modem D-Link 500B

Traseira do modem D-Link 500B

Para que possamos compartilhar nossa internet com dois ou mais computadores precisamos usar hubs ou roteadores.

DSL-2640B

Existem alguns modens que possuem 4 entradas (ao invés de apenas uma), como o DSL-2640B, que descartam a necessidade de um hub/switch (eles atua como ambos [note a porta DSL]).

Hoje em dia, há uma tendência de substituição dos hubs pelos roteadores wireless (já que os hubs permitem apenas compartilhar nossa internet através do uso de fios, já os roteadores wireless nos permitem compartilhar tanto por fio quanto sem fio).

Hub (Concentrador)

Para que seja possível a comunicação de vários computadores em uma rede, podemos usar um hub.

Hub

O hub permite que os computadores possam compartilhar arquivos e impressoras entre si sem nenhuma configuração adicional, precisamos apenas conectar os computadores ao hub e podemos começar a compartilhar arquivos e impressoras (graças ao APIPA).

Quando conectamos um modem a um hub estendemos a capacidade que ele possui para, além do compartilhamento de arquivos e impressoras, o compartilhamento de internet. Não é necessário nenhuma configuração adicional, apenas precisamos conectar o modem a qualquer entrada livre no hub e a internet funcionará em todos os computadores automaticamente.

Qualquer informação enviada por um computador é recebida por todos os outros, mesmo que a informação fosse destinada para um destinatário específico. A placa de interface de rede descarta a informação não endereçada a ela, interrompendo a CPU somente quando pacotes aplicáveis eram recebidos, a menos que a placa fosse colocada em seu modo de comunicação promíscua. Essa forma de um fala e todos escutam definia um meio de compartilhamento de Ethernet de fraca segurança, pois um nó na rede Ethernet podia escutar às escondidas todo o tráfego do hub se assim desejasse.

Todo pacote que é enviado a uma porta do hub pode sofrer colisão; o hub realiza um trabalho mínimo ao lidar com colisões de pacote. Como a chance de colisão é proporcional ao número de transmissores e ao volume de dados a serem enviados, a rede pode ficar extremamente congestionada, em torno de 50% da capacidade nominal, dependendo desses fatores. Para solucionar isto, foram desenvolvidos “comutadores” ou switches Ethernet, para maximizar a largura de banda disponível.

Switch (Comutador)

Um switch é um hub “mais rápido e inteligente” (a grosso modo) devido ao modo como possibilita a conversa entre os computadores em uma rede mas, na prática, o cabeamento é idêntico e ele atua como um hub, não necessitando de nenhuma configuração adicional para compartilhar internet, arquivos e impressoras (tanto que é possível substituir um hub por um switch em uma rede sem nenhuma configuração adicional).

Switch Ethernet “aprende” quais são as pontas associadas a cada porta, e assim ele pára de mandar tráfego para as demais portas a que o pacote não esteja endereçado, isolando os domínios de colisão. Desse modo, a comutação na Ethernet pode permitir velocidade total de Ethernet no cabeamento a ser usado por portas de um mesmo switch.

É possível encontrar redes Gigabit Ethernet no mercado usando HUB mas pela norma a rede só pode ser usada através de um switch. Para usuários domésticos, o tempo de transmissão será maior, mas nada o que faça valer a pena migrar para a Gigabit. Como o switch é pouco utilizado por usuários domésticos (a quem este post se destina) devido ao alto preço, recomendo, para quem possui mais curiosidade ou um switch em casa, ler o post do Brainworks que compara Hubs e Switchs.

Referências

  1. BigDinosaur Blog, 2012.Running BIND9 and ISC-DHCP.

MySQL não inicia – Corrupção e Recuperação da InnoDB

Bancos de dados podem corromper por diversos motivos. Em nosso caso, a bateria do nosso nobreak estava com problemas e nosso Hyper-V Server desligou durante operações de escrita ao nosso banco de dados. Corrupção na InnoDB pode tornar todos os bancos de dados executando em um servidor inacessíveis. Sem entrar em detalhes técnicos do por quê disso, você descobrirá que seu banco de dados estará inacessível e o servidor MySQL simplesmente não inicia.

Eu tenho a dizer o que todo mundo diz, “Backup, Backup, e Backup”. Certifique-se que você mantém uma boa rotina de backup executando um dump para restaurar seu banco de dados caso ocorra corrupção ou perda de dados (o que é inevitável).

MYSQL NÃO INICIA: COMO RESTAURAR UM BANCO DE DADOS INNODB?

Nosso servidor é um Debian 8.x e MySQL 5.5. Distribuições baseadas no Red Hat são diferentes e um bom conhecimento de linha de comando são úteis aqui. Você não conseguirá realizar nenhum dos passos abaixo sem acesso ao shell do seu servidor via SSH. Você também não conseguirá reparar ou checar suas tabelas via phpmyadmin, WHM or cPanel.

Primeiro, nós precisamos acessar nosso servidor e esta é a parte que a experiência com a linha de comando é importante. Você deve ter acesso root ao seu servidor executando MySQL. Vamos dar uma olhada no log de erro do MySQL:

ssh user@my.server.com 
tail -500 /var/log/mysql/error.log
130306 22:02:18 mysqld_safe Number of processes running now: 0
130306 22:02:18 mysqld_safe mysqld restarted
130306 22:02:18 [Note] Plugin 'FEDERATED' is disabled.
130306 22:02:18 InnoDB: The InnoDB memory heap is disabled
130306 22:02:18 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130306 22:02:18 InnoDB: Compressed tables use zlib 1.2.3
130306 22:02:18 InnoDB: Using Linux native AIO
130306 22:02:18 InnoDB: Initializing buffer pool, size = 128.0M
130306 22:02:18 InnoDB: Completed initialization of buffer pool
130306 22:02:18 InnoDB: highest supported file format is Barracuda.
130306 22:02:18 InnoDB: 5.5.30 started; log sequence number 1629186928
130306 22:02:18 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
130306 22:02:18 [Note] - '0.0.0.0' resolves to '0.0.0.0';
130306 22:02:18 [Note] Server socket created on IP: '0.0.0.0'.
130306 22:02:18 [Note] Event Scheduler: Loaded 0 events
130306 22:02:18 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.5.30-cll' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Server (GPL)
130306 22:02:19 InnoDB: Error: page 393457 log sequence number 111 561,760,232
InnoDB: is in the future! Current system log sequence number 70 3,946,969,851.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html
InnoDB: for more information.

Nós vamos tentar nosso melhor para encontrar alguma informação que possa nos ajudar a diagnosticar o problema, mas algo está definitivamente errado e o procedimento abaixo pode falhar.

Passos para restaurar o serviço.

0. Com base no arquivo de log, é recomendável realizar uma verificação de disco (fsck), já que é possível que erros no disco rígido possam ter causado a corrupção do banco de dados.

1. Pare o serviço mysql

/etc/init.d/mysql stop

2. Realize backup dos arquivos /var/lib/mysql/ib*

mkdir /backup
rsync -a -P /var/lib/mysql/ib* /backup

3. Adicione a seguinte linha a seção [mysqld] do arquivo /etc/mysql/my.cnf

nano /etc/mysql/my.cnf
[mysqld]
innodb_force_recovery = 6

4. Reinicie o serviço mysql

/etc/init.d/mysql start
[ ok ] Starting mysql (via systemctl): mysql.service

5. Verifique o arquivo de log do MySQL.

160915 12:50:53 [ERROR] Cannot find or open table wordpressikdata/wp_rfr2b_options from
the internal data dictionary of InnoDB though the .frm file for the
table exists. Maybe you have deleted and recreated InnoDB data
files but have forgotten to delete the corresponding .frm files
of InnoDB tables, or you have moved .frm files to another database?
or, the table contains indexes that this version of the engine
doesn't support.
See http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting.html
how you can resolve the problem.

160915 12:50:53 [ERROR] Cannot find or open table wordpressikdata/wp_rfr2b_target from
the internal data dictionary of InnoDB though the .frm file for the
table exists. Maybe you have deleted and recreated InnoDB data
files but have forgotten to delete the corresponding .frm files
of InnoDB tables, or you have moved .frm files to another database?
or, the table contains indexes that this version of the engine
doesn't support.
See http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting.html
how you can resolve the problem.

6. Realize backup de todas as tabelas.

mysqldump -A > dump.sql

7. Delete todas as tabelas que necessitam recuperação.

Ao executar o comando mysqldump para realizar uma cópia de segurança do banco de dados, você pode receber o erro:

mysqldump: Got error: 1146: Table ‘wordpressikdata.wp_rfr2b_options’ doesn’t exist when using LOCK TABLES

Mas ao olhar em /var/lib/mysql/wordpressikdata, os arquivos para estas tabelas estavam lá, e o show tables também exibe as tabelas.

mysql -u root -p
mysql> show databases;

mysql> use wordpressikdata

mysql> show tables;
+----------------------------+
| Tables_in_wordpressikdata  |
+----------------------------+
| wp_commentmeta             |
| wp_comments                |
| wp_gallery_galleries       |
| wp_gallery_galleriesslides |
| wp_gallery_slides          |
| wp_links                   |
| wp_options                 |
| wp_postmeta                |
| wp_posts                   |
| wp_rfr2b_options           |
| wp_rfr2b_target            |
| wp_term_relationships      |
| wp_term_taxonomy           |
| wp_terms                   |
| wp_usermeta                |
| wp_users                   |
+----------------------------+
16 rows in set (0.00 sec)

Para nos certificarmos que a tabela existe e não há problemas, você pode executar o mysqlcheck:

$ mysqlcheck -u root -p wordpressikdata
Enter password:

Ele irá checar e reparar qualquer banco de dados e tabelas passados a ele. Porém, você pode receber algo como:

wordpressikdata.wp_commentmeta                     OK
wordpressikdata.wp_comments                        OK
wordpressikdata.wp_gallery_galleries               OK
wordpressikdata.wp_gallery_galleriesslides         OK
wordpressikdata.wp_gallery_slides                  OK
wordpressikdata.wp_links                           OK
wordpressikdata.wp_options                         OK
wordpressikdata.wp_postmeta                        OK
wordpressikdata.wp_posts                           OK
wordpressikdata.wp_rfr2b_options
Error    : Table 'wordpressikdata.wp_rfr2b_options' doesn't exist
status   : Operation failed
wordpressikdata.wp_rfr2b_target
Error    : Table 'wordpressikdata.wp_rfr2b_target' doesn't exist
status   : Operation failed
wordpressikdata.wp_term_relationships              OK
wordpressikdata.wp_term_taxonomy                   OK
wordpressikdata.wp_terms                           OK
wordpressikdata.wp_usermeta                        OK
wordpressikdata.wp_users                           OK

Não há um modo rápido de resolver este erro, já que estamos lidando com um banco de dados ou tabela corrompida, e se você não possuí um backup anterior (funcionando) você não será capaz de restaurar os dados da tabela, somente recriar sua estrutura.

Como recriamos a tabela? Os únicos arquivos que temos são estes dois:

  • wp_rfr2b_options.frm
  • wp_rfr2b_target.frm

… mas estes arquivos são binários e nós precisamos obter sua estrutura para recriar estas tabelas no nosso banco de dados MySQL

Por sorte, existe uma ferramenta do MySQL chamada mysqlfrm que pode ler os arquivos binários e e informar os comandos CREATE TABLE necessários para o MySQL automaticamente.

No Debian, você pode instalar o pacote mysql-utilities para obter esta ferramenta.

apt-get update
apt-get install mysql-utilities

Então use-a no arquivo desta forma:

mysqlfrm --diagnostic ./wp_rfr2b_target.frm

# WARNING: Cannot generate character set or collation names without the --server option.
# CAUTION: The diagnostic mode is a best-effort parse of the .frm file. As such, it may not identify all of the components of the table correctly. This is especially true for damaged files. It will also not read the default values for the columns and the resulting statement may not be syntactically correct.
# Reading .frm file for ./wp_rfr2b_target.frm:
# The .frm file is a TABLE.
# CREATE TABLE Statement:

CREATE TABLE `wp_rfr2b_target` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `rss_content` text CHARACTER SET <UNKNOWN>,
  `rss_ad_campaign_name` varchar(300) CHARACTER SET <UNKNOWN> NOT NULL,
  `optin_fields` text CHARACTER SET <UNKNOWN>,
  `rss_extra` text CHARACTER SET <UNKNOWN>,
  `flag_ad_campaign` enum('0','1') CHARACTER SET <UNKNOWN> NOT NULL,
PRIMARY KEY `PRIMARY` (`id`)
) ENGINE=InnoDB;

#...done.

O sistema teve um pequeno problema para identificar a codificação de caracteres, mas você pode simplesmente deletar estas partes se você (como eu) sabem que a codificação padrão do MySQL é o suficiente (UTF8). No final, após alguma modificação manual, restaurei a estrutura da minha tabela.

CREATE TABLE `wordpressikdata`.`wp_rfr2b_options` (
  `option_name` varchar(750),
  `option_value` text,
PRIMARY KEY `PRIMARY` (`option_name`)
) ENGINE=InnoDB;

CREATE TABLE `wordpressikdata`.`wp_rfr2b_target` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `rss_content` text,
  `rss_ad_campaign_name` varchar(300),
  `optin_fields` text,
  `rss_extra` text,
  `flag_ad_campaign` enum('0','1'),
PRIMARY KEY `PRIMARY` (`id`)
) ENGINE=InnoDB;

O que nós precisamos fazer agora é simplesmente deletar a tabela com os comandos abaixo:

mysql -u root -p
Enter password: 
mysql> use wordpressikdata

mysql> show tables;

mysql> drop table wp_rfr2b_options;
ERROR 2013 (HY000): Lost connection to MySQL server during query

mysql> drop table wp_rfr2b_target;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
ERROR:
Can't connect to the server

mysql> exit
Bye

Caso o comando falhe ao deletar as tabelas, você pode removê-las manualmente:

rm -rf /var/lib/mysql/wordpressikdata/wp_rfr2b_options.frm

No meu caso, o mysql simplesmente travava ao tentar deletar a tabela usando drop table wp_rfr2b_options

8. Pare o serviço mysql
9. Remova os arquivos /var/lib/mysql/ib*

rm -rf /var/lib/mysql/ib*

10. Comente a linha innodb_force_recovery do arquivo /etc/mysql/my.cnf
11. Reinicie o mysql. Veja o arquivo de erro do mysql.
12. Restaure o banco de dados do dump:

mysql < dump.sql

Este problema levou algumas horas de investigação para encontrar uma solução, e eu espero que este post possa ajudar vocês! Lembre-se que é sempre recomendável criar uma rotina de backup do seu servidor.

Referências

MySQL Won’t Start – InnoDB Corruption and Recovery – http://chepri.com/our-blog/mysql-innodb-corruption-and-recovery/

Resolving MySQL error 1146: “table doesn’t exist” when doing backup – TechTarget – http://itknowledgeexchange.techtarget.com/security-admin/resolving-mysql-error-1146-table-doesnt-exist-when-doing-backup/

How to fix MySQL lost table description from .frm files after emergency migration of /var/lib/mysql – Network Geek Stuff – http://networkgeekstuff.com/projects/networkgeekstuff/minipost-how-to-fix-mysql-lost-table-description-from-frm-files-after-emergency-migration-of-varlibmysql/

Associando um disco real a uma máquina virtual (Hyper-V)

Você notará que você não conseguirá selecionar a opção Physical Hard Disk. Para associarmos um disco real diretamente a uma VM, precisamos torná-lo “off-line” para o host.

Para isso, precisamos acessar o Gerenciador de discos remotamente no Hyper-V. Você pode usar o Corefig ou o comando abaixo para habilitar o Gerenciamento de Volumes Remoto:

netsh advfirewall firewall set rule group="Gerenciamento de Volumes Remoto" new enable=yes

Após habilitá-lo, use um computador cliente e abra o Menu iniciar. Dê botão direito em Computador e clique em Gerenciar.

2016-09-14-21_01_32

Na barra lateral esquerda, dê botão direito em Gerenciamento do computador e clique em Conectar a outro computador…

Digite o IP do servidor Hyper-V e clique em OK.

2016-09-14-21_02_42-adicionar-novo-post-eduardo-mozart-wordpress

A conexão deverá ocorrer normalmente (caso a conexão falhe, será exibido mensagem de erro do RPC – verifique se você habilitou o Gerenciamento Remoto no Firewall do Windows e que o IP usado na conexão está correto).

2016-09-14-21_07_19-gerenciamento-de-disco

Você não tem direitos de acesso ao ‘Gerenciador de discos lógicos’

Caso apareça a mensagem Acesso negado ao acessar o Gerenciamento de disco remoto, verifique se o usuário logado atualmente no computador Cliente com um usuário membro do grupo Admins. do domínio. Caso contrário, realize logoff e logue-se com um usuário do domínio membro deste grupo.

Caso você não possua uma estrutura Active Directory ou o servidor Hyper-V não seja membro do domínio, será necessário, no computador Cliente, criar uma conta com o MESMO NOME DE USUÁRIO E SENHA da conta Administrador do Servidor. Para isso, abra o Gerenciamento do computador (local), expanda Usuários e Grupos Locais. Dê botão direito em Usuários e clique em Novo usuário… Após criar o novo usuário, realize Logoff e logue-se com ele.

No Gerenciador de discos lógicos, dê botão direito no disco que você deseja atribuir a VM e selecione a opção Offline.

2016-09-14-21_22_26

Agora, no 5nine Manager no Servidor, na aba Hyper-V Manager, dê botão direito na VM e clique em Settings.

Em Controlador SCSI, selecione Hard Drive na lista e clique em Add.

Selecione o disco real em Physical Hard Drive.

Instalando e Configurando o 5nine Manager for Hyper-V (Free Edition) no Windows Server Hyper-V 2012

Na empresa onde trabalhamos, possuímos um servidor de virtualização Hyper-V 2012 (gratuito) sem interface gráfica. Gerenciávamos nossas máquinas virtuais através do RSAT, mas recentemente atualizamos nossa estrutura da versão 2008 R2 do Hyper-V para 2012 R2.

Infelizmente, após a mudança, o RSAT instalado nos nossos clientes com Windows 7 não poderiam mais ser usados para gerenciar o Hyper-V 2012 R2 – o cliente RSAT compatível com estas versões do Hyper-V somente é compatível com Windows 8.1. Infelizmente, não possuímos nenhum computador na organização que possuí licença para esta versão do Windows.

Procurando por uma solução, encontramos o 5nine Manager, que possibilita gerenciarmos as máquinas virtuais localmente no Hyper-V Server 2012.

Instalação

O 5nine Manager for Hyper-V (Free Edition) pode ser obtido no site da 5nine no link: http://www.5nine.com/5nine-manager-for-hyper-v-free.aspx

É necessário preencher um pequeno cadastro para realizar o download do instalador, mas o software é gratuito. O link para download e o arquivo de licença será enviado para o e-mail informado no cadastro.

Após o download, é necessário extrair o arquivo baixado (ZIP) antes de instalá-lo no servidor. O Windows possuí suporte nativo a extração de arquivos ZIP, mas você pode usar o 7-Zip para este trabalho.

2016-09-14-18_21_47

Após a extração, copie o arquivo de licença em anexo no e-mail para a mesma pasta onde extraiu o instalador do 5nine.

é necessário executar o instalador no servidor. Você pode instalá-lo através de um pen drive ou HD externo com o comando:

D:\5nineManager\59Manager.exe

Durante a instalação, será necessário localizar o arquivo de licença que você recebeu via e-mail.

2016-09-14-18_29_32-5nine-manager-setup

Durante a instalação, será questionado se você deseja usar um banco de dados SQLite local ou Microsoft SQL Server para armazenar os logs de monitoramento do 5nine.

Caso você possua um servidor de produção Microsoft SQL Server na sua empresa, você pode usá-lo. Caso contrário, use o banco de dados SQLite e clique em Next.

2016-09-14-18_30_40-5nine-manager-setup

Configuração

Adaptador de rede

Durante a primeira execução do 5nine, precisamos configurar nosso adaptador de rede físico de forma a disponibilizá-los para as máquinas virtuais.

Tivemos problemas ao criar um adaptador de rede virtual pelo 5nine Manager: A conexão externa com a internet no Host era simplesmente perdida! Tivemos de criar o adaptador virtual pelo PowerShell.

Existem 3 tipos de redes virtuais:

Externo (Bridge): Permite acesso à internet e a rede local através da nossa placa de rede real. As máquinas virtuais receberão um IP na faixa da rede interna.

Interno: Rede que permite a troca de informações entre as máquinas virtuais e ao host HYPER-V.

Particular: Rede interna somente entre as máquinas virtuais.

Para criar um adaptador Externo, execute o comando powershell no prompt de comando.

Encontre os adaptadores de rede existentes usando o cmdlet Get-NetAdapter. Anote o nome do adaptador de rede que você deseja usar para o switch virtual.

Get-NetAdapter

Crie um novo switch virtual usando o cmdlet New-VMSwitch. Por exemplo, para criar um switch externo virtual com a opção Allow management operating system to share this network adapter habilitada, execute o seguinte comando.

New-VMSwitch -name ExternalSwitch -NetAdapterName Ethernet -AllowManagementOS $true

Ao clicar no menu Refresh (aba Virtual Network Adapters), nosso switch virtual será exibido automaticamente.

Máquinas virtuais

Entre na aba Hyper-V Manager (ao lado de Summary).

Agora, na barra lateral esquerda, dê botão direito no servidor e clique em Create New VM …

Na primeira tela, você poderá criar uma VM (Create new virtual machine) ou importá-la usando um arquivo de configuração.

Na próxima tela, será necessário informar o nome da VM.

Na próxima tela, será necessário informar a geração (Generation) da VM.

  • Geração 1 usa Legacy BIOS. Na dúvida, use esta opção.
  • Geração 2 usa UEFI, possuindo suporte a Secure Boot e PXE usando este padrão. Use esta opção somente ao instalar uma versão moderna do Windows (Windows 8/Server 2012+) ou uma distribuição Linux que suporte este padrão.

Nas próximas quatros telas, você poderá configurar o número de processadores, memória, rede e espaço em disco para esta máquina virtual.

Durante a alocação da memória, procure sempre usar múltiplos de 2 (1024, 2048, 4096…), de forma a não fugir do padrão utilizado em máquinas reais.

Durante a configuração de rede (Networking), selecione a conexão criada anteriormente e clique em Next,

Durante a configuração do disco rígido, você poderá criar um novo disco virtual .VHDX, importar um disco .VHD/.VHDX existente ou adicionar um disco virtual depois (Attach a virtual hard disk later).

Há um pequeno bug durante a criação de uma máquina virtual usando a opção Attach a virtual hard disk later. Caso você tenha selecionado a opção de importar antes de marcar esta opção, não será possível avançar a próxima tela (exibirá um aviso “Check the entered path”).

Na última tela (Summary), será exibido um pequeno resumo das configurações que definimos para a VM. Desmarque a caixa Start VM after creation caso você não deseje iniciar a VM automaticamente após sua criação.

Iniciando uma VM automaticamente durante a iniciação do Hyper-V Server

Para iniciar uma VM automaticamente durante a iniciação, dê botão direito nela e clique em Settings. Na barra lateral esquerda, clique em Management. Na aba Advanced, em Automatic Start Action, selecione a opção Always start.

Adicionando um disco virtual após a criação da VM

Caso você tenha usado a opção Attach a virtual hard disk later, para importar um disco virtual a uma VM, dê botão direito nela e clique em Settings.

Na barra lateral esquerda, em Controlador IDE 0, selecione Hard Drive na lista e clique em Add,

Marque a opção Virtual hard disk e clique em Browse… para selecionar um disco existente ou Create para criar um novo disco virtual. Clicando em Inspect, você poderá ver quanto espaço a VM realmente está utilizando do disco virtual.