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
David Junior
Asked: 2024-06-21 02:43:32 +0800 CST

A tabela estrangeira dobra o armazenamento do servidor?

  • 5

Estou construindo um SaaS que em um banco de dados terei uma meta grande (algo em torno de 50 milhões de linhas), e essa tabela servirá informações para todos os clientes do sistema.

Mas, esse SaaS será um software multilocatário/multibanco de dados, onde quando um cliente se cadastrar, provisionaremos seu próprio banco de dados para acessar E criaremos uma tabela estrangeira para aquela tabela grande fora do banco de dados...

Pergunta 1: Essa é a melhor abordagem? Criar uma tabela externa para cada cliente pode resultar em um grande uso de armazenamento do servidor?

Pergunta 2: A tabela original possui outros índices do tipo 10 (a maioria deles btree), e com a tabela estrangeira para os clientes, esses índices funcionarão corretamente?

postgresql
  • 1 respostas
  • 15 Views
Martin Hope
gmtek
Asked: 2024-06-20 19:44:38 +0800 CST

Classificar por valor máximo por partição

  • 5

Eu tenho uma tabela com dados como abaixo:

| ID(pk) | name | count |
|--------|------|-------|
| id1    | xyz  |    98 |
| id2    | ptr  |     5 |
| id3    | xyz  |     2 |
| id4    | de   |     1 |
| id5    | ptr  |     1 |

Quero primeiro ter a linha com contagem máxima e depois todas as linhas com o mesmo nome classificadas por contagem. Depois dessa próxima contagem máxima e todas as contagens com o mesmo nome. Algo como abaixo:

| ID(pk) | name | count |
|--------|------|-------|
| id1    | xyz  |    98 |
| id3    | xyz  |     2 |
| id2    | ptr  |     5 |
| id5    | ptr  |     1 |
| id4    | de   |     1 |

Algo assim é possível no Postgres?

postgresql
  • 1 respostas
  • 24 Views
Martin Hope
Preety
Asked: 2024-06-20 19:42:24 +0800 CST

Replicação Transacional - como configurar alertas/notificações para enviar alertas antes que o espaço do log de transações esteja cheio em um Publicador?

  • 7

Estou configurando a replicação transacional em meu servidor 2008R2 para o servidor de distribuição 2012 para o servidor Assinante 2012. Todos os três servidores estão em modo de recuperação COMPLETO. O backup do log é feito a cada 15 minutos e o backup completo é feito diariamente, todos os dias, em todos os três bancos de dados do servidor usados ​​na replicação. Queremos usar o assinante como servidor de relatórios. O Publisher é nosso principal banco de dados OLTP.

Como posso receber um alerta antes que o espaço t-log do meu editor esteja cheio devido a qualquer problema na replicação. Não quero que meu editor caia de forma alguma. Os t-logs são apoiados a cada 15 minutos no editor. Isso significaria que todos os VLFs que são lidos ativamente pelo leitor de log podem ser copiados quando o backup do log for feito? quais alertas devo usar para me informar que o espaço de log está ficando cheio no editor? Existe algum script que também possa interromper o agente de replicação/leitor de log quando o espaço de log estiver ficando perigosamente grande no editor?

Posso remover a replicação e restabelecer (com um novo instantâneo) quando a replicação estiver causando problemas e criando logs no meu editor. Mas não quero esperar que essa situação aconteça (o espaço de log está cheio no editor) e quero tomar medidas apenas antes - como remover a replicação antes apenas quando o espaço de log atingir uma determinada porcentagem. Como eu posso fazer isso?

Além disso, qual deveria ser minha estratégia para interromper e remover a replicação? Seguirei a documentação da Microsoft para remover a replicação, mas não estou claro se devo interromper o agente Log Reader e o agente de distribuição antes de remover a replicação.

sql-server
  • 2 respostas
  • 175 Views
Martin Hope
Артем Павлов
Asked: 2024-06-20 16:07:54 +0800 CST

Recuperação de backup de banco de dados Oracle

  • 5

Acabei de começar a estudar Oracle, preciso restaurar o backup do banco de dados. O arquivo de log diz que foi feito no Oracle Database 10g Enterprise. Eu tenho o Oracle XE 18, é possível fazer isso para a versão XE usando RMAN ou alguma outra ferramenta? Abaixo lista de arquivos que tenho em arquivo.

