暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

postgresql 9.6源码安装,简单备份恢复

张春光的一亩三分地 2018-10-14
801

postgresql9.6源码安装

准备工作:

创建用户

#创建用户和组

groupadd postgres

useradd -g postgres postgres

 

准备安装目录

#进入安装目录

cd /usr/local/

#删除原有安装(如果有的话)

rm -rf postgres*

 

安装:

#配置

 cdpostgresql-9.6.10

./configure --prefix=/usr/local/postgresql--with-perl --with-python

#编译安装

make && make install

 

#安装contrib目录下的一些工具,是第三方组织的一些工具代码,建议安装

cd contrib

make && make install

 

环境变量:

根据需要,可以合适的环境变量文件里

vi /etc/profile

export PATH=/usr/local/postgresql/bin:$PATH

exportLD_LIBRARY_PATH=/usr/local/postgresql/lib:$LD_LIBRARY_PATH

 

数据库存放位置

[root@pg96 contrib]# mkdir -p /pgdata

 

授权给psotgres账户:

chown -R postgres.postgres /pgdata

chown -R postgres:postgres /usr/local/postgresql

 

切换用户到postgres:

设置环境变量:

vi .bash_profile

export PGHOME=/usr/local/postgresql

export PGDATA=/pgdata

 

#初始化数据库

initdb -D /pgdata

 

#启动服务

pg_ctl -D /pgdata -l /pgdata/logfile start

 

[postgres@pg96 ~]$ pg_ctl -D /pgdata -l/pgdata/logfile start

server starting

 

 

启停数据库

启动服务

pg_ctl start -D /pgdata  -l /pgdata/logfile

#重启服务

pg_ctl restart -D /pgdata -l /pgdata/logfile

 

#停止服务

pg_ctl stop -D /pgdata -l /pgdata/logfile

 

停止服务还可以加上-m参数后面三个选项

smart正常关闭类似Oracle normal

fast快速关闭类似Oracleimmediate

immediate立即关闭类似Oracleabort

 

#登录客户端使用"psql 数据库名"登录数据库。

#缺省数据库名时,连接到默认的数据库postgres。

#本地不用指定数据库

psql

#创建测试数据库

create database micky;

#切换到micky 数据库

\c micky

#创建测试表

create table test (id integer, name text);

#插入测试数据

insert into test values (1,'micky');

#选择数据

select * from test ;

 

#修改postgresql.conf 文件

vi /pgdata/postgresql.conf

#修改为如下:

listen_addresses = '*'

port = 5432

#--------------------允许远程连接---------------------------

#修改客户端认证配置文件pg_hba.conf,将需要远程访问数据库的IP地址或地址段加入该文件

vi /pgdata/pg_hba.conf

 

#在文件的最下方加上下面的这句话(出于安全考虑,不建议这样配置)

host   all         all         0.0.0.0/0             trust

 

备份恢复

[root@pg10 pgdata]# mkdir -p /backup

[root@pg10 pgdata]# mkdir -p /archive_wals

[root@pg10 pgdata]# mkdir -p /scripts

[root@pg10 pgdata]# chown -R postgres.postgres /backup

[root@pg10 pgdata]# chown -R postgres.postgres/archive_wals

[root@pg10 pgdata]# chown -R postgres.postgres/scripts/

[root@pg10 pgdata]#

 

 

数据库修参数改如下:

alter system set wal_level = 'replica';

alter system set archive_timeout = '30s';

alter system set archive_mode ='on';

alter system set archive_command = 'cp %p/archive_wals/%f';

select pg_reload_conf();

 pg_reload_conf

----------------

 t

(1 row)

 

 

[postgres@pg10 pgdata]$ pg_basebackup -Ft -Pv -Xf -z-Z5 -D /backup

pg_basebackup: initiating base backup, waiting forcheckpoint to complete

pg_basebackup: checkpoint completed

pg_basebackup: write-ahead log start point: 0/3000028on timeline 1

93025/93025 kB (100%), 1/1 tablespace                                        

pg_basebackup: write-ahead log end point: 0/3000130

pg_basebackup: base backup completed

 

备份基础库之后创建

create table micky(a int,b char(5));

insert into micky values(1,'a');

insert into micky values(2,'b');

 

拷贝恢复配置文件

cp /usr/local/postgresql/share/recovery.conf.sample/pgdata/data/recovery.conf

编辑该文件如下

restore_command = 'cp /archive_wals/%f %p'

recovery_target_timeline = 'latest'

 

恢复基础库

tar xvf /backup/base.tar.gz -C /pgdata/

如下查看恢复过程

tail -200f /pgdata/logfile

 

查看恢复结果

[postgres@pg10 pgdata]$ psql

psql (10.5)

Type "help" for help.

 

postgres=# \c micky

You are now connected to database "micky" asuser "postgres".

micky=# \d

          Listof relations

 Schema |   Name  | Type  |  Owner  

--------+----------+-------+----------

 public |BONUS    | table | postgres

 public |DEPT     | table | postgres

 public |EMP      | table | postgres

 public |SALGRADE | table | postgres

 public |micky    | table | postgres

 public |test     | table | postgres

(6 rows)

 

micky=# select * from micky;

 a |   b  

---+-------

 2 | b   

 1 | a   

(2 rows)


文章转载自张春光的一亩三分地,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论