Postgresql数据库主从备份教程


数据库主从热备

数据库安装

1.安装yum源

    打开https://yum.postgresql.org/repopackages.php ,找到自己需要的版本,右键复制链接地址。


    不放心是否复制成功的话可以粘贴出来看看。

    以root模式进入CentOS7,输入:yum install + 刚刚复制的链接

    回车。


    输入:y,回车。


2.安装PostgreSQL

    输入:yum install -y postgresql94-server postgresql94-contrib

    回车。(如果使用其他版本的PostgreSQL则需要把其中的两个94换成对应的数字)

    输入y,回车。


    输入:/usr/pgsql-9.4/bin/postgresql94-setup initdb

    回车,初始化数据库。(如果使用其他版本的PostgreSQL则需要把其中的9.4和94换成对应的数字)


    (如果未安装firewalld防火墙可跳过下面两步)

    输入:firewall-cmd --add-service=postgresql --permanent

    回车,开放防火墙。

    输入:firewall-cmd –reload

    回车,重启防火墙。

3. 修改默认PostgreSQL用户密码

    PostgreSQL安装后会创建一个用户,名为postgres。

    输入:su – postgres

    回车,切换至用户。

    输入:psql -U postgres

    回车,登录数据库。

    输入:ALTER USER postgres with encrypted password ‘abc123’;

    (不要漏了“;”)回车,设置默认用户postgre的密码,此处密码为abc123,可自行修改。

    输入:\q

    回车, 退出数据库。

    输入:exit

    回车,退出用户。


4. 配置远程访问

    输入:vi /var/lib/pgsql/9.4/data/postgresql.conf

    回车,进入文档内容。(如果使用其他版本的PostgreSQL则需要把其中的9.4换成对应的版本)

    光标下翻,找到listen_addresses。


    按 i 键进入“插入编辑模式”,去掉“listen_address”前面的 #,使该配置参数起效

    如果想对所有IP开放,则将 localhost 改为 * 即可

    如果想仅对部分IP开放,多个IP之间用 , (逗号+空格)隔开。


    编辑完成后,按Esc键,输入::wq

    回车,“保存退出”文档。

    输入:vi /var/lib/pgsql/9.4/data/pg_hba.conf

    回车,进入文档内容。(如果使用其他版本的PostgreSQL则需要把其中的9.4换成对应的版本)

    将光标移至底部。


    按 i 键进入“插入编辑模式”,在IPv4 local connections下方添加允许连接的IP。

    如果想允许所有IPv4地址,则加入一行:host all all 0.0.0.0/0 md5

    IPv6方法类似。


    编辑完成后,按Esc键,输入::wq

    回车,“保存退出”文档。

    输入:systemctl restart postgresql-9.4.service

    回车,重启postgressql服务。(如果使用其他版本的PostgreSQL则需要把其中的9.4换成对应的   版    本)

    此时postgreSQL数据库安装成功,用可视化工具连接一下吧。


PostgreSQL主从流复制部署

172.16.125.201 部署主服务器

 172.16.125.200 部署从服务器

主服务器配置

    1.首先需要创建一个数据库用户进行主从同步。创建用户replica,并赋予登录和复制的权限。

    输入:su – postgres

    回车,切换至用户。

    输入:psql -U postgres

    回车,登录数据库。

    输入:CREATE ROLE replica login replication encrypted password ‘replica’;

    2.修改pg_hba.conf,允许replica用户来同步。

    输入:vi /var/lib/pgsql/9.4/data/pg_hba.conf

    回车,进入文档内容。

    按 i 键进入“插入编辑模式”,在IPv4 local connections下方增加两行配置。

    允许200连接到主服务器:

    host all all 172.16.125.200/32 trust

    允许200使用replica用户来复制:

    host replication replica 172.16.125.200/32 md5

    如果不明白,技术文档支持


编辑完成后,按Esc键,输入::wq

回车,“保存退出”文档。

3.修改postgresql.conf

    输入:vi /var/lib/pgsql/9.4/data/postgresql.conf

    回车,进入文档内容。

    按 i 键进入“插入编辑模式”,修改以下配置。

    监听所有IP:

    listen_addresses = ‘*’

    允许归档:

    archive_mode = on

    用该命令来归档logfile segment:

    archive_command = ‘cp %p /opt/pgsql/pg_archive/%f’

    wal_level = hot_standby

    这个设置了可以最多有几个流复制连接,差不多有几个从,就设置几个:

    max_wal_senders = 2

    设置流复制保留的最多的xlog数目:

    wal_keep_segments = 256

    设置流复制主机发送数据的超时时间:

    wal_sender_timeout = 60s

    这个设置要注意下,从库的max_connections必须要大于主库的:

    max_connections = 100


    编辑完成后,按Esc键,输入::wq

    回车,“保存退出”文档。

    输入:systemctl restart postgresql-9.4.service

    回车,重启postgressql服务。

    4.测试201能否连接200数据库。在201上运行如下命令:

    输入:psql -h 172.16.125.200 -U postgres

    回车,然后输入200数据库的密码

    回车,连接上200数据库


从服务器配置

1.从主节点拷贝数据到从节点

    输入:su - postgres

    回车,切换至用户

    输入:rm -rf /var/lib/pgsql/9.4/data/*

    回车,将data目录下的数据都清空

    输入:pg_basebackup -h 172.16.125.201 -U replica –D /var/lib/pgsql/9.4/data -X stream -P

    回车,从201拷贝数据到201(基础备份)


    输入:mkdir /opt/pgsql

    回车,创建pgsql文件夹

    输入:mkdir /opt/pgsql/pg_archive

    回车,创建pg_archive文件夹


    2.配置recovery.conf

    输入:

    cp /usr/pgsql-9.4/share/recovery.conf.sample /var/lib/pgsql/9.4/data/recovery.conf

    回车,复制recovery.conf


    输入:vi /var/lib/pgsql/9.4/data/recovery.conf

    回车,进入文档内容。

    按 i 键进入“插入编辑模式”,修改以下配置。

    表明该节点是从服务器:

    standby_mode = on

    主服务器的信息以及连接的用户:

    primary_conninfo = ‘host=172.16.125.201 port=5432 user=replica password=replica’

    recovery_target_timeline = ‘latest’

    编辑完成后,按Esc键,输入::wq

    回车,“保存退出”文档。

    3.配置postgresql.conf

    输入:vi /var/lib/pgsql/9.4/data/postgresql.conf

    回车,进入文档内容。

    按 i 键进入“插入编辑模式”,修改以下配置。

    wal_level = hot_standby

    一般查多于写的应用从库的最大连接数要比较大:

    max_connections = 1000

    说明这台机器不仅仅是用于数据归档,也用于数据查询:

    hot_standby = on

    数据流备份的最大延迟时间:

    max_standby_streaming_delay = 30s

    多久向主报告一次从的状态,设置最长的间隔时间:

    wal_receiver_status_interval = 10s

    如果有错误的数据复制,是否向主进行反馈:

    hot_standby_feedback = on


    编辑完成后,按Esc键,输入::wq

    回车,“保存退出”文档。

    输入:systemctl restart postgresql-9.4.service

    回车,重启postgressql服务。

    至此,PostgreSQL主从流复制安装部署完成,用可视化工具测试一下吧。

    在主服务器(201)上插入数据或删除数据,

    在从服务器(200)上能看到相应的变化。

    从服务器(200)上只能查询,不能插入或删除。


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容