>   configFFH.ora
>   ffdacs-nfs-backup-2024-06-17.tar.gz 
>   initFFH.ora
>   ffhbackup
    >   arch_1_56543.arc
    >   arch_1_56544.arc
    >   arch_1_56545.arc
    >   arch_1_56546.arc
    >   arch_1_56547.arc
    >   arch_1_56548.arc
    >   arch_1_56549.arc
    >   arch_1_56550.arc
    >   arch_1_56551.arc
    >   arch_1_56552.arc
    >   arch_1_56553.arc
    >   control01.ctl
    >   dcomm.cache
    >   ffhactivity01.dbf
    >   ffhactivity_idx01.dbf
    >   ffhactivity_idx02.dbf
    >   ffhbackup2.log
    >   ffhconfig01.dbf
    >   ffhconfig02.dbf
    >   ffhconfig03.dbf
    >   ffhconfig04.dbf
    >   ffhdetail01.dbf
    >   ffhdetail_idx01.dbf
    >   ffhsummary01.dbf
    >   ffhsummary_idx01.dbf
    >   FFH_backup.log
    >   fsdump
    >   hot_db_files.lst
    >   sysaux01.dbf
    >   sysaux02.dbf
    >   system01.dbf
    >   temp01.dbf
    >   undo.dbf
oracle
  • 1 respostas
  • 42 Views
Martin Hope
Miroslav Novotný
Asked: 2024-06-20 15:29:23 +0800 CST

A inicialização falha após a atualização com "AssertionError: null" em oacschema.TableMetadata$CompactTableMetadata.getCompactValueColumn()

  • 5

Estou tentando atualizar meu cluster Cassandra de 3 nós da versão 3.11.13 para 4.1.5.

Depois de iniciar o nó de atualização, recebo este erro:

ERROR [main] 2024-06-20 08:48:23,708 CassandraDaemon.java:915 - Exception encountered during startup
java.lang.AssertionError: null
        at org.apache.cassandra.schema.TableMetadata$CompactTableMetadata.getCompactValueColumn(TableMetadata.java:1515)
        at org.apache.cassandra.schema.TableMetadata$CompactTableMetadata.<init>(TableMetadata.java:1350)
        at org.apache.cassandra.schema.TableMetadata$Builder.build(TableMetadata.java:747)
        at org.apache.cassandra.schema.SchemaKeyspace.fetchTable(SchemaKeyspace.java:943)
        at org.apache.cassandra.schema.SchemaKeyspace.fetchTables(SchemaKeyspace.java:898)
        at org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspace(SchemaKeyspace.java:857)
        at org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:848)
        at org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:836)
        at org.apache.cassandra.schema.Schema.loadFromDisk(Schema.java:132)
        at org.apache.cassandra.schema.Schema.loadFromDisk(Schema.java:121)
        at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:285)
        at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:759)
        at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:893)

Encontrei este problema. A atualização do Cassandra 3.11.8 para 4.1.0 retorna "AssertionError: null" na inicialização ao carregar o esquema e o conselho era remover o COMPACT STORAGE.

Existe apenas um ARMAZENAMENTO COMPACTO no keyspace do sistema:

DESCRIBE TABLE system.hints

CREATE TABLE system.hints (
    target_id uuid,
    hint_id timeuuid,
    message_version int,
    mutation blob,
    PRIMARY KEY (target_id, hint_id, message_version)
) WITH COMPACT STORAGE
    AND CLUSTERING ORDER BY (hint_id ASC, message_version ASC)
    AND bloom_filter_fp_chance = 0.01
    AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
    AND comment = '*DEPRECATED* hints awaiting delivery'
    AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'enabled': 'false', 'max_threshold': '32', 'min_threshold': '4'}
    AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND crc_check_chance = 1.0
    AND dclocal_read_repair_chance = 0.0
    AND default_time_to_live = 0
    AND gc_grace_seconds = 0
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 3600000
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99PERCENTILE';

Infelizmente não posso abandoná-lo:

cqlsh> ALTER TABLE system.hints DROP COMPACT STORAGE;
Unauthorized: Error from server: code=2100 [Unauthorized] message="system keyspace is not user-modifiable."

