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

数据库系统

开发平台:

Unix_Linux

  1. ." This is -*-nroff-*-
  2. ." $Header: /usr/local/cvsroot/pgsql/src/man/Attic/initdb.1,v 1.4 1998/06/24 13:21:26 momjian Exp $
  3. .TH INITDB UNIX 11/29/96 PostgreSQL PostgreSQL
  4. .SH NAME
  5. initdb - create a new Postgres database system
  6. .SH SYNOPSIS
  7. .BR "initdb"
  8. [c
  9. .BR "--pglib="c
  10. .IR "directory"c
  11. ]
  12. [c
  13. .BR "--pgdata="c
  14. .IR "directory"c
  15. ]
  16. [c
  17. .BR "--username="c
  18. .IR "username"c
  19. ]
  20. [c
  21. .BR "--template"c
  22. ]
  23. [c
  24. .BR "--noclean"c
  25. ]
  26. [c
  27. .BR "--debug"c
  28. ]
  29. .BR "initdb"
  30. [c
  31. .BR "-l"
  32. .IR "directory"c
  33. ]
  34. [c
  35. .BR "-r"
  36. .IR "directory"c
  37. ]
  38. [c
  39. .BR "-u"
  40. .IR "username"c
  41. ]
  42. [c
  43. .BR "-t"c
  44. ]
  45. [c
  46. .BR "-n"c
  47. ]
  48. [c
  49. .BR "-d"c
  50. ]
  51. .SH DESCRIPTION
  52. .IR Initdb
  53. Creates a new Postgres database system.  A database system is a
  54. collection of databases that are all administered by the same Unix user
  55. and managed by a single postmaster.
  56. .PP
  57. Creating a database system consists of creating the directories in which
  58. the database data will live, generating the shared catalog tables 
  59. (tables that don't belong to any particular database), and
  60. creating the
  61. .IR template1
  62. database.  What is the 
  63. .IR template1
  64. database?  When you create a database, Postgres does it by copying
  65. everything from the
  66. .IR template1
  67. database.  It contains catalog tables filled in for things like the
  68. builtin types.
  69. .PP     
  70. After 
  71. .IR initdb
  72. creates the database, it 
  73. .BR vacuum 's
  74. it.
  75. .PP
  76. There are 3 ways to give parameters to 
  77. .IR initdb .
  78. First, you can use initdb command options.  Second, you can set environment
  79. variables before invoking initdb.  Third, you can have a program called
  80. .IR postconfig
  81. in your Unix command search path. 
  82. .IR Initdb
  83. invokes that program and the program writes 
  84. .IR initdb
  85. parameters to its standard output stream.
  86. .PP
  87. Command options always override parameters specified any other way.
  88. The values returned by
  89. .IR postconfig 
  90. override any environment variables, but your
  91. .IR postconfig 
  92. program may base its output on the environment variables if you want
  93. their values to be used.
  94. .PP
  95. The value that 
  96. .IR postconfig 
  97. outputs must have the format
  98. .PP
  99.     var1=value1 var2=value2 ...  
  100. .PP
  101. It can output nothing if it doesn't want to supply any parameters.
  102. The "varN" values are equal to the corresponding environment variable
  103. names.  For example, outputting "PGDATA=/tmp/postgres_test" has the
  104. same effect as invoking
  105. .IR initdb 
  106. with an environment variable called "PGDATA" whose value is
  107. "/tmp/postgres_test".
  108. .PP
  109. There are 3 parameters you must supply to initdb to tell it how to 
  110. create the database system:
  111. .PP
  112. 1) Where are the files that make up Postgres?  Apart from files that
  113. have to go in particular directories because of their function, the
  114. files that make up the Postgres software were installed in a directory
  115. called the "pglib" directory.  An example of a file that will be found
  116. there that 
  117. .IR initdb
  118. needs is global1.bki.source, which contains all the information that goes
  119. into the shared catalog tables.  Use the 
  120. .BR --pglib
  121. (c
  122. .BR -l )
  123. option or the 
  124. .BR PGLIB
  125. environment variable.
  126. .PP
  127. 2) Where in your Unix filesystem do you want the database data to go?
  128. The top level directory is called the "pgdata" directory.  Use the
  129. .BR --pgdata 
  130. (c
  131. .BR -d )
  132. option or the 
  133. .BR PGDATA
  134. environment variable.
  135. .PP
  136. 3) Who will be the Postgres superuser for this database system?  The
  137. Postgres superuser is a Unix user that owns all files that store the database
  138. system and also owns the postmaster and backend processes that access them.
  139. Use the
  140. .BR --username
  141. (c
  142. .BR -u )
  143. option or the 
  144. .BR PGUSER
  145. environment variable.  Or just let it default to you (the Unix user who
  146. runs
  147. .IR initdb ).
  148. Note that only the Unix superuser can create a database system with a
  149. different user as Postgres superuser.
  150. .PP
  151. .IR Initdb
  152. understands the following command-line options:
  153. .BR "--pglib="c
  154. .IR "directory"
  155. .BR "-l"
  156. .IR "directory"
  157. Use the Postgres files in the specified directory, as explained above.
  158. .BR "--pgdata="c
  159. .IR "directory"
  160. .BR "-r"
  161. .IR "directory"
  162. Put the database system in this directory, as explained above.
  163. .BR "--username="c
  164. .IR "username"
  165. .BR "-u"
  166. .IR "username"
  167. Build the database system with the specified Unix user as the Postgres
  168. superuser for it, as explained above.
  169. .BR "--template"
  170. .BR "-t"
  171. Replace the
  172. .IR template1
  173. database in an existing database system, and don't touch anything else.
  174. This is useful when you need to upgrade your 
  175. .IR template1
  176. database using 
  177. .IR initdb
  178. from a newer release of Postgres, or when your 
  179. .IR template1
  180. database has become corrupted by some system problem.  Normally the
  181. contents of
  182. .IR template1
  183. remain constant throughout the life of the database system.  You can't
  184. destroy anything by running
  185. .IR initdb
  186. with the 
  187. .BR --template
  188. option.
  189. .BR "--noclean"
  190. .BR "-n"
  191. Run in *(lqnoclean*(rq mode.  By default, 
  192. when 
  193. .IR initdb
  194. determines that error prevent it from completely creating the database
  195. system, it removes any files it may have created before determining
  196. that it can't finish the job.  That includes any core files left by
  197. the programs it invokes.  This option inhibits any tidying-up and is
  198. thus useful for debugging.
  199. .BR "--debug"
  200. .BR "-d"
  201. Print debugging output from the bootstrap backend.  
  202. The bootstrap backend is the program 
  203. .IR initdb
  204. uses to create the catalog tables.  This option generates a tremendous
  205. amount of output.  It also turns off the final vacuuming step.
  206. .SH FILES
  207. .TP
  208. postconfig
  209. (Somewhere in the Unix command search path (defined by the PATH environment
  210. variable)).  This is a program that specifies defaults for some of the
  211. command options.  See above.
  212. .TP
  213. PGLIB/global1.bki.source
  214. Contents for the shared catalog tables in the new database system.  This
  215. file is part of the Postgres software.
  216. .TP
  217. PGLIB/local1_template1.bki.source
  218. Contents for the template1 tables in the new database system.  This
  219. file is part of the Postgres software.
  220. .SH "SEE ALSO"
  221. vacuum(l),
  222. bki(5),
  223. create_database(l),
  224. createuser(1),
  225. psql(1).