8.1 A necessidade de um backup de banco de dados

Você aprendeu como criar esquemas de banco de dados, tabelas e visualizá-los. Também preencha essas tabelas com dados e altere-os. Agora você precisa aprender a coisa mais importante - fazer backups.

O banco de dados é muito fácil de quebrar. O fato é que o banco de dados geralmente está em estado de mudança constante: algo é constantemente salvo e adicionado a ele.

Imagine que você tem uma guia aberta em seu navegador e não deseja que as informações nela contidas sejam perdidas. Concorde que, se você simplesmente decidir nunca fechá-lo, essa não será a melhor opção. Afinal, o navegador pode travar, pode ser fechado sem querer, você pode perder a luz ou queimar o computador. O Windows pode instalar outra atualização, mas nunca se sabe o quê.

Portanto, seu banco de dados é a mesma guia. E é apenas uma questão de tempo até que algo dê errado durante a próxima gravação no disco. Portanto, você definitivamente precisa aprender a fazer backups.

Fazer backups é como escovar os dentes, empresas normais fazem um backup do conteúdo de cada banco de dados todas as noites. E como os discos rígidos também podem falhar e há incêndios nos data centers, os backups geralmente são armazenados em 2 a 3 cópias em data centers em diferentes partes do mundo.

Existem várias abordagens para criar um backup.

Arquivos de backup. Como todos os dados do banco de dados são armazenados em disco como um conjunto de arquivos , a maneira mais fácil é simplesmente copiar esses arquivos em algum lugar. Ou primeiro arquive-o em um arquivo e copie-o para algum lugar.

Esta é a maneira mais rápida de fazer um backup, mas exige que os arquivos não sejam alterados enquanto estão sendo copiados/arquivados. O banco de dados deve ser congelado enquanto a cópia está sendo criada, caso contrário a cópia ficará torta. Afinal, pode haver uma situação em que alguns dos novos dados sejam registrados no banco de dados e outros ainda não.

Backup na forma de consultas SQL . Como você já sabe, adicionar e alterar dados no banco de dados do servidor SQL é sempre representado como consultas SQL. Assim, você pode solicitar ao servidor SQL para salvar o conteúdo de uma tabela ou tabelas específicas em um arquivo como consultas SQL.

Este método é mais lento que o anterior, mas pode ser usado para transferir dados entre servidores SQL de diferentes fabricantes.

Além disso, nem todos os dados sempre precisam ser salvos. Freqüentemente, você tem um monte de serviços ou informações obsoletas em suas tabelas e pode dizer ao servidor SQL para não salvá-lo.

Além disso, para tabelas que armazenam alguns eventos com referência ao tempo, você pode simplesmente selecionar tais eventos para o último dia e armazená-los apenas.

Vários utilitários . As empresas estão dispostas a pagar muito dinheiro para obter a garantia de que seus dados permanecerão intactos e seguros. Assim, diversas empresas de TI passaram a oferecer soluções para todas as ocasiões. Por exemplo, existem programas que podem fazer backup de bancos de dados na forma de arquivos e, ao mesmo tempo, não exigem que esses arquivos não sejam alterados.

Por exemplo, você pode instalar drivers especiais no sistema operacional e acompanhar quando, o que e onde mudou.

8.2 Fazendo backup do banco de dados

O Workbench é excelente para exportar e importar dados dos bancos de dados com os quais trabalha. Para fazer isso, basta pressionar o item de menu: Server-> Data Export. E você verá algo assim:

Agora vamos adicionar alguma explicação:

A ordem é esta:

  1. Primeiro, selecione o esquema ou esquemas que serão exportados.
  2. Em seguida, à direita, especificamos as tabelas para backup.
  3. Em seguida, devemos escolher o que exatamente iremos exportar:
    • apenas dados;
    • apenas estrutura (as tabelas estarão, mas vazias);
    • dados e estrutura.
  4. Escolha como salvar os dados:
    • um arquivo para cada tabela;
    • um arquivo para todas as tabelas.
  5. Você também pode adicionar o código de criação do esquema na parte superior do arquivo. Isso é útil ao transferir dados entre diferentes DBMS.

8.3 Fazendo backup do esquema da tabela

Vamos fazer backup apenas dos esquemas, sem os dados reais.

Selecionei Dump Structure Only e cliquei em Start Export.

E foi isso que encontrei no arquivo que o Workbench fez.

--
-- Table structure for table `user`
--

DROP TABLE IF EXISTS `user`;
/*!40101 SET @saved_cs_client 	= @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `user` (
  `id` int(11) NOT NULL,
  `name` varchar(100) DEFAULT NULL,
  `level` int(11) DEFAULT NULL,
  `created_date` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Isso mesmo, esse é o esquema das nossas tabelas, se assim posso dizer de uma única tabela.

8.4 Fazendo backup dos dados

Agora vamos fazer backup apenas dos dados, mas sem a estrutura do esquema.

Vamos selecionar Dump Data Only e ver o que eles nos fornecem:

E foi isso que encontrei no arquivo que o Workbench fez.

--
-- Dumping data for table `user`
--

LOCK TABLES `user` WRITE;
/*!40000 ALTER TABLE `user` DISABLE KEYS */;
INSERT INTO `user` VALUES
 	(1,'Ivanov Ivan',40,'2022-05-11'),
 	(2,'Petrov Nikola',1,'2021-05-01'),
 	(3,'Sidroov Vitaly',8,'2022-05-12');
/*!40000 ALTER TABLE `user` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Sim, muito parecido com a verdade. Também vemos aqui um código especial que bloqueia a tabela do usuário. Isso é feito para que você possa simplesmente executar este script SQL: ele contém todas as instruções que permitirão a qualquer servidor SQL restaurar corretamente os dados.

8.5 Implantando um backup

E, finalmente, a última coisa é restaurar o banco de dados de um backup. Esta ação é muito simples, mas útil.

Digamos que eu queira que todos os meus alunos tenham um banco de dados específico para que você possa aprender a escrever consultas nele. Em seguida, fornecerei um link para o arquivo que você implanta localmente e pronto.

E mesmo se você excluir acidentalmente alguns dados, tabelas ou até mesmo todo o esquema, ele sempre poderá ser restaurado a partir de um backup.

Para importar dados, você precisa clicar no item no menu Server-> Data Import. Então você verá esta imagem:

Como no caso da exportação, primeiro você é solicitado a selecionar uma fonte de dados: um grupo de arquivos ou todos os dados em um arquivo.

Então você precisa selecionar o esquema no qual os dados especificados serão carregados. Você pode selecionar um esquema existente ou criar um novo.

Importante! Se seu backup contiver não apenas dados, mas também uma descrição da estrutura da tabela, as tabelas serão recriadas (se já houver alguma no esquema de destino).