PostgreSQL cluster

  • 时间:
  • 浏览:0
  • 来源:5分快乐8_5分快乐8官网

    ./pg_ctl -D /pgdata2 -l logfile start

修复已处在目录 /pgdata2 的权限 ... 成功

           |          |          |             |             | postgres=CTc/postgres

正在启动服务器线程

postgres  5200  5393  0 18:25 ?        00:00:00 postgres: eric: stats collector process               

   名称    |  拥有者  | 字元编码 |  校对规则   |    Ctype    |       存取权限        

postgres  5248  5246  0 18:17 ?        00:00:00 postgres: eric: logger process                          

对内建对象设置权限 ... 成功

[root@dbserver pg_log]# ps -ef|grep postgres

启动 postgresql-9.5 服务:                                 [选用 ]

选用 默认共享缓冲区大小 (shared_buffers) ... 128MB

postgres  5792  5789  0 18:46 ?        00:00:00 postgres: gao: checkpointer process    

-bash-3.2$ ls

属于此数据库系统的文件宿主为用户 "postgres".

postgres  5246     1  0 18:17 ?        00:00:00 /usr/pgsql-9.5/bin/postmaster -D /var/lib/pgsql/9.5/data

postgres  5397  5393  0 18:25 ?        00:00:00 postgres: eric: writer process                        

服务器线程因为关闭

postgres  5252  5246  0 18:17 ?        00:00:00 postgres: eric: wal writer process                      

OK~~~

postgres  5794  5789  0 18:46 ?        00:00:00 postgres: gao: wal writer process      

-bash-3.2$ < 2016-01-01 18:46:27.848 CST >日志:  日志输出重定向到日志分发线程

 template1 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +

postgres  5797  52002  0 18:46 pts/0    00:00:00 ps -ef

postgres  52002  52001  0 18:39 pts/0    00:00:00 -bash

                                     数据库列表

                                     数据库列表

-bash-3.2$ < 2016-01-01 20:55:00.710 CST >日志:  日志输出重定向到日志分发线程

多个实例运行的然后,该功能效果比较明显,有些人 再创建三个 多实例或者 设置一下cluster_name:

行 initdb 时使用 -A因为--auth-local和--auth-host选项.

postgres  5399  5393  0 18:25 ?        00:00:00 postgres: eric: autovacuum launcher process           

postgres=# \q

改成:

设置新实例的cluster_name:

[root@dbserver pg_log]# service postgresql-9.5 restart

体验一下cluster_name的魅力:

postgres  5394  5393  0 18:25 ?        00:00:00 postgres: eric: logger process                        

拷贝 template1 到 template0 ... 成功

postgres  3340  3335  0 17:59 ?        00:00:00 postgres: writer process                                

root      3487  3390  0 18:03 pts/0    00:00:00 grep postgres

           |          |          |             |             | postgres=CTc/postgres

等候服务器线程关闭 .... 完成

 music     | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =Tc/postgres         +

postgres  5727  5722  0 18:44 ?        00:00:00 postgres: wal writer process           

initdb: 无法为本地化语言环境"zh_CN.UTF-8"找到共要的文本搜索配置

[root@dbserver /]# chown -R postgres.postgres /pgdata2

postgres  5798  52002  0 18:46 pts/0    00:00:00 grep postgres

psql (9.5beta2)

postgres  3341  3335  0 17:59 ?        00:00:00 postgres: wal writer process                            

postgres  5393     1  0 18:25 pts/0    00:00:00 /usr/pgsql-9.5/bin/postgres -D /var/lib/pgsql/9.5/data

 template0 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +

 template0 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +

< 2016-01-01 18:44:24.778 CST >提示:  后续的日志输出将经常经常出现在目录 "pg_log"中.

pg_commit_ts  pg_logical     pg_serial     pg_subtrans   pg_xlog

修改参数然后,系统中看完的线程均这样 前缀,目前系统中只运行了三个 多PostgreSQL数据库实例:

postgres  5396  5393  0 18:25 ?        00:00:00 postgres: eric: checkpointer process                  

-bash-3.2$ ./initdb -D /pgdata2

正在启动服务器线程

-bash-3.2$ cd /pgdata2

           |          |          |             |             | eric=C*T*c*/postgres

cluster_name = 'gao'   

postgres  5790  5789  0 18:46 ?        00:00:00 postgres: gao: logger process          

给你通过编辑 pg_hba.conf 更改或你下次

< 2016-01-01 20:55:00.710 CST >提示:  后续的日志输出将经常经常出现在目录 "pg_log"中.

拷贝 template1 到 template0 ... 成功

[root@dbserver /]# mkdir pgdata2

创建字符集转换 ... 成功

   名称    |  拥有者  | 字元编码 |  校对规则   |    Ctype    |       存取权限        

警告:为本地连接启动了 "trust" 认证.

postgres  5729  5722  0 18:44 ?        00:00:00 postgres: stats collector process      

           |          |          |             |             | postgres=CTc/postgres

postgres  3343  3335  0 17:59 ?        00:00:00 postgres: stats collector process                       

Success. You can now start the database server using:

创建信息模式 ... 成功

root      5259  4945  0 18:17 pts/0    00:00:00 grep postgres

(4 行记录)

-bash-3.2$ vi postgresql.conf

           |          |          |             |             | postgres=CTc/postgres+

postgres  5722     1  0 18:44 pts/0    00:00:00 /usr/pgsql-9.5/bin/postgres -D /pgdata2

-bash-3.2$ psql -p 5432

postgres  5398  5393  0 18:25 ?        00:00:00 postgres: eric: wal writer process                    

global        pg_hba.conf    pg_notify     pg_stat       pg_twophase  postgresql.conf

改一下新实例的端口:

同步数据到磁盘...成功

 postgres  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 

postgres  5793  5789  0 18:46 ?        00:00:00 postgres: gao: writer process          

postgres  5731  52002  0 18:44 pts/0    00:00:00 grep postgres

postgres  3339  3335  0 17:59 ?        00:00:00 postgres: checkpointer process                          

禁止为数据页生成校验和.

root      52001  4945  0 18:39 pts/0    00:00:00 su - postgres

postgres  5795  5789  0 18:46 ?        00:00:00 postgres: gao: autovacuum launcher process   

清理数据库 template1 ... 成功

-----------+----------+----------+-------------+-------------+-----------------------

postgres  57200  52002  0 18:44 pts/0    00:00:00 ps -ef

postgres  5396  5393  0 18:25 ?        00:00:00 postgres: eric: checkpointer process                  

此用户也必须为服务器线程的宿主.

初始化 pg_authid ...  成功

不同的实例因为进行了区分:

启动新实例:

psql (9.5beta2)

 postgres  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 

-bash-3.2$ psql -p 5433

port = 5433

输入 "help" 来获取帮助信息.

修改postgresql.conf:

postgres  5394  5393  0 18:25 ?        00:00:00 postgres: eric: logger process                        

postgres=# \l

postgres  5254  5246  0 18:17 ?        00:00:00 postgres: eric: stats collector process                 

-bash-3.2$ ps -ef|grep postgres

-bash-3.2$ ./pg_ctl -D /pgdata2 start

在 /pgdata2/base/1 中创建 template1 数据库 ... 成功

postgres  5398  5393  0 18:25 ?        00:00:00 postgres: eric: wal writer process                    

查看一下系统中三个 多实例的线程标示有有哪些不同:

-bash-3.2$ < 2016-01-01 18:44:24.778 CST >日志:  日志输出重定向到日志分发线程

创建系统视图 ... 成功

postgres  3342  3335  0 17:59 ?        00:00:00 postgres: autovacuum launcher process                   

base          pg_dynshmem    pg_multixact  pg_snapshots  pg_tblspc    postgresql.auto.conf

postgres  5251  5246  0 18:17 ?        00:00:00 postgres: eric: writer process                          

创建配置文件 ... 成功

postgres  5725  5722  0 18:44 ?        00:00:00 postgres: checkpointer process         

