postgresql学习笔记二之流复制
平台信息 StandbyServer:192.168.3.41 配置 1.在主数据库(42上)的pg_hba.conf文件中添加如下配置项: [root@tigase2~]# vi /var/lib/pgsql/9.2/data/pg_hba.conf local all all trust host all all 127.0.0.1/32 trust host all all 192.168.3.0/24 trust#设置允许3段的ip为信任 host replication postgres 192.168.3.41/32 trust#设置从数据库同步时使用的用户,以及从数据库的ip地址,此处直接用主数据库的postgres账户,可以自己在主数据上新建一个专用同步账号 2.在主数据库(42上)的postgresql.conf文件中设置如下配置项: vi/var/lib/pgsql/9.2//data/postgresql.conf checkpoint_segments= 16 archive_mode= on archive_command= 'cp %p /var/lib/pgsql/9.2/data/pg_archive/%f' max_wal_senders= 10 log_destination= 'csvlog' logging_collector= on log_directory= '/var/log/pgsql/' log_filename= 'postgresql-%Y-%m-%d_%H%M%S.log' log_truncate_on_rotation= on log_rotation_age= 1d log_rotation_size= 10MB log_min_duration_statement= 1000ms log_lock_waits= on log_statement= 'ddl' log_timezone= 'PRC' lc_messages= 'en_US.UTF-8' lc_monetary= 'en_US.UTF-8 lc_numeric= 'en_US.UTF-8' lc_time= 'en_US.UTF-8' deadlock_timeout= 1s autovacuum= on log_autovacuum_min_duration= 0 check_function_bodies= on 建立归档文件和日志文件 [root@tigase2data]# mkdir /var/lib/pgsql/9.2/data/pg_archive [root@tigase2data]# chown -R postgres.postgres pg_archive/ [root@tigase2log]# mkdir /var/log/pgsql [root@tigase2log]# chown -R postgres.postgres /var/log/pgsql /var/log下有一个pgsql日志文件,先删除或备份,再建立。 3.重启主数据库,让配置生效: 4.对主数据库做一个基础备份: postgres=#selectpg_start_backup('t1'); pg_start_backup ----------------- (1行记录) postgres=#q #备份状态下q先退出,方便拷贝主数据库的数据目录 5.进入主数据库(42上)的数据目录、以及归档文件到从数据库(41上)的数据目录中 [root@tigase2~]# cd /var/lib/pgsql/9.2/ [root@tigase29.2]# cp -r data data.bak #先备份到本地,再scp到从数据库,可直接scp到从数据库。 [root@tigase29.2]# scp -rp data.bak/ root@192.168.3.41:/var/lib/pgsql/9.2/ 6.拷贝完成后,结束主数据库的备份状态,再拷贝主数据的存档文件到从数据库。 p[root@tigase2~]# psql -U postgres ostgres=#selectpg_stop_backup(); NOTICE: pg_stop_backup complete,all required WAL segments have beenarchived pg_stop_backup ---------------- 0/60000E0 成功后data文件下pg_archive会生成存档文件,复制pg_archive文件到从数据库data.bak下,以便等下数据库恢复。 [root@tigase2data]# scp -rp pg_archive/root@192.168.3.41:/var/lib/pgsql/9.2/data.bak/ 从数据库上的配置: 先停止postgres服务 [root@tigase19.2]# service postgresql-9.2 stop 把从数据库原data改名为data.backup或直接删除,再将从主数据库拷贝过来的data.bak改名为data. [root@tigase19.2]# mv data data.backup [root@tigase19.2]# mv data.bak data [root@tigase19.2]# chown -R postgres.postgres data 7.在从数据库的配置文件postgresql.conf中,设置如下配置项: [root@tigase1log]# mkdir /var/log/pgsql [root@tigase1log]# chown -R postgres.postgres /var/log/pgsql 8.编辑并配置recovery.conf,此文件需要新建。 [root@tigase1data]# vi /var/lib/pgsql/9.2/data/recovery.conf 配置如下内容: standby_mode= 'on' primary_conninfo= 'host=192.168.3.42 port=5432 user=postgres password=postgres' 9.删除从主数据库中过来的postmaster.pid文件以及pg_xlog下的文件,然后启动从数据库: [root@tigase1data]# rm -fr /var/lib/pgsql/9.2/data/pg_xlog/* #servicepostgresql-9.2 start 最后把配置recovery.conf里restore-command行注销 #restore_command= 'cp /var/lib/pgsql/9.2/data/pg_archive/%f %p' # e.g. 'cp/mnt/server/archivedir/%f %p' 10登录从服务器查看 [root@tigase1data]# psql -U postgres postgres=#l tigasedb | tigase | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | tigasedbb| tigase | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | tigasedbd| tigase | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | (6行记录) 11.登录主数据库添加数据库等。 [root@tigase2~]# psql -U postgres postgres=#create database tigaseddddd owner tigase; CREATEDATABASE 12.回到从数据库查看新增数据库。 [root@tigase1data]# psql -U postgres postgres=#l stgres tigasedb | tigase | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | tigasedbb | tigase | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | tigasedbd | tigase | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | tigaseddddd| tigase | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | (7行记录) 从数据库只能读,如增加会提示 postgres=#create database tigase123 owner tigase; ERROR: cannot execute CREATE DATABASE in a read-only transaction (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 以优雅的方式在sqlite数据库中创建自定义SQL函数
- Flex中图片拉伸定义
- Flutter进阶—实现动画效果(四)
- actionscript-3 – addChild():我怎么知道DisplayObject实
- Oracle RAC HM(Hang Manager)
- ruby – Elasticsearch:SearchPhaseExecutionException /解
- sqlite学习笔记6:更新表数据-update
- React Native填坑之旅--动画篇
- c – 使用iconv for iOS构建Boost.Locale
- Oracle – FAST REFRESH使用LEFT JOINS更新的物化视图非常慢