意大利欧冠直播

admin · 2004-10-01

  

  上一篇著作说道PostgreSQL 12 的源码摆设,这里咱们说一下PostgreSQl 12的主从流复制和归档装备。

   主从复制的两种体例 1) 基于文献的日记传递

  创修一个高可用性(HA)集群装备可采取陆续归档,集群中主办事器职业正在陆续归档形式下,备办事器职业正在陆续收复形式下(1台或众台可随时接收主办事器),备继续从主办事器读取WAL文献。陆续归档不用要对数据库外做任何修改,可有用下降拘束开支,对主办事器的机能影响也绝对较低。直接从一个数据库办事器挪动WAL记载到另一台办事器被称为日记传递,PostgreSQL经由过程一次一文献(WAL段)的WAL记载传输竣工了基于文献的日记传递。日记传递所需的带宽取遵照主办事器的事情率而改变;日记传递是异步的,即WAL记载是正在事情提交后才被传递,那末正在一个窗口期内要是主办事器爆发劫难性的生效则会招致数据失落,尚未被传递的事情将会被失落;数据失落窗口能够经由过程操纵参数archive_timeout实行限定,能够低至数秒,但同时会增长文献传递所需的带宽。archive_timeout强迫N秒今后实行一次归档,若树立太小,很速就会胜过wal_keep_segments 的值,招致数据遮盖失落,以是不要自觉树立。

   2)流复制

  PostgreSQL正在9.x以后引入了主从的流复制机制,所谓流复制,即是备办事器经由过程tcp流从主办事器中同步响应的数据,主办事器正在WAL记载发作时行将它们以流式传递给备办事器,而不用比及WAL文献被添补。默许景况下游复制是异步的,这类景况下主办事器上提交一个事情与该改变正在备办事器上变得可睹之间客观上存正在长久的耽误,但这类耽误比拟基于文献的日记传递办法还是要小得众,正在备办事器的才能餍足负载的条件下耽误寻常低于一秒;正在流复制中,备办事器比操纵基于文献的日记传递具备更小的数据失落窗口,不用要采取archive_timeout来缩减数据失落窗口;PostgreSQL 12入手下手,正在践诺经由过程流复制来装备主备数据库的时分,再也不必要装备分外装备recovery.conf文献了。取而代之的是正在备库情况的$PGDATA道途下装备一个standby.signal文献,防备该文献是一个一般的文本文献,实质为空。解析起来即是,该文献是一个标识文献。要是备库经由过程践诺pg_ctl promote晋升为主库的话,那末该文献将自愿消亡。

  防备:一起操纵都以postgres用户实行。

   装备主从流复制和归档 1)两台机械做免密登录

  咱们备份和复原过程当中所用的archive_co妹妹and和restore_co妹妹and号令都以postgres用户运转,以是咱们必要针对postgres用户竣工ssh无暗号登录。

  

#用postgres用户登录到主pgsql办事器ssh-keygen-trsa#一同回车scp/home/postgres/.ssh/id_rsa.pubpostgres@10.10.22.152:/home/postgres/.ssh/authorized_keys或许拷贝id_rsa.pub文献到从pgsql上,而后到从上践诺如下号令cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys#登录从pgsql办事器检查权限chmod700/home/postgres/.sshchmod600/home/postgres/.ssh/authorized_keys#测试登录sshpostgres@10.10.22.152#从pgsql库ssh-keygen-trsa#一同回车scp/home/postgres/.ssh/id_rsa.pubpostgres@10.10.22.151:/home/postgres/.ssh/authorized_keys#登录从pgsql办事器检查权限chmod700/home/postgres/.sshchmod600/home/postgres/.ssh/authorized_keys#测试登录sshpostgres@10.10.22.152

2)主库装备

#创修用户ceateuserreplicawithreplicationloginpasswordreplication;alteruserreplicawithpasswordreplication;#批改pg_hba.confhostreplicationreplica10.10.0.0/16md5#批改装备文献$vim/data/postgresql-12/data/postgresql.conf#监听完全IPlisten_addresses="0.0.0.0"#最大连结数,外传从机必要大于或即是该值max_connections=200#树立主pgsql为天生wal的主机,9.6入手下手没有hot_standby(热备形式)wal_level=replica#开启陆续归档archive_mode=on#归档号令。-o"StrictHostKeyCheckingno"效用是取缔第一次连结输入yes或许noarchive_co妹妹and=scp-o"StrictHostKeyCheckingno"%ppgslave.ptcloud.t.home:/data/postgresql-12/archive/%f#archive_co妹妹and=test!-f/data/postgresql-12/archive/%f&&scp%ppgslave.ayunw.cn:/data/postgresql-12/archive/%farchive_cleanup_co妹妹and=/usr/local/postgresql-12/bin/pg_archivecleanup-d/data/postgresql-12/data/pg_wal%r>>/data/postgresql-12/log/archive_cleanup.log2>&1#最众有16个流复制连结。max_wal_senders=16#树立流办事保存的最众wal(老版本叫xlog)文献个数wal_keep_segments=256#数据堆清算的最大过程autovacuum_max_workers=2max_worker_processes=16max_logical_replication_workers=10#日记树立log_destination=stderrlogging_collector=onlog_directory=/data/postgresql-12/loglog_filename=postgresql-%w.loglog_file_mode=0600log_truncate_on_rotation=onlog_rotation_age=1dlog_rotation_size=1GBlog_min_messages=error#践诺胜过300ms的sql语句会记载到pgsql的日记文献,雷同于慢日记#通常树立300ms就好,慢日记会打到pgsql日记文献,便利查成绩log_min_duration_statement=300log_checkpoints=onlog_connections=onlog_disconnections=onlog_error_verbosity=verboselog_hostname=onlog_line_prefix=%m[%p]log_lock_waits=onlog_statement=ddl#主库树立完结后,必要root用户重启PG办事技能使以上装备失效systemctldaemon-reloadsystemctlrestartpostgresqlsu-postgrespsql#主库创修具备流复制权限的用户replicaCREATEuserreplicaloginreplicationencryptedpasswordreplication;postgres=#du;ListofrolesRolename

