Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Computação
Elastic Cloud Server
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Redes
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Gerenciamento e governança
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
Cloud Operations Center
Resource Governance Center
Migração
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Análises
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Outros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Segurança e conformidade
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Anti-DDoS Service
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Blockchain
Blockchain Service
Serviços de mídia
Media Processing Center
Video On Demand
Live
SparkRTC
Armazenamento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Cloud Server Backup Service
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Data Express Service
Dedicated Distributed Storage Service
Containers
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bancos de dados
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Aplicações de negócios
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Data Lake Factory
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Distribuição de conteúdo e computação de borda
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluções
SAP Cloud
High Performance Computing
Serviços para desenvolvedore
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
MacroVerse aPaaS
KooPhone
KooDrive
Nesta página
Central de ajuda/ TaurusDB/ Perguntas frequentes/ Desempenho do banco de dados/ Como usar o disco temporário do TaurusDB?

Como usar o disco temporário do TaurusDB?

Atualizado em 2025-02-07 GMT+08:00

Discos temporários de instâncias do TaurusDB são usados para armazenar temporariamente tabelas temporárias, arquivos temporários e caches binlog gerados durante a operação do banco de dados. No console de gerenciamento, você pode monitorar o espaço em disco temporário usado e o uso temporário de disco da sua instância em diferentes períodos de tempo e granularidades em tempo real, conforme mostrado na figura a seguir.

Figura 1 Uso temporário do disco

À medida que os serviços flutuam, você pode descobrir que o uso de discos temporários aumenta repentinamente ou continuamente. Para melhorar a disponibilidade e estabilidade do banco de dados, o TaurusDB fornece até 500 GB de espaço em disco temporário para uma instância de banco de dados gratuitamente.

Para evitar que o uso temporário do disco aumente continuamente e, finalmente, fique cheio, é aconselhável verificar os serviços o mais rápido possível com base no uso do disco consultado. Esta seção descreve os riscos, cenários e solução de problemas que você pode executar quando os discos temporários estão cheios.

Riscos

  • As instruções SQL falham ao serem executadas e nenhum resultado é retornado.
  • Instruções SQL ocupam recursos de bloqueio por um longo tempo e bloqueiam outras instruções SQL. Como resultado, o número de conexões aumenta ou até atinge o limite superior, afetando outros serviços.
  • Há muitos arquivos temporários no cache binlog, o que pode causar a quebra do banco de dados. Isso leva muito tempo para restaurar, então os serviços são interrompidos por um longo tempo.

