Este artigo apresentará um problema prático que os administradores frequentemente enfrentam durante o processo de inicialização do banco de dados - como importar grandes volumes de dados para o sistema de banco de dados. Durante o processo de inicialização do banco de dados, um problema prático que os administradores precisam enfrentar é como importar grandes volumes de dados para o sistema de banco de dados. Algumas ferramentas de importação e exportação de dados de grande capacidade são fornecidas no banco de dados SQL Server para uso dos administradores de banco de dados. Por exemplo, os administradores podem usar a ferramenta utilitária bcp para exportar dados em grandes volumes e importar dados em grandes volumes e gerar arquivos formatados. Por exemplo, instruções de inserção em massa podem ser usadas para importar dados de grande capacidade diretamente de arquivos de dados para tabelas de banco de dados ou visualizações não particionadas, etc.
Embora esses utilitários sejam fornecidos no banco de dados SQL Server. No entanto, os administradores ainda precisam ser cautelosos em relação a esse trabalho no trabalho real. Especificamente, durante o processo de importação e exportação de dados de grande capacidade, é necessário prestar atenção aos seguintes aspectos.
1. Tente utilizar as ferramentas fornecidas pelo sistema para importar e exportar dados de grande capacidade.
As diversas ferramentas práticas citadas pelo autor acima possuem uma característica comum, ou seja, realizarão determinadas otimizações em dados de grande capacidade durante o processo de importação. Por exemplo, irá padronizar o formato de alguns dados, economizar tempo na importação e exportação, etc. No entanto, ao usar essas ferramentas, há uma diferença em relação a outras ferramentas comuns de importação e exportação de dados, ou seja, as operações de importação de grande capacidade não suportam a importação de dados em arquivos delimitados por vírgulas, que são frequentemente chamados de arquivos de texto. Embora o administrador também possa usar outras ferramentas para importar dados de grande capacidade em formato de arquivo neste momento, geralmente não recomendo isso. Porque outras ferramentas não suportam a função de otimização durante o processo de importação. Por esse motivo, o autor recomenda o uso de outras ferramentas, como ACCESS e outras ferramentas intermediárias, para primeiro converter os dados do arquivo de texto em um formato de tabela comum e, em seguida, usar as ferramentas acima para importá-los para o sistema. Embora isto aumente a carga de trabalho, pode garantir a qualidade de dados de grande capacidade. Por esse motivo, no meu trabalho atual, caso os usuários encontrem esse tipo de problema, recomendo fortemente que utilizem as ferramentas disponibilizadas pelo sistema para importar e exportar dados de grande capacidade.
Além disso, usar arquivos formatados para melhorar a padronização de dados de grande capacidade também é uma boa opção. Várias das ferramentas de importação e exportação de grande capacidade mencionadas acima suportam o uso de arquivos de formato especializados para armazenar as informações de formato de cada campo no arquivo de dados original. O arquivo formatado também pode conter informações sobre a tabela do banco de dados correspondente. Os arquivos de formato podem ser usados para fornecer todas as informações de formatação necessárias para exportar e importar dados em massa para uma instância de banco de dados. Em termos gerais, um arquivo formatado fornece uma maneira flexível de interpretar o formato dos dados em um arquivo de dados durante a importação e de formatar dados em um arquivo de dados durante a exportação. Essa flexibilidade elimina a necessidade de escrever código especializado para interpretar os dados ou reformatá-los para atender às necessidades especiais do banco de dados ou do aplicativo externo. Se os arquivos formatados forem usados de forma flexível, os usuários poderão exportar ou importar diretamente dados de grande capacidade no formato necessário, sem precisar fazer ajustes adicionais de formato posteriormente.
2. Selecione o modo de operação de log de banco de dados apropriado
Como todos sabem, quaisquer alterações feitas pelos usuários no banco de dados serão registradas nos respectivos logs. A importação e exportação de grandes volumes de dados não é exceção. No entanto, como os dados de grande capacidade são relativamente grandes, eles ocuparão uma função de log de transações relativamente grande. Por esse motivo, o autor recomenda que antes de os usuários importarem dados de grande capacidade, é melhor escolher um modo de operação de log de banco de dados adequado. A abordagem do autor é que se o usuário precisar importar dados de grande capacidade, é melhor escolher o modo de recuperação de log de grande capacidade. Aguarde até que o trabalho de importação seja concluído e retorne ao modo original.
Isto ocorre principalmente porque no modo de log de grande capacidade, o suporte para trabalho de importação de dados de grande capacidade é relativamente bom. Em comparação com outros modelos de recuperação registrados (como o modelo de recuperação completa), o modelo de recuperação registrado em massa registra apenas minimamente as operações em massa. Por esse motivo, o modelo de recuperação de operações de log de grande capacidade protege operações de grande volume contra falhas de hardware, fornece melhor desempenho e ocupa espaço mínimo de log. Portanto, usar a recuperação com log em massa ajuda a evitar que os logs de transações fiquem sem espaço porque a recuperação com log em massa não insere linhas de log. Este modo de operação de log em massa é muito adequado para bancos de dados que usam o modelo de recuperação completa. O modelo de recuperação com log em massa é útil ao executar operações em massa em tabelas sem índice.
No entanto, o modo de operação de log de grande capacidade também apresenta certos riscos. Um modelo de recuperação como o log em massa aumenta o risco de perda de dados para essas operações de cópia em massa. Porque o modo operacional de log em massa impedirá que o sistema de banco de dados capture as alterações feitas em cada transação, uma por uma. Se um backup de log contiver operações de log em massa, não será possível restaurar para um ponto no tempo nesse backup de log; você poderá restaurar apenas o backup de log inteiro. Também no modelo de recuperação com log em massa, se o backup de log cobrir quaisquer operações em massa, o backup de log conterá os registros de log e as páginas de dados alteradas pelas operações em massa. Isso é fundamental para capturar os resultados das operações de registro em massa. As áreas de dados mescladas podem tornar os backups de log muito grandes. Além disso, o backup de logs requer acesso a arquivos de dados que contêm grandes volumes de transações de log. Se algum arquivo de banco de dados afetado estiver inacessível, não será feito backup do log de transações e todas as operações confirmadas nesse log serão perdidas. Portanto, o modo de backup de log de grande capacidade não é um modo de log seguro.
3. Considere se você precisa primeiro excluir temporariamente o índice da tabela
O índice é um arquivo especial e sua função no banco de dados é muito importante. Simplificando, se o banco de dados for comparado a um livro, o índice será como o índice do livro. O índice contém ponteiros de referência para todos os registros da tabela de dados. Não há dúvida de que os índices podem melhorar o desempenho do banco de dados. Mas a indexação não pode ter um efeito positivo em todas as ocasiões. Em alguns casos especiais, reduzirá o desempenho de algumas operações, como a importação de dados de grande capacidade.
Um índice pode acelerar as operações de recuperação de dados, mas pode tornar as operações de modificação de dados mais lentas. Porque toda vez que um registro de dados é modificado ou inserido, o índice deve ser atualizado. Em outras palavras, se for inserido um milhão de registros, o índice deverá ser atualizado um milhão de vezes. Pode-se observar que quando dados de grande capacidade são importados, o índice consumirá muitos recursos do banco de dados, reduzindo assim o desempenho do banco de dados. Se houver índices na tabela de destino, isso não afetará apenas a velocidade de importação de grandes volumes de dados para o banco de dados, mas também reduzirá o desempenho do acesso normal de outros usuários ao banco de dados.
Por esse motivo, a sugestão do autor é que se não houver muitos dados na tabela a ser importada, é melhor excluir primeiro o índice para melhorar o desempenho da importação de dados de grande capacidade. Reative a indexação após a importação. No entanto, se já houver muitos dados na tabela que precisam ser importados e os dados que precisam ser importados puderem ser semelhantes ou menores que os dados existentes, não será necessário excluir o índice. Excluir o índice neste momento terá o efeito oposto. Porque o tempo que o sistema de banco de dados leva para reconstruir os índices pode ser maior que o tempo economizado durante a operação de importação em massa. Neste momento, o administrador perderá mais do que o ganho ao excluir o índice da tabela de destino.
4. Execute o backup do banco de dados imediatamente após a importação dos dados
Assim como estabelecer objetos de banco de dados, após importar dados de grande capacidade para o sistema de banco de dados, os administradores devem fazer backup do banco de dados existente em tempo hábil. Devido à ajuda oportuna das ferramentas de importação de grande capacidade do sistema, esse trabalho de importação de dados ainda é muito tedioso e demorado. Por esse motivo, após a importação bem-sucedida dos dados de grande capacidade para o sistema de banco de dados, o administrador deve fazer backup do banco de dados em tempo hábil. O que o autor deseja lembrar a todos aqui é que os métodos de backup geralmente são diferentes em diferentes modos de log de operação.
Depois de importar dados de grande capacidade, os administradores precisam fazer backup do banco de dados. A sugestão do autor é que se o administrador adotar um modelo simples de recuperação de log naquele momento, o administrador deve realizar um backup completo ou backup diferencial imediatamente após a conclusão da operação de importação em massa (se o tempo permitir, é melhor realizar um backup completo) . E se o administrador do banco de dados adotar o modelo de recuperação de log de grande capacidade ou o modelo de recuperação completa naquele momento, se não houver muito tempo ou estiver preocupado que o backup completo afete o acesso do usuário naquele momento, então apenas realizar um backup de log é o suficiente. Se o servidor de banco de dados não se tornou um servidor de produção (ou seja, ainda não há usuários utilizando-o), é mais seguro realizar um backup completo do banco de dados.
5. Erros comuns
Provavelmente existem dois erros mais comuns durante a importação de dados de grande capacidade.
Primeiro, o formato do arquivo fornecido está incorreto. Conforme mencionado acima, normalmente a ferramenta de importação em massa fornecida pelo banco de dados não oferece suporte a arquivos de texto. Os administradores precisam realizar conversões prévias para essa finalidade. Segundo, esteja ciente de que caracteres ocultos podem causar problemas. Muitos softwares e editores de texto exibem caracteres ocultos. Esses caracteres ocultos geralmente estão localizados no final do arquivo de dados. Durante operações de importação em massa, caracteres ocultos em arquivos de dados podem causar problemas imprevisíveis, como erros inesperados de caracteres nulos, etc. Esse erro é fácil de evitar. Desde que o administrador do banco de dados procure e remova todos os caracteres ocultos antes de importar os dados. Na verdade, este problema será encontrado não apenas durante a importação de dados de grande capacidade, mas também durante a importação de pequenas quantidades de dados.