postgres  5796  5789  0 18:46 ?        00:00:00 postgres: gao: stats collector process   

创建第三个 多实例的目录:

postgres  5397  5393  0 18:25 ?        00:00:00 postgres: eric: writer process                        

postgres  5393     1  0 18:25 pts/0    00:00:00 /usr/pgsql-9.5/bin/postgres -D /var/lib/pgsql/9.5/data

postgres  5789     1  0 18:46 pts/0    00:00:00 /usr/pgsql-9.5/bin/postgres -D /pgdata2

创建(字符集)校对规则 ... 成功

分别登录三个 多实例,验证一下可用性:

postgres  5399  5393  0 18:25 ?        00:00:00 postgres: eric: autovacuum launcher process           

改成了如下:

-bash-3.2$ /usr/pgsql-9.5/bin/pg_c-D /pgdata2 restart -m fast

postgres  3335     1  0 17:59 ?        00:00:00 /usr/pgsql-9.5/bin/postmaster -D /var/lib/pgsql/9.5/data

[root@dbserver tmp]# ps -ef|grep postgres

root      52001  4945  0 18:39 pts/0    00:00:00 su - postgres

postgres  5200  5393  0 18:25 ?        00:00:00 postgres: eric: stats collector process               

正在装载PL/pgSQL服务器端编程语言...成功

  在有些场景下,必须在一台服务器上运行多个数据库实例,都都都还还可以通过cluster_name参数设置线程的标示,原先的话在系统中查看完个运行的PG实例的然后,都都都还还可以通过线程前的cluster_name区分,以便进行分析因为维护操作。

postgres  3337  3335  0 17:59 ?        00:00:00 postgres: logger process                                

(3 行记录)

pg_config       pg_controldata  pg_ctl          

-bash-3.2$ /usr/pgsql-9.5/bin/pg_ctl -D /pgdata2 restart -m fast

-bash-3.2$ /usr/pgsql-9.5/bin/pg_ctl -D /pgdata2 start

postgres  5728  5722  0 18:44 ?        00:00:00 postgres: autovacuum launcher process   

pg_clog       pg_ident.conf  pg_replslot   pg_stat_tmp   PG_VERSION

postgres  5723  5722  0 18:44 ?        00:00:00 postgres: logger process               

或者 保存postgresql.conf,重启数据库查看一下线程名称因为有了cluster name:

数据库簇将使用本地化语言 "zh_CN.UTF-8"进行初始化.

postgres  5726  5722  0 18:44 ?        00:00:00 postgres: writer process               

-bash-3.2$ ps -ef|grep postgres

线程的前面因为有了cluster_name前缀。

postgres=# \l

输入 "help" 来获取帮助信息.

 template1 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +

正在创建字典 ... 成功

选用 默认最大联接数 (max_connections) ... 200

停止 postgresql-9.5 服务:                                 [选用 ]

postgres  5253  5246  0 18:17 ?        00:00:00 postgres: eric: autovacuum launcher process             

初始化dependencies ... 成功

< 2016-01-01 18:46:27.848 CST >提示:  后续的日志输出将经常经常出现在目录 "pg_log"中.

重启新实例:

修改配置文件postgresql.conf中的cluster_name参数:

postgres  52200  5246  0 18:17 ?        00:00:00 postgres: eric: checkpointer process                    

           |          |          |             |             | postgres=CTc/postgres

postgres  52002  52001  0 18:39 pts/0    00:00:00 -bash

正在启动服务器线程

-----------+----------+----------+-------------+-------------+-----------------------

缺省的文本搜索配置因为被设置到"simple"

创建新的实例:

默认的数据库编码因为相应的设置为 "UTF8".

-bash-3.2$ cd /usr/pgsql-9.5/bin/

cluster_name = 'eric'                   # added to process titles if nonempty

选用 动态共享内存实现 ......posix

正在加载系统对象描述 ...成功

新的实例这样 前缀cluster_name的标识,目前还是都都都还还可以比较清楚的分辨三个 多实例,那因为有更多的实例在同三个 多OS中,就必须明确的区分了。

正在创建子目录 ... 成功