Ikoula Corporate
Espace client
Support
Blog
Wiki
Site web Ikoula
查看“PostgreSQL 复制奴隶多”的源代码
←
PostgreSQL 复制奴隶多
Jump to navigation
Jump to search
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
<span data-link_translate_de_title="PostgreSQL Replikation Sklaven multi" data-link_translate_de_url="PostgreSQL+Replikation+Sklaven+multi"></span>[[:de:PostgreSQL Replikation Sklaven multi]][[de:PostgreSQL Replikation Sklaven multi]] <span data-link_translate_nl_title="PostgreSQL replicatie slaven multi" data-link_translate_nl_url="PostgreSQL+replicatie+slaven+multi"></span>[[:nl:PostgreSQL replicatie slaven multi]][[nl:PostgreSQL replicatie slaven multi]] <span data-link_translate_it_title="PostgreSQL replica schiavi multi" data-link_translate_it_url="PostgreSQL+replica+schiavi+multi"></span>[[:it:PostgreSQL replica schiavi multi]][[it:PostgreSQL replica schiavi multi]] <span data-link_translate_pt_title="Multi de escravos de replicação PostgreSQL" data-link_translate_pt_url="Multi+de+escravos+de+replica%C3%A7%C3%A3o+PostgreSQL"></span>[[:pt:Multi de escravos de replicação PostgreSQL]][[pt:Multi de escravos de replicação PostgreSQL]] <span data-link_translate_es_title="PostgreSQL replicación esclavos multi" data-link_translate_es_url="PostgreSQL+replicaci%C3%B3n+esclavos+multi"></span>[[:es:PostgreSQL replicación esclavos multi]][[es:PostgreSQL replicación esclavos multi]] <span data-link_translate_fr_title="Replication PostgreSQL multi slaves" data-link_translate_fr_url="Replication_PostgreSQL_multi_slaves"></span>[[:fr:Replication PostgreSQL multi slaves]][[fr:Replication PostgreSQL multi slaves]] <br /> 这篇文章是从由软件进行自动翻译。你可以[[:fr:Replication PostgreSQL multi slaves|看到这篇文章的源代码]]<br /><span data-translate="fr"></span> == 介绍 | _._。 此页处理异步流 PostgreSQL 复制同一个主节点和两个奴隶的实施。我们斯拉夫语将作为热备用配置,即是说,它将可能执行查询 | _._。 只读模式 | _._。 就这些了。 == 此执行上下文 | _._。 我们有 | _._。 Debian 服务器 | _._。 更新 | _._。 | _._。 就是我们的主人 | _._。 | _._。 将一个奴隶 | _._。 | _._。 将第二个奴隶 | _._。 表示订单将会以根时它们前面的 | _._。 以及当它们前面的 系统用户 | _._。 PostgreSQL 和预配置的所有三个服务器安装: _ ! _ | 这一部分的所有订单都都要在每个服务器。 (作为第一步,它建议要有一个文件 | _._。 填充到每个服务器,这样连接: _ ! _ | 通过调整与您自己的服务器的主机名和 ip 地址 | _._。 添加归档 APT PostgreSQL | _._。 我们导入公钥的这笔存款 | _._。 我们更新 APT 缓存,以顾及存款 | _._。 我们安装 ql 包 | _._。 安装最新的稳定版本是 | _._。 在写这篇文章的时间 | _._。 它设置密码 | _._。 他的选择但安全 | _._。 并生成 ssh 密钥对 | _._。 没有密码 | _._。 为系统 用户 | _._。 我们复制用户 以来和之间的每个服务器的公共 ssh 密钥 | _._。 以来的第一个服务器 | _._。 Postgres | _._。 在我们的例子: _ ! _ | 第二个 | _._。 Postgres | _._。 对我们来说 | _._。 和 troisiseme | _._。 Postgres | _._。 从第二到第一和第三个服务器 | _._。 从第三到第一和第二个服务器 | _._。 大师的配置: _ ! _ | 做只高手: _ ! _ | Postgres | _._。 在我们的例子: _ ! _ | 我们创建的角色 | _._。 用户复制: _ ! _ | 注意: _ ! _ | 我们定义的连接限制 | _._。 因为我们有 | _._。 斯拉夫语 | _._。 我们编辑主配置文件的 ql | _._。 设置下列准则: _ ! _ | 注意: _ ! _ | 我们激活存档到我们第二个服务器 | _._。 自定义您的服务器的 IP | _._。 为更多的预防措施,但这不是一项义务。我们还定义参数 hot_standby,应贬忽略在主机上,在这种情况下它的好,将来的奴隶。) 它现在发布 postgresql 身份验证文件 | _._。 要添加我们复制的用户授权,从我们斯拉夫语或以下行在文件末尾连接: _._ | 请调整此线根据您复制和网络的用户的名称 | _._。 或各自的 ip 地址: _ ! _ | 你斯拉夫语的 | _._。 重新启动 postgresql 服务,考虑到我们的配置 | _._。 在根 | _._。 这将确保该服务已成功启动 | _._。 斯拉夫语配置 | _._。 在第一个奴隶 | _._。 让我们停止 postgresql 服务 | _._。 我们编辑主配置文件的 postgresql | _._。 要配置相同准则作为主人,由裁缝只是 IP 地址的第一个奴隶的第二个奴隶在档案 rsync 命令如果你想激活它要么 | _._。 它现在发布 postgresql 身份验证文件 | _._。 若要添加我们复制用户的授权,从我们其他的服务器进行连接: _ ! _ | 它会做,万一这个奴隶应晋升大师 | _._。 注意: _ ! _ | 带有这种配置类似于我们的主人允许轻松地宣传这个奴隶作为大师以备不时之需。 '''对于下面的操作,作为登录用户系统 postgres | _._。 我们创建的目的地的沃尔玛的主档案目录 | _._。 我们删除 postgresql 数据目录 | _._。 它使基准备份 | _._。 自定义的 ip,你的主人和复制您用户的名称 | _ ! _ | 将要求您提供您的复制的用户的密码 | _._。 通过创建文件配置复制 | _._。 使用以下参数: _ ! _ | 注意: _ ! _ | 触发器文件是我们当我们想要他的奴隶停止复制时创建的文件,并开始接受圣经 》,是当我们想要促进作为主节点。提升他的主人的奴隶崩溃之前, 请确保初始主机上来 no,以避免任何腐败。 :''' 根,我们回去,我们启动服务: _ ! _ | 这将确保该服务已成功启动 | _._。 如果我们连接到我们的主人,我们已经可以检查我们的主和第一个奴隶之间的复制是功能 | _._。 它将连接到我们的主,我们在 postgres 系统用户连接 | _._。 然后我们将连接到 postgresql | _._。 我们激活扩展的显示和我们检查我们的复制 | _._。 我们与我们的第一个奴隶的异步流复制是制作精良。在这一点上我们有一位主复制 | _._。 经典的奴隶 | _._。 一个单一的奴隶异步流 | _._。 关于第二个奴隶 | _._。 重复相同显然适应其在顺序检查在主配置文件中的文件 recovery.conf 和 ip 地址的主机名,如果你也想要这第二个奴隶上启用存档的第一个奴隶干了什么。 3 审计和测试我们多掌握复制斯拉夫人 | _._。 它将连接到主和您登录用户 postgres | _ ! _ | 然后我们将连接到 postgresql | _._。 我们激活扩展的显示和我们检查我们的复制 | _._。 我们有太多我们 | _._。 我们两个的斯拉夫服务器复制 | _._。 Postgres | _._。 和 postgres | _._。 始终连接到主机上的 postgresql,创建一个测试数据库 | _._。 | _._。 | _._。 要确认复制是功能 | _._。 检查数据库是好复制上我们 | _._。 斯拉夫语 | _._。 我们在我们的主人创建的数据库,所以好自动复制上我们两个的斯拉夫语。 8 (要删除它,自从掌握) : Postgres01 (10.1.1.75) : Postgres02 (10.1.1.90) : Postgres03 (10.1.1.199) : "'''#'''" "'''$'''". == == /etc/hosts () : <pre> # cat /etc/hosts 127.0.0.1 localhost 10.1.1.75 postgres01 10.1.1.90 postgres02 10.1.1.199 postgres03 </pre> : <syntaxhighlight lang="bash"> # echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/postgres.list </syntaxhighlight> : <syntaxhighlight lang="bash"> # gpg --keyserver pgpkeys.mit.edu --recv-key 7FCC7D46ACCC4CF8 && gpg -a --export 7FCC7D46ACCC4CF8 | apt-key add - gpg: directory `/root/.gnupg' created gpg: new configuration file `/root/.gnupg/gpg.conf' created gpg: WARNING: options in `/root/.gnupg/gpg.conf' are not yet active during this run gpg: keyring `/root/.gnupg/secring.gpg' created gpg: keyring `/root/.gnupg/pubring.gpg' created gpg: requesting key ACCC4CF8 from hkp server pgpkeys.mit.edu gpg: /root/.gnupg/trustdb.gpg: trustdb created gpg: key ACCC4CF8: public key "PostgreSQL Debian Repository" imported gpg: no ultimately trusted keys found gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1) OK </syntaxhighlight> : <syntaxhighlight lang="bash"> # apt-get update </syntaxhighlight> ( 9.5 ) : <syntaxhighlight lang="bash"> # apt-get install postgresql </syntaxhighlight> () () : <syntaxhighlight lang="bash"> # passwd postgres </syntaxhighlight> <syntaxhighlight lang="bash"> # su - postgres </syntaxhighlight> <syntaxhighlight lang="bash"> $ ssh-keygen </syntaxhighlight> : (postgres01 ) (postgres02 ) (postgres03) : <syntaxhighlight lang="bash"> root@postgres01:~# su - postgres </syntaxhighlight> <syntaxhighlight lang="bash"> postgres@postgres01:~$ ssh-copy-id postgres02 </syntaxhighlight> <syntaxhighlight lang="bash"> postgres@postgres01:~$ ssh-copy-id postgres03 </syntaxhighlight> : <syntaxhighlight lang="bash"> root@postgres02:~# su - postgres </syntaxhighlight> <syntaxhighlight lang="bash"> postgres@postgres02:~$ ssh-copy-id postgres01 </syntaxhighlight> <syntaxhighlight lang="bash"> postgres@postgres02:~$ ssh-copy-id postgres03 </syntaxhighlight> : <syntaxhighlight lang="bash"> root@postgres03:~# su - postgres </syntaxhighlight> <syntaxhighlight lang="bash"> postgres@postgres03:~$ ssh-copy-id postgres01 </syntaxhighlight> <syntaxhighlight lang="bash"> postgres@postgres03:~$ ssh-copy-id postgres02 </syntaxhighlight> == == (postgres01 ) : / : <syntaxhighlight lang="bash"> # su - postgres </syntaxhighlight> <syntaxhighlight lang="bash"> $ psql -c "CREATE USER repuser REPLICATION LOGIN CONNECTION LIMIT 2 ENCRYPTED PASSWORD '<mot de passe repuser>';" </syntaxhighlight> '' : 2 2 '' /etc/postgresql/9.5/main/postgresql.conf : <syntaxhighlight lang="bash"> listen_addresses = '*' wal_level = hot_standby archive_mode = on archive_command = 'rsync -av %p postgres@<ip du premier slave>:/var/lib/postgresql/wal_archive/%f' max_wal_senders = 2 wal_keep_segments = 256 hot_standby = on </syntaxhighlight> '': () '' /etc/postgresql/9.5/main/pg_hba.conf : <syntaxhighlight lang="bash"> hostssl replication repuser <ip du réseau de vos serveurs>/24 md5 </syntaxhighlight> '' () '' () : <syntaxhighlight lang="bash"> # systemctl restart postgresql </syntaxhighlight> : <syntaxhighlight lang="bash"> root@postgres01:~# systemctl status postgresql ● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled) Active: active (exited) since Thu 2016-06-02 12:06:28 CEST; 22s ago Process: 77056 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 77056 (code=exited, status=0/SUCCESS) </syntaxhighlight> <syntaxhighlight lang="bash"> root@postgres01:~# ps -u postgres u USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND postgres 77038 0.0 4.4 227300 21836 ? S 12:06 0:00 /usr/lib/postgresql/9.5/bin/postgres -D /var/lib/postgresql/9. postgres 77040 0.0 0.8 227300 4160 ? Ss 12:06 0:00 postgres: checkpointer process postgres 77041 0.0 1.0 227300 4968 ? Ss 12:06 0:00 postgres: writer process postgres 77042 0.0 1.7 227300 8776 ? Ss 12:06 0:00 postgres: wal writer process postgres 77043 0.0 1.3 227728 6708 ? Ss 12:06 0:00 postgres: autovacuum launcher process postgres 77044 0.0 0.6 82244 3392 ? Ss 12:06 0:00 postgres: archiver process postgres 77045 0.0 0.8 82244 4244 ? Ss 12:06 0:00 postgres: stats collector process </syntaxhighlight> == == === === : <syntaxhighlight lang="bash"> # systemctl stop postgresql </syntaxhighlight> /etc/postgresql/9.5/main/postgresql.conf : <syntaxhighlight lang="bash"> listen_addresses = '*' wal_level = hot_standby archive_mode = on archive_command = 'rsync -av %p postgres@<ip du second slave>:/var/lib/postgresql/wal_archive/%f' max_wal_senders = 2 wal_keep_segments = 256 hot_standby = on </syntaxhighlight> /etc/postgresql/9.5/main/pg_hba.conf () : <syntaxhighlight lang="bash"> hostssl replication repuser <ip du réseau de vos serveurs>/24 md5 </syntaxhighlight> '' : '' : <syntaxhighlight lang="bash"> # su – postgres </syntaxhighlight> : <syntaxhighlight lang="bash"> $ mkdir /var/lib/postgresql/wal_archive </syntaxhighlight> : <syntaxhighlight lang="bash"> $ rm -rf /var/lib/postgresql/9.5/main </syntaxhighlight> () : <syntaxhighlight lang="bash"> $ pg_basebackup -h <ip de votre master> -D /var/lib/postgresql/9.5/main -U repuser -v -P --xlog </syntaxhighlight> /var/lib/postgresql/9.5/main/recovery.conf : <syntaxhighlight lang="bash"> standby_mode = on primary_conninfo = 'host=<ip de votre master> port=5432 user=repuser password=<mot de passe de repuser> sslmode=require application_name=<hostname de votre slave>' trigger_file = '/var/lib/postgresql/9.5/postgres.trigger' </syntaxhighlight> '' : '' : <syntaxhighlight lang="bash"> # systemctl start postgresql </syntaxhighlight> : <syntaxhighlight lang="bash"> # systemctl status postgresql ● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled) Active: active (exited) since Thu 2016-06-02 12:53:42 CEST; 1min 6s ago Process: 8894 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 8894 (code=exited, status=0/SUCCESS) </syntaxhighlight> <syntaxhighlight lang="bash"> # ps -u postgres u USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND postgres 8878 0.0 4.4 227308 21892 ? S 12:53 0:00 /usr/lib/postgresql/9.5/bin/postgres -D /var/lib/postgresql/9. postgres 8879 0.0 1.1 227376 5700 ? Ss 12:53 0:00 postgres: startup process recovering 00000001000000000000000 postgres 8880 0.0 0.8 227308 4140 ? Ss 12:53 0:00 postgres: checkpointer process postgres 8881 0.0 1.0 227308 5236 ? Ss 12:53 0:00 postgres: writer process postgres 8882 0.0 0.6 82252 3316 ? Ss 12:53 0:00 postgres: stats collector process postgres 8883 0.0 1.7 238064 8520 ? Ss 12:53 0:00 postgres: wal receiver process streaming 0/30003E0 </syntaxhighlight> : : <syntaxhighlight lang="bash"> # su - postgres </syntaxhighlight> : <syntaxhighlight lang="bash"> $ psql </syntaxhighlight> : <syntaxhighlight lang="bash"> postgres=# \x Expanded display is on. </syntaxhighlight> <syntaxhighlight lang="bash"> postgres=# select * from pg_stat_replication; -[ RECORD 1 ]----+------------------------------ pid | 78879 usesysid | 16384 usename | repuser application_name | postgres02 client_addr | 10.1.1.90 client_hostname | client_port | 49009 backend_start | 2016-06-02 12:53:36.641823+02 backend_xmin | state | streaming sent_CRElocation | 0/30004C0 write_location | 0/30004C0 flush_location | 0/30004C0 replay_location | 0/30004C0 sync_priority | 0 sync_state | async </syntaxhighlight> / () === === == == : <syntaxhighlight lang="bash"> # su – postgres </syntaxhighlight> : <syntaxhighlight lang="bash"> $ psql </syntaxhighlight> : <syntaxhighlight lang="bash"> postgres=# \x Expanded display is on. </syntaxhighlight> <syntaxhighlight lang="bash"> postgres=# select * from pg_stat_replication; -[ RECORD 1 ]----+------------------------------ pid | 78879 usesysid | 16384 usename | repuser application_name | postgres02 client_addr | 10.1.1.90 client_hostname | client_port | 49009 backend_start | 2016-06-02 12:53:36.641823+02 backend_xmin | state | streaming sent_location | 0/5000140 write_location | 0/5000140 flush_location | 0/5000140 replay_location | 0/5000140 sync_priority | 0 sync_state | async -[ RECORD 2 ]----+------------------------------ pid | 82725 usesysid | 16384 usename | repuser application_name | postgres03 client_addr | 10.1.1.199 client_hostname | client_port | 51754 backend_start | 2016-06-02 14:31:43.759683+02 backend_xmin | state | streaming sent_location | 0/5000140 write_location | 0/5000140 flush_location | 0/5000140 replay_location | 0/5000140 sync_priority | 0 sync_state | async </syntaxhighlight> 2 (postgres02 03). (ex : checkrep) : <syntaxhighlight lang="bash"> postgres=# CREATE DATABASE checkrep; </syntaxhighlight> 2 : <syntaxhighlight lang="bash"> root@postgres02:~# su - postgres </syntaxhighlight> <syntaxhighlight lang="bash"> postgres@postgres02:~$ psql psql (9.5.3) Type "help" for help. postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- checkrep | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) </syntaxhighlight> <syntaxhighlight lang="bash"> root@postgres03:~# su - postgres postgres@postgres03:~$ psql psql (9.5.3) Type "help" for help. postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- checkrep | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) </syntaxhighlight> : <syntaxhighlight lang="bash"> postgres=# DROP DATABASE checkrep; </syntaxhighlight> [[Category:PostgreSQL]] [[Category:Linux]] <br /> <comments />
返回至
PostgreSQL 复制奴隶多
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息
投稿
fr-wiki.ikoula.com
en-wiki.ikoula.com
es-wiki.ikoula.com
it-wiki.ikoula.com
nl-wiki.ikoula.com
de-wiki.ikoula.com
pt-wiki.ikoula.com
ru-wiki.ikoula.com
pl-wiki.ikoula.com
ro-wiki.ikoula.com
ja-wiki.ikoula.com
zh-wiki.ikoula.com
he-wiki.ikoula.com
ar-wiki.ikoula.com