目录

环境

文档用途

详细信息

环境

系统平台:Linux x86-64 Red Hat Enterprise Linux 7

版本:5.6.5

文档用途

  本文用于解决在已安装postgresql的服务器上,安装瀚高数据库(cluster版本)或对瀚高数据库进行基本启停等操作时产生的问题。本文提供了其中一种解决方案。

详细信息

  安装hgdb5.6.5-cluster-rhel7.x版本,postgresql以postgresql9.2为例

  前提:服务器上已安装postgresql9.2,可以远程登录,本地pg_ctl等命令可以正常使用。

  下面根据安装步骤展示和解决问题:

  1)执行安装命令:

[root@localhost home]# rpm -ivh hgdb5.6.5-cluster-rhel7.x-x86-64-20190815.rpm

Preparing...                        ################################# [100%]

Updating / installing...

   1:hgdb-cluster-5.6.5-1.el7         ################################# [100%]

initdb: could not open file "/opt/HighGo5.6.5-cluster/etc/5866" for reading: No such file or directory

Note: Forwarding request to 'systemctl enable hgdb-se5.6.5.service'.

Created symlink from /etc/systemd/system/multi-user.target.wants/hgdb-se5.6.5.service to /usr/lib/systemd/system/hgdb-se5.6.5.service.

Created symlink from /etc/systemd/system/graphical.target.wants/hgdb-se5.6.5.service to /usr/lib/systemd/system/hgdb-se5.6.5.service.

  注:由于cluster版本安装时不自动初始化,因此需要手动执行数据库初始化。

  2)切换到瀚高数据库用户进行数据库初始化

[root@localhost home]# su - highgo

[highgo@localhost ~]$ initdb

The files belonging to this database system will be owned by user "highgo".

This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".

The default database encoding has accordingly been set to "UTF8".

The default text search configuration will be set to "english".

creating directory /opt/HighGo5.6.5-cluster/data ... ok

creating subdirectories ... ok

selecting default max_connections ... 100

selecting default shared_buffers ... 32MB

creating configuration files ... ok

creating template1 database in /opt/HighGo5.6.5-cluster/data/base/1 ... ok

initializing pg_authid ... ok

initializing dependencies ... ok

creating system views ... ok

loading system objects' descriptions ... ok

creating collations ... ok

creating conversions ... ok

creating dictionaries ... ok

setting privileges on built-in objects ... ok

creating information schema ... ok

loading PL/pgSQL server-side language ... ok

vacuuming database template1 ... ok

copying template1 to template0 ... ok

copying template1 to postgres ... ok

WARNING: enabling "trust" authentication for local connections

You can change this by editing pg_hba.conf or using the option -A, or

--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    postgres -D /opt/HighGo5.6.5-cluster/data

or

    pg_ctl -D /opt/HighGo5.6.5-cluster/data -l logfile start

  3)数据库启动

  启动方式一:

[highgo@localhost ~]$ pg_ctl start

server starting

[highgo@localhost ~]$ LOG:  could not bind IPv6 socket: Address already in use

HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.

LOG:  could not bind IPv4 socket: Address already in use

HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.

WARNING:  could not create listen socket for "localhost"

FATAL:  could not create any TCP/IP sockets

 问题一:以上发现启动时的端口是potgresql的不是瀚高数据库的。因为postgresql的服务已经在运行了,所以启动报错了。

  启动方式二:

[highgo@localhost ~]$ pg_ctl -D /opt/HighGo5.6.5-cluster/data -l logfile start

server starting

[highgo@localhost ~]$ psql highgo highgo

psql: could not connect to server: No such file or directory

        Is the server running locally and accepting

        connections on Unix domain socket "/tmp/.s.PGSQL.5866"?

  问题二:启动成功,但是登录报错。

[highgo@localhost ~]$ ps -ef|grep highgo

root      13547  13367  0 19:26 pts/2    00:00:00 su - highgo

highgo    13681  13548  0 19:30 pts/2    00:00:00 grep --color=auto highgo

[highgo@localhost ~]$ pg_ctl -D /opt/HighGo5.6.5-cluster/data -l logfile stop

pg_ctl: PID file "/opt/HighGo5.6.5-cluster/data/postmaster.pid" does not exist

Is server running?

[highgo@localhost ~]$ pg_ctl stop

pg_ctl: PID file "/opt/HighGo5.6.5-cluster/data/postmaster.pid" does not exist

Is server running?

  查询瀚高数据库进程,不存在;停止瀚高数据库的服务,报错:服务未运行。

  查看安装目录下初始化生成的data目录结构和postgresql.conf文件,发现不是瀚高数据库的正常目录结构;

根据初始化生成的data目录判断是数据库初始化时使用了postgresql9.2的初始化命令生成的。

  4)删除数据库初始化的data目录,重新进行初始化

