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

Perguntas[db2-luw](dba)

Martin Hope
FL Support
Asked: 2023-07-04 21:18:26 +0800 CST

IBM DB2 v11.5 em RHEL8 - recuperando tabela BLOB

  • 5

em primeiro lugar, obrigado a todos os gurus..

O problema é: uma tabela que aceita upload de arquivo pdf/jpeg/png do frontend. A tabela com BLOB definido conforme abaixo:

   "IMAGEDATA" BLOB(3048576) LOGGED NOT COMPACT )

A tabela ficou muito grande e executamos as seguintes etapas para recuperar espaços arquivando dados antigos.

renomear tabela A1 criar nova tabela A2 exportar dados antigos com base em inserttimestamp para a1.ixf exportar dados mais recentes para A2.ixf importar para a tabela A2 de A2.ixf Agora não podemos recuperar o arquivo pdf da tabela A2. Posso saber como recuperar os dados arquivados em A1.ixf de volta ao banco de dados?

Posso copiar e substituir os arquivos de dados LB de backup para o diretório do tablespace?

65G 3 de julho 11:00 SQL00453.LB 65M 3 de julho 11:00 SQL00453.LBA

Embora a tabela A2 esteja com um tableid diferente. Podemos atualizar syscat.tables de volta para 453 tableid?

Nosso aplicativo realmente desconstrói o pdf de volta ao frontend, mas de alguma forma todo o pdf parece corrompido. Nós temos o backup restaurado em um banco de dados temporário com os arquivos LB & LBA intactos. Mas o banco de dados original já foi atualizado com dados de transações mais recentes.

Obrigado e agradeço a ajuda..

db2-luw
  • 1 respostas
  • 13 Views
Martin Hope
Lennart - Slava Ukraini
Asked: 2022-06-03 09:54:09 +0800 CST

admin_move_table, tabelas travadas em CLEANUP

  • 0

Estou procurando converter várias tabelas de log para particionamento de intervalo, o objetivo principal é reduzir o tamanho do banco de dados desanexando e arquivando dados históricos. Processo se parece com:

CALL SYSPROC.ADMIN_MOVE_TABLE('S','T1','', '', '', '', '',
'(ACTION_TIME) (STARTING FROM (''2000-01-01-00.00.00.000000'') ENDING AT (''2029-12-31-23.59.59.999999'') EVERY 1 YEAR)', '', 'COPY_USE_LOAD', 'MOVE' );

...

CALL SYSPROC.ADMIN_MOVE_TABLE('S','T120','', '', '', '', '',
'(ACTION_TIME) (STARTING FROM (''2000-01-01-00.00.00.000000'') ENDING AT (''2029-12-31-23.59.59.999999'') EVERY 1 YEAR)', '', 'COPY_USE_LOAD', 'MOVE' );

Por questões de simplicidade durante este teste, não fiz nada sobre o índice em cada tabela (pk + ts), eles permanecem no mesmo tablespace de antes. Todas as tabelas usam este tablespace para seus índices

Parece funcionar bem, embora eu receba vários avisos misteriosos. Para cada tabela eu recebo:

SQL0206N "STATSPROFTYPE" is not valid in the context where it is used.

e para algumas das tabelas temporárias (que pareciam ser tabelas com nomes entre aspas terminando com letras minúsculas), recebi outras reclamações sobre runstats.

Fiz alguns testes e as tabelas pareciam acessíveis.

Então eu separei partições antigas como:

for t in $(db2 -x "select rtrim(tabschema) || '.' || rtrim(tabname) from SYSCAT.DATAPARTITIONS where tabname like '%_LOG' group by tabschema, tabname having COUNT(datapartitionname) > 1"); do
    for p in part{0..18}; do 
        db2 "alter table $t detach partition $p into ${t}_$p"; 
        db2 "drop table ${t}_$p"; 
    done 
    # db2 "reorg table $t";
    db2 "runstats on table $t with distribution and sampled detailed indexes all"
done

Ainda assim, todas as tabelas são acessíveis, mas se eu consultar:

db2 "SELECT substr(tabschema,1,20), substr(tabname,1,60), substr(VALUE,1,10) FROM SYSTOOLS.ADMIN_MOVE_TABLE WHERE KEY='STATUS'"

Todas as tabelas têm um valor de CLEANUP. Deixei por algumas horas, não há atividade no banco de dados, mas as tabelas permanecem as mesmas. Em média, provavelmente removi 50% das linhas nessas tabelas, mas o tamanho de acordo com:

db2 "CALL GET_DBSIZE_INFO(?, ?, ?, -1)"
...
Parameter Name  : DATABASESIZE
Parameter Value : 769891516416 

não é reduzido.

