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-193262

Leonardo Lacerda's questions

Martin Hope
Leonardo Lacerda
Asked: 2020-11-24 08:13:39 +0800 CST

REPMGR - altere reconnect_attempts e reconnect_interval não funcionando

  • 1

Configurei o failover automático do PostgreSQL com REPMGR. Mas, na minha simulação, o tempo de espera é de 1 segundo para cada tentativa de reconexão: insira a descrição da imagem aqui

Se eu consultar a documentação oficial o valor padrão para o intervalo de reconexão é de 10 segundos .

#reconnect_interval=10 # Intervalo entre tentativas de reconexão a um # primário inacessível (ou outro nó upstream)

Tentei alterar os valores das tentativas de reconexão e intervalo no repmgr.conf e reiniciar o serviço do repmgr e usar "repmgr standby register --force" mas não funciona.

Meu REPMGR.CONF

node_id = 2
node_name = 'PGCluster02'
data_directory='/var/lib/postgresql/12/main'
conninfo = 'host=PGCluster02 port=1010 user=my_repmgr dbname=dbrepmgr connection_timeout=2'
use_replication_slots=1
reconnect_attempts=30
reconnect_interval=10
failover=automatic
promote_command='/usr/bin/repmgr standby promote -f /etc/repmgr.conf --log-to-file'
follow_command='/usr/bin/repmgr standby follow -f /etc/repmgr.conf --log-to-file --upstream-node-id=%n'

Meio Ambiente

PostgreSQL Version: 12.5
REPMGR Version: 5.2
Debian version: 10

Outras ferramentas no meu ambiente são Barman (outra VM) e PGBouncer (VM atual)

Como posso alterar o intervalo de reconexão para 10 ou 15 segundos? Alguém pode me ajudar? Eu quero colocar meu tempo de failover para 5 minutos.

Obrigada!!

postgresql failover
  • 1 respostas
  • 206 Views
Martin Hope
Leonardo Lacerda
Asked: 2020-08-20 05:29:49 +0800 CST

CPU do PostgreSQL 100% após configurar o envio de log do Wal em espera quente

  • 0

Configurei o Hight Avaliabily WAL Log Shipping Hot Standby (SSL) com um nó. Mas depois de configurar, ambos os hosts (primário e secundário) usam 100% da CPU.

O mais estranho é porque tenho apenas um banco de dados chamado "TESTE" com uma tabela chamada "EXEMPLO" para verificar se a replicação estava OK. A replicação funcionou perfeitamente, mas não entendo porque minha CPU usa 100% porque não tenho nenhum aplicativo conectado ao meu cluster.

Eu executei o comando HTOP e obtive estes resultados:

Imagem 1 - Informações HTOP do servidor principal

Imagem 1 - Informações HTOP do servidor principal

Imagem 2 - Informações HTOP do Servidor Secundário

Imagem 2 - Informações do HTOP do Servidor Secundário

Versão SO:

No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

Versão do PostgreSQL:

postgres (PostgreSQL) 12.3 (Debian 12.3-1.pgdg100+1)

Arquivo postgres.conf do servidor primário:

max_connections = 100
SSL = on
shared_buffers = 2GB
work_mem = 10485kb
maintenance_work_mem = 512MB
dynamic_shared_memory_type = posix
effective_io_concurrency = 200
max_worker_processes = 4
max_parallel_maintenance_workers = 2
max_parallel_workers_per_gather = 2
max_parallel_workers = 4
wal_level = replica
wal_buffers = 16MB
max_wal_size = 200MB
min_wal_size = 80MB
checkpoint_completion_target = 0.7
archive_mode = on
max_wal_senders = 3
wal_keep_segments = 8
hot_standby = on
hot_standby_feedback = on
random_page_cost = 1.1
effective_cache_size = 6GB
default_statistics_target = 100

informações de pg_stat_activity:

insira a descrição da imagem aqui

pg_stat_archiver informações:

insira a descrição da imagem aqui

informações de pg_stat_replication: insira a descrição da imagem aqui

Se eu parar o serviço postgres em ambos os servidores, a CPU ainda terá 100% de uso.

Alguém pode me ajudar?

postgresql high-availability
  • 1 respostas
  • 474 Views
Martin Hope
Leonardo Lacerda
Asked: 2019-11-14 04:36:10 +0800 CST

SQL Server - Snapshot é útil em ambientes de produção?

  • 4

Estou lendo sobre as soluções de alta disponibilidade e recuperação de desastres do SQL Server e dentre os recursos disponíveis o SQL Server possui recurso de snapshot. Em teoria, tudo parece bonito.

Eu também li que um instantâneo copiará um banco de dados em um ponto no tempo e você pode usar isso para restaurar um banco de dados.

Nesta resposta há um comentário (por Peter Schofield, 2013) sobre os instantâneos do SQL Server não terem suporte e é útil em um ambiente de desenvolvimento para reversões rápidas.

[...] Talvez o maior empecilho para a adoção seja que o Management Studio não oferecia suporte [...]

[...] Parece um uso ideal de instantâneos em um ambiente de desenvolvimento apenas para implantações rápidas de scripts e retrocessos rápidos.[...]

Gostaria de saber se os snapshots são realmente úteis em ambientes de produção. Quais são alguns exemplos de uso em produção e inclua exemplos pessoais sobre quando você usou instantâneos para fornecer uma solução em sistemas de produção.

O objetivo principal é fornecer alguns exemplos de uso real e através desses exemplos obter algumas ideias úteis para mim e para todos que lerão este post.

