专栏名称: DBAplus社群
围绕数据库、大数据、PaaS云,顶级大咖、技术干货,运营几个月受众过十万!成为运维圈最专注围绕“数据”的学习交流和专业社群!欢迎投稿,加入探讨。
目录
相关文章推荐
AustinDatabases  ·  哎,马上删,马上 ·  17 小时前  
终码一生  ·  如何加快 SQL 查询速度的同时保持 ... ·  昨天  
数据中心运维管理  ·  弱电智能化中究竟有多少个子系统? ·  3 天前  
数据中心运维管理  ·  超大规模数据中心如何重新思考冷却效率 ·  4 天前  
数据中心运维管理  ·  锂电池火灾处理难度 ·  3 天前  
51好读  ›  专栏  ›  DBAplus社群

PolarDB-O主备高可用部署及切换排雷指引

DBAplus社群  · 公众号  · 数据库  · 2020-11-10 07:15

正文

请到「今天看啥」查看全文




2)等待一段时间,回显输出 pfs mkfs succeeds!后,执行以下命令,启动PFS服务



sudo /usr/local/polarstore/pfsd/bin/start_pfsd.sh -p $PFSDISK


3)执行以下命令,创建PFS的数据库目录



sudo /usr/local/bin/pfs -C disk mkdir $PFSDIR


排雷1:

注意: 在创建完PFS数据库目录,进行后续操作时有可能会提示找不到$PFSDIR,此时需要重启PFS服务。


常用PFS命令如下:



sudo /usr/local/polarstore/pfsd/bin/stop_pfsd.sh #停止PFS服务

sudo /usr/local/polarstore/pfsd/bin/start_pfsd.sh -p $PFSDISK #启动PFS服务

ps -ef |grep pfsdaemon|grep -v grep #检查pfs进程


排雷2:

注意: 在最开始安装时PFS使用的磁盘我添加了一块10g大小的,在后面数据库初始化过程中会报错,在往PFS磁盘中拷贝文件的时候会缺少文件。前期规划尽量多预留空间,否则后面排错起来很耽误时间。(不该省的地儿别瞎省,领导我电脑配置还够用:D)


部分报错信息:



[PFSD_SDK INF Oct 23 09:07:53.221552][12735]pfsd_open 517: open /sdb/data//global/pg_control: no such file


可以先检查PFS目录下是否真的copy了如下文件,我之前的失败安装只拷贝成功了base和global:



pfs -C disk ls /sdb/data #查看PFS文件系统目录

Dir  1     768              Mon Nov  2 15:21:06 2020  pg_wal

Dir  1     640              Fri Oct 30 10:44:47 2020  base

Dir  1     9344             Fri Oct 30 10:44:53 2020  global

Dir  1     0                Fri Oct 30 10:44:54 2020  pg_tblspc

Dir  1     128              Fri Oct 30 10:44:54 2020  pg_logindex

Dir  1     0                Fri Oct 30 10:44:54 2020  pg_twophase

Dir  1     128              Fri Oct 30 10:44:54 2020  pg_xact

Dir  1     0                Fri Oct 30 10:44:54 2020  pg_commit_ts

Dir  1     256              Fri Oct 30 10:44:54 2020  pg_multixact

Dir  1     0                Fri Oct 30 10:44:54 2020  pg_csnlog

Dir  1     512              Fri Oct 30 10:44:59 2020  polar_fullpage

Dir  1     0                Fri Oct 30 10:45:01 2020  pg_replslot

File  1    226              Fri Oct 30 10:45:01 2020  polar_non_exclusive_backup_label

total 8192 (unit: 512Bytes)


注意: 如果有PFS报错可以查PFS相关运行日志。



/var/log/pfsd-sdb.log

/var/log/pfsd-sdb/pfsd.log


6、PolarDB-O初始化配置



su - polardb

initdb -D $PGDATA -E UTF8 --locale=C -U polardb


-E 参数指定数据库字符集,--locale 指定本地化参数,-U 指定初始化用户,其他的参数可以执行initdb --help 命令查看。


7、初始化PFS数据



sudo /usr/local/polardb_o_current/bin/polar-initdb.sh $PGDATA/ $PFSDIR/ disk


该步骤会将$PGDATA中polardb的一些初始化数据文件copy至$PFSDIR文件系统中保存。


注意: 可以验证下/sdb/data下文件是否copy成功后,再启动数据库。



sudo /usr/local/bin/pfs -C disk ls $PFSDIR

