Recurso GTID
O MySQL 5.6 introduziu o recurso Global Transaction Identifier (GTID). Por isso, o utilitário mysqldump nas versões 5.6 e posteriores inclui a opção set-gtid-purged.
|
Parâmetro |
Padrão |
Valor |
Descrição |
||
|
set-gtid-purged |
AUTO |
ON\ |
OFF\ |
AUTO |
Controla a inclusão da instrução |
ON: Inclui a instruçãoSET @@GLOBAL.GTID_PURGEDna saída domysqldump.OFF: Não inclui a instruçãoSET @@GLOBAL.GTID_PURGEDna saída domysqldump.AUTO: Valor padrão. Inclui a instruçãoSET @@GLOBAL.GTID_PURGEDse o GTID estiver ativado na instância de origem. Caso contrário, nenhuma informação de GTID será incluída.
Portanto, ao usar o mysqldump do MySQL 5.6 ou posterior para exportar dados de uma instância do ApsaraDB RDS for MySQL 5.5, defina set-gtid-purged como OFF. Caso contrário, ocorrerá um dos seguintes erros:
Error: Server has GTIDs disabled.
or
mysqldump: Couldn’t execute ‘SELECT @@GTID_MODE’: Unknown system variable ‘GTID_MODE’ <1193>
Como evitar esperas por bloqueios no nível de tabela
Por padrão, o mysqldump ativa a opção lock-tables. Essa opção aplica um bloqueio no nível de tabela às tabelas exportadas e impede operações de Linguagem de Manipulação de Dados (DML) nessas tabelas.
Os mecanismos de armazenamento InnoDB e TokuDB, suportados por padrão nas instâncias do ApsaraDB RDS for MySQL, oferecem suporte a transações. Recomendamos usar a opção single-transaction para exportar os dados em vez das opções lock-all-tables ou lock-tables.
|
Parâmetro |
Padrão |
Valor |
Descrição |
|
|
lock-all-tables |
FALSE |
TRUE\ |
FALSE |
Adquire um bloqueio de leitura global durante toda a exportação. Isso torna todas as tabelas em todos os bancos de dados somente leitura. Esta opção desativa automaticamente as opções |
|
lock-tables |
TRUE |
TRUE\ |
FALSE |
Bloqueia as tabelas exportadas durante a exportação. Esta opção está ativada por padrão. Para desativá-la, use a opção |
|
single-transaction |
FALSE |
TRUE\ |
FALSE |
Realiza a exportação dentro de uma única transação. Esta opção desativa automaticamente a opção |
Definição do conjunto de caracteres de exportação
Se você não especificar um conjunto de caracteres, o mysqldump usará UTF8 por padrão.
|
Parâmetro |
Padrão |
Valor |
Descrição |
|
default-character-set |
UTF8 |
Conjuntos de caracteres suportados pela instância |
Define o conjunto de caracteres para a exportação. |
Outras opções de exportação
|
Parâmetro |
Padrão |
Valor |
Descrição |
|||
|
no-defaults |
NA |
NA |
Não lê nenhum arquivo de opções, exceto |
|||
|
defaults-file=file_name |
NA |
NA |
Lê apenas o arquivo de opções especificado. |
|||
|
add-drop-database |
FALSE |
TRUE\ |
FALSE |
Adiciona uma instrução |
||
|
add-drop-table |
TRUE |
TRUE\ |
FALSE |
Adiciona uma instrução |
||
|
add-locks |
TRUE |
TRUE\ |
FALSE |
Envolve cada dump de tabela com instruções |
||
|
compatible=name |
NA |
ansi\ |
postgresql\ |
oracle\ |
mssql |
Produz uma saída mais compatível com o tipo de banco de dados especificado. |
|
compact |
FALSE |
TRUE\ |
FALSE |
Ativa as opções |
||
|
databases |
FALSE |
TRUE\ |
FALSE |
Exporta vários bancos de dados. Por padrão, o |
||
|
disable-keys |
TRUE |
TRUE\ |
FALSE |
Envolve instruções |
||
|
events |
FALSE |
TRUE\ |
FALSE |
Exporta eventos agendados dos bancos de dados despejados. |
||
|
extended-insert |
TRUE |
TRUE\ |
FALSE |
Usa sintaxe estendida de |
||
|
hex-blob |
FALSE |
TRUE\ |
FALSE |
Exporta colunas |
||
|
ignore-table=db.tab |
NA |
NA |
Exclui a tabela ou visualização especificada. O formato é |
|||
|
max-allowed-packet |
24 MB |
24 MB a 1 GB |
Define o tamanho máximo do buffer para comunicação cliente-servidor. O valor padrão é 24 MB. O valor máximo é 1 GB. |
|||
|
no-create-db |
FALSE |
TRUE\ |
FALSE |
Suprime as instruções |
||
|
no-create-info |
FALSE |
TRUE\ |
FALSE |
Suprime as instruções |
||
|
no-data |
FALSE |
TRUE\ |
FALSE |
Não grava nenhum dado de linha. |
||
|
opt |
TRUE |
TRUE\ |
FALSE |
Ativa as opções |
||
|
dump-date |
TRUE |
TRUE\ |
FALSE |
Adiciona um carimbo de data/hora do dump como comentário no final da saída. Isso requer a opção |
||
|
routines |
FALSE |
TRUE\ |
FALSE |
Exporta procedimentos armazenados e funções. Esta opção está desativada por padrão. |
||
|
result-file |
NA |
NA |
Redireciona a saída para um arquivo especificado. |
|||
|
set-charset |
TRUE |
TRUE\ |
FALSE |
Adiciona |
||
|
triggers |
TRUE |
TRUE\ |
FALSE |
Exporta os gatilhos de cada tabela despejada. |
Opções sem suporte
|
Parâmetro |
Padrão |
Valor |
Descrição |
|
|
all-databases |
FALSE |
TRUE\ |
FALSE |
Exporta todos os bancos de dados, incluindo o banco de dados |
|
flush-logs |
FALSE |
TRUE\ |
FALSE |
Executa o comando |
|
flush-privileges |
FALSE |
TRUE\ |
FALSE |
Adiciona o comando |
|
lock-all-tables |
FALSE |
TRUE\ |
FALSE |
Adquire um bloqueio de leitura global durante a exportação, tornando todas as tabelas em todos os bancos de dados somente leitura. Esta opção desativa automaticamente as opções |
|
tab=dir_name |
NA |
NA |
Gera um arquivo |
Opções sem suporte e motivos
-
all-databases: Esta opção não é suportada. Contas de usuário padrão no ApsaraDB RDS for MySQL não têm permissões para algumas tabelas no banco de dadosmysql. O uso desta opção causa um erro.Mensagem de erro
mysqldump: Couldn’t execute ‘show create table slow_log‘: SHOW command denied to user ‘xxx’@’xx.xx.xx.xx’ for table ‘slow_log’ (1142) -
flush-logs: Esta opção não é suportada. Contas de usuário padrão no ApsaraDB RDS for MySQL não possuem o privilégioRELOADe, portanto, não podem executar o comandoflush logs;.Mensagem de erro
mysqldump: Couldn’t execute ‘FLUSH TABLES’: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation (1227) flush-privileges: Esta opção é desnecessária porque o ApsaraDB RDS for MySQL não oferece suporte à exportação do banco de dadosmysql.-
lock-all-tables: Esta opção não é suportada. Contas de usuário padrão no ApsaraDB RDS for MySQL não possuem o privilégioRELOAD.Mensagem de erro
mysqldump: Couldn’t execute ‘FLUSH TABLES’: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation (1227) -
tab=dir_name: Esta opção não é suportada porque exige que omysqldumpseja executado na mesma máquina física que hospeda a instância do ApsaraDB RDS for MySQL. No entanto, use esta opção com a opçãono-datapara gerar arquivos contendo instruçõesCREATE TABLE.# Use this option with the no-data option to obtain the tab_name.sql file, which contains the CREATE TABLE statement for each table in the test database. mysqldump —no-defaults -uuser_name -ppass_word -hxxx.mysql.rds.aliyuncs.com -P3306 —set-gtid-purged=off —single-transaction —tab=/tmp —no-data test # Error message returned when you export data without using the --no-data option: mysqldump —no-defaults -uuser_name -ppass_word -hxxx.mysql.rds.aliyuncs.com -P3306 —set-gtid-purged=off —single-transaction —tab=/tmp test mysqldump: Got error: 1045: Access denied for user ‘xxx’@’%’ (using password: YES) when executing ‘SELECT INTO OUTFILE’