Eu preciso habilitar a configuração COLUMNAR no DB2 Express Edition no Docker. Para que isso funcione, preciso definir INTRA_PARALLEL ON no nível da instância ou do banco de dados.
Eu me conecto ao db2
comando db2inst1
que é o dono da instância, mas estou recebendo um erro dizendo que o usuário é root. Como consertar esse problema?
db2 => connect to bank0002 user db2inst1 using xxxxx
Database Connection Information
Database server = DB2/LINUXX8664 11.5.4.0
SQL authorization ID = DB2INST1
Local database alias = BANK0002
db2 => UPDATE DBM CFG USING INTRA_PARALLEL ON
SQL5001N "ROOT" does not have the authority to change the database manager
configuration file.
update dbm cfg é executado pelo seu usuário no sh, não pelo usuário com o qual você se conectou. Você pode anexar à instância como um usuário específico:
ou:
e depois:
A documentação pode ser encontrada em ATTACH
Além disso, acho muito mais fácil executar o db2 diretamente do sh (como fiz acima) em vez de iniciar o db2 clp separadamente. Você pode usar o sh como um idioma host e, por exemplo, fazer loops em um conjunto de resultados:
Claro, apenas um exemplo bobo, mas é um mecanismo poderoso para executar o db2 a partir de um script sh