runtime.sgml
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:14k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1.  <Chapter Id="runtime">
  2.   <Title>Runtime Environment</Title>
  3.   <Para>
  4.    This chapter outlines the interaction between <Productname>Postgres</Productname> and
  5.    the operating system.
  6.   </para>
  7.   <sect1>
  8.    <title>Using <Productname>Postgres</Productname> from Unix</title>
  9.    <para>
  10.     All <Productname>Postgres</Productname> commands that are executed 
  11.     directly from a Unix shell are
  12.     found in the directory <quote>.../bin</quote>.  Including this directory in
  13.     your search path will make executing the commands easier.
  14.    </para>
  15.    <para>
  16.     A collection of system catalogs exist at each site.  These include a
  17.     class (<literal>pg_user</literal>) that contains an instance for each valid
  18.     <Productname>Postgres</Productname> user.  The instance specifies a set of
  19.     <Productname>Postgres</Productname> privileges, such as
  20.     the ability to act as <Productname>Postgres</Productname> super-user,
  21.     the ability to create/destroy
  22.     databases, and the ability to update the system catalogs.  A Unix
  23.     user cannot do anything with <Productname>Postgres</Productname> 
  24.     until an appropriate instance is
  25.     installed in this class.  Further information on the system catalogs
  26.     is available by running queries on the appropriate classes.
  27.    </para>
  28.   </sect1>
  29.   <sect1 Id="postmaster">
  30.    <Title>Starting <Application>postmaster</Application></Title>
  31.    <Para>
  32.     Nothing can happen to a database unless the
  33.     <Application>postmaster</Application>
  34.     process  is  running.  As the site administrator, there
  35.     are a number  of  things  you  should  remember  before
  36.     starting  the  <Application>postmaster</Application>.   
  37.     These are discussed in the installation and configuration sections
  38.     of this manual.
  39.     However, if <ProductName>Postgres</ProductName> has been installed by following 
  40.     the installation instructions exactly  as  written,  the  
  41.     following  simple  command is all you should
  42.     need to start the <Application>postmaster</Application>:
  43.     <ProgramListing>
  44. % postmaster
  45.     </ProgramListing>
  46.    </para>
  47.    <para>
  48.     The <Application>postmaster</Application> occasionally prints out  
  49.     messages  which
  50.     are  often helpful during troubleshooting.  If you wish
  51.     to view debugging messages from the <Application>postmaster</Application>, 
  52.     you can
  53.     start  it with the -d option and redirect the output to
  54.     the log file:
  55.     <ProgramListing>
  56. % postmaster -d >& pm.log &
  57.     </ProgramListing>
  58.     If you do not wish to see these messages, you can type
  59.     <ProgramListing>
  60. % postmaster -S
  61.     </ProgramListing>
  62.     and the <Application>postmaster</Application> will be "S"ilent.  
  63.     Notice that there
  64.     is no ampersand ("&amp") at the end of the last example so
  65.     postmaster will be running in the foreground.
  66.    </Para>
  67.   </sect1>
  68.   <sect1 Id="pg-options">
  69.    <Title id="pg-options-title">Using pg_options</Title>
  70.    <Para>
  71.     <Note>
  72.      <Para>
  73.       Contributed by <ULink url="mailto:dz@cs.unitn.it">Massimo Dal Zotto</ULink>
  74.      </Para>
  75.     </Note>
  76.    </para>
  77.    <Para>
  78.     The optional file <filename>data/pg_options</filename> contains runtime
  79.     options used by the backend to control trace messages and other backend
  80.     tunable parameters.
  81.     The file is re-read by a backend
  82.     when it receives a SIGHUP signal, making thus possible to change run-time
  83.     options on the fly without needing to restart 
  84.     <productname>Postgres</productname>.
  85.     The options specified in this file may be debugging flags used by the trace
  86.     package (<filename>backend/utils/misc/trace.c</filename>) or numeric
  87.     parameters which can be used by the backend to control its behaviour.
  88.    </para>
  89.    <para>
  90.     All pg_options are initialized to zero at backend startup.
  91.     New or modified options will be read by all new backends when they are started.
  92.     To make effective any changes for all running backends we need to send a
  93.     SIGHUP to the postmaster. The signal will be automatically sent to all the
  94.     backends. We can also activate the changes only for a specific backend by
  95.     sending the SIGHUP directly to it.
  96.    </para>
  97.    <para>
  98.     pg_options can also be specified with the <option>-T</option> switch of 
  99.     <productname>Postgres</productname>:
  100.     <programlisting>
  101. postgres <replaceable>options</replaceable> -T "verbose=2,query,hostlookup-"
  102.     </programlisting>
  103.    </para>
  104.    <Para>
  105.     The functions used for printing errors and debug messages can now make use
  106.     of the <citetitle>syslog(2)</citetitle> facility. Message printed to stdout
  107.     or stderr are prefixed by a timestamp containing also the backend pid:
  108.     <programlisting>
  109. #timestamp          #pid    #message
  110. 980127.17:52:14.173 [29271] StartTransactionCommand
  111. 980127.17:52:14.174 [29271] ProcessUtility: drop table t;
  112. 980127.17:52:14.186 [29271] SIIncNumEntries: table is 70% full
  113. 980127.17:52:14.186 [29286] Async_NotifyHandler
  114. 980127.17:52:14.186 [29286] Waking up sleeping backend process
  115. 980127.19:52:14.292 [29286] Async_NotifyFrontEnd
  116. 980127.19:52:14.413 [29286] Async_NotifyFrontEnd done
  117. 980127.19:52:14.466 [29286] Async_NotifyHandler done
  118.     </programlisting>
  119.    </para>
  120.    <para>
  121.     This format improves readability of the logs and allows people to understand
  122.     exactly which backend is doing what and at which time. It also makes
  123.     easier to write simple awk or perl scripts which monitor the log to
  124.     detect database errors or problem, or to compute transaction time statistics.
  125.    </para>
  126.    <para>
  127.     Messages printed to syslog use the log facility LOG_LOCAL0.
  128.     The use of syslog can be controlled with the syslog pg_option.
  129.     Unfortunately many functions call directly <function>printf()</function>
  130.     to print their messages to stdout or stderr and this output can't be
  131.     redirected to syslog or have timestamps in it. 
  132.     It would be advisable that all calls to printf would be replaced with the
  133.     PRINTF macro and output to stderr be changed to use EPRINTF instead so that
  134.     we can control all output in a uniform way.
  135.    </Para>
  136.    <para>
  137.     The format of the <filename>pg_options</filename> file is as follows:
  138.     <programlisting>
  139. # <replaceable>comment</replaceable>
  140. <replaceable>option</replaceable>=<replaceable class="parameter">integer_value</replaceable>  # set value for <replaceable>option</replaceable>
  141. <replaceable>option</replaceable>                # set <replaceable>option</replaceable> = 1
  142. <replaceable>option</replaceable>+               # set <replaceable>option</replaceable> = 1
  143. <replaceable>option</replaceable>-               # set <replaceable>option</replaceable> = 0
  144.     </programlisting>
  145.     Note that <replaceable class="parameter">keyword</replaceable> can also be
  146.     an abbreviation of the option name defined in
  147.     <filename>backend/utils/misc/trace.c</filename>.
  148.     <example>
  149.      <title>pg_options File</title>
  150.      <para>
  151.       For example my pg_options file contains the following values:
  152.       <programlisting>
  153. verbose=2
  154. query
  155. hostlookup
  156. showportnumber
  157.       </programlisting>
  158.      </para>
  159.     </example>
  160.    </para>
  161.    <sect2>
  162.     <title>Recognized Options</title>
  163.     <Para>
  164.      The options currently defined are:
  165.      <variablelist>
  166.       <varlistentry>
  167.        <term>
  168. all
  169.        </term>
  170.        <listitem>
  171. <para>
  172.  Global trace flag. Allowed values are:
  173. </para>
  174.        <variablelist>
  175. <varlistentry>
  176.  <term>
  177.   0
  178.  </term>
  179.  <listitem>
  180.   <para>
  181.    Trace messages enabled individually
  182.   </para>
  183.  </listitem>
  184. </varlistentry>
  185. <varlistentry>
  186.  <term>
  187.   1
  188.  </term>
  189.  <listitem>
  190.   <para>
  191.    Enable all trace messages
  192.   </para>
  193.  </listitem>
  194. </varlistentry>
  195. <varlistentry>
  196.  <term>
  197.   -1
  198.  </term>
  199.  <listitem>
  200.   <para>
  201.    Disable all trace messages
  202.   </para>
  203.  </listitem>
  204. </varlistentry>
  205.        </variablelist>
  206.       </listitem>
  207.      </varlistentry>
  208.      <varlistentry>
  209.       <term>
  210.        verbose
  211.       </term>
  212.       <listitem>
  213.        <para>
  214. Verbosity flag. Allowed values are:
  215.        </para>
  216.        <variablelist>
  217. <varlistentry>
  218.  <term>
  219.   0
  220.  </term>
  221.  <listitem>
  222.   <para>
  223.    No messages. This is the default.
  224.   </para>
  225.  </listitem>
  226. </varlistentry>
  227. <varlistentry>
  228.  <term>
  229.   1
  230.  </term>
  231.  <listitem>
  232.   <para>
  233.    Print information messages.
  234.   </para>
  235.  </listitem>
  236. </varlistentry>
  237. <varlistentry>
  238.  <term>
  239.   2
  240.  </term>
  241.  <listitem>
  242.   <para>
  243.    Print more information messages.
  244.   </para>
  245.  </listitem>
  246. </varlistentry>
  247.        </variablelist>
  248.       </listitem>
  249.      </varlistentry>
  250.      <varlistentry>
  251.       <term>
  252.        query
  253.       </term>
  254.       <listitem>
  255.        <para>
  256. Query trace flag. Allowed values are:
  257.        </para>
  258.        <variablelist>
  259. <varlistentry>
  260.  <term>
  261.   0
  262.  </term>
  263.  <listitem>
  264.   <para>
  265.    Don't print query.
  266.   </para>
  267.  </listitem>
  268. </varlistentry>
  269. <varlistentry>
  270.  <term>
  271.   1
  272.  </term>
  273.  <listitem>
  274.   <para>
  275.    Print a condensed query in one line.
  276.   </para>
  277.  </listitem>
  278. </varlistentry>
  279. <varlistentry>
  280.  <term>
  281.   4
  282.  </term>
  283.  <listitem>
  284.   <para>
  285.    Print the full query.
  286.   </para>
  287.  </listitem>
  288. </varlistentry>
  289.        </variablelist>
  290.       </listitem>
  291.      </varlistentry>
  292.      <varlistentry>
  293.       <term>
  294.        plan
  295.       </term>
  296.       <listitem>
  297.        <para>
  298. Print query plan.
  299.        </para>
  300.       </listitem>
  301.      </varlistentry>
  302.      <varlistentry>
  303.       <term>
  304.        parse
  305.       </term>
  306.       <listitem>
  307.        <para>
  308. Print parser output.
  309.        </para>
  310.       </listitem>
  311.      </varlistentry>
  312.      <varlistentry>
  313.       <term>
  314.        rewritten
  315.       </term>
  316.       <listitem>
  317.        <para>
  318. Print rewritten query.
  319.        </para>
  320.       </listitem>
  321.      </varlistentry>
  322.      <varlistentry>
  323.       <term>
  324.        parserstats
  325.       </term>
  326.       <listitem>
  327.        <para>
  328. Print parser statistics.
  329.        </para>
  330.       </listitem>
  331.      </varlistentry>
  332.      <varlistentry>
  333.       <term>
  334.        plannerstats
  335.       </term>
  336.       <listitem>
  337.        <para>
  338. Print planner statistics.
  339.        </para>
  340.       </listitem>
  341.      </varlistentry>
  342.      <varlistentry>
  343.       <term>
  344.        executorstats
  345.       </term>
  346.       <listitem>
  347.        <para>
  348. Print executor statistics.
  349.        </para>
  350.       </listitem>
  351.      </varlistentry>
  352.      <varlistentry>
  353.       <term>
  354.        shortlocks
  355.       </term>
  356.       <listitem>
  357.        <para>
  358. Currently unused but needed to enable features in the future.
  359.        </para>
  360.       </listitem>
  361.      </varlistentry>
  362.      <varlistentry>
  363.       <term>
  364.        locks
  365.       </term>
  366.       <listitem>
  367.        <para>
  368. Trace locks.
  369.        </para>
  370.       </listitem>
  371.      </varlistentry>
  372.      <varlistentry>
  373.       <term>
  374.        userlocks
  375.       </term>
  376.       <listitem>
  377.        <para>
  378. Trace user locks.
  379.        </para>
  380.       </listitem>
  381.      </varlistentry>
  382.      
  383.      <varlistentry>
  384.       <term>
  385.        spinlocks
  386.       </term>
  387.       <listitem>
  388.        <para>
  389. Trace spin locks.
  390.        </para>
  391.       </listitem>
  392.      </varlistentry>
  393.      <varlistentry>
  394.       <term>
  395.        notify
  396.       </term>
  397.       <listitem>
  398.        <para>
  399. Trace notify functions.
  400.        </para>
  401.       </listitem>
  402.      </varlistentry>
  403.      <varlistentry>
  404.       <term>
  405.        malloc
  406.       </term>
  407.       <listitem>
  408.        <para>
  409. Currently unused.
  410.        </para>
  411.       </listitem>
  412.      </varlistentry>
  413.      <varlistentry>
  414.       <term>
  415.        palloc
  416.       </term>
  417.       <listitem>
  418.        <para>
  419. Currently unused.
  420.        </para>
  421.       </listitem>
  422.      </varlistentry>
  423.      <varlistentry>
  424.       <term>
  425.        lock_debug_oidmin
  426.       </term>
  427.       <listitem>
  428.        <para>
  429. Minimum relation oid traced by locks.
  430.        </para>
  431.       </listitem>
  432.      </varlistentry>
  433.      <varlistentry>
  434.       <term>
  435.        lock_debug_relid
  436.       </term>
  437.       <listitem>
  438.        <para>
  439. oid, if not zero, of relation traced by locks.
  440.        </para>
  441.       </listitem>
  442.      </varlistentry>
  443.      <varlistentry>
  444.       <term>
  445.        lock_read_priority
  446.       </term>
  447.       <listitem>
  448.        <para>
  449. Currently unused.
  450.        </para>
  451.       </listitem>
  452.      </varlistentry>
  453.      <varlistentry>
  454.       <term>
  455.        deadlock_timeout
  456.       </term>
  457.       <listitem>
  458.        <para>
  459. Deadlock check timer.
  460.        </para>
  461.       </listitem>
  462.      </varlistentry>
  463.      <varlistentry>
  464.       <term>
  465.        syslog
  466.       </term>
  467.       <listitem>
  468.        <para>
  469. syslog flag. Allowed values are:
  470.        </para>
  471.        <variablelist>
  472. <varlistentry>
  473.  <term>
  474.   0
  475.  </term>
  476.  <listitem>
  477.   <para>
  478.    Messages to stdout/stderr.
  479.   </para>
  480.  </listitem>
  481. </varlistentry>
  482. <varlistentry>
  483.  <term>
  484.   1
  485.  </term>
  486.  <listitem>
  487.   <para>
  488.    Messages to stdout/stderr and syslog.
  489.   </para>
  490.  </listitem>
  491. </varlistentry>
  492. <varlistentry>
  493.  <term>
  494.   2
  495.  </term>
  496.  <listitem>
  497.   <para>
  498.    Messages only to syslog.
  499.   </para>
  500.  </listitem>
  501. </varlistentry>
  502.        </variablelist>
  503.       </listitem>
  504.      </varlistentry>
  505.      <varlistentry>
  506.       <term>
  507.        hostlookup
  508.       </term>
  509.       <listitem>
  510.        <para>
  511. Enable hostname lookup in ps_status.
  512.        </para>
  513.       </listitem>
  514.      </varlistentry>
  515.      <varlistentry>
  516.       <term>
  517.        showportnumber
  518.       </term>
  519.       <listitem>
  520.        <para>
  521. Show port number in ps_status.
  522.        </para>
  523.       </listitem>
  524.      </varlistentry>
  525.      <varlistentry>
  526.       <term>
  527.        notifyunlock
  528.       </term>
  529.       <listitem>
  530.        <para>
  531. Unlock of pg_listener after notify.
  532.        </para>
  533.       </listitem>
  534.      </varlistentry>
  535.      <varlistentry>
  536.       <term>
  537.        notifyhack
  538.       </term>
  539.       <listitem>
  540.        <para>
  541. Remove duplicate tuples from pg_listener.
  542.        </para>
  543.       </listitem>
  544.      </varlistentry>
  545.     </variablelist>
  546.     </para>
  547.    </sect2>
  548.   </sect1>
  549. </Chapter>
  550. <!-- Keep this comment at the end of the file
  551. Local variables:
  552. mode: sgml
  553. sgml-omittag:nil
  554. sgml-shorttag:t
  555. sgml-minimize-attributes:nil
  556. sgml-always-quote-attributes:t
  557. sgml-indent-step:1
  558. sgml-indent-data:t
  559. sgml-parent-document:nil
  560. sgml-default-dtd-file:"./reference.ced"
  561. sgml-exposed-tags:nil
  562. sgml-local-catalogs:"/usr/lib/sgml/CATALOG"
  563. sgml-local-ecat-files:nil
  564. End:
  565. -->