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 / dba / 问题

All perguntas(dba)

Martin Hope
Michal Charemza
Asked: 2024-05-13 16:16:59 +0800 CST

Bloqueios consultivos: privados para banco de dados conectado ou compartilhados entre clusters?

  • 9

O espaço das chaves nos bloqueios de aconselhamento do PostgreSQL é privado para o banco de dados conectado ou compartilhado entre o cluster de banco de dados?

Bisbilhotando https://www.postgresql.org/docs/current/functions-admin.html#FUNCTIONS-ADVISORY-LOCKS e https://www.postgresql.org/docs/current/explicit-locking.html#ADVISORY- LOCKS a resposta não parece óbvia.

postgresql
  • 1 respostas
  • 180 Views
Martin Hope
Amr Elmohamady
Asked: 2024-05-13 06:19:25 +0800 CST

Por que o PostgreSQL não adiciona preenchimento para alinhamento de colunas no final da tupla?

  • 5

No exemplo aqui: https://www.percona.com/blog/postgresql-column-alignment-and-padding-how-to-improve-performance-with-smarter-table-design/ insira a descrição da imagem aqui

Por que o PostgreSQL não adiciona preenchimento de 2 bytes após int2in t2para alinhar a palavra corretamente?

postgresql
  • 1 respostas
  • 28 Views
Martin Hope
Yossi Geretz
Asked: 2024-05-13 03:38:55 +0800 CST

O que acontece com meu banco de dados de réplica de leitura no modo de failover?

  • 5

Tenho algumas perguntas básicas sobre o failover do Azure. Eu sou novo em failover. Tenho lido a literatura e estou pronto para tentar. Antes de mergulhar, gostaria de entender melhor como isso funcionará.

Temos um banco de dados primário em um servidor em uma região, vamos chamar esse servidor de DBPrime. Recentemente criamos uma réplica de leitura em um servidor em uma região diferente. Nossa primeira etapa foi descarregar as cargas de trabalho de leitura para a réplica de leitura. Vamos chamar esse servidor de DBRead.

Agora queremos dar o próximo passo e configurar o failover. Se entendi a literatura corretamente, não preciso de um terceiro servidor para fins de failover. Em vez disso, posso usar o servidor de réplica de leitura para funcionar como meu servidor alternativo para failover?

Aqui está o meu entendimento do que acontecerá se o failover for acionado. Por favor, deixe-me saber se estou correto sobre cada uma dessas afirmações ou se não estou entendendo corretamente.

  1. O Azure trocará os nomes dos servidores para que o DBRead seja agora DBPrime e vice-versa.
  2. O novo DBPrime fará a transição do modo somente leitura para leitura-gravação.
  3. As referências de aplicativos ao DBPrime acessarão perfeitamente o novo DBPrime
  4. As cargas de trabalho que fazem referência ao DBRead não poderão acessar o servidor porque esse servidor está inativo no momento (o que acionou o failover para começar).

(Podemos discutir separadamente o que acontece quando saímos do failover. Mas não faz sentido chegar a isso até entender o que acontece quando entramos no modo de failover.)

Obrigado pelo seu conselho!

azure-sql-database
  • 1 respostas
  • 34 Views
Martin Hope
toraritte
Asked: 2024-05-13 01:37:15 +0800 CST

Como classificar a saída dos comandos meta/slash no `psql`?

  • 5

Por exemplo, como classificar a saída abaixo pelos valores em “Coluna” no psqlpróprio shell?

my_db=> \d auth_user
                                        Table "public.auth_user"
    Column    |           Type           | Collation | Nullable |                Default                
--------------+--------------------------+-----------+----------+---------------------------------------
 id           | integer                  |           | not null | nextval('auth_user_id_seq'::regclass)
 is_superuser | boolean                  |           | not null | 
 username     | character varying(150)   |           | not null | 
 first_name   | character varying(150)   |           |          | 
 last_name    | character varying(150)   |           | not null | 
 email        | character varying(254)   |           |          | 
 is_staff     | boolean                  |           | not null | false
 is_active    | boolean                  |           | not null | false
 password     | character varying(128)   |           |          | 
 last_login   | timestamp with time zone |           |          | 
 date_joined  | timestamp with time zone |           |          | 