Cenários e solução de problemas

  1. Criação explícita de tabelas de disco temporárias
    • Cenário

      Você pode executar a instrução create temporary table para criar explicitamente tabelas de disco temporárias. As tabelas temporárias cujo mecanismo de armazenamento é o InnoDB são armazenadas em cache no pool de buffer e liberadas para os discos por threads sujas.

      No TaurusDB, os dados em tabelas temporárias de disco são armazenados no espaço de tabela temporário de sessão (o caminho é especificado pelo parâmetro innodb_temp_tablespaces_dir), e os logs de desfazer são armazenados no espaço de tabela temporário global (o caminho é especificado pelo parâmetro innodb_temp_data_file_path).

      Para evitar que tabelas de disco temporárias ocupem muito espaço em disco, é aconselhável excluir tabelas de disco temporárias desnecessárias ou desconectar conexões de banco de dados desnecessárias.

      • Espaço de tabela temporário da sessão: ele é recuperado quando a conexão de banco de dados atual é liberada.
      • Espaço de tabela temporário global: ele é recuperado somente depois que o banco de dados é reiniciado.
    • Solução de problemas
      1. Visualize informações sobre as tabelas temporárias que você criou no InnoDB.
        mysql> select * from information_schema.innodb_temp_table_info;
        +----------------------+---------------+--------+------------+
        | TABLE_ID             | NAME          | N_COLS | SPACE      |
        +----------------------+---------------+--------+------------+
        | 18446744069414584311 | #sqle055_24_0 |      5 | 4294502266 |
        +----------------------+---------------+--------+------------+
      2. Verifique o uso de arquivos de tabela temporários do InnoDB.

        Em uma tabela, a coluna ID indica o ID da sessão que está usando o arquivo de tabela temporária. Se o valor for 0, o arquivo ibt não será usado. A coluna SIZE indica o tamanho do arquivo ibt, que aumenta automaticamente com base no uso e é recuperado quando a sessão termina. Se o valor da coluna PURPOSE for INTRINSIC, a tabela é uma tabela temporária implícita. Se o valor da coluna PURPOSE for USER, a tabela é uma tabela temporária explícita.

        mysql> select * from information_schema.innodb_session_temp_tablespaces;
        +----+------------+----------------------------+-------+----------+-----------+
        | ID | SPACE      | PATH                       | SIZE  | STATE    | PURPOSE   |
        +----+------------+----------------------------+-------+----------+-----------+
        | 31 | 4294502265 | ./#innodb_temp/temp_9.ibt  | 81920 | ACTIVE   | INTRINSIC |
        | 36 | 4294502266 | ./#innodb_temp/temp_10.ibt | 98304 | ACTIVE   | USER      |
        | 34 | 4294502264 | ./#innodb_temp/temp_8.ibt  | 81920 | ACTIVE   | INTRINSIC |
        |  0 | 4294502257 | ./#innodb_temp/temp_1.ibt  | 81920 | INACTIVE | NONE      |
        |  0 | 4294502258 | ./#innodb_temp/temp_2.ibt  | 81920 | INACTIVE | NONE      |
        |  0 | 4294502259 | ./#innodb_temp/temp_3.ibt  | 81920 | INACTIVE | NONE      |
        |  0 | 4294502260 | ./#innodb_temp/temp_4.ibt  | 81920 | INACTIVE | NONE      |
        |  0 | 4294502261 | ./#innodb_temp/temp_5.ibt  | 81920 | INACTIVE | NONE      |
        |  0 | 4294502262 | ./#innodb_temp/temp_6.ibt  | 81920 | INACTIVE | NONE      |
        |  0 | 4294502263 | ./#innodb_temp/temp_7.ibt  | 81920 | INACTIVE | NONE      |
        +----+------------+----------------------------+-------+----------+-----------+
  2. Consulta de tabelas temporárias de disco ou arquivos temporários criados implicitamente
    • Cenário

      Ao selecionar um plano de execução para uma consulta, o otimizador de consulta pode usar tabelas temporárias. Tabelas de memória temporárias são usadas preferencialmente. Quando o tamanho das tabelas de memória temporária excede um determinado limite (tmp_table_size ou max_heap_table_size, o que for menor), as tabelas de disco temporário são usadas.

      Tabelas temporárias de disco são criadas implicitamente por consultas. Os dados entre tabelas que são criadas implícita e explicitamente são os mesmos e armazenados no espaço de tabela temporário de sessão. Se houver consultas complexas, incluindo, mas não limitadas a palavras-chave como UNION, GROUP BY e ORDER BY, em tabelas maiores, tabelas de disco temporárias podem ser geradas. Além disso, quando as consultas envolvem operações de classificação, se o buffer de classificação não puder armazenar todos os dados (o tamanho do buffer é especificado por sort_buffer_size), os arquivos de disco temporários podem ser usados para classificação auxiliar. Na maioria dos cenários, tabelas de disco temporárias implicitamente criadas são a principal razão pela qual os discos ficam cheios. Se o disco estiver ficando cheio, você poderá localizar consultas complexas ou transações longas, otimizar as instruções de consulta, adicionar índices adequados e dividir transações longas para resolver o problema.

    • Solução de problemas
      1. Verifique se há instruções SQL usando tabelas temporárias ou classificação de arquivos.

        Se Using temporary for exibido na coluna Extra, tabelas temporárias serão usadas. Se Using filesort for exibido, a classificação de arquivos será usada.

      2. Consulte o uso de tabelas temporárias implícitas. O método é o mesmo das tabelas temporárias de disco explícito.
  3. Consulta de binlogs gerados para transações longas
    • Cenário

      Um binlog é um binário que registra alterações no banco de dados, como DDL, DCL e DML (excluindo SELECT). O InnoDB armazena binlogs na memória antes que as transações sejam confirmadas e grava binlogs em discos somente depois que as transações são confirmadas. O tamanho do arquivo binlog para cada conexão na memória é especificado pelo parâmetro binlog_cache_size. Quando o tamanho do arquivo binlog gravado por uma transação excede o valor desse parâmetro, o arquivo binlog é gravado em um arquivo de disco temporário. Transações longas podem causar grandes binlogs. Como resultado, o tamanho dos binlogs temporários no disco é grande e o disco pode estar cheio. É aconselhável controlar o tamanho da transação, dividir transações longas ou alterar binlog_cache_size para um valor mais apropriado.

    • Solução de problemas
      1. Verifique se o binlog está ativado.
        mysql> show variables like 'log_bin';
        +---------------+-------+
        | Variable_name | Value |
        +---------------+-------+
        | log_bin       | ON    |
        +---------------+-------+
      2. Veja o uso do cache do binlog.

        Binlog_cache_disk_use indica o número de vezes que os arquivos de disco temporários são usados para armazenar em cache de binlogs devido à memória insuficiente (especificado por binlog_cache_size). Se o valor de binlog_cache_size for grande, os arquivos temporários de disco serão chamados para armazenar binlogs em cache várias vezes.

        mysql> show global status like '%binlog_cache%';
        +-----------------------+-----------+
        | Variable_name         | Value     |
        +-----------------------+-----------+
        | Binlog_cache_disk_use | 1335006   |
        | Binlog_cache_use      | 264240359 |
        +-----------------------+-----------+
  4. Verificação de arquivos temporários gerados por DDLs
    • Cenário

      Durante as operações DDL em tabelas, arquivos temporários de disco são gerados em algumas fases.

      • Às vezes, você precisa recriar o espaço de tabela da tabela original, o que envolve a recriação do índice de árvore B+ na tabela. Se uma tabela contiver uma grande quantidade de dados, o buffer de classificação não poderá armazenar todos os dados. Você precisa criar um arquivo temporário para ajudar com a classificação.
      • Embora algumas instruções DDL on-line suportem operações DML na tabela original, a tabela original não pode ser modificada diretamente. A modificação deve ser registrada em logs on-line e aplicada à nova tabela após a conclusão das operações DDL. Os logs on-line são preferencialmente armazenados na memória. O tamanho dos logs on-line é especificado pelo parâmetro innodb_sort_buffer_size. Se o tamanho dos logs on-line exceder o valor do parâmetro, os logs on-line serão armazenados temporariamente em um arquivo temporário.
      • Quando a instrução OPTIMIZE TABLE é executada em uma tabela, os dados armazenados no índice clusterizado precisam ser reorganizados, o que pode gerar arquivos temporários.
    • Solução de problemas
      • Execute o comando SHOW PROCESSLIST para verificar se há instruções DDL que estão demorando muito para serem executadas.
      • Certifique-se de que há espaço suficiente antes de executar DDLs para tabelas grandes.

Usamos cookies para aprimorar nosso site e sua experiência. Ao continuar a navegar em nosso site, você aceita nossa política de cookies. Saiba mais

Feedback

Feedback

Feedback

0/500

Conteúdo selecionado

Envie o conteúdo selecionado com o feedback