zoukankan      html  css  js  c++  java
  • PostgreSQL学习手册(服务器配置)

    一、服务器进程的启动和关闭:

        下面是pg_ctl命令的使用方法和常用选项,需要指出的是,该命令是postgres命令的封装体,因此在使用上比直接使用postgres更加方便。
        pg_ctl init[db] [-D DATADIR] [-s] [-o "OPTIONS"]
        pg_ctl start     [-w] [-t SECS] [-D DATADIR] [-s] [-l FILENAME] [-o "OPTIONS"]
        pg_ctl stop     [-W] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]
        pg_ctl restart  [-w] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]
        pg_ctl reload  [-D DATADIR] [-s]
        pg_ctl status  [-D DATADIR]
        pg_ctl promote [-D DATADIR] [-s]

    选项 描述
    -D 指定数据库存储的路径
    -l 指定服务器进程的日志文件
    -s 仅打印错误信息,不打印普通信息
    -t SECS 当使用-w选项时等待的秒数
    -w 等待直到数据库操作完成(对于stop而言,该选项时缺省选项)
    -W 不等待任何操作的完成
    --help 显示帮助信息
    --version 显示版本信息
    -m 对于stop和restart操作,可以指定关闭模式
    系统关闭模式  
    smart 不在接收新的连接,直到当前已有的连接都断开之后才退出系统
    fast 不在接收新的连接请求,主动关闭已经建立的连接,之后退出系统
    immediate 立即退出,但是在restart的时候需要有恢复的操作被执行

       
        这里我们只是给出最为常用的使用方式,即数据库服务器的正常启动和关闭。
        #start表示启动postgres服务器进程。
        #-D指定数据库服务器的初始目录的存放路径。
        #-l指定数据库服务器进程的日志文件
        /> pg_ctl -w start -D /opt/PostgreSQL/9.1/data -l /opt/PostgreSQL/9.1/data/pg_log/startup.log
        #stop表示停止postgres服务器进程
        #-m fast在关闭系统时,使用fast的关闭模式。
        /> pg_ctl stop -m fast -w -D /opt/PostgreSQL/9.1/data

    二、服务器配置:

        1. 设置参数:
        在PostgreSQL中,所有配置参数名都是大小写不敏感的。每个参数都可以接受四种类型的值,它们分别是布尔、整数、浮点数和字符串。其中布尔值可以是ON、OFF、TRUE、FALSE、YES、NO、1和0。包含这些参数的配置文件是postgresql.conf,该文件通常存放在initdb初始化的数据(data)目录下,见如下配置片段:
        # 这是一个注释
        log_connections = yes
        log_destination = 'syslog'
        search_path = '$user, public'
        井号(#)开始的行为注释行,如果配置值中包含数字,则需要用单引号括起。如果参数值本身包含单引号,我们可以写两个单引号(推荐方法)或用反斜扛包围。    
        这里需要注意的是,并非所有配置参数都可以在服务器运行时执行动态修改,有些参数在修改后,只能等到服务器重新启动后才能生效。
        PostgreSQL还提供了另外一种修改配置参数的方法,即在命令行上直接执行修改命令,如:
        /> postgres -c log_connections=yes -c log_destination='syslog'
        如果此时命令行设置的参数和配置文件中的参数相互冲突,那么命令行中给出的参数将覆盖配置文件中已有的参数值。除此之外,我们还可以通过ALTER DATABASE和ALTER USER等PostgreSQL的数据定义命令来分别修改指定数据库或指定用户的配置信息。其中针对数据库的设置将覆盖任何从postgres命令行或者配置文件从给出的设置,然后又会被针对用户的设置覆盖,最后又都会被每会话的选项覆盖。下面是当服务器配置出现冲突时,PostgreSQL服务器将会采用哪种方式的优先级,如:
        1). 基于会话的配置;
        2). 基于用户的配置;
        3). 基于数据库的配置;
        4). postgres命令行指定的配置;
        5). 配置文件postgresql.conf中给出的配置。
        最后需要说明的是,有些设置可以通过PostgreSQL的set命令进行设置,如在psql中我们可以输入:
        SET ENABLE_SEQSCAN TO OFF;
        也可以通过show命令来显示指定配置的当前值,如:
        SHOW ENABLE_SEQSCAN;
        与此同时,我们也可以手工查询pg_settings系统表的方式来检索感兴趣的系统参数。 

    三、内存相关的参数配置:

        1. shared_buffers(integer):
        设置数据库服务器可以使用的共享内存数量。缺省情况下可以设置为32MB,但是不要少于128KB。因为该值设置的越高对系统的性能越有好处。该配置参数只能在数据库启动时设置。
        此时,如果你有一台专用的数据库服务器,其内存为1G或者更多,那么我们推荐将该值设置为系统内存的25%。
        
        2. work_mem(integer):
        PostgreSQL在执行排序操作时,会根据work_mem的大小决定是否将一个大的结果集拆分为几个小的和work_mem差不多大小的临时文件。显然拆分的结果是降低了排序的速度。因此增加work_mem有助于提高排序的速度。然而需要指出的是,如果系统中同时存在多个排序操作,那么每个操作在排序时使用的内存数量均为work_mem,因此在我们设置该值时需要注意这一问题。
        
        3. maintence_work_mem(integer):
        指定在维护性操作中使用的最大内存数,如VACUUM、CREATE INDEX和ALTER TABLE ADD FOREIGN KEY等,该配置的缺省值为16MB。因为每个会话在同一时刻只能执行一个该操作,所以使用的频率不高,但是这些指令往往消耗较多的系统资源,因此应该尽快让这些指令快速执行完毕。

  • 相关阅读:
    51nod乘积之和
    Dell服务器安装OpenManage(OMSA)
    Nginx反向代理PHP
    搭建haproxy
    108. Convert Sorted Array to Binary Search Tree
    60. Permutation Sequence
    142. Linked List Cycle II
    129. Sum Root to Leaf Numbers
    118. Pascal's Triangle
    26. Remove Duplicates from Sorted Array
  • 原文地址:https://www.cnblogs.com/orangeform/p/2302241.html
Copyright © 2011-2022 走看看