Não consigo nem fazer o downgrade do nó para 3.11.13:

ERROR [main] 2024-06-20 08:38:07,157 CassandraDaemon.java:803 - Detected unreadable sstables /var/lib/cassandra/data/system/local/nb-244-big-Statistics.db,/var/lib/cassandra/data/system/local/nb-244-big-Data.db,/var/lib/cassandra/data/system/local/nb-244-big-Summary.db,/var/
lib/cassandra/data/system/local/nb-244-big-CompressionInfo.db,/var/lib/cassandra/data/system/local/nb-244-big-Index.db,/var/lib/cassandra/data/system/local/nb-244-big-Filter.db, please check NEWS.txt and ensure that you have upgraded through all required intermediate version
s, running upgradesstables

A tabela system.hints não está presente em meus outros clusters cassandra, onde a atualização ocorreu sem problemas.

Alguém tem alguma idéia de como sair dessa situação?

cassandra
  • 1 respostas
  • 22 Views
Martin Hope
Misudka
Asked: 2024-06-20 13:50:10 +0800 CST

Após a atualização, o Postgres python é a mesma versão

  • 5

Atualizei meu postgres da versão 13.5 para 16.2 (e o RHEL de 7.5 para 8.9). O problema é que o python não foi atualizado.

Criei o procedimento pyver():

CREATE OR REPLACE FUNCTION pyver ()
RETURNS TEXT
AS $$
    import sys
    pyversion = sys.version
    return pyversion
$$ LANGUAGE 'plpython3u'; 

Para mostrar a versão python usada pelo Postgres.

Quando executo no Python 13.5, obtenho este resultado:

psql (13.5)
Type "help" for help.

postgres@database # select pyver();
                  pyver
