Ao fazer o sharding de um banco de dados, qualquer alteração DDL em um shard deve ser aplicada simultaneamente em todos os shards. Além disso, evite operações complexas sempre que possível. O design de schema do DMS resolve essa questão tratando tabelas com sharding como uma única tabela lógica. Assim, você define e promove alterações de schema entre ambientes sem gerenciar shards individuais. Este tópico explica como usar o design de schema para tabelas lógicas.
Pré-requisitos
Antes de começar, verifique se você tem:
-
Um banco de dados de um dos seguintes tipos:
MySQL: ApsaraDB RDS for MySQL, PolarDB for MySQL, ApsaraDB MyBase for MySQL ou bancos de dados MySQL de outras origens
OceanBase
Uma instância gerenciada no modo Security Collaboration. Para mais detalhes, consulte Visualizar o modo de controle de uma instância
Um banco de dados lógico do tipo ambiente de desenvolvimento configurado como banco de dados base (fase de design) e um banco de dados lógico do tipo ambiente de produção configurado como banco de dados alvo (fase de lançamento). Para mais detalhes, consulte Banco de dados lógico e Alterar o tipo de ambiente de uma instância
Permissão para alterar os bancos de dados base e alvo
Os bancos de dados base e alvo devem ser do mesmo tipo. Por exemplo, se o banco de dados base for MySQL, o banco de dados alvo também deverá ser MySQL.
Por padrão, as regras de segurança do MySQL definem o ambiente da fase de design como desenvolvimento e o da fase de lançamento como produção. Ajuste o processo de P&D conforme suas necessidades. Para mais detalhes, consulte Design de schema .
Projetar e aplicar alterações de schema
As alterações de schema seguem uma promoção em três estágios: design no banco de dados base (desenvolvimento) → aplicação no banco de dados base → promoção para o banco de dados alvo (produção). Cada estágio exige o envio de um ticket e, dependendo das regras de segurança, aprovação.
Etapa 1: Crie um ticket de design de schema
Acesse o console do DMS V5.0.
-
Na barra de navegação superior, escolha Database Development > Schema Change > Schema Design.
No modo simples, passe o ponteiro sobre o ícone
no canto superior esquerdo e escolha All functions > Database Development > Schema Change > Schema Design . Na página Schema DesignTickets, clique em Schema Design no canto superior direito.
-
Defina os parâmetros a seguir e clique em Submit.
Parâmetro
Descrição
Change Base Database
Banco de dados lógico para o design de schema. Selecione um banco de dados no modo Security Collaboration. O tipo de ambiente deve estar em conformidade com os padrões de P&D nas regras de segurança do banco de dados. Para mais detalhes, consulte Design de schema.
Change Stakeholder
Partes interessadas que podem visualizar os detalhes do ticket e auxiliar no desenvolvimento e nas aprovações. Administradores do DMS e administradores de banco de dados (DBAs) sempre podem ver os detalhes do ticket; outros usuários só têm acesso se adicionados aqui.
Etapa 2: Defina o schema da tabela lógica
Defina a tabela lógica pela interface gráfica ou por instruções SQL.
Usar a interface gráfica
Clique em Create Logical Table.
Configure as informações básicas, colunas e índices nas abas Basic Info, Column Info e Index Info.
-
Clique em Partition Table Topology e insira uma expressão de shard no campo Logical Table Expression. Para a sintaxe completa da expressão, consulte Expressões de tabelas lógicas.
AvisoA modificação de uma expressão de shard exclui a tabela original e cria uma nova. Essa ação não pode ser desfeita.
Clique em Calculate Table Topology Distribution para visualizar os nomes dos shards e sua distribuição física nos bancos de dados. A prévia mostra cada nome de shard e o banco de dados físico correspondente. Se o resultado não atender às expectativas, ajuste a expressão e recalcule.
Clique em Save.
Usar instruções SQL
Clique em Import SQL Statements.
-
Insira uma instrução
CREATE TABLEouALTER TABLEe clique em OK. O exemplo a seguir cria duas tabelas,orders_logic_[05]eorders_logic_[06], usando uma expressão de intervalo:CREATE TABLE `orders_logic_[05-06]` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'primary key', `gmt_create` datetime NOT NULL COMMENT 'create time', `gmt_modified` datetime NOT NULL COMMENT 'modify time', PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET=utf8 COMMENT='Create Logical Table'; -
Na aba Create Logical Table: orders_logic_[05-06], revise as informações e o schema da tabela e clique em Save.
Evite modificar as expressões de shard de tabelas existentes.
Etapa 3: Revise o resultado da pré-verificação
Após salvar, o DMS executa uma pré-verificação com base em quase 40 padrões de P&D para criação de tabelas, modificação de campos e alterações de índices. A alteração de schema só avança para a etapa de aprovação após passar na pré-verificação.
|
Resultado |
Ação |
|
Aprovado |
Clique em Confirm Changes and Submit to Save para prosseguir. |
|
Aviso |
Clique em Ignore the warning and continue to save para continuar ou clique em Close, corrija o schema conforme os padrões de P&D e clique em Save novamente. |
|
Erro |
Clique em Close, identifique e corrija a causa com base nos padrões de P&D e clique em Save novamente. |
Após a aprovação na pré-verificação, o DMS redireciona você para a aba Project Homepage. Na aba Tables Changed in Project, revise, modifique ou exclua tabelas conforme necessário antes de prosseguir para a aprovação.
Etapa 4: Aplicar alterações ao banco de dados base
Clique em Perform Changes to Base Database.
No painel Perform Changes to Base Database, defina Execution Strategy, Canary Mode e Canary Action, e clique em Submit.
Após a aprovação, o DMS aplica automaticamente as alterações de schema ao banco de dados base. Acompanhe o progresso na aba Change Execution History — o status é reportado por banco de dados físico. Para verificar o resultado, abra a aba SQLConsole do banco de dados base.
Por padrão, é necessário enviar tickets para alterações de schema. Você também pode usar regras de segurança personalizadas. Por exemplo, especifique que nenhuma aprovação é necessária para alterações de schema em bancos de dados de desenvolvimento. Também defina quais usuários podem aprovar tickets de alteração de schema em bancos de dados de produção.
Etapa 5: Promover para o banco de dados de produção
Clique em Go to Next Node e confirme na caixa de diálogo.
Na aba Project Homepage, clique em Perform Changes to Target Database.
-
No painel Perform Changes to Target Database, selecione o banco de dados de destino e clique em Submit.
Para aplicar as alterações de schema em vários bancos de dados de produção simultaneamente, clique em Add Multiple Databases .
Após a aprovação, o DMS aplica automaticamente as alterações ao banco de dados de produção. Verifique o resultado na aba SQLConsole do banco de dados de produção.
Clique em Go to Next Node e confirme na caixa de diálogo.
Após o encerramento do ticket, clique em qualquer etapa para revisar os registros de alteração e publicação.
Próximos passos
Configure um algoritmo de roteamento para definir como as consultas são direcionadas ao shard correto. Para mais detalhes, consulte Configurar um algoritmo de roteamento.