我需要在 Docker 上的 DB2 Express Edition 中启用 COLUMNAR 设置。为此,我需要在实例或数据库级别设置 INTRA_PARALLEL ON。
我使用实例所有者连接到该db2
命令db2inst1
,但我收到一条错误消息,指出用户是 root。如何解决这个问题?
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 由您的用户在 sh 中运行,而不是您连接的用户。您可以作为特定用户附加到实例:
或者:
接着:
可以在ATTACH找到文档
除此之外,我发现直接从 sh 运行 db2(就像我在上面所做的那样)比单独启动 db2 clp 要容易得多。您可以使用 sh 作为宿主语言,例如在结果集上执行循环:
当然只是一个愚蠢的例子,但它是从 sh 脚本运行 db2 的强大机制