因爲AEP EPM全部相關的報表數據(應用運行日誌,呼叫清單,會話清單),配置信息等都存在本地PostgreSQL上,瞭解PostgreSQL的相關基本使用方法,有助於平常運維能力的提高。本篇主要總結如何開啓本地登錄,開啓遠端登錄,基本命令,數據備份和清理。
sql
如何開啓本地和遠端登錄數據庫
在EPM安裝的過程當中,會把PostgreSQL也一併安裝掉,過程當中會提示輸入用戶名postgres的密碼,以及建立一個報表用戶。當時當你本地使用PostgreSQL去登錄數據庫時,始終登錄不上;經過PostgreSQL客戶端也始終登錄不上,須要進行以下操做來開啓本地和遠端登錄。bash
[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 //找到以下部分,修改第一條記錄(運行本地登錄)以及新增一條記錄(運行遠端登錄,記得先備份該配置文件)
改完後:wq保存,而後重啓PostgreSQL服務。session
-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客戶端,配置ide
登錄成功:post
PostgreSQL 經常使用命令this
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 。。。。。。