[highgo@localhost HighGo5.6.5-cluster]$ rm -rf data

[highgo@localhost HighGo5.6.5-cluster]$ cd bin

[highgo@localhost bin]$ pwd

/opt/HighGo5.6.5-cluster/bin

#为确保是使用瀚高数据库命令进行的初始化,因此在bin目录下使用./initdb初始化数据库

[highgo@localhost bin]$ ./initdb

The files belonging to this database system will be owned by user "highgo".

This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".

The default database encoding has accordingly been set to "UTF8".

The default text search configuration will be set to "english".

Data page checksums are disabled.

Data encryption is disabled.

creating directory /opt/HighGo5.6.5-cluster/data ... ok

creating subdirectories ... ok

selecting default max_connections ... 100

selecting default shared_buffers ... 128MB

selecting dynamic shared memory implementation ... posix

creating configuration files ... ok

running bootstrap script ... ok

performing post-bootstrap initialization ... ok

syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections

You can change this by editing pg_hba.conf or using the option -A, or

--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    ./pg_ctl -D /opt/HighGo5.6.5-cluster/data -l logfile start

  查看安装目录下初始化生成的data目录结构和postgresql.conf文件,发现是瀚高数据库的正常目录结构,继续进行以下操作。

  5)数据库启动

  启动方式一:

[highgo@localhost bin]$ pg_ctl start

server starting

[highgo@localhost bin]$ LOG:  unrecognized configuration parameter "dynamic_shared_memory_type" in file "/opt/HighGo5.6.5-cluster/data/postgresql.conf" line 131

LOG:  unrecognized configuration parameter "max_worker_processes" in file "/opt/HighGo5.6.5-cluster/data/postgresql.conf" line 188

LOG:  unrecognized configuration parameter "wal_log_hints" in file "/opt/HighGo5.6.5-cluster/data/postgresql.conf" line 219

LOG:  unrecognized configuration parameter "fwd_white_list" in file "/opt/HighGo5.6.5-cluster/data/postgresql.conf" line 713

FATAL:  configuration file "/opt/HighGo5.6.5-cluster/data/postgresql.conf" contains errors

  问题三:以上启动报错。

  启动方式二:

[highgo@localhost bin]$ ./pg_ctl -D /opt/HighGo5.6.5-cluster/data -l logfile start

waiting for server to start.... done

server started

#以上启动成功

[highgo@localhost bin]$ ps -ef|grep highgo

root      13547  13367  0 19:58 pts/2    00:00:00 su - highgo

highgo    13548  13547  0 19:58 pts/2    00:00:00 -bash

highgo    47810      1  0 21:30 pts/2    00:00:00 /opt/HighGo5.6.5-cluster/bin/postgres -D /opt/HighGo5.6.5-cluster/data

highgo    47816  47810  0 21:30 ?        00:00:00 postgres: checkpointer process

highgo    47817  47810  0 21:30 ?        00:00:00 postgres: writer process

highgo    47818  47810  0 21:30 ?        00:00:00 postgres: wal writer process

highgo    47819  47810  0 21:30 ?        00:00:00 postgres: autovacuum launcher process

highgo    47820  47810  0 21:30 ?        00:00:00 postgres: stats collector process

highgo    47821  47810  1 21:30 ?        00:00:00 postgres: bgworker: pg_wait_sampling collector

highgo    47823  47810  1 21:30 ?        00:00:00 postgres: bgworker: performance diagnosis collector

highgo    47824  47810  0 21:30 ?        00:00:00 postgres: bgworker: logical replication launcher

highgo    47835  13548  0 21:31 pts/2    00:00:00 ps -ef

highgo    47836  13548  0 21:31 pts/2    00:00:00 grep --color=auto highgo

#以上查询瀚高数据库进程,正常

  根据以上两种启动方式的不同,判断直接执行pg_ctl start是使用的postgresql9.2的启动命令;在bin下./pg_ctl start是使用的当前目录下的命令;因此以下的操作在bin下./执行。

  6)数据库登录

[highgo@localhost bin]$ ./psql -U highgo

psql (5.6.5)

PSQL: Release 5.6.5

Connected to:

HighGo Database V5.6 Enterprise Edition Release 5.6.5 - 64-bit Production

Type "help" for help.

highgo=#

#因为配置文件密码属性是trust,因此不需要输密码直接登录成功。

  7)修改数据库参数,trust改成md5

[highgo@localhost data]$ vi pg_hba.conf

# "local" is for Unix domain socket connections only

local   all             all                               md5

# IPv4 local connections:

host    all             all             0.0.0.0/0            md5

更多详细信息请登录【瀚高技术支持平台】查看瀚高技术支持平台 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