-----------------------------------------
 3.6.8 (default, Aug 13 2020, 07:36:02) +
 [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
(1 řádka)

postgres@database #

E quando executo no banco de dados atualizado, obtenho este resultado:

psql (16.2)
Type "help" for help.

database=# select pyver();
                  pyver
-----------------------------------------
 3.6.8 (default, Jan  5 2024, 09:14:44) +
 [GCC 8.5.0 20210514 (Red Hat 8.5.0-20)]
(1 row)

database=#

No novo RedHat está o Python 3.9.18 instalado.

Como faço para que o postgres use uma versão mais recente do python?

A atualização foi feita desta forma:

  • foi instalado novo servidor com RedHat 8.9 (Python 3.9)
  • foi instalado os binários do Postgres (versão 13.5) e criado o usuário postgres
  • então foi conectado o disco com bancos de dados Postgres (versão 13.5) do servidor antigo
  • o banco de dados foi iniciado no novo servidor
  • o próximo passo foi a instalação do Postgres 16.2
  • então foi iniciado o upgrade dos bancos de dados para a nova versão do Postgres através deste comando:
time /usr/pgsql-16/bin/pg_upgrade --jobs=16 -d /postgres/pgsql/database/data13 -D /postgres/pgsql/database/data16 -b /usr/pgsql-13/bin/ -B /usr/pgsql-16/bin/ --link
  • após a atualização executa o banco de dados na nova versão

E agora encontramos o problema com Python.

O banco de dados principal tem tamanho de 70 TB.

Obrigado Michal

postgresql
  • 1 respostas
  • 33 Views
Martin Hope
LilRose
Asked: 2024-06-20 03:58:13 +0800 CST

Com RF=3 os dados serão replicados 3 vezes em cada rack?

  • 5

Temos 9 servidores físicos, cada servidor possui 4 discos físicos, o que significa que temos um total de 36 discos físicos, cada um relacionado a um nó Cassandra.

Gostaríamos de ter uma replicação de 3 em todo o cluster, de uma forma que nos permitisse perder um servidor (4 discos físicos) sem perder dados.

Estávamos pensando em fazer três racks diferentes, cada rack com 3 de nossos servidores físicos. Meu entendimento é que, se eu tiver um keyspace com RF=3, um conjunto de dados deverá ser replicado 3 vezes no cluster.

Minha pergunta é: esses dados serão replicados 3 vezes dentro de cada rack ou serão replicados uma vez em cada rack (tendo 3 racks)? o que devo fazer/como devo configurar meu cluster e meu keyspace para que os dados sejam replicados exatamente uma vez para cada um de nossos três racks?

cassandra
  • 1 respostas
  • 12 Views
Martin Hope
Nick Ryan
Asked: 2024-06-19 09:14:51 +0800 CST

sp_BlitzIndex executado em um banco de dados SQL do Azure

  • 7

Adicionei este SP ao meu banco de dados e ele retorna resultados úteis. A parte que não tenho certeza são os números de uso. Sou novo no Azure SQL, mas os veteranos me disseram que o servidor nunca é reiniciado, então estou me perguntando por que o número de usos é tão baixo. Os números parecem cobrir apenas as últimas 24 horas, no máximo.

Alguém pode me explicar por que isso aconteceria? Eu adoraria obter os números de uso durante um período muito mais longo para ter uma ideia realmente completa de quais índices causam maior impacto.

azure-sql-database
  • 1 respostas
  • 130 Views
Martin Hope
datascinalyst
Asked: 2024-06-19 05:50:07 +0800 CST

Compactando tabelas particionadas no Oracle 19c

  • 5

Estou compactando tabelas particionadas.

antes das tabelas particionadas, tentei tabelas normais com as seguintes etapas:

DBMS_REDEFINITION.START_REDEF_TABLE(
    uname => 'USER',
    orig_table => 'ORIGINAL',
    int_table => 'INTERIM'
);




BEGIN
   DBMS_REDEFINITION.CAN_REDEF_TABLE('USER','ORIGINAL', DBMS_REDEFINITION.CONS_USE_ROWID);
END;
/



BEGIN
   DBMS_REDEFINITION.START_REDEF_TABLE(
      uname => 'USER',
      orig_table => 'ORIGINAL',
      int_table => 'INTERIM',
      options_flag => DBMS_REDEFINITION.CONS_USE_ROWID);
END;
/



DECLARE
   error_count pls_integer := 0;
BEGIN
   DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS('USER', 'ORIGINAL', 'INTERIM', dbms_redefinition.cons_orig_params, TRUE,TRUE,TRUE,FALSE, error_count);
   DBMS_OUTPUT.PUT_LINE('errors := ' || TO_CHAR(error_count));
END;
/


DECLARE
   error_count pls_integer := 0;
BEGIN
DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS(
    uname => 'USER',
    orig_table => 'ORIGINAL',
    int_table => 'INTERIM',
    copy_indexes => DBMS_REDEFINITION.CONS_ORIG_PARAMS,
    copy_triggers => TRUE,
    copy_constraints => TRUE,
    copy_privileges => TRUE,
    ignore_errors => FALSE,
    num_errors => 0
);
END;
/

ALTER TABLE ORIGINAL MOVE ROW STORE COMPRESS ADVANCED;

Entretanto, para tabelas particionadas, isso não é possível.

alguém pode me dizer o procedimento para compactar tabelas particionadas no Oracle 19c ?

partitioning
  • 1 respostas
  • 25 Views
Martin Hope
Java
Asked: 2024-06-19 02:17:46 +0800 CST

Faz sentido fazer backup completo semanalmente ou fazer backup do log de transações a cada 15 minutos?

  • 4

Tenho que tomar uma decisão (no trabalho) para escolher qual opção é mais viável usando o SQL Server 2019:

Opção 1: Backups completos enviados uma vez por semana e backups diferenciais enviados entre backups semanais. Opção 2: Backup completo enviado uma vez. Backups de log de transações enviados a cada 15 minutos. Backups completos adicionais e backs diferenciais enviados conforme necessário mediante solicitação.

Estou inclinado para a Opção 1 porque gerenciar logs de transações que acontecem a cada 15 minutos parece ser muito difícil de gerenciar.

Qual método faria mais sentido?

São pequenos dados provenientes de um terceiro fornecedor que armazenamos no SQL Server 2019 em VM. Após a ingestão dos dados, não haverá nada parecido com a distribuição para terceiros a partir do nosso SSMS. Não tenho certeza sobre "Recuperação pontual" nem RPO ou RTO. Ainda não entrei na parte do modo de recuperação completo ou simplesmente.

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