AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-3119

Dimitre Radoulov's questions

Martin Hope
Dimitre Radoulov
Asked: 2012-11-29 07:07:20 +0800 CST

O mysqld espera que o código do script de inicialização seja concluído antes de abrir a instância?

  • 2

Estou tentando automatizar a execução de um código de aplicativo na inicialização do MySQL . A opção do servidor de arquivos init parece útil e eu preciso saber se o mysqld espera que todo o código no arquivo init seja concluído antes de disponibilizar a instância e os bancos de dados.

Tentei configurar um caso de teste rápido que parece não funcionar como eu esperava:

crie uma tabela de teste simples e um procedimento que apenas insere um registro

create table init_test_tab (x char);
delimiter $$
drop procedure init_test $$
create procedure init_test(p char(1))
begin
  do sleep(300);
  insert into init_test_tab VALUES(p);
END
$$

chame o procedimento de um arquivo init:

$ cat /var/lib/mysql/mysql-init.sql
call xxxx.init_test('y');
$ grep init /etc/mysql/my.cnf
init-file = /var/lib/mysql/mysql-init.sql

Reinicie o servidor para verificar os tempos e verifique o conteúdo da tabela de teste:

sessão 1 - a tabela está vazia:

[Wed Nov 28 15:54:26 2012]> select * from init_test_tab;
Empty set (0.00 sec)

sessão 2 - reinicie o mysqld:

# time service mysql restart
mysql stop/waiting
mysql start/running, process 3031

real    0m10.116s
user    0m0.024s
sys     0m0.068s

Observe que leva apenas 10s para reiniciar.

sessão 1 - conexão perdida (como esperado):

[Wed Nov 28 15:54:33 2012]> select * from init_test_tab;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
ERROR:
Can't connect to the server

[Wed Nov 28 15:54:45 2012]> select * from init_test_tab;
No connection. Trying to reconnect...
Connection id:    2
Current database: xxxxx

+------+
| x    |
+------+
| y    |
+------+
1 row in set (0.01 sec)

[Wed Nov 28 15:54:50 2012]>

Observe que o procedimento é invocado automaticamente (como esperado), pois a tabela não está mais vazia. Mas a inserção deveria ter sido executada somente após a chamada sleep(300), não imediatamente (ou, para ser preciso, apenas em alguns segundos).

Então agora estou tentando entender:

  1. Se eu colocar uma chamada de procedimento (ou qualquer código de aplicativo) no arquivo init, ela será executada conforme o esperado (no meu caso de teste, a chamada de suspensão parece ter sido ignorada)?
  2. Eu poderia ter algum tipo de registro do que é executado (além de modificar o próprio código)?
  3. Se o código no arquivo init demorar, isso pode afetar a disponibilidade da instância do MySQL logo após a reinicialização?

Obrigado Dimitre

mysql mysql-5.5
  • 1 respostas
  • 2175 Views
Martin Hope
Dimitre Radoulov
Asked: 2011-11-14 11:44:00 +0800 CST

Quando devemos definir o conjunto de caracteres padrão para o cliente?

  • 2

Estou tentando entender quando devo definir/forçar o conjunto de caracteres padrão para o cliente.

A documentação afirma :

Você pode forçar os programas clientes a usar um conjunto de caracteres específico da seguinte maneira:

[cliente] default-character-set=charset_name

Isso normalmente é desnecessário. No entanto, quando character_set_system difere de character_set_server ou character_set_client e você insere caracteres manualmente (como identificadores de objeto de banco de dados, valores de coluna ou ambos), eles podem ser exibidos incorretamente na saída do cliente ou a própria saída pode ser formatada incorretamente. Nesses casos, iniciar o cliente mysql com --default-character-set=system_character_set - ou seja, definir o conjunto de caracteres do cliente para corresponder ao conjunto de caracteres do sistema - deve corrigir o problema.

Vamos assumir que charater_set_system e character_set_server são diferentes.

Minha primeira pergunta:

Suponho que, quando estou importando arquivos de exportação gerados pelo mysqldump, a variável default-character-set não tem efeito, pois os nomes dos conjuntos são sempre emitidos no início do arquivo de exportação. Estou certo ou pode haver casos de canto?

A segunda pergunta:

Que tal executar scripts SQL manualmente? A documentação informa que alguns caracteres podem ser exibidos incorretamente . Como posso ter certeza de que os dados foram importados corretamente (uma parte da execução de um teste de aplicativo, ou seja, por tentativa e erro)?

mysql backup
  • 1 respostas
  • 10215 Views
Martin Hope
Dimitre Radoulov
Asked: 2011-10-01 06:00:03 +0800 CST

Executando várias instâncias no mesmo host

  • 6

Preciso configurar várias instâncias do MySQL no mesmo host para um de nossos clientes. Tanto quanto eu vejo, eu poderia ir com:

  1. mysqld_multi
  2. Caixa de areia do MySQL

Esta deve ser uma solução de longo prazo para um ambiente de produção de classe empresarial.

Precisamos migrar um ambiente já existente que atualmente usa o RedHat Cluster com nós ativos/passivos para uma nova VM sem o software de clustering (serão usadas soluções VMware HA, será diferente, eu sei).

Existem 3 recursos de instância/cluster MySQL separados. Desconheço a motivação inicial desta separação, mas suponho que o cliente queira poder parar/iniciar (patch, upgrade...) os diferentes recursos de forma autónoma.

Quaisquer comentários e sugestões - prós, contras e experiência do mundo real são muito bem-vindos!

mysql
  • 2 respostas
  • 8053 Views
Martin Hope
Dimitre Radoulov
Asked: 2011-10-01 02:46:36 +0800 CST

Backup lógico consistente de bancos de dados que usam mecanismos MyISAM e InnoDB

  • 10

Eu tenho uma pergunta sobre o backup lógico de bancos de dados MySQL que usam MyISAM e InnoDB.

O mysqldumputilitário suporta estas duas opções:

  • --single-transaction - Cria um instantâneo consistente descarregando todas as tabelas em uma única transação. Funciona APENAS para tabelas armazenadas em mecanismos de armazenamento que suportam multiversionamento (atualmente apenas o InnoDB faz) [...] A opção desliga automaticamente --lock-tables.

  • -x, --lock-all-tables - Bloqueia todas as tabelas em todos os bancos de dados. Isso é obtido com um bloqueio de leitura global durante todo o despejo. Desativa automaticamente --single-transaction e --lock-tables.

    • Para InnoDB, precisamos--single-transaction

    • para MyISAM, precisamos de - lock-tables ou lock-all-tables (no caso de precisarmos de consistência entre bancos de dados).

Então, como um banco de dados híbrido (um banco de dados que usa mecanismos MyISAM e InnoDB) deve ser feito backup?

Editar:

Só para esclarecer, a pergunta poderia ser reformulada assim:

As opções lock-[all-]tables garantem um backup consistente das tabelas InnoDB?

mysql innodb
  • 2 respostas
  • 9625 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve