PostgreSql从库重新配置的详情

目录
  • 1 复制从库之前配置的参数文件
  • 2、停下现有的从库
  • 3、开启主库的备份状态
  • 4、把主数据库目录拷贝到备库目录就可以了:
  • 5、还原之前复制的recovery.conf文件
  • 6、停下主库备份
  • 7、启动备库

postgresql数据库采用主从配置 在主库正常从库挂掉的情况下 重新对从库配置
😊

配置详情:
主库数据文件:100G
压缩时间1小时40分钟,压缩后文件大小46G
解压时间55分钟

1 复制从库之前配置的参数文件

进入pgsql 文件下面的data文件

#把pgsql的配置文件复制到/home 文件下
[root@postgre2 data]# cp pg_hba.conf /home/
[root@postgre2 data]# cp postgresql.conf /home/
[root@postgre2 data]# cp recovery.conf /home

2、停下现有的从库

从库:

/usr/pgsql-11/bin/pg_ctl -D /u01/pgsql/data/ stop --从库的data文件位置
[root@postgre2 ~]# su - postgres
Last login: Tue Dec 22 13:32:15 CST 2020 on pts/0
-bash-4.2$ /usr/pgsql-11/bin/pg_ctl -D /u01/pgsql/data/ stop
waiting for server to shut down.... done
server stopped

3、开启主库的备份状态

主库:

[root@postgre1 ~]# su - postgres
Last login: Thu Dec 24 09:23:55 CST 2020 on pts/1
-bash-4.2$ psql
psql (11.7)
Type "help" for help.

postgres=# select pg_start_backup('/tmp/backup');
pg_start_backup
-----------------
2/90000

–窗口不要退出

4、把主数据库目录拷贝到备库目录就可以了:

主库:
数据库目录压缩

[root@postgre1 pgsql]# pwd
/u01/pgsql
[root@postgre1 pgsql]# tar -zcvf data.tar.gz data

从库:
删除从库原来的data目录

[root@postgre2 ~]# cd /u01/pgsql/
[root@postgre2 pgsql]# ls
data
[root@postgre2 pgsql]# rm -fr data/

主库:
数据库目录远程传输

[root@postgre1 pgsql]# sudo scp data.tar.gz root@postgre2:/u01/pgsql/data

从库:
解压数据库目录

[root@postgre2 ~]# cd /u01/pgsql/
[root@postgre2 pgsql]# tar -zxvf data

删掉从主库拷贝过来的postmaster.pid

[root@postgre2 pgsql]# cd data/
[root@postgre2 data]# rm -r postmaster.pid

5、还原之前复制的recovery.conf文件

[root@postgre2 data]# cp /home/recovery.conf .
[root@postgre2 data]# chown postgres:postgres recovery.conf
[root@postgre2 data]# cp /home/postgresql.conf .
[root@postgre2 data]# cp /home/pg_hba.conf .

6、停下主库备份

主库:

postgres=# select pg_stop_backup();

NOTICE: pg_stop_backup complete, all required WAL segments have been archived
pg_stop_backup
----------------
0/640001F8

7、启动备库

从库:

[root@postgre2 ~]# su - postgres
Last login: Thu Dec 24 11:06:30 CST 2020 on pts/1
-bash-4.2$ /usr/pgsql-11/bin/pg_ctl -D /u01/pgsql/data/ start

如果没有启动systemctl status postgresql-11或者log日志查看具体问题
如果从库配置的时间过长,最后就会报错,显示找不到日志文件
但是只要主从配置好了,数据能从主库自动同步从库 就可以忽略错误

