当前位置: 首页 > 知识库问答 >
问题:

如何从命令行重新索引Postgres 9.1.3

郭俊拔
2023-03-14

在我管理的Postgres数据库中,我对一些表进行了一系列的删除和更新。有人建议在一系列删除之后安排一个重新索引,作为解决10分钟的下一步更新无限冻结(正如它随机发生的那样)的方案。)DOS指令提供了这一点:

Usage:
  reindexdb [OPTION]... [DBNAME]

Options:
  -a, --all                 reindex all databases
  -d, --dbname=DBNAME       database to reindex
  -e, --echo                show the commands being sent to the server
  -i, --index=INDEX         recreate specific index only
  -q, --quiet               don't write any messages
  -s, --system              reindex system catalogs
  -t, --table=TABLE         reindex specific table only
  --help                    show this help, then exit
  --version                 output version information, then exit

Connection options:
  -h, --host=HOSTNAME       database server host or socket directory
  -p, --port=PORT           database server port
  -U, --username=USERNAME   user name to connect as
  -w, --no-password         never prompt for password
  -W, --password            force password prompt

我们必须使用版本 9.1.3,因为这是企业标准。我已经尝试了我能想到的所有选项,但它不需要命令来重新索引:

reindexdb.exe -U username=MyUserName -W MyPassword -t table=MyDatabase.MyTable

我也尝试过

reindexdb.exe -U MyUserName -W MyPassword -t MyDatabase.MyTable

reindexdb.exe -U MyUserName -W MyPassword -t MyTable -d MyDatabase

...但它们都以错误结尾:

reindexdb: too many command-line arguments (first is "-t")

有没有人有一个工作示例可以澄清正确的语法是什么?

共有3个答案

丁勇
2023-03-14

任何这些都可以通过在命令后添加关键字FORCE来强制执行

重新创建单个索引myindex:

REINDEX INDEX myindex

在表mytable中重新创建所有索引:

REINDEX TABLE mytable

在架构公共中重新创建所有索引:

REINDEX SCHEMA public

重新创建数据库postgres中的所有索引:

REINDEX DATABASE postgres

在数据库帖子中重新创建系统目录上的所有索引:

REINDEX SYSTEM postgres

冀景明
2023-03-14

这做到了:

reindexdb.exe -d MyDatabase -U postgres -t MyTable

正如@32上校和@Erwin Brandstetter所指出的,可以通过%APPDATA%\postgreql\pgpass.conf完全删除密码

马正初
2023-03-14

从参数中删除MyPassword,并在Postgres提示您输入时输入它。

-W只会导致Postgres提示输入密码;它本身不接受密码。您不应该在命令行上指定密码,因为通常会记录密码。

如果需要以非交互方式运行,请设置PGPASSWORD环境变量或创建pgpass文件。

 类似资料:
  • 简介 本文档作为Slitaz的命令快速索引. Linux命令包括文件处理, 系统维护级网络管理等等. 你也可以在命令行下浏览网页,在IRC里聊天, 编辑脚本甚至玩游戏. 注意必需以root身份才能处理硬盘及光驱. 你可以使用命令– su 变成系统管理员. 帮助及可用命令列表 大多数Linux命令都有提供本命令的帮助信息的选项。 通常此选项的形式为 --help . 以下命令列出拷贝命令的帮助信息。

  • 我正在尝试从命令行更新Xcode。最初我试着跑步: 这导致了以下消息: 所以问题仍然存在,有没有办法从命令行更新Xcode?

  • 我有以下文件: 我运行以下命令: 但它什么也没做。依赖项不会得到更新,也不会反映在类路径上。命令的输出为: 不过,通过EclipseGradle插件实现这一点是可行的。

  • 问题内容: 我有一个简单的MySQL表,并且主索引(id)并未一一编号(1、31、35、100等)。我希望它们被编号为(1、2、3、4)。请告诉我该怎么做。我还要指出,我知道该操作可能造成的后果,但我只是想整理一下桌子。 问题答案: 我同意其他方法也可以,但是我只是给出了一个不同的想法。这将不需要任何临时表创建要求:

  • 我的df有列'country'和'country code'作为当前索引。如何删除此索引并创建只计算行数的新索引?我会留下它的样子。我想做的就是在国家旁边添加一个新的索引。多谢!

  • 有人能发布详细的分步说明如何安装Saxon(10 HE)以及如何从MacOS(10.13.6)中的命令行运行转换吗? 我已经在我的计算机上安装了Java 我已经下载了SaxonHE10-6J。来自SourceForge的zip文件 根据这里的建议,我放置了saxon-he-10.6。jar位于myUserName/Library/Java/Extensions文件夹中 然后,我打开终端应用程序并根