一、前提
1、CenTos操作系统,安装系统时选择安装Postgres数据库。
二、安装数据库及配置
1、初始化数据库TestDB
      由于安装系统时选择安装了Postgres数据库,因此系统自带postgres用户名,该用户名是针对Postgres数据库的管理员。
(1)使用系统自带的数据库用户名称postgres,在root权限下执行。
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su postgres
initdb –D /usr/local/pgsql/data
                postmaster –D /usr/local/pgsql/data/ &
(2)手动创建数据库用户名称,比如postgresql ,在root权限下执行。
adduser postgresql
mkdir /usr/local/pgsql/data
chown postgresql /usr/local/pgsql/data
su postgresql
initdb –D /usr/local/pgsql/data
               postmaster –D /usr/local/pgsql/data/ &
2、配置数据库文件
(1)root权限下进如pgsql下的data目录,修改pg_hba.conf,在其后追加内容如下,其中IP为数据库服务器的IP地址。
           host  all  all  192.168.0.1/24   md5
(2)修改同一目录下的postgresql.conf文件,去掉文件listen_address和port前的#号,然后修改
           listen_address = '*'
(3)使用postgres或postgresql管理员添加用户postuser及对应密码。
经过这样配置,就可以使用postuser及密码远程连接服务器了。
3、初始化数据库TestDB
(1)切换到postgres用户下,创建数据库
          createdb TestDB;
(2)进入数据库
          psql TestDB
4、备份及还原数据库
(1)切换到数据库用户postgres下,执行下面命令:
备份:Pg_dump –h localhost –U postgres –n public –Ft TestDB > /home/postgres/[名称].tar
还原:
切换到数据库用户postgresql下,先删除原数据库"TestDB"(如果存在),再以"TestDB"的名称重新建立数据库,执行下面命令
psql TestDB
create language plpgSQL;
\q
pg_restore –h localhost –U postgres –d TestDB [路径]/ [名称].tar
vacuumdb -a –z
5、添加用户postuser
        createuser postuser -P
6、开机自启动数据库

<!--[if !supportLists]-->(1)    用root用户登录服务器,然后切换到/etc/rc.d/目录下。<!--[endif]-->
<!--[if !supportLists]-->(2)    使用vi命令打开rc.local文件,在其后追加命令如下:<!--[endif]-->
su - postgresql -c "postmaster -D /usr/local/pgsql/data/&"

7、存储过程
(1)存储过程以plpgsql语言书写,因此在书写存储过程前,先把plpgsql语言安装进数据库TestDB中。
        psql TestDB
                 create language plpgSQL;
(2)创建表举例
Create TABLE "CallRecordTable"
(
"CallIndex" INTEGER PRIMARY KEY,
"CallerNumber" VARCHAR(32) NOT NULL DEFAULT 'anonymous',
"CalleeNumber" VARCHAR(32) NOT NULL DEFAULT 'anonymous',
"StartTime" VARCHAR(16) NOT NULL,
"StopTime" VARCHAR(16) NOT NULL,
"StoreFlag" SMALLINT NOT NULL CONSTRAINT Record_Flag_Value CHECK("StoreFlag" >= 1 AND "StoreFlag" <= 10) DEFAULT 1,
"ReGenrationID" VARCHAR(32) NOT NULL REFERENCES "RegenServiceInfoTable" ("ReGenrationID") ON Delete CASCADE ON Update CASCADE,
CONSTRAINT Caller_Start_OnlyOne UNIQUE("CallerNumber","StartTime"),
CONSTRAINT Callee_Start_OnlyOne UNIQUE("CalleeNumber","StartTime"),
CHECK("StartTime" <= "StopTime")
);
(3)创建存储过程举例
Create or REPLACE FUNCTION "funSelectRecordByDateCall"(Number VARCHAR(32),StartTime VARCHAR(16),EndTime VARCHAR(16))
RETURNS refcursor AS
$$
DECLARE recordcur refcursor;
BEGIN
OPEN recordcur FOR
Select
    "CallIndex",
    "CallerNumber",
    "CalleeNumber",
    TO_TIMESTAMP("StartTime",'YYYYMMDDHH24MISS') AS "StartTime",
    TO_TIMESTAMP("StopTime",'YYYYMMDDHH24MISS') AS "StopTime",
    ( TO_TIMESTAMP("StopTime",'YYYYMMDDHH24MISS') - TO_TIMESTAMP("StartTime",'YYYYMMDDHH24MISS') ) AS "ContinuingTime",
    "StoreFlag",
    CR."ReGenrationID",
    "Ip",
    "Port"
FROM
    "CallRecordTable" AS CR,
    "RegenServiceInfoTable" AS RS
Where
    ( "StartTime" BETWEEN StartTime AND EndTime )
    AND( "CallerNumber" = Number )
    AND( CR."ReGenrationID" = RS."ReGenrationID" )
    or( "StartTime" BETWEEN StartTime AND EndTime )
    AND( "CalleeNumber" = Number )
    AND( CR."ReGenrationID" = RS."ReGenrationID" )