Indexes:
    "auth_user_pkey" PRIMARY KEY, btree (id)
    "auth_user_username_6821ab7c_like" btree (username varchar_pattern_ops)
    "auth_user_username_key" UNIQUE CONSTRAINT, btree (username)

Eu sei que isso seria fácil de fazer fora do psqlshell, por exemplo no Bash,

$ psql -U postgres -h localhost -d my_db -c '\d auth_user' | grep '^.*|' | sort -t'|' -k1

    Column    |           Type           | Collation | Nullable |                Default                
 date_joined  | timestamp with time zone |           |          | 
 email        | character varying(254)   |           |          | 
 first_name   | character varying(150)   |           |          | 
 id           | integer                  |           | not null | nextval('auth_user_id_seq'::regclass)
 is_active    | boolean                  |           | not null | false
 is_staff     | boolean                  |           | not null | false
 is_superuser | boolean                  |           | not null | 
 last_login   | timestamp with time zone |           |          | 
 last_name    | character varying(150)   |           | not null | 
 password     | character varying(128)   |           |          | 
 username     | character varying(150)   |           | not null | 

mas estou curioso para psqlsaber se isso poderia ser feito.

psql
  • 2 respostas
  • 12 Views
Martin Hope
Trevor D
Asked: 2024-05-12 11:15:04 +0800 CST

minhas expectativas para o mysql são irrealistas?

  • 6

Acabei de criar meu primeiro banco de dados e tabela MySQL, mas fiquei surpreso com o desempenho lento de uma simples instrução select. Minha tabela tem 400 milhões de linhas e minha instrução select retorna cerca de 100.000 linhas, mas demorou 14 minutos! Não tenho certeza se minha configuração está errada ou se minhas expectativas em relação ao mysql eram muito altas. Qual seria o tempo esperado para uma tabela bem projetada retornar 100.000 linhas de uma tabela de 400 milhões de linhas? Esta é a minha configuração:

CREATE TABLE CALLS (
quote_date DATE,
quote_time TIME,
expiration DATE,
delta decimal(4,3),
mid decimal(8,4)
);

CREATE INDEX idx_quote_date ON CALLS (quote_date);
CREATE INDEX idx_quote_time ON CALLS (quote_time);
CREATE INDEX idx_expiration ON CALLS (expiration);
CREATE INDEX idx_delta on CALLS (delta);
CREATE INDEX covering_index ON CALLS (quote_date, quote_time, expiration, delta);

Minha tabela serve apenas para ler dados com instruções select, então faço os índices depois de carregar todos os dados.

Minha seleção é:

select * from CALLS where DELTA BETWEEN 0.4 and 0.6;

mysql
  • 4 respostas
  • 82 Views
Martin Hope
mj_
Asked: 2024-05-10 22:12:16 +0800 CST

Replicação do Postgres travada/revertida?

  • 5

Estou olhando nossa replicação no Postgres. Temos lógica e binária acontecendo. Eu faço um select * from pg_stat_replication order by state;e vejo os valores lsn enviados/escrever/liberar/reproduzir. Eles se parecem 31855/17CB26A8e os valores avançam com o tempo.

Para obter a posição atual, faço a select pg_current_wal_lsn();e está em 319E1/73CDD590.

Meu problema é que à medida que os valores avançam, eles quase chegam à posição atual e depois “rolam” e recomeçam. Isso é normal?

Estou na v13.10.

postgresql
  • 1 respostas
  • 16 Views
Martin Hope
lifeisajourney
Asked: 2024-05-10 21:40:46 +0800 CST

Não foi possível localizar estatísticas no erro de catálogos do sistema no SQL Server

  • 7

Estou tentando acessar uma tabela em nosso servidor de relatórios (réplica secundária) de nosso servidor de warehouse por meio de um servidor vinculado. Tudo estava funcionando bem até a semana passada, mas agora está gerando um erro “não foi possível localizar estatísticas nos catálogos do sistema” .