[PFS_TRACE_LOG] [19726   ] trace_init notify_sock_name: /var/run/polartrace/polartrace.sock, 11

[PFS_TRACE_LOG] [19726   ] pfs trace start flush thread [140025597523712]

Dir  1     640               Tue Nov  3 11:00:10 2020  base

Dir  1     9344              Tue Nov  3 11:00:14 2020  global

Dir  1     0                 Tue Nov  3 11:00:14 2020  pg_tblspc

Dir  1     256               Tue Nov  3 11:00:17 2020  pg_wal

Dir  1     128               Tue Nov  3 11:00:17 2020  pg_logindex

Dir  1     0                 Tue Nov  3 11:00:18 2020  pg_twophase

Dir  1     128               Tue Nov  3 11:00:18 2020  pg_xact

Dir  1     0                 Tue Nov  3 11:00:18 2020  pg_commit_ts

Dir  1     256               Tue Nov  3 11:00:19 2020  pg_multixact

Dir  1     0                 Tue Nov  3 11:00:19 2020  pg_csnlog

total 0 (unit: 512Bytes)


8、修改PolarDB-O配置文件


初始化数据库集群后,数据库的参数文件 postgresql.conf 文件中都是默认参数,用户可以根据自身需要进行修改,常用修改的参数如下:


listen_addresses = '*' # 监听所有连接

port = 5432 # 监听端口 (后文成为$port)

max_connections = 2048 # 最大连接数

unix_socket_directories = '.' # socket文件地址目录

timezone = 'UTC-8' # 时区

log_timezone = 'UTC-8' # 日志时区

log_destination = 'csvlog' # 日志文件格式

logging_collector = on

log_directory = 'polardb_log' # 日志存放目录

polar_enable_shared_storage_mode=on

polar_hostid=1

polar_datadir='/sdb/data/' # PFS目录

polar_disk_name='sdb' # PFS设备名称

polar_storage_cluster_name=disk # PFS设备类型

wal_sender_timeout=30min  #初始化备库过程中拉取wal日志进程超时设置


若修改postgresql.conf文件之前启动过数据库,确认$PGDATA/polar_node_static.conf是否存在,若存在则删除后再启动数据库。


以后每次修改postgresql.con文件中的polar_datadir、polar_disk_name、polar_hostid参数时,均需要删除$PGDATA/polar_node_static.conf文件再重启数据库确保修改后的参数生效。


9、修改pg_hba.conf访问控制文件


为了实现其他机器对PolarDB数据库的访问,还需要修改访问控制文件,即 pg_hba.conf,一般是放开所有的ipv4的访问,也可以根据安全要求指定ip。


尾部添加如下配置:



vi $PGDATA/pg_hba.conf

host all all 0.0.0.0/0 md5

host replication all 0.0.0.0/0 md5


10、启动数据库



pg_ctl start -D $PGDATA -l /tmp/logfile

tail -f /tmp/logfile  #查看数据库启动日志

pg_ctl stop -D $PGDATA #停库命令,此处不需要执行


11、进程检查


PolarDB-O数据库启动成功之后,会在数据库目录下生成一个postmaster.pid,其中第一行是PolarDB-O守护进程pid,用户可以通过ps -a|grep守护进程pid可以得到所有的PolarDB-O进程,其中有如下几类常见辅助进程。

  • /usr/local/polardb_o_current/bin/polar-postgres -D /data 为PolarDB- O 的守护进程;

  • postgres: logger 为PolarDB-O 的打印日志进程;

  • postgres: checkpointer 为PolarDB-O 的周期性检查点进程;

  • postgres: background writer 为PolarDB-O 的周期性刷脏进程;

  • postgres: walwriter 为PolarDB-O 的定期WAL 日志刷盘进程;

  • postgres: autovacuum launcher 为PolarDB-O 的自动清理调度进程;

  • postgres: stats collector 为PolarDB-O 的统计信息收集进程。


12、连接测试






请到「今天看啥」查看全文


推荐文章
AustinDatabases  ·  哎,马上删,马上
17 小时前
数据中心运维管理  ·  弱电智能化中究竟有多少个子系统?
3 天前
数据中心运维管理  ·  超大规模数据中心如何重新思考冷却效率
4 天前
数据中心运维管理  ·  锂电池火灾处理难度
3 天前
程序员的那些事  ·  面向对象:相知相惜,相互照顾,一起到老
7 年前