No meu caso utilizo o SQL Server 2017 Enterprise Edition em ambiente de produção.

sql-server sql-server-2017
  • 3 respostas
  • 782 Views
Martin Hope
Leonardo Lacerda
Asked: 2019-11-09 10:32:04 +0800 CST

Espelho de banco de dados - Host não pode ser alcançado ou não existe

  • 1

Tentei espelhar banco de dados com GUI e T-SQL, mas tive problemas em ambos os casos.

Aqui estão algumas informações sobre infraestrutura e SSMS:

A INFRAESTRUTURA

  • Servidor principal com SQL Server 2017 Enterprise Edition
  • Servidor espelho com SQL Server 2017 Enterprise Edition
  • Servidor testemunha com SQL Server 2017 Express Edition
  • Todos os servidores SO: Windows Server 2016 Standard
  • Todos os servidores com firewall desabilitado
  • Todos os servidores em domínio comum
  • Todos os servidores têm os mesmos usuários e privilégios
  • Telnet funciona perfeitamente com a porta 5022 em todos os servidores
  • Criei usuário para gerenciar serviço em todos os servidores com GRANT CONNECT ON ENDPOINT::Mirroring

Informações do SQL Server Management Studio - SSMS:

Microsoft SQL Server Management Studio                      14.0.17289.0
Microsoft Analysis Services Client Tools                    14.0.1016.283
Microsoft Data Access Components (MDAC)                     10.0.14393.0
Microsoft MSXML                                             3.0 6.0 
Microsoft Internet Explorer                                 9.11.14393.0
Microsoft .NET Framework                                    4.0.30319.42000
Operating System                                            6.3.14393

Vou explicar os dois casos de erro, com GUI e T-SQL.

Com GUI:

Terminais de configuração bem-sucedidos em todos os servidores

insira a descrição da imagem aqui

Mas eu tive esse erro quando tentei iniciar o espelhamento

insira a descrição da imagem aqui

É tão confuso porque o banco de dados deve estar em status de recuperação no servidor espelho. Mas li alguns posts sobre isso e é recomendado configurar com T-SQL, então

COM T-SQL:

Com o T-SQL eu tive esse problema:

Msg 1418, Level 16, State 1, Line 54 O endereço de rede do servidor "TCP://HML-SQLS-01-TST.domain.br:5022" não pode ser alcançado ou não existe. Verifique o nome do endereço de rede e se as portas para os terminais locais e remotos estão operacionais.

Deixe-me explicar passo a passo que eu tinha seguido:

SERVIDOR PRINCIPAL

CREATE DATABASE mirror
GO

ALTER DATABASE mirror
SET RECOVERY FULL
GO

USE mirror
GO

CREATE TABLE TESTE(
    id INT IDENTITY(1,1),
    descricao VARCHAR(255)
);

BACKUP DATABASE mirror
TO DISK = 'F:\Backup\mirror-full.bak'
GO

BACKUP LOG mirror
TO DISK = 'F:\Backup\mirror-log.bak'
GO


CREATE ENDPOINT Mirroring
    STATE = started
    AS TCP (listener_port=5022)
    FOR database_mirroring (role=partner)
GO

USE MASTER
GO
CREATE LOGIN [DOMAIN\svc.witness] FROM WINDOWS
GO
GRANT CONNECT ON ENDPOINT::Mirroring TO [DOMAIN\svc.witness];
GO

SERVIDOR ESPELHO

CREATE ENDPOINT Mirroring
    STATE = started
    AS TCP (listener_port=5022)
    FOR database_mirroring (role=partner)
GO

RESTORE DATABASE mirror
FROM DISK = 'F:\Backup\mirror-full.bak'
WITH NORECOVERY
GO

RESTORE DATABASE mirror
FROM DISK = 'F:\Backup\mirror-log.bak'
WITH NORECOVERY
GO

USE MASTER
GO
CREATE LOGIN [DOMAIN\svc.witness] FROM WINDOWS
GO
GRANT CONNECT ON ENDPOINT::Mirroring TO [DOMAIN\svc.witness];
GO

SERVIDOR TESTEMUNHA

create endpoint Mirroring
state = started
    as tcp (listener_port=5022)
    for database_mirroring (role=WITNESS)
go

USE MASTER
GO
CREATE LOGIN [DOMAIN\svc.witness] FROM WINDOWS
GO
GRANT CONNECT ON ENDPOINT::Mirroring TO [DOMAIN\svc.witness];
GO

SERVIDOR ESPELHO

alter database mirror
set partner = 'TCP://HML-SQLS-01.domain.br:5022'
GO

PRINCIPAL SERVER (O erro aparece nesta execução)

--The error pops in this execution:
alter database mirror
set partner = 'TCP://HML-SQLS-01-TST.domain.br:5022'
GO

Msg 1418, Level 16, State 1, Line 54 O endereço de rede do servidor "TCP://HML-SQLS-01-TST.domain.br:5022" não pode ser alcançado ou não existe. Verifique o nome do endereço de rede e se as portas para os terminais locais e remotos estão operacionais.

Mas se eu tentar este comando no CMD, funcionará perfeitamente:

telnet hml-sqls-01-tst.domain.br 5022

ENDPOINTS EM SERVIDORES:

Ponto de extremidade do servidor principal insira a descrição da imagem aqui

Endpoint do servidor espelhado insira a descrição da imagem aqui

Ponto de extremidade do servidor testemunha insira a descrição da imagem aqui

Alguém já passou por isso ou poderia sugerir um caminho a seguir?

sql-server t-sql
  • 3 respostas
  • 1931 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