Depois de alguma pesquisa, parece que preciso descartar e recriar uma estatística que está causando esse problema. No entanto, estou hesitante em fazê-lo em nosso servidor de produção ao vivo. Ainda não estou certo sobre o que está causando exatamente esse problema.

Alguém poderia explicar o que pode estar acontecendo e se há uma solução alternativa que não envolva a eliminação e a recriação de estatísticas? Eu realmente aprecio sua ajuda e tempo. Obrigado!

sql-server
  • 1 respostas
  • 210 Views
Martin Hope
Rudy
Asked: 2024-05-10 15:40:15 +0800 CST

Comportamento estranho com lote e gatilho (MariaDB)

  • 6

Encontrei um problema estranho envolvendo o mariadb. atualização em lote do hibernate. a pergunta original foi adicionada aqui: https://stackoverflow.com/questions/78204056/hibernate-sqlintegrityconstraintviolation-duplicate-data-entry-issue-after-upg?noredirect=1#comment138316709_78204056

tabela t_instancetest

CREATE TABLE `t_instancetest` (
    `RATEID` BIGINT(10) NOT NULL,
    `BID` VARCHAR(25) NULL DEFAULT NULL COLLATE 'utf8_bin',
    `ASK` VARCHAR(25) NULL DEFAULT NULL COLLATE 'utf8_bin',
    `MID` VARCHAR(25) NULL DEFAULT NULL COLLATE 'utf8_bin',
    `UPDATEDDATE` DATETIME(6) NULL DEFAULT NULL,
    `INSTANCEUPDATEDDATE` DATETIME(6) NULL DEFAULT NULL,
    `UPDATEDBY` VARCHAR(30) NULL DEFAULT NULL COLLATE 'utf8_bin',
    `CRUD` VARCHAR(1) NULL DEFAULT NULL COLLATE 'utf8_bin',
    `CREATEDBY` VARCHAR(30) NULL DEFAULT NULL COLLATE 'utf8_bin',
    `INSTANCEUPDATEDBY` VARCHAR(30) NULL DEFAULT NULL COLLATE 'utf8_bin',
    `LOCATIONID` INT(3) NOT NULL,
    PRIMARY KEY (`RATEID`, `LOCATIONID`) USING BTREE
)COLLATE='utf8_bin'
ENGINE=InnoDB
;

registro de auditoria

CREATE TABLE `t_datalog` (
    `Id` BIGINT(10) NOT NULL AUTO_INCREMENT,
    `RateId` BIGINT(10) NOT NULL,
    `CreatedDate` DATETIME(6) NOT NULL,
    PRIMARY KEY (`Id`) USING BTREE
     ))
COLLATE='utf8_bin'
ENGINE=InnoDB
AUTO_INCREMENT=232
;

TRIGGER (BEFORE UPDATE ) - mas esse campo foi removido posteriormente para facilitar o teste - e esse gatilho caiu.

 CREATE DEFINER=`USERADMIN`@`%` TRIGGER `TRG_BU_T_INSTANCE`. 
 BEFORE UPDATE ON `t_instance` FOR EACH ROW BEGIN 
   SET NEW.ATTRCHANGEID=UUID();
     END

ACIONADOR (APÓS ATUALIZAÇÃO)

CREATE DEFINER=`USERADMIN`@`%` TRIGGER `TRG_AU_T_INSTANCETEST` AFTER UPDATE ON `t_instancetest` FOR EACH ROW BEGIN
INSERT INTO `t_datalog` ( `RateId`, `CreatedDate`) VALUES (OLD.RATEID, sysdate());
 END

Atualização em lote do aplicativo (batchsize = 7) - como pode ser mostrado aqui, ele atualiza 7 rateids diferentes