orDER BY "StartTime" DESC;
RETURN recordcur;
END;
$$
LANGUAGE PLpgSQL;
本文来自http://bbs.chinaunix.net/thread-1816035-1-13.html

CSDN博客,转载请标明出处:http://blog.csdn.net/zst126/archive/2007/10/31/1859608.aspx

转载于:https://www.cnblogs.com/dview112/archive/2012/10/22/2733964.html

Postgres 数据库安装、配置、备份还原及存储过程相关推荐

  1. PostgreSQL(Pgsql)快速开始/ ubuntu、centos下PostgreSQL数据库安装配置/查看已经编译的pg 编译选项

    文章目录 一.PostgreSQL是什么 1. Pgsql和Mysql的对比 二.ubuntu 下安装配置postgres sql 数据库 1. [推荐]apt-get 安装postgres 安装和配 ...

  2. mysql windows 管道连接,科技常识:Windows Server 2016 MySQL数据库安装配置详细安装教程...

    今天小编跟大家讲解下有关Windows Server 2016 MySQL数据库安装配置详细安装教程 ,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关Windows Server 2016 ...

  3. ubuntu14.04使用MySQL数据库安装配置Hive 1.2.1

    ubuntu14.04使用MySQL数据库安装配置Hive 1.2.1 一.准备Mysql已经安装好.本人装的是navicat,图形化界面.     并在本地用root用户建立了test数据库   二 ...

  4. 《大型数据库技术》MySQL数据库安装配置及基础使用

    文章目录 1.下载安装MySQL 1.1 搜索MySQL下载页面 1.2 查看各种MySQL版本 1.3 安装配置MySQL 2.数据库基本操作 2.1 创建数据库 2.2 创建关系表 2.3 插入数 ...

  5. ACCESS数据库的压缩,备份,还原,下载,删除的实现

    以文本方式查看主题 -  企胜MIS开发论坛|ASP.NET|UML| CSS|Access|My SQL|网络营销|JAVA|J2EE|Ajax  (http://www.fleake.com/in ...

  6. 8、Horizon 事件数据库安装配置

    Horizon 事件数据库安装配置 所需软件: cn_sql_server_2019_enterprise_x64_dvd_2bfe815a.iso(数据库软件) SSMS-Setup-CHS.exe ...

  7. Linux使用笔记:Oracle数据库安装配置(命令行安装)

    文章目录 1. Oracle数据库安装配置 1.1. 安装准备 1.2. 修改内核参数 1.3. 创建安装用户和目录 1.4. 修改配置文件 1.5. 开始安装 1.5.1. 上传安装包 1.5.2. ...

  8. 阿里云如何配置mysql数据库服务器配置_mysql数据库安装配置

    mysql数据库安装配置 云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越.稳定可靠.弹性扩展的IaaS(Infrastructure as a Servi ...

  9. 达梦数据库安装配置记录

    目录 1 确定软硬件环境 1.1 硬件环境需求 1.2 软件环境需求 1.3 本次部署的软硬件情况 2 软硬件准备 2.1 软件版本 2.2 软件获取 3 安装操作系统 4 软件包上传 4.1 服务器 ...

最新文章

  1. PPP协议详细图解实验
  2. 基础中的基础。CANVAS step01
  3. 【中间件】大数据之分布式消息队列Kafka
  4. [Python设计模式] 第1章 计算器——简单工厂模式
  5. 网络直播“黑科技”:Stream Matrix
  6. php悬浮图片,在JS中如何实现图片居中悬浮效果
  7. java jls8_GitHub - scmod/jls8
  8. java的标准注解和元注解
  9. 洛谷 P1463 [SDOI2005]反素数ant P1820 寻找AP数
  10. Serve Django Applications with uWSGI and Nginx
  11. linux卸载tar安装的erlang包,linux - 从tar安装erlang导致错误,想知道如何指定文件夹 - 堆栈内存溢出...
  12. Django实战(10):单元测试
  13. n-Track Studio Suite 9 Mac(多轨音乐制作工具)
  14. QT5.9 for 安卓开发 环境配置
  15. 网页右下角弹出窗体实现代码
  16. ANSYS经典界面中梁单元实例全解析
  17. 第一届程序设计竞赛题解(E题)
  18. matlab点坐标 一次插值,[转载]坐标转换和插值之matlab程序
  19. IntelliJ IDEA上debug模式启动
  20. Shell编程实战范例

热门文章

  1. css结构和重叠之选择器的特殊性
  2. s6-5 TCP 连接的建立
  3. 7.2-5 usermod
  4. python拷贝文件夹目录和文件_Python 拷贝文件及文件夹到远程主机目录
  5. python模块与包
  6. 浅谈云原生架构的 7 个原则
  7. 重点解决三大环节数字化,高效适配家装数智转型
  8. DTCC 2020 | 阿里云张鑫:阿里云云原生异地多活解决方案
  9. 阿里SRE体系如何支撑24小时峰值压力、220+个国家“剁手党”?
  10. 【GPU精粹与Shader编程】(一) 全系列核心知识点总览