Este tutorial mostra duas formas de clonar uma base de dados MySQL em execução no Compute Engine. Um método usa instantâneos do Persistent Disk. O outro método usa a exportação e a importação nativas do MySQL, transferindo o ficheiro de exportação através do Cloud Storage. O Cloud Storage é o Cloud de Confiance by S3NS serviço de armazenamento de objetos. Oferece uma forma simples, com segurança melhorada, duradoura e altamente disponível de armazenar ficheiros.
A clonagem é o processo de copiar uma base de dados para outro servidor. A cópia é independente da base de dados de origem e é preservada como uma imagem instantânea num determinado momento. Pode usar uma base de dados clonada para vários fins sem sobrecarregar o servidor de produção nem comprometer a integridade dos dados de produção. Alguns destes fins incluem o seguinte:
- Executar consultas analíticas.
- Testes de carga ou testes de integração das suas apps.
- Extrair dados para preencher armazéns de dados.
- Executar experiências nos dados.
Cada método de clonagem descrito neste tutorial tem vantagens e desvantagens. O método ideal para si depende da sua situação. A tabela seguinte realça alguns problemas importantes.
Problema | Método 1: instantâneos de discos | Método 2: exporte e importe através do Cloud Storage |
---|---|---|
Espaço em disco adicional necessário em instâncias do MySQL | Não é necessário espaço em disco adicional | Espaço adicional necessário para armazenar o ficheiro de exportação durante a criação e a restauração |
Carga adicional nas instâncias do MySQL de origem durante a clonagem | Nenhuma carga adicional | Carga adicional na CPU e na E/S ao criar e carregar o ficheiro de exportação |
Duração da clonagem | Relativamente rápido para grandes bases de dados | Relativamente lento para bases de dados grandes |
Pode clonar a partir de instâncias do MySQL externas aoCloud de Confiance | Não | Sim |
Complexidade | Uma sequência complexa de comandos para anexar discos clonados | Um conjunto de comandos relativamente simples para clonar |
Pode tirar partido dos sistemas de cópia de segurança existentes | Sim, se o sistema de cópia de segurança usar Cloud de Confiance instantâneos de disco | Sim, se o sistema de cópia de segurança exportar ficheiros para o Cloud Storage |
Nível de detalhe da clonagem | Só pode clonar discos inteiros | Só pode clonar a base de dados especificada |
Consistência dos dados | Consistente no momento do instantâneo | Consistente no ponto de exportação |
Pode usar o Cloud SQL como origem | Não | Sim, se for usada a mesma versão |
Pode usar o Cloud SQL como destino | Não | Sim |
Este tutorial pressupõe que tem conhecimentos da linha de comandos do Linux e da administração da base de dados MySQL.
Objetivos
- Saiba como executar uma base de dados do MySQL no Cloud de Confiance.
- Saiba como criar uma base de dados de demonstração num disco secundário.
- Saiba como clonar uma base de dados MySQL através de instantâneos de disco do Compute Engine.
- Saiba como clonar uma base de dados MySQL transferindo um ficheiro de exportação através do Cloud Storage.
- Saiba como clonar uma base de dados MySQL para o Cloud SQL transferindo um ficheiro de exportação através do Cloud Storage.
Custos
Neste documento, usa os seguintes componentes faturáveis do Cloud de Confiance by S3NS:
Quando terminar as tarefas descritas neste documento, pode evitar a faturação contínua eliminando os recursos que criou. Para mais informações, consulte o artigo Limpe.
Antes de começar
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
- Ative a API Compute Engine. Ative a API
Configurar o ambiente
Para concluir este tutorial, tem de configurar o seu ambiente de computação com o seguinte:
- Uma instância do MySQL no Compute Engine (denominada
mysql-prod
) para representar o servidor da base de dados de produção. - Um disco adicional (denominado
mysql-prod-data
) associado ao seu servidor de produção para armazenar a base de dados de produção. - Uma cópia da base de dados
Employees
importada para omysql-prod
para simular a base de dados de produção que quer clonar. - Uma instância do MySQL no Compute Engine (denominada
mysql-test
) para representar o servidor da base de dados de testes. Clona a sua base de dados neste servidor.
O diagrama seguinte ilustra esta arquitetura.
Crie a instância de VM de produção
Para simular um ambiente de produção, configura uma instância de VM do Compute Engine que executa o MySQL no Debian Linux.
A instância de VM para este tutorial usa dois discos: um disco de 50 GB para o SO e as contas de utilizador, e um disco de 100 GB para o armazenamento da base de dados.
No Compute Engine, a utilização de discos separados não oferece vantagens de desempenho. O desempenho do disco é determinado pela capacidade de armazenamento total de todos os discos anexados a uma instância e pelo número total de vCPUs na sua instância de VM. Por conseguinte, a base de dados e o ficheiro de registo podem residir no mesmo disco.
Abra o Cloud Shell.
Defina a sua zona preferida:
ZONE=us-east1-b REGION=us-east1 gcloud config set compute/zone "${ZONE}"
Crie uma instância do Compute Engine:
gcloud compute instances create mysql-prod \ --machine-type=n1-standard-2 \ --scopes=cloud-platform \ --boot-disk-size=50GB \ --boot-disk-device-name=mysql-prod \ --create-disk="mode=rw,size=100,type=pd-standard,name=mysql-prod-data,device-name=mysql-prod-data"
Este comando concede à instância acesso total às Cloud de Confiance APIs, cria um disco secundário de 100 GB e anexa o disco à instância. Ignore o aviso de desempenho do disco porque não precisa de um elevado desempenho para este tutorial.
Configure o disco adicional
O segundo disco associado à instância de produção destina-se a armazenar a sua base de dados de produção. Este disco está em branco, pelo que tem de criar partições, formatá-lo e montá-lo.
Na Cloud de Confiance consola, aceda à página Instâncias de VM.
Certifique-se de que é apresentada uma marca de verificação verde check junto ao nome da sua instância do
mysql-prod
, o que indica que a instância está pronta.Clique no botão SSH junto à instância
mysql-prod
. O navegador abre uma ligação de terminal à instância.Na janela do terminal, apresente uma lista de discos anexados à sua instância:
lsblk
O resultado é o seguinte:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk └─sda1 8:1 0 50G 0 part / sdb 8:16 0 100G 0 disk
O disco com o nome
sdb
(100 GB) é o seu disco de dados.Formate o disco
sdb
e crie uma única partição com um sistema de ficheiros ext4:sudo mkfs.ext4 -m 0 -F -E lazy_itable_init=0,lazy_journal_init=0,discard \ /dev/sdb
Crie o diretório de dados do MySQL para ser o ponto de montagem do disco de dados:
sudo mkdir -p /var/lib/mysql
Para montar automaticamente o disco no ponto de montagem que criou, adicione uma entrada ao ficheiro
/etc/fstab
:echo "UUID=`sudo blkid -s UUID -o value /dev/sdb` /var/lib/mysql ext4 discard,defaults,nofail 0 2" \ | sudo tee -a /etc/fstab
Monte o disco:
sudo mount -av
Remova todos os ficheiros do disco de dados para que possa ser usado pelo MySQL como um diretório de dados:
sudo rm -rf /var/lib/mysql/*
Instale o servidor MySQL
Tem de transferir e instalar o MySQL Community Edition. O diretório de dados do MySQL é criado no disco adicional.
Na sessão SSH ligada a
mysql-prod
, transfira e instale o pacote de configuração do MySQL:wget http://repo.mysql.com/mysql-apt-config_0.8.13-1_all.deb sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb
Quando lhe for pedido, selecione a opção Servidor e cluster do MySQL e, de seguida, selecione mysql-5.7.
Na lista, selecione a opção OK para concluir a configuração do pacote.
Atualize a cache do repositório e instale os pacotes mysql-community:
sudo apt-get update sudo apt-get install -y mysql-community-server mysql-community-client
Quando receber um aviso de que o diretório de dados já existe, selecione OK.
Quando lhe for pedido que faculte uma palavra-passe de raiz, crie e introduza uma palavra-passe. Anote a palavra-passe ou guarde-a temporariamente num local seguro.
Transfira e instale a base de dados de exemplo
Na sessão SSH ligada à instância
mysql-prod
, instale o git:sudo apt-get install -y git
Clone o repositório do GitHub que contém os scripts da base de dados
Employees
:git clone https://github.com/datacharmer/test_db.git
Altere o diretório para o diretório do script da base de dados
Employees
:cd test_db
Execute o script de criação da base de dados
Employees
:mysql -u root -p -q < employees.sql
Quando lhe for pedido, introduza a palavra-passe de raiz que criou anteriormente.
Para verificar se a base de dados de exemplo está funcional, pode executar uma consulta que conte o número de linhas na tabela
employees
:mysql -u root -p -e "select count(*) from employees.employees;"
Quando lhe for pedido, introduza a palavra-passe de acesso root que criou anteriormente.
O resultado é o seguinte:
+----------+ | count(*) | +----------+ | 300024 | +----------+
Crie a instância de VM de teste
Nesta secção, cria uma instância de VM do MySQL denominada mysql-test
como destino da base de dados clonada. A configuração desta instância é idêntica à instância de produção. No entanto, não cria um segundo disco de dados. Em vez disso, anexa o disco de dados mais tarde neste tutorial.
Abra o Cloud Shell.
Crie a instância do MySQL de teste:
gcloud compute instances create mysql-test \ --machine-type=n1-standard-2 \ --scopes=cloud-platform \ --boot-disk-size=50GB \ --boot-disk-device-name=mysql-test
Pode ignorar o aviso de desempenho do disco porque não precisa de um desempenho elevado para este tutorial.
Instale o servidor MySQL na instância de VM de teste
Também tem de transferir e instalar o MySQL Community Edition na instância de VM mysql-test
.
Na sessão SSH ligada a
mysql-test
, transfira e instale o pacote de configuração do MySQL:wget http://repo.mysql.com/mysql-apt-config_0.8.13-1_all.deb sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb
Quando lhe for pedido, selecione a opção Servidor e cluster do MySQL e, de seguida, selecione mysql-5.7.
Na lista, selecione a opção OK para concluir a configuração do pacote.
Atualize a cache do repositório e instale os pacotes mysql-community:
sudo apt-get update sudo apt-get install -y mysql-community-server mysql-community-client
Quando lhe for pedido que faculte uma palavra-passe de raiz, crie e introduza uma palavra-passe. Anote a palavra-passe ou guarde-a temporariamente num local seguro.
Clonar a base de dados através de instantâneos de disco do Compute Engine
Uma forma de clonar uma base de dados MySQL em execução no Compute Engine é armazenar a base de dados num disco de dados separado e usar instantâneos de discos persistentes para criar um clone desse disco.
Os instantâneos do Persistent Disk permitem-lhe obter uma cópia dos dados no disco num determinado momento. O agendamento de instantâneos de disco é uma forma de fazer automaticamente uma cópia de segurança dos seus dados.
Nesta secção do tutorial, faz o seguinte:
- Tire um instantâneo do disco de dados do servidor de produção.
- Crie um novo disco a partir da captura de ecrã.
- Monte o novo disco no servidor de teste.
- Reinicie o servidor MySQL na instância de teste para que o servidor use o novo disco como um disco de dados.
O diagrama seguinte mostra como uma base de dados é clonada através de instantâneos de disco.
Crie o instantâneo do disco
Abra o Cloud Shell.
Crie um instantâneo do disco de dados na mesma zona que a instância de VM:
gcloud compute disks snapshot mysql-prod-data \ --snapshot-names=mysql-prod-data-snapshot \ --zone="${ZONE}"
Após alguns minutos, a sua foto instantânea é criada.
Anexe a imagem instantânea do disco à instância de teste
Tem de criar um novo disco de dados a partir da imagem instantânea que criou e, em seguida, anexá-lo à instância mysql-test
.
Abra o Cloud Shell.
Crie um novo Persistent Disk usando o instantâneo do disco de produção para o respetivo conteúdo:
gcloud beta compute disks create mysql-test-data \ --size=100GB \ --source-snapshot=mysql-prod-data-snapshot \ --zone="${ZONE}"
Anexe o novo disco à sua instância do
mysql-test
com autorizações de leitura/escrita:gcloud compute instances attach-disk mysql-test \ --disk=mysql-test-data --mode=rw
Monte o novo disco de dados no Linux
Para usar o disco de dados clonado como o diretório de dados do MySQL, tem de parar a instância do MySQL e montar o disco.
Na sessão SSH ligada a
mysql-test
, pare o serviço MySQL:sudo service mysql stop
Na janela do terminal, apresente uma lista de discos anexados à sua instância:
lsblk
O resultado é o seguinte:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk └─sda1 8:1 0 50G 0 part / sdb 8:16 0 100G 0 disk
O disco com o nome
sdb
(100 GB) é o seu disco de dados.Monte o disco de dados do MySQL no diretório de dados do MySQL:
sudo mount -o discard,defaults /dev/sdb /var/lib/mysql
A montagem deste disco oculta todos os ficheiros de configuração e espaços de tabelas do MySQL, substituindo-os pelo conteúdo do disco.
Com este comando, o disco é montado temporariamente e não é remontado no arranque do sistema. Se quiser montar o disco no arranque do sistema, crie uma entrada
fstab
. Para mais informações, consulte a secção Configure o disco adicional anteriormente neste tutorial.
Inicie o MySQL na instância de teste
Na sessão SSH ligada a
mysql-test
, inicie o serviço MySQL:sudo service mysql start
Para verificar se a base de dados clonada está funcional, execute uma consulta que conte o número de linhas na tabela
employees
:mysql -u root -p -e "select count(*) from employees.employees;"
Quando lhe for pedido, introduza a palavra-passe de raiz do servidor da base de dados
mysql-prod
. A palavra-passe de raiz da instância de produção é necessária porque todo o diretório de dados do MySQL é um clone do diretório de dados da instânciamysql-prod
, pelo que todas as bases de dados, utilizadores da base de dados e respetivas palavras-passe são copiados.+----------+ | count(*) | +----------+ | 300024 | +----------+
O número de linhas é o mesmo que na instância do
mysql-prod
.
Agora que viu como clonar uma base de dados através de instantâneos de discos persistentes, pode experimentar clonar uma base de dados através da exportação e importação. Para concluir o tutorial desta segunda abordagem, tem de desmontar o disco clonado.
Desmonte o disco clonado
Para desmontar o disco clonado que criou através de instantâneos de disco, siga os passos seguintes:
Na sessão SSH ligada à sua instância
mysql-test
, pare o serviço MySQL:sudo service mysql stop
Desmonte o disco de dados clonado do diretório de dados do MySQL:
sudo umount /var/lib/mysql
Reinicie o serviço MySQL:
sudo service mysql start
Clonagem através da exportação e importação
Um segundo método para clonar uma base de dados MySQL em execução no Compute Engine é usar a exportação incorporada do MySQL (com mysqldump
) e a importação. Com esta abordagem, transfere o ficheiro de exportação através do
Cloud Storage.
Esta secção do tutorial usa recursos que criou na secção Clonar a base de dados com instantâneos de disco do Compute Engine deste tutorial. Se não concluiu essa secção, tem de o fazer antes de continuar.
Nesta secção do tutorial, faz o seguinte:
- Crie um contentor do Cloud Storage.
- Exporte a base de dados na instância de produção, escrevendo-a no Cloud Storage.
- Importe o ficheiro de exportação para a instância de teste, lendo-o a partir do Cloud Storage.
O diagrama seguinte mostra como uma base de dados é clonada através da transferência de uma exportação com o Cloud Storage.
Uma vez que os sistemas fora do Cloud de Confiance podem ter acesso ao Cloud Storage, pode usar esta abordagem para clonar bases de dados de instâncias externas do MySQL.
Crie um contentor do Cloud Storage
Tem de criar um contentor do Cloud Storage que armazene os ficheiros de exportação
enquanto os transfere da instância mysql-prod
para a instância mysql-test
.
Abra o Cloud Shell.
Crie um contentor do Cloud Storage na mesma região que as instâncias de VM:
gcloud storage buckets create "gs://$(gcloud config get-value project)-bucket" --location="${REGION}"
Exporte a base de dados
No seu ambiente de produção, pode já fazer cópias de segurança através de mysqldump
ficheiros de exportação. Pode usar estas cópias de segurança como base para clonar a sua base de dados.
Neste tutorial, vai criar um novo ficheiro de exportação através do mysqldump
, que não
afeta nenhuma agenda de cópias de segurança completas ou incrementais existente.
Na sessão SSH associada à instância
mysql-prod
, exporte a base de dadosEmployees
, transmitindo-a para um objeto do Cloud Storage no contentor que criou anteriormente:mysqldump --user=root -p --default-character-set=utf8mb4 --add-drop-database --verbose --hex_blob \ --databases employees |\ gcloud storage cp - "gs://$(gcloud config get-value project)-bucket/employees-dump.sql"
Quando lhe for pedido, introduza a palavra-passe de raiz do servidor da base de dados
mysql-prod
.Use o conjunto de carateres
utf8mb4
na exportação para evitar problemas de codificação de carateres.A opção
--add-drop-database
é usada para que as declaraçõesDROP DATABASE
eCREATE DATABASE
sejam incluídas na exportação.
Importe o ficheiro exportado
Na sessão SSH ligada à instância
mysql-test
, faça stream do ficheiro exportado do seu contentor do Cloud Storage para a aplicação de linha de comandosmysql
:gcloud storage cat "gs://$(gcloud config get-value project)-bucket/employees-dump.sql" |\ mysql --user=root -p --default-character-set=utf8mb4
Quando lhe for pedido, introduza a palavra-passe de raiz do servidor da base de dados
mysql-test
.Usar o conjunto de carateres
utf8mb4
na importação para evitar problemas de codificação de carateres.Para verificar se a base de dados clonada está funcional, execute uma consulta que conte o número de linhas na tabela
employees
:mysql -u root -p -e "select count(*) from employees.employees;"
Quando lhe for pedido, introduza a palavra-passe de raiz do servidor da base de dados
mysql-test
.+----------+ | count(*) | +----------+ | 300024 | +----------+
O número de linhas é o mesmo que na instância do
mysql-prod
.
Usar o Cloud SQL como destino da clonagem
Se a base de dados de destino estiver alojada no Cloud SQL e a base de dados de origem estiver no Compute Engine, o único mecanismo suportado para clonagem é exportar a base de dados para o Cloud Storage e, em seguida, importar a base de dados para o Cloud SQL.
Conforme explicado na documentação do Cloud SQL, o Cloud SQL só pode importar o ficheiro exportado quando não contém desencadeadores, procedimentos armazenados, vistas nem funções.
Se a sua base de dados depender de algum destes elementos, tem de os excluir da exportação através dos argumentos da linha de comandos --skip-triggers
e --ignore-table [VIEW_NAME]
e, em seguida, recriá-los manualmente após a importação.
Crie uma instância do Cloud SQL para MySQL
Abra o Cloud Shell.
Crie uma instância do Cloud SQL para MySQL com a mesma versão da base de dados que a sua instância do
mysql-prod
:gcloud sql instances create mysql-cloudsql \ --tier=db-n1-standard-2 --region=${REGION} --database-version MYSQL_5_7
Após alguns minutos, a base de dados do Cloud SQL é criada.
Reponha a palavra-passe do utilizador root para um valor conhecido:
gcloud sql users set-password root \ --host=% --instance=mysql-cloudsql --prompt-for-password
Quando lhe for pedido que faculte uma palavra-passe de raiz, crie e introduza uma palavra-passe. Anote a palavra-passe ou guarde-a temporariamente num local seguro.
Exporte a base de dados
Para exportar a base de dados num formato adequado para importação para o Cloud SQL, tem de excluir todas as vistas na base de dados.
Na sessão SSH ligada à instância
mysql-prod
, defina uma variável de ambiente que contenha um conjunto de argumentos da linha de comandos para o comandomysqldump
, de modo que ignore as visualizações na base de dadosEmployees
:DATABASE_NAME=employees IGNORE_TABLES_ARGS="`mysql -u root -p -s -s -e \" SELECT CONCAT('--ignore-table ${DATABASE_NAME}.',TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_TYPE LIKE 'VIEW' AND TABLE_SCHEMA = '${DATABASE_NAME}'; \"`"
Quando lhe for pedido, introduza a palavra-passe de raiz do servidor da base de dados
mysql-prod
.Veja o conteúdo das variáveis para verificar se foram definidas corretamente:
echo "${IGNORE_TABLES_ARGS}"
--ignore-table employees.current_dept_emp --ignore-table employees.dept_emp_latest_date
Exporte a base de dados
Employees
, excluindo acionadores e vistas, e faça o streaming diretamente para um objeto do Cloud Storage no contentor que criou anteriormente:mysqldump --user=root -p --default-character-set=utf8mb4 --add-drop-database --verbose \ --hex-blob --skip-triggers --set-gtid-purged=OFF \ $IGNORE_TABLES_ARGS \ --databases employees |\ gcloud storage cp - "gs://$(gcloud config get-value project)-bucket/employees-cloudsql-import.sql"
Quando lhe for pedido, introduza a palavra-passe de raiz do servidor da base de dados
mysql-prod
.
Atualize as autorizações de objetos
As autorizações corretas têm de ser definidas no contentor do Cloud Storage e no objeto de exportação para que a conta de serviço do Cloud SQL os possa ler.
Estas autorizações são definidas automaticamente quando usa a Cloud de Confiance consola para
importar o objeto ou podem ser definidas através de comandos gcloud
.
Abra o Cloud Shell.
Defina uma variável de ambiente que contenha o endereço da conta de serviço da sua instância do Cloud SQL:
CLOUDSQL_SA="$(gcloud sql instances describe mysql-cloudsql --format='get(serviceAccountEmailAddress)')"
Adicione a conta de serviço à política de gestão de identidade e de acesso (IAM) do contentor como leitor e escritor:
gcloud storage buckets add-iam-policy-binding "gs://$(gcloud config get-value project)-bucket/" \ --member=user:"${CLOUDSQL_SA}" --role=roles/storage.objectUser
Importe a base de dados exportada
Abra o Cloud Shell.
Importe o ficheiro exportado para a sua instância do Cloud SQL:
gcloud sql import sql mysql-cloudsql \ "gs://$(gcloud config get-value project)-bucket/employees-cloudsql-import.sql"
Quando lhe for pedido, introduza
y
.Para verificar se a base de dados clonada está funcional, execute uma consulta que conte o número de linhas na tabela
employees
:echo "select count(*) from employees.employees;" |\ gcloud sql connect mysql-cloudsql --user=root
Quando lhe for pedido, introduza a palavra-passe de raiz do servidor de base de dados
mysql-cloudsql
.O resultado é o seguinte:
Connecting to database with SQL user [root].Enter password: count(*) 300024
O número de linhas é o mesmo que na instância do
mysql-prod
.
Informações adicionais para sistemas de produção
As seguintes categorias oferecem práticas recomendadas adicionais para os seus sistemas de produção.
Usar instantâneos de discos
Para cópias de segurança físicas (como instantâneos de disco), a documentação do MySQL
recomenda
que pause as gravações na base de dados antes de tirar um instantâneo. Para o fazer, use o comando FLUSH TABLES WITH READ LOCK
. Quando a captura instantânea estiver concluída, pode usar UNLOCK TABLES
para reiniciar as gravações.
Para bases de dados que usam tabelas InnoDB, recomendamos que tire a captura de ecrã diretamente sem executar primeiro o comando FLUSH TABLES WITH READ LOCK
. Isto permite que a base de dados continue a ser executada sem efeitos negativos, mas a imagem instantânea pode estar num estado inconsistente. No entanto, se isto ocorrer, o motor InnoDB pode reconstruir as tabelas para um estado consistente quando o clone é iniciado.
Para bases de dados que usam tabelas MyISAM, a execução do comando FLUSH TABLES WITH READ LOCK
bloqueia todas as escritas nas tabelas, tornando a sua base de dados apenas de leitura até executar o comando UNLOCK TABLES
.
Se tirar uma captura de ecrã sem primeiro limpar e bloquear as tabelas, existe o risco de a base de dados recém-clonada conter dados inconsistentes ou ficar danificada.
Por conseguinte, para obter uma imagem consistente das bases de dados que usam tabelas MyISAM, recomendamos que execute FLUSH TABLES WITH READ LOCK
numa réplica de leitura e tire uma imagem dessa réplica para que o desempenho da base de dados principal (mestre) não seja afetado.
Usar o comando mysqldump
Para criar um ficheiro de exportação consistente com a base de dados de origem,
o comando mysqldump
bloqueia todas as tabelas durante a operação de exportação. Isto significa que as gravações na base de dados são bloqueadas enquanto a base de dados está a ser exportada.
Por conseguinte, recomendamos que execute o comando mysqldump
numa réplica de leitura da base de dados principal para que a principal não seja bloqueada.
Limpar
Para evitar incorrer em custos na sua Cloud de Confiance conta pelos recursos usados neste tutorial, pode eliminar o Cloud de Confiance projeto que criou para este tutorial.
- In the Cloud de Confiance console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
O que se segue?
Saiba como monitorizar as suas consultas lentas no MySQL com o Cloud Monitoring.
Explore arquiteturas de referência, diagramas e práticas recomendadas sobre o Google Cloud. Consulte o nosso Centro de arquitetura na nuvem.