由于AEP EPM所有相关的报表数据(应用运行日志,呼叫清单,会话清单),配置信息等都存在本地PostgreSQL上,了解PostgreSQL的相关基本使用方法,有助于日常运维能力的提升。本篇主要总结如何开启本地登陆,开启远端登陆,基本命令,数据备份和清理。

  •  如何开启本地和远端登陆

在EPM安装的过程中,会把PostgreSQL也一并安装掉,过程中会提示输入用户名postgres的密码,以及创建一个报表用户。当时当你本地使用PostgreSQL去登陆数据库时,始终登陆不上;通过PostgreSQL客户端也始终登陆不上,需要进行如下操作来开启本地和远端登陆。

[root@vp142 VP-Tools]# su - postgres
-bash-4.1$ ls
9.0  data  pgstartup.log  SQLscripts
-bash-4.1$ cd data/
-bash-4.1$ vi pg_hba.conf  //找到如下部分,修改第一条记录(运行本地登陆)以及新增一条记录(运行远端登陆,记得先备份该配置文件)

wKioL1cd1qqD1Sd-AADRaBNkM5s660.jpg

改完后:wq保存,然后重启PostgreSQL服务。

-bash-4.1$ exit
logout
[root@vp142 VP-Tools]# service postgresql restart


  • 本地和远端登陆验证

[root@vp142 VP-Tools]# psql -h 127.0.0.1 -U postgres -d VoicePortal
Password for user postgres: 
psql (9.0.15)
Type "help" for help.

VoicePortal=# //本地登陆成功

 远端登陆:下载PostgreSQL客户端,配置

wKiom1cd2IDR_lQEAABctO_taDo748.jpg

登陆成功:

wKioL1cd2UjAFC2hAADLYhEcnLs896.jpg

  • PostgreSQL 常用命令

VoicePortal-# \l    //输出所有数据库
                                   List of databases
    Name     |  Owner   | Encoding |  Collation  |    Ctype    |   Access privil
eges   
-------------+----------+----------+-------------+-------------+----------------
-------
 VoicePortal | 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    
 VoicePortal-# \c postgres  //切换到postgres库
You are now connected to database "postgres". 
postgres-# 
VoicePortal-# \d   //显示当前库有哪些表
                      List of relations
 Schema |             Name              |   Type   |  Owner   
--------+-------------------------------+----------+----------
 public | alarmcode                     | table    | postgres
 public | alarmcodelistenerlink         | table    | postgres
 public | alarmcodelistenerlinkdefault  | table    | postgres
 public | alarmhistory                  | table    | postgres
 public | alarmlistener                 | table    | postgres
 public | alarmnotify                   | table    | postgres
 。。。。。。
 VoicePortal-# \d cdr   //查看cdr表的结构
                                            Table "public.cdr"
       Column       |            Type             |                       Modifi
ers                        
--------------------+-----------------------------+-----------------------------
---------------------------
 calltimestamp      | timestamp without time zone | 
 recordid           | integer                     | 
 sessionid          | character varying           | 
 callid             | character varying           | 
 ucid               | character varying           | 
 portid             | integer                     | 
 
 创建数据库: 
create database [数据库名]; 
删除数据库: 
drop database [数据库名];  
*重命名一个表: 
alter table [表名A] rename to [表名B]; 
*删除一个表: 
drop table [表名]; 
*在已有的表里添加字段: 
alter table [表名] add column [字段名] [类型]; 
*删除表中的字段: 
alter table [表名] drop column [字段名]; 
*重命名一个字段:  
alter table [表名] rename column [字段名A] to [字段名B]; 
*给一个字段设置缺省值:  
alter table [表名] alter column [字段名] set default [新的默认值];
*去除缺省值:  
alter table [表名] alter column [字段名] drop default; 
在表中插入数据: 
insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......); 
修改表中的某行某列的数据: 
update [表名] set [目标字段名]=[目标值] where [该行特征]; 
删除表中某行数据: 
delete from [表名] where [该行特征]; 
delete from [表名];--删空整个表 
创建表: 
create table ([字段名1] [类型1] ;,[字段名2] [类型2],......<,primary key (字段名m,字段名n,...)>;); 
\copyright     显示 PostgreSQL 的使用和发行条款
\encoding [字元编码名称]
                 显示或设定用户端字元编码
\h [名称]      SQL 命令语法上的说明,用 * 显示全部命令
\prompt [文本] 名称
                 提示用户设定内部变数
\password [USERNAME]
                 securely change the password for a user
\q             退出 psql


  • 数据库备份与恢复

PostgreSQL数据备份:
[root@vp142 VP-Tools]# pg_dump -U postgres VoicePortal >/cpic/craft/postgresdata
.20160425.sql
Password:    //输入完密码后,等待备份完毕。
[root@vp142 VP-Tools]# ll /cpic/craft/postgresdata.20160425.sql //查看备份文件
-rw-r--r-- 1 root root 4007564 Apr 25 16:57 /cpic/craft/postgresdata.20160425.sql

PostgreSQL数据恢复:
先清空数据库(该脚本清空相关报表数据,并非系统重要配置信息):
[root@vp142 VP-Tools]# bash PurgeReportDataLocalDB 

Do you wish to purge all your report data?

Press enter to continue, or press control-C to abort this utility

Purging SDR table...
Purging CDR table...
Purging VPAppLog table...
Purging VPPerformance table...
Purging completed!
-----------------------------------------------------
开始恢复数据:
[root@vp142 VP-Tools]# psql -U postgres VoicePortal < /cpic/craft/postgresdata.20160425.sql
Password for user postgres: 
 lowrite 
---------
     535
(1 row)

 lo_close 
----------
        0
(1 row)

COMMIT
。。。。。。