Por falta de ideias, dei um loop nas tabelas e reorganizei cada tabela e todos os índices, mas isso não parece mudar nada.

É normal que as tabelas permaneçam nesse estado por um longo período de tempo? Ajudaria esperar pelo CLEANUP, antes de migrar a próxima tabela?

db2 db2-luw
  • 1 respostas
  • 114 Views
Martin Hope
Francesco Mantovani
Asked: 2022-06-03 01:44:18 +0800 CST

DB2 no Docker :: IBM Data Studio avisa erro ao criar novo banco de dados

  • 0

Segui este guia simples e consegui instalar o DB2 no Docker.

Agora eu gostaria de importar um banco de dados de exemplo para brincar.

Então abro o IBM Data Studio, clico com o botão direito do mouse na instância > Novo banco de dados... , preencho com meu nome de usuário e senha mas aparece um erro:

O sistema não pode verificar a instância que você especificou. Insira um nome de instância válido ou clique no botão ao lado do campo Nome da instância e selecione um da lista. com.ibm.datatools.adm.explorer.ui.model.InstanceException: Ocorreu um erro interno durante: "Verificando a instância db2inst1 no sistema 192.168.1.44.".

insira a descrição da imagem aqui

Se eu expandir o erro para obter mais detalhes, vejo:

'Verificando instância db2inst1 no sistema 192.168.1.44.' encontrou um problema.

Ocorreu um erro interno durante: "Verificando a instância db2inst1 no sistema 192.168.1.44.".

Ocorreu um erro interno durante: "Verificando a instância db2inst1 no sistema 192.168.1.44.".

com.ibm.db2.das.core.DasMessageIdentifier (falha de inicialização)

insira a descrição da imagem aqui

Um mergulho na documentação oficial me leva a essa solução, mas não acho que esse possa ser o problema.

O que me intriga é o 'ponto' ( .) após o endereço IP. Pode ser este o erro?

insira a descrição da imagem aqui

Ou existe alguma outra maneira de importar um banco de dados de amostra do IBM Data Studio?

db2 db2-luw
  • 1 respostas
  • 71 Views
Martin Hope
folow
Asked: 2022-04-08 05:18:54 +0800 CST

db2 - Downgrade de instância e banco de dados atualizados?

  • 0

Até agora, sempre "atualizei" o banco de dados usando instalação limpa (nova instalação do Linux, etc) dentro da máquina virtual.

Mas agora eu tenho a necessidade de atualizar o Db2/Linux do Db2 v11.1 para o Db2 v11.5 instalado na máquina física (não na máquina virtual).

A instância existente do Db2 v11.1 está instalada na máquina.

  1. Durante a instalação, recebi um erro sobre bibliotecas incompatíveis, então fui forçado a usar o comando db2rmln para remover links do Linux para bibliotecas.
  2. Após a instalação foi necessário atualizar (não atualizar!) instância e eu fiz isso com: ./db2iupgrade
  3. Em seguida, migre o banco de dados.

Eu só estou querendo saber em caso de algum azar. É possível fazer downgrade da instância e do banco de dados de V11.5 para V11.1? O downgrade é suportado entre duas versões do Db2?

db2 db2-luw
  • 1 respostas
  • 134 Views
Martin Hope
folow
Asked: 2022-03-31 22:21:07 +0800 CST

db2 aplicando o arquivo de licenciamento produz duas licenças

  • 0
  1. Instalei o Db2 do fixpack v11.5.7.0 usando o db2_installcomando.
  2. Fiz download do arquivo "IBM Db2 Advanced Edition - VPC Option V11.5.6 - Activation (CC9WHML)" do IBM Passport Advantage.
  3. Eu apliquei licença com:db2licm -a <license_file>
  4. Eu verifiquei a licença aplicada: db2licm -le a saída é:
Product name:                     "DB2 Community Edition"
License type:                     "Community"
Expiry date:                      "Permanent"
Product identifier:               "db2dec"
Version information:              "11.5"
Max amount of memory (GB):        "16"
Max number of cores:              "4"
Features:
IBM DB2 Performance Management Offering:              "Not licensed"

Product name:                     "DB2 Advanced Edition"
License type:                     "Virtual Processor Core"
Expiry date:                      "Permanent"
Product identifier:               "db2adv"
Version information:              "11.5"
Enforcement policy:               "Hard Stop"
Features:
IBM DB2 Performance Management Offering:              "Not licensed"

Eu não tinha visto esse tipo de exibição antes. Parece que duas licenças são aplicadas na edição "Community" e "Advance".

Perguntas:

a) Tudo bem que duas licenças sejam exibidas? Qual deles é válido, ambos?