到此这篇关于PostgreSql从库重新配置的详情的文章就介绍到这了,更多相关PostgreSql从库重新配置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • postgreSQL 非count方法算记录数操作

    一般方法 select count(1) from table_name; 全量扫描一遍表,记录越多,查询速度越慢 新法 PostgreSQL 还真提供了一个这样的途径,那就是系统表 pg_class,这个系统表里头,存储着每个表的统计信息,其中 reltuples 就是对应的表的统计行,统计行的数据是pg有个独立进程,定期扫描不同的表,收集这些表的统计信息,保存在系统表里头. 方法如下: select reltuples::int as total from pg_class where re

  • 详解PostgreSql数据库对象信息及应用

    PostgreSql数据库对象主要有数据库.表.视图.索引.schema.函数.触发器等.PostgreSql提供了information_schema schema,其中包括返回数据库对象的视图.如用户有访问权限,可以也在pg_catalog schema中查询表.视图等对象. 1. 查询数据库对象 下面通过示例分别展示如何查询各种数据库对象. 1.1 表查询 PostgreSql 表信息可以从information_schema.tables 或 pg_catalog.pg_tables 视

  • postgresql 获取两个时间类型小时差值案例

    我就废话不多说了,看代码吧~ select extract(day from t) * 24 + extract(hour from t) from (select (timestamp '2013-12-14 12:00:00' - timestamp '2013-12-11 4:00:00') as t) as a; 例如a表中有start,end俩字段 select extract(day from (end-start)) * 24 + extract(hour from (end-st

  • postgresql 计算时间差的秒数、天数实例

    处理时间时用到了,记录一下. 时间差天数 select '2017-12-10'::date - '2017-12-01'::date; 时间差秒数 select extract(epoch FROM (now() - (now()-interval '1 day') )); select trunc(extract(epoch FROM (now() - (now()-interval '1 day') ))::numeric); select trunc(extract(epoch FROM

  • postgresql的now()与Oracle的sysdate区别说明

    postgresql的now()为当前事务开始时间, 而Oracle的sysdate是当前时间. 区别在于事务. postgresql中的now(): postgres=# begin ; BEGIN postgres=# select now(); now ------------------------------- 2017-03-31 14:28:32.403869+08 (1 row) postgres=# select now(); now ---------------------

  • postgresql中时间转换和加减操作

    昨天遇到一个floor向下取整的问题,现在将它记录下来. 首先floor是需要一个int或者dp.那么我们日期加减转换,timestamp 转data,是需要先将其转成char,再由char转date,再相减,得出一个符合floor函数要求的值. 代码如下: FLOOR((to_date(to_char(current_timestamp, 'yyyy-MM-dd hh:mi:ss'), 'yyyy-mm-dd') - to_date(to_char(ca.birthday, 'yyyy-MM-

  • Postgresql 通过出生日期获取年龄的操作

    三个基础的时间表示函数 CURRENT_DATE/CURRENT_TIME/NOW() SELECT CURRENT_DATE ; 返回当前日期以 年-月-日(yyyy-MM-dd)的形式: 2019-01-10 SELECT CURRENT_TIME; 返回当日时间以 时:分:秒+时区(HH:mm:ss )的形式: 17:49:11.585308+08 SELECT NOW(); 返回当前时间 以 年-月-日 时:分:秒(yyyy-MM-dd HH:mm:ss)的形式: 2019-01-10

  • PostgreSQL TIMESTAMP类型 时间戳操作

    PostgreSQL 提供两种存储时间戳的数据类型: 不带时区的 TIMESTAMP 和带时区的 TIMESTAMPTZ. TIMESTAMP 数据类型可以同时存储日期和时间,但它不存储时区.这意味着,当修改了数据库服务器所在的时区时,它里面存储的值不会改变. TIMESTAMPTZ 数据类型在存储日期和时间的同时还能正确处理时区.PostgreSQL 使用 UTC 值来存储 TIMESTAMPTZ 数据.在向 TIMESTAMPTZ 字段插入值的时候,PostgreSQL 会自动将值转换成 U

  • PostgreSql从库重新配置的详情

    目录 1 复制从库之前配置的参数文件 2.停下现有的从库 3.开启主库的备份状态 4.把主数据库目录拷贝到备库目录就可以了: 5.还原之前复制的recovery.conf文件 6.停下主库备份 7.启动备库 postgresql数据库采用主从配置 在主库正常从库挂掉的情况下 重新对从库配置

  • Golang使用ini库读取配置详情

    目录 go-ini的分区 go-ini的安装 ini文件的格式 读取ini文件的配置项 直接加在ini文件,通过方法读取 定义结构体来存放配置项,将配置项映射到结构体中 父子分区 两份关键代码 go-ini的分区 go-ini的多个配置项通过分区(section)来划分.有默认(空)分区和命名的分区,没有给分区命名就是默认分区,默认分区必须写在任何一个命名分区的上边.每个配置项通过换行来区分. go-ini的安装 go-ini/ini是GitHub上的一个代码库,和其他golang库一样,通过g

  • Vue 配置代理详情

    目录 方式一 方式二 vue 脚手架配置代理总结 方式一 首先安装 axios:npm i axios 修改 App.vue <template>   <div>     <button @click="getBookInfo">获取书籍信息</button>   </div> </template> <script> import axios from "axios" export

  • Java SpringBoot自动配置原理详情

    目录 SpringBoot的底层注解 配置绑定 自动配置原理入门 SpringBoot的底层注解 首先了解一些SpringBoot的底层注解,是如何完成相关的功能的 @Configuration 告诉SpringBoot被标注的类是一个配置类,以前Spring xxx.xml能配置的内容,它都可以做,spring中的Bean组件默认是单实例的 #############################Configuration使用示例###############################

  • Postgresql 跨库同步表及postgres_fdw的用法说明

    postgres_fdw模块 PostgreSQL 9.3 add postgres_fdw extension for accessing remote tables PostgreSQL 9.3新增了一个postgres_fdw模块, 已经整合在源码包中. 用于创建postgres外部表. 注:db_des为目标库,developer_month_orders_data为表名.意思就是从查询库a中建立同名FOREIGN关联表, 可以查询目标库中的数据.以下命令在需要建立的关联库中执行. 目标

  • PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图

    JpGraph简介 JpGraph是开源的PHP统计图表生成库,基于PHP的GD2图形库构建,把生成统计图的相关操作封装,隐藏了部分复杂的操作,使在PHP页面上输出统计图表变得更加容易.JpGraph的官方网站为:http://jpgraph.net,开发者可以在上面免费下载最新版的JpGraph和阅读相关帮助文档或示例程序. JpGraph的配置 (1)修改文件php.ini 在include_path中添加jpgraph的目录路径,并将jpgraph解压后的src目录名称更改为jpgraph

  • golang实践-第三方包为私有库的配置方案

    正常使用了go 1.8一段时间没有发现异常,为了发布便捷,以及后期引入plug-in,开始将大项目分解.涉及到通过vendor引入私有库保存的第三方包. 参考网上那些反复转帖的材料,始终无法成功,总是都会出现类似以下的错误: package git.oschina.net/xxx/yyy: unrecognized import path "git.oschina.net/xxx/yyy" (parse https://git.oschina.net/xxx/yyy?go-get=1:

  • PostgreSQL数据库中跨库访问解决方案

    PostgreSQL跨库访问有3种方法:Schema,dblink,postgres_fdw. 方法A:在PG上建立不同SCHEMA,将数据和存储过程分别放到不同的schema上,经过权限管理后进行访问. 方法A的示例如下: 测试1(测试postgres超级用户对不同schema下对象的访问) 查看当前数据库中的schema postgres=# \dn List of schemas Name | Owner -------------------+--------- dbms_job_pro

  • Oracle配置dblink访问PostgreSQL的操作方法

    Oracle dblink的底层是通过ODBC连接PostgreSQL执行SQL的,需安装unixODBC和PostgreSQL ODBC驱动(它们的配置文件是:odbcinst.ini和odbc.ini),还需配置Oracle网络使用这个驱动.以下操作都是在Oracle服务器上进行: 以root用户安装unixODBC: yum install unixODBC unixODBC-devel.x86_64 unixODBC相当于Linux中管理所有数据库ODBC驱动的管理器. 以root用户安

  • java连接postgresql数据库代码及maven配置方式

    目录 java连接postgresql代码及maven配置 maven依赖 Springboo连接数据库通用代码 创建连接并执行业务逻辑 数据库通用类 maven配置 java连接postgresql代码及maven配置 postgresql数据库有默认数据库用户postgres,密码安装库时自己输入: 当然也可以连接其他用户: maven依赖 db2依赖 <dependency>     <groupId>org.apache.commons</groupId>  

随机推荐