2024-05-10 12:31:59.814  INFO 3472 --- [nio-9012-exec-2] n.t.d.l.l.SLF4JQueryLoggingListener      : {"name":"reliableDataSource", "connection":3, "time":13, "success":true, "type":"Prepared", "batch":true, "querySize":1, "batchSize":7, "query":["update t_instancetest set ask=?, bid=?, createdby=?, crud=?, instanceupdateddate=?, locationId=?, mid=?, updatedby=?, updateddate=? where locationid=? and rateId=?"], "params":[["116.13","12.23","SYSTEM","U","2024-05-10 12:31:59.665","101","7181","naga","2024-05-10 12:03:55.0","101","7181"], 
["116.13","12.23","SYSTEM","U","2024-05-10 12:31:59.665","101","7239","naga","2024-05-10 12:03:55.0","101","7239"],
["116.13","12.23","SYSTEM","U","2024-05-10 12:31:59.665","101","7254","naga","2024-05-10 12:03:55.0","101","7254"],
["116.13","12.23","SYSTEM","U","2024-05-10 12:31:59.665","101","7265","naga","2024-05-10 12:03:55.0","101","7265"],
["116.13","12.23","SYSTEM","U","2024-05-10 12:31:59.665","101","7370","naga","2024-05-10 12:03:55.0","101","7370"],
["116.13","12.23","SYSTEM","U","2024-05-10 12:31:59.665","101","7453","naga","2024-05-10 12:03:55.0","101","7453"],
["116.13","12.23","SYSTEM","U","2024-05-10 12:31:59.665","101","7643","naga","2024-05-10 12:03:55.0","101","7643"]]}

Logs do Mariadb, porém mostrando que estamos atualizando apenas um registro em t_instancetest e executamos o gatilho 7 vezes no mesmo rateid. outros rateid não foram executados.

    #240509 17:27:01 server id 2  end_log_pos 127297238 CRC32 0x5e6a5fa7   Write_rows: table id 3067 flags: STMT_END_F
### UPDATE `reliabledb`.`t_instance`
### WHERE
###   @1=7181 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @2='12.23' /* VARSTRING(75) meta=75 nullable=1 is_null=0 */
###   @3='116.13' /* VARSTRING(75) meta=75 nullable=1 is_null=0 */
###   @4='' /* VARSTRING(75) meta=75 nullable=1 is_null=0 */
###   @5='2024-05-09 16:49:54.962888' /* DATETIME(6) meta=6 nullable=1 is_null=0 */
###   @6='2024-05-09 17:22:52.812000' /* DATETIME(6) meta=6 nullable=1 is_null=0 */
###   @7='naga' /* VARSTRING(90) meta=90 nullable=1 is_null=0 */
###   @8='U' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */
###   @9='SYSTEM' /* VARSTRING(90) meta=90 nullable=1 is_null=0 */
###   @10='naga' /* VARSTRING(90) meta=90 nullable=1 is_null=0 */
###   @11=101 /* INT meta=0 nullable=0 is_null=0 */
### SET
###   @1=7181 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @2='12.23' /* VARSTRING(75) meta=75 nullable=1 is_null=0 */
###   @3='116.13' /* VARSTRING(75) meta=75 nullable=1 is_null=0 */
###   @4='7181' /* VARSTRING(75) meta=75 nullable=1 is_null=0 */
###   @5='2024-05-09 16:49:54.962888' /* DATETIME(6) meta=6 nullable=1 is_null=0 */
###   @6='2024-05-09 17:27:01.116000' /* DATETIME(6) meta=6 nullable=1 is_null=0 */
###   @7='naga' /* VARSTRING(90) meta=90 nullable=1 is_null=0 */
###   @8='U' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */
###   @9='SYSTEM' /* VARSTRING(90) meta=90 nullable=1 is_null=0 */
###   @10='naga' /* VARSTRING(90) meta=90 nullable=1 is_null=0 */
###   @11=101 /* INT meta=0 nullable=0 is_null=0 */
### INSERT INTO `reliabledb`.`t_datalog`
### SET
###   @1=98 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @2=7181 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @3='2024-05-09 17:27:01.000000' /* DATETIME(6) meta=6 nullable=0 is_null=0 */
### INSERT INTO `reliabledb`.`t_datalog`
### SET
###   @1=99 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @2=7181 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @3='2024-05-09 17:27:01.000000' /* DATETIME(6) meta=6 nullable=0 is_null=0 */
### INSERT INTO `reliabledb`.`t_datalog`
### SET
###   @1=100 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @2=7181 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @3='2024-05-09 17:27:01.000000' /* DATETIME(6) meta=6 nullable=0 is_null=0 */
### INSERT INTO `reliabledb`.`t_datalog`
### SET
###   @1=101 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @2=7181 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @3='2024-05-09 17:27:01.000000' /* DATETIME(6) meta=6 nullable=0 is_null=0 */
### INSERT INTO `reliabledb`.`t_datalog`
### SET
###   @1=102 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @2=7181 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @3='2024-05-09 17:27:01.000000' /* DATETIME(6) meta=6 nullable=0 is_null=0 */
### INSERT INTO `reliabledb`.`t_datalog`
### SET
###   @1=103 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @2=7181 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @3='2024-05-09 17:27:01.000000' /* DATETIME(6) meta=6 nullable=0 is_null=0 */
# Number of rows: 7
# at 127297238
#240509 17:27:01 server id 2  end_log_pos 127297269 CRC32 0xd7928418    Xid = 205571784
COMMIT/*!*/;