b) Na seção de edição "Avançada" a que se refere a "Política de aplicação" de "Hard Stop"? Até agora eu sempre vi apenas "Soft Stop". Como eu vejo, a edição "Advance" não tem limitações de núcleos de CPU, então o que significa "Hard Stop" nesta licença?

db2 db2-luw
  • 1 respostas
  • 161 Views
Martin Hope
Lennart - Slava Ukraini
Asked: 2022-03-08 07:37:39 +0800 CST

docker exec --user db2inst1, incapaz de encontrar o usuário db2inst1: nenhuma entrada correspondente no arquivo passwd

  • 0

Estou brincando com docker e db2, mas estou tendo problemas quando tento executar comandos como usuário db2inst1 em um contêiner em execução. Eu inicio o contêiner como (é 1 linha, mas eu o divido para facilitar a leitura):

docker run -itd --name mydb2 --privileged=true -p 50000:50000 
  -e LICENSE=accept 
  -e DB2INST1_PASSWORD=pelle_paltnacke 
  --mount type=volume,dst=${backupdir},volume-driver=local,volume-opt=type=nfs,\"volume-opt=o=nfsvers=4,addr=${addr}\",volume-opt=device=:${device} 
  -v /etc/passwd:/etc/passwd 
  -v /etc/group:/etc/group 
  -v /opt/nya/users/db2inst1:/opt/nya/users/db2inst1 
  -v /home/system/db2fenc1/:/home/system/db2fenc1/ ibmcom/db2

Agora, se eu tentar fazer:

docker exec --user db2inst1 -ti mydb2 bash -c "cat /etc/passwd | grep db2inst1"
unable to find user db2inst1: no matching entries in passwd file

Como root não há problema:

docker exec -ti mydb2 bash -c "cat /etc/passwd | grep db2inst1"
db2inst1:x:422:422:DB2 Instance Administrator 1:/opt/nya/users/db2inst1:/bin/bash

e também --user root funciona bem:

docker exec --user root -ti mydb2 bash -c "cat /etc/passwd | grep db2inst1"
db2inst1:x:422:422:DB2 Instance Administrator 1:/opt/nya/users/db2inst1:/bin/bash

Então eu tentei com o uid do arquivo passwd montado:

docker exec --user 422 -ti mydb2 bash -c "cat /etc/passwd | grep db2inst1"
db2inst1:x:422:422:DB2 Instance Administrator 1:/opt/nya/users/db2inst1:/bin/bash

/etc/passwd é legível para todos. De qualquer forma, usar o uid não me leva muito longe:

docker exec --user 422 -ti mydb2 bash -c "db2licm -l"
bash: db2licm: command not found

então eu tento com:

docker exec --user 422 -ti mydb2 bash -c "whoami; . ~db2inst1/sqllib/db2profile; 
db2licm -l"
db2inst1
bash: /opt/nya/users/db2inst1/sqllib/adm/db2licm: Permission denied

Este é apenas alguns comandos que executei para demonstrar o problema. Alguém tem uma explicação de por que o --user db2inst1 não é capaz de executá-los?

FWIW, tentei sem o nfs-mount, mas recebo o mesmo comportamento.

O contêiner em si parece estar funcionando bem. Se eu girar o contêiner como acima e:

#> docker exec -ti mydb2 bash
[root@0ee67959246f /]# mkdir -p /data/db/db2
[root@0ee67959246f /]# chown db2inst1:db2iadm1 /data/db/db2/
[root@0ee67959246f /]# su - db2inst1
[db2inst1@0ee67959246f ~]$ cd /data/backup/db2/wb11/MD000I11/
[db2inst1@0ee67959246f MD000I11]$ db2 "restore db MD000I11 incremental auto taken at 20220307141244 to /data/db/db2 into WD000I11"
DB20000I  The RESTORE DATABASE command completed successfully.

EDIT: Uma observação interessante é:

docker exec --user 422 -ti mydb2 bash -c "id"
uid=422(db2inst1) gid=0(root) groups=0(root)

docker exec --user 422:422 -ti mydb2 bash -c "id"
uid=422(db2inst1) gid=422(db2iadm1) groups=422(db2iadm1)


docker exec --user 422:422 -ti mydb2 bash -c "whoami; . 
~db2inst1/sqllib/db2profile; db2licm -l"

db2inst1
Product name:                     "DB2 Community Edition"
License type:                     "Community"
...

Infeliz:

docker exec --user db2inst1:db2iadm1 -ti mydb2 bash -c "id"
unable to find user db2inst1: no matching entries in passwd file
db2 db2-luw
  • 1 respostas
  • 461 Views
Martin Hope
Kahn
Asked: 2021-10-01 04:17:31 +0800 CST

Salvando resultados do DB2 FINAL TABLE

  • 0