3)从库装备

#放手从库,删除从pgsql数据目次中的数据#备份数据目次mkdir-p/opt/pgsqldata_backupmv/data/postgresql-12/data/*/opt/pgsqldata_backuppg_ctl-D/data/postgresql-12/data-llogfilestoprm-rf/data/postgresql-12/data/*

4)从库做底子备份

 

  从主办事器上copy数据到从办事器,这一步叫做底子备份

  

su-postgres$pg_basebackup-h10.10.22.151-p5432-Ureplica-W-R-Fp-Xs-Pv-D/data/postgresql-12/data/Password:pg_basebackup:initiatingbasebackup,waitingforcheckpointtocompletepg_basebackup:checkpointcompletedpg_basebackup:write-aheadlogstartpoint:0/8000028ontimeline1pg_basebackup:startingbackgroundWALreceiverpg_basebackup:createdtemporaryreplicationslot"pg_basebackup_13370"31384/31384kB(100%),1/1tablespacepg_basebackup:write-aheadlogendpoint:0/8000100pg_basebackup:waitingforbackgroundprocesstofinishstreaming...pg_basebackup:syncingdatatodisk...pg_basebackup:basebackupcompleted

 

  参数讲明:

   -h 启动的主库数据库地点 -p 主库数据库端口 -U 流复制用户 -W 操纵暗号验证,要用replica的暗号 -Fp 备份输出平常的数据库目次 -Xs 操纵流复制的办法实行复制 -Pv 输出复制经过的注意音信 -R 为备库创修recovery.conf文献。不过pgsql 10今后的新版本的pgsql不用要这个文献了。 -D 指定创修的备库的数据库目次 5) 装备从库的装备文献

  防备:这时,从库数据目次下的postgresql.conf文献是方才从主的pgsql上同步过去的,并非pgsql的装备文献,你必要将本来老的从库上的装备文献拿过去用。

  

$cd/data/postgresql-12/data/$mvpostgres.confpostgres.conf_master.bak$cp/opt/pgsqldata_backup/postgres.confpostgres.conf$vim/data/postgresql-12/data/postgres.conf#监听完全IPlisten_addresses="0.0.0.0"#最大连结数,从pgsql必要大于或即是主的值max_connections=300restore_co妹妹and=cp/data/postgresql-12/archive/%f%parchive_cleanup_co妹妹and=/usr/local/postgresql-12/bin/pg_archivecleanup-d/data/postgresql-12/data/pg_wal%r&&/usr/local/postgresql-12/bin/pg_archivecleanup-d/data/postgresql-12/archive%r>>/data/postgresql-12/log/archive_cleanup.log2>&1#9.6入手下手没有hot_standby(热备形式)wal_level=replica#最众有16个流复制连结。max_wal_senders=16#树立比主库大,能够树立为2倍的数值wal_keep_segments=512max_logical_replication_workers=10autovacuum_max_workers=2#和主的值维持类似便可max_worker_processes=16#讲明这台机械不但用于数据归档,还能够用于数据盘问hot_standby=on#流备份的最大耽误期间max_standby_streaming_delay=30s#向主机报告本机状况的距离期间wal_receiver_status_interval=10s#闪现毛病复制,向主机反应hot_standby_feedback=on#日记树立log_destination=stderrlogging_collector=onlog_directory=/data/postgresql-12/loglog_filename=postgresql-%w.loglog_file_mode=0600log_truncate_on_rotation=onlog_rotation_age=1dlog_rotation_size=1GBlog_min_messages=error#践诺胜过300ms的sql语句会被记载到pgsql的日记文献中log_min_duration_statement=300log_checkpoints=onlog_connections=onlog_disconnections=onlog_error_verbosity=verboselog_hostname=onlog_line_prefix=%m[%p]log_lock_waits=onlog_statement=ddl

6) 重启从库

 

  要包管从库的数据目次是postgres属主和属组,且权限为0700

  

su-postgrespg_ctl-D/data/postgresql-12/datarestart

验证pgsql主从

#登录主库su-postgrespostgres=#psqlpostgres=#selectclient_addr,sync_statefrompg_stat_replication;client_addr

 

  以上讲明10.10.22.152办事器是从节点,正在接纳异步流复制

  到这里,主流复制和归档装备完结。

  本文转载自微信群众号「运维开垦故事」

  

文章推荐:

cba大白熊是谁

直播欧冠预选赛赛程

大地欧洲杯直播

cctv怎么看欧洲杯直播表