Se descartarmos o gatilho, a inserção será concluída normalmente (todos os registros atualizados). Além disso, se removermos o lote, o comportamento da inserção também será concluído. O problema só aconteceu se o tamanho do lote > 3 e o gatilho estivessem em vigor.

Alguém pode compartilhar alguma idéia de por que isso está acontecendo? ou talvez aponte para um bug do mariadb que pode interferir nisso? Isso só acontece para esta tabela do esquema, onde as outras tabelas não são afetadas.

detalhes da versão:

  • mariadb 10.5
  • cliente mariadb jdbc 3.3.3 (também tentei com 2.7.4)
  • inicialização de mola (java) 2.7.18
  • hibernar 5.6.15
mariadb
  • 1 respostas
  • 36 Views
Martin Hope
Trubs
Asked: 2024-05-10 15:35:31 +0800 CST

Replicação de scripts

  • 6

Gostaria de saber como automatizar a criação de replicação transacional.

em um ambiente de teste, muitas vezes preciso restaurar os dados do Prod. Os dados de teste são replicados para outro servidor para geração de relatórios (e teste dos referidos relatórios). Tudo isso é muito simples de criar scripts - mas preciso reativar a replicação.

Eu sei que posso criar um script da replicação existente e reaplicá-la após a restauração, mas isso será problemático se houver objetos adicionais (ou ausentes) no banco de dados restaurado.

Basicamente - quero criar um processo que crie o encanamento básico para replicação, depois passe por todas as tabelas do banco de dados, adicione-o como um artigo e faça o mesmo para procs, visualizações etc.

com um pouco de esforço (e tempo), presumo que poderia escrever algo que daria conta do recado, só não quero reinventar a roda...

THX.

sql-server
  • 1 respostas
  • 46 Views
Martin Hope
Shamil
Asked: 2024-05-09 20:19:40 +0800 CST

Se SSTable for classificado, por que precisamos do Sparse Index?

  • 5
Esta questão foi migrada do Stack Overflow porque pode ser respondida no Stack Exchange dos Administradores de Banco de Dados. Migrado há 4 dias .

Pelo que eu sei, quando criamos um índice clusterizado, ele reestrutura a tabela no formato B-Tree e usa pesquisa binária quando tentamos encontrar uma linha específica. SSTable também é classificado por chave. Por que precisamos do Sparse Index como tabela de referência para este caso? Como isso difere do B-Tree em relação à pesquisa se eles são ordenados por chave? Por que aplicar a pesquisa binária não é suficiente?

Tentei encontrar o uso exato do índice esparso e tentei entender por que ele é necessário como tabela de referência se não precisamos desse tipo de coisa para índice clusterizado e não encontrei nenhuma resposta para essa pergunta.

mongodb
  • 1 respostas
  • 18 Views
Prev
Próximo

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