Temos um cenário em que precisamos adicionar várias linhas a tabelas diferentes, obter os IDs de chave primária gerados, criar mais inserções com FKs referindo-se aos IDs gerados anteriormente, etc. No SQL Server, você pode usar apenas a cláusula OUTPUT para armazenar os linhas e os IDs gerados e, em seguida, consulte-os. Mas aparentemente no db2 você não pode usar os resultados FINAL TABLE para nada além de um select.

Então, estamos procurando inserir um monte de dados de uma planilha do Excel na tabela A , depois combinar os IDs gerados no conjunto de dados do Excel e inserir mais linhas na tabela B, C, etc.

Existe uma maneira alternativa de armazenar os registros inseridos em um formato utilizável. De preferência sem algo que exija a compilação de um procedimento, então podemos apenas executar o script uma parte de cada vez? Um exemplo de quase código abaixo, que obviamente não funciona.

DECLARE GLOBAL TEMPORARY TABLE SESSION.TEMP
    (ITEM_IDENTIFIER,
    TABLE1_ID INT) 
ON COMMIT PRESERVE ROWS;

INSERT INTO SESSION.TEMP (ITEM_IDENTIFIER, TABLE1_ID)
SELECT IDENTIFIER, ID
FROM FINAL TABLE 
    (INSERT INTO MYSCHEMA.MYTABLE (IDENTIFIER, ID /*...other columns*/)
    SELECT *
    FROM 
        (SELECT 'asd123' IDENTIFIER /*...other columns*/ FROM SYSIBM.SYSDUMMY1
        UNION
        SELECT 'bsb234' /*...other columns*/ FROM SYSIBM.SYSDUMMY1
        UNION
        SELECT 'dasd654_' /*...other columns*/ FROM SYSIBM.SYSDUMMY1
        /* etc.. */) s
    );
db2 db2-luw
  • 1 respostas
  • 268 Views
Martin Hope
Lennart - Slava Ukraini
Asked: 2021-09-28 11:57:40 +0800 CST

Significado de "trabalho total" para índices de compilação durante o carregamento

  • 1

Acho que nunca refleti sobre isso, mas atualmente estou carregando uma tabela de um cursor e os utilitários de lista mostram:

  Phase Number               = 3
  Description                = BUILD
  Total Work                 = 46 indexes
  Completed Work             = 0 indexes
  Start Time                 = Not Started

No esquema atual, existem 4 índices + uma coluna XML (que parece contribuir com 2 de acordo com syscat.indexes). No começo eu pensei que poderia ser um bug contando índices para o mesmo nome de tabela em esquemas diferentes, mas isso também não conta, já que existem 10 esquemas com uma tabela com esse nome.

Estou apenas curioso o que o "Trabalho Total" significa para esta fase?

db2 db2-luw
  • 1 respostas
  • 40 Views
Martin Hope
user137481
Asked: 2021-05-13 15:08:25 +0800 CST

Consultas entre bancos de dados usando o IBM Data Studio

  • 0

Atualmente, estou usando o IBM Data Studio 4.1 para executar consultas em bancos de dados DB2 LUW. Meu entendimento é que posso fazer consultas entre bancos de dados prefixando os nomes dos bancos de dados.

Por exemplo, database.schema.table.

No entanto, quando abro uma janela de consulta SQL, há uma lista suspensa que exige que o usuário selecione a conexão com o banco de dados. Como ele permite apenas uma conexão de banco de dados, como executamos consultas entre bancos de dados no IBM Data Studio?

db2 db2-luw
  • 2 respostas
  • 306 Views
Martin Hope
Nil R
Asked: 2021-04-21 20:11:42 +0800 CST

Usando a mesma tabela em um UNION várias vezes

  • 0

Recebo uma consulta que está usando a mesma tabela com as mesmas colunas e filtros várias vezes e a única coisa que está mudando é o tipo que é fornecido manualmente. Estou pensando que deve haver uma maneira melhor de fazer isso.

A instrução da consulta é como abaixo:

    Select Column 1, Column 2, Sum(Column 3) AS Test, "First Query" AS "Type"
           From Table X
           Where Column 1 = "Fly"
    Group by Column 1, Column 2
    
    UNION ALL 
    
    Select Column 1, Column 2, Sum(Column 3) AS Test, "Second Query" AS "Type"
           From Table X
           Where Column 1 = "Fly"
    Group by Column 1, Column 2
 
    UNION ALL 
    
    Select Column 1, Column 2, Sum(Column 3) AS Test, "Third Query" AS "Type"
           From Table X
           Where Column 1 = "Fly"
    Group by Column 1, Column 2

Obrigado!

db2 db2-luw
  • 1 respostas
  • 1521 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