澳门银河三公
zh皇冠源码上一篇著作说说念PostgreSQL 12 的源码部署,这里咱们说一下PostgreSQl 12的主从流复制和存档竖立。
皇冠体育hg86a
主从复制的两种神态 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_command和restore_command大呼都以postgres用户运行,因此咱们需要针对postgres用户终了ssh无密码登录。
# 澳门银河三公用postgres用户登录到主pgsql作事器 ssh-keygen -t rsa # 一皆回车 scp /home/postgres/.ssh/id_rsa.pub postgres@10.10.22.152:/home/postgres/.ssh/authorized_keys 大要拷贝id_rsa.pub文献到从pgsql上,欧博平台然后到从上实践以下大呼 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 登录从pgsql作事器检察权限 chmod 700 /home/postgres/.ssh chmod 600 /home/postgres/.ssh/authorized_keys # 测试登录 ssh postgres@10.10.22.152 # 从pgsql库 ssh-keygen -t rsa # 一皆回车 scp /home/postgres/.ssh/id_rsa.pub postgres@10.10.22.151:/home/postgres/.ssh/authorized_keys # 登录从pgsql作事器检察权限 chmod 700 /home/postgres/.ssh chmod 600 /home/postgres/.ssh/authorized_keys # 测试登录 ssh postgres@10.10.22.1522)主库竖立
# 创建用户 ceate user replica with replication login password 'replication'; alter user replica with password 'replication'; # 修改pg_hba.conf host replication replica 10.10.0.0/16 md5 # 修改竖立文献 $ vim /data/postgresql-12/data/postgresql.conf # 监听悉数IP listen_addresses = "0.0.0.0" # 最大麇集数,听说从机需要大于或等于该值 max_connections = 200 # 开辟主pgsql为生成wal的主机,9.6运转莫得hot_standby(热备样子) wal_level = replica # 开启连气儿存档 archive_mode = on #存档大呼。-o "StrictHostKeyChecking no" 作用是取消第一次麇集输入yes大要no archive_command = 'scp -o "StrictHostKeyChecking no" %p pgslave.ptcloud.t.home:/data/postgresql-12/archive/%f' # archive_command = 'test ! -f /data/postgresql-12/archive/%f && scp %p pgslave.ayunw.cn:/data/postgresql-12/archive/%f' archive_cleanup_command = '/usr/local/postgresql-12/bin/pg_archivecleanup -d /data/postgresql-12/data/pg_wal %r >> /data/postgresql-12/log/archive_cleanup.log 2>&1' # 最多有16个流复制麇集。 max_wal_senders = 16 # 开辟流作事保留的最多wal(老版块叫xlog)文献个数 wal_keep_segments = 256 # 数据堆算帐的最大程度 autovacuum_max_workers = 2 max_worker_processes = 16 max_logical_replication_workers = 10 # 日记开辟 log_destination = 'stderr' logging_collector = on log_directory = '/data/postgresql-12/log' log_filename = 'postgresql-%w.log' log_file_mode = 0600 log_truncate_on_rotation = on log_rotation_age = 1d log_rotation_size = 1GB log_min_messages = error # 实践逾越300ms的sql语句会记载到pgsql的日记文献,通常于慢日记 # 一般开辟300ms就好,慢日记会打到pgsql日记文献,便捷查问题 log_min_duration_statement = 300 log_checkpoints = on log_connections = on log_disconnections = on log_error_verbosity = verbose log_hostname = on log_line_prefix = '%m [%p] ' log_lock_waits = on log_statement = 'ddl' # 主库开辟完成后,需要root用户重启PG作事才能使以上竖立顺利 systemctl daemon-reload systemctl restart postgresql su - postgres psql # 主库创建具有流复制权限的用户replica CREATE user replica login replication encrypted password 'replication'; postgres=# \du; List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} replica | Replication | {} # 主库增多主从复制的信任造访(pg_hba.conf) $ vim /data/postgresql-12/data/pg_hba.conf # replication privilege. host replication replica 10.10.0.0/16 trust # 重启作事 systemctl daemon-reload systemctl restart postgresql systemctl status postgresql3)从库竖立
# 住手从库,删除从pgsql数据目次中的数据 # 备份数据目次 mkdir -p /opt/pgsqldata_backup mv /data/postgresql-12/data/* /opt/pgsqldata_backup pg_ctl -D /data/postgresql-12/data -l logfile stop rm -rf /data/postgresql-12/data/*4)从库作念基础备份
从主作事器上copy数据到从作事器,这一步叫作念“基础备份”
今年是中柬建交65周年和“中柬友好年”,中国是洪玛奈就任柬埔寨首相后第一个进行双边访问的国家。北京外国语大学柬埔寨研究中心主任顾佳赟表示,洪玛奈首相就任后选择中国进行首次双边访问,透射出三层含义:一是赓续中柬传统友好、“铁杆”友谊的决心;二是推进新时代中柬命运共同体走深走实的诚意;三是中国在柬埔寨对外合作版图中的重要地位。
德国一直奉行一个中国政策,普吕特纳再次强调了这一立场。他表示,德中双方期待着未来的政府磋商,并将加紧推进各项工作,愿意与中国加强对话与合作。这一消息让人们对中德关系的未来发展感到乐观。
美高梅线上娱乐官网su - postgres $ pg_basebackup -h 10.10.22.151 -p 5432 -U replica -W -R -Fp -Xs -Pv -D /data/postgresql-12/data/ Password: pg_basebackup: initiating base backup, waiting for checkpoint to complete pg_basebackup: checkpoint completed pg_basebackup: write-ahead log start point: 0/8000028 on timeline 1 pg_basebackup: starting background WAL receiver pg_basebackup: created temporary replication slot "pg_basebackup_13370" 31384/31384 kB (100%), 1/1 tablespace pg_basebackup: write-ahead log end point: 0/8000100 pg_basebackup: waiting for background process to finish streaming ... pg_basebackup: syncing data to disk ... pg_basebackup: base backup completed
参数施展:
-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/ $ mv postgres.conf postgres.conf_master.bak $ cp /opt/pgsqldata_backup/postgres.conf postgres.conf $ vim /data/postgresql-12/data/postgres.conf # 监听悉数IP listen_addresses = "0.0.0.0" # 最大麇集数,从pgsql需要大于或等于主的值 max_connections = 300 restore_command = 'cp /data/postgresql-12/archive/%f %p' archive_cleanup_command = '/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.log 2>&1' # 9.6运转莫得hot_standby(热备样子) wal_level = replica # 最多有16个流复制麇集。 max_wal_senders = 16 # 开辟比主库大,不错开辟为2倍的数值 wal_keep_segments = 512 max_logical_replication_workers = 10 autovacuum_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 = 'stderr' logging_collector = on log_directory = '/data/postgresql-12/log' log_filename = 'postgresql-%w.log' log_file_mode = 0600 log_truncate_on_rotation = on log_rotation_age = 1d log_rotation_size = 1GB log_min_messages = error # 实践逾越300ms的sql语句会被记载到pgsql的日记文献中 log_min_duration_statement = 300 log_checkpoints = on log_connections = on log_disconnections = on log_error_verbosity = verbose log_hostname = on log_line_prefix = '%m [%p] ' log_lock_waits = on log_statement = 'ddl'6) 重启从库
要保证从库的数据目次是postgres属主和属组,且权限为0700
欧博游戏平台官方网站众所周知,体育明星们在场上有着卓越的表现,但他们的私生活却总是充满了各种八卦。最近,一位曾经效力于切尔西队的球星,因涉嫌在一家赌场参与非法赌博而遭到逮捕。这个消息震惊了他的粉丝们,也引发了一场围绕足球明星涉赌问题的讨论。皇冠备用网址su - postgres pg_ctl -D /data/postgresql-12/data restart考据pgsql主从
# 登录主库 su - postgres postgres=# psql postgres=# select client_addr,sync_state from pg_stat_replication; client_addr | sync_state --------------+------------ 10.10.22.152 | async (1 row) select pid, usename, application_name, client_addr, backend_start, client_port, state, sync_state from pg_stat_replication; pid | usename | application_name | client_addr | backend_start | client_port | state | sync_state -------+---------+------------------+-------------+-------------------------------+-------------+-----------+------------ 28356 | repl | walreceiver | 10.10.22.152 | 2021-12-30 17:00:59.357653+08 | 48660 | streaming | async (1 row)
以上施展10.10.22.152作事器是从节点,在吸收异步流复制
博彩资讯到这里,主流复制和存档竖立完成。
皇冠客服飞机:@seo3687本文转载自微信公众号「运维开辟故事」
排列三炸金花信用卡