Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/manage.sgml')
-rw-r--r--doc/src/sgml/manage.sgml294
1 files changed, 294 insertions, 0 deletions
diff --git a/doc/src/sgml/manage.sgml b/doc/src/sgml/manage.sgml
new file mode 100644
index 00000000000..332dc2459da
--- /dev/null
+++ b/doc/src/sgml/manage.sgml
@@ -0,0 +1,294 @@
+<Chapter>
+<Title>Managing a Database</Title>
+
+<Para>
+<Note>
+<Para>
+This section is currently a thinly disguised copy of the Tutorial. Needs to be augmented.
+- thomas 1998-01-12
+</Para>
+</Note>
+</Para>
+
+<Para>
+Although the <FirstTerm>site administrator</FirstTerm> is responsible for overall management of the
+<ProductName>Postgres</ProductName> installation, some databases within the
+installation may be managed by another person, designated the <FirstTerm>database administrator</FirstTerm>.
+This assignment of responsibilities occurs when a database is created. A user may be assigned
+explicit privileges to create databases and/or to create new users. A user assigned both privileges
+can perform most administrative task within <ProductName>Postgres</ProductName>, but will
+not by default have the same operating system privileges as the site administrator.
+</Para>
+
+<Para>
+The Database Administrator's Guide covers these topics in more detail.
+</Para>
+
+<Sect1>
+<Title>Database Creation</Title>
+
+<Para>
+Databases are created by the <Command>create database</Command> issued from
+within <ProductName>Postgres</ProductName>. <Application>createdb</Application> is a command-line
+utility provided to give the same functionality from outside <ProductName>Postgres</ProductName>.
+</Para>
+
+<Para>
+The <ProductName>Postgres</ProductName> backend must be running for either method
+to succeed, and the user issuing the command must be the <ProductName>Postgres</ProductName>
+<FirstTerm>superuser</FirstTerm> or have been assigned database creation privileges by the
+superuser.
+</Para>
+
+<Para>
+To create a new database named <Quote>mydb</Quote> from the command line, type
+<ProgramListing>
+% createdb mydb
+</ProgramListing>
+
+and to do the same from within <Application>psql</Application> type
+<ProgramListing>
+* CREATE DATABASE mydb;
+</ProgramListing>
+</Para>
+
+<Para>
+If you do not have the privileges required to create a database, you will see
+the following:
+<ProgramListing>
+% createdb mydb
+WARN:user "your username" is not allowed to create/destroy databases
+createdb: database creation failed on mydb.
+</ProgramListing>
+</Para>
+
+<Para>
+<ProductName>Postgres</ProductName> allows you to create any number of databases
+at a given site and you automatically become the
+database administrator of the database you just created.
+Database names must have an alphabetic first
+character and are limited to 32 characters in length.
+</Para>
+
+</Sect1>
+
+<Sect1>
+<Title>Alternate Database Locations</Title>
+
+<Para>
+It is possible to create a database in a location other than the default
+location for the installation. Remember that all database access actually
+occurs through the database backend, so that any location specified must
+be accessible by the backend.
+
+<Para>
+ Either an absolute path name or an environment variable
+may be specified as a location.
+Any environment variable specifying an alternate location must have
+been defined before the backend was started.
+Consult with the site administrator
+regarding preconfigured alternate database locations.
+
+<Note>
+<Para>
+ The environment variable style of specification
+is to be preferred since it allows the site administrator more flexibility in
+managing disk storage.
+</Para>
+</Note>
+
+<Para>
+For security and integrity reasons,
+any path or environment variable specified has some
+additional path fields appended.
+
+<Para>
+Alternate database locations must be prepared by running <Application>initlocation</Application>.
+
+<Para>
+To create a data storage area in <FileName>/alt/postgres/data</FileName>, ensure
+that <FileName>/alt/postgres</FileName> already exists.
+From the command line, type
+<ProgramListing>
+% initlocation /alt/postgres/data
+Creating Postgres database system directory /alt/postgres/data
+
+Creating Postgres database system directory /alt/postgres/data/base
+
+</ProgramListing>
+
+<Para>
+To do the same using an environment variable PGDATA2, type
+<ProgramListing>
+% initlocation $PGDATA2
+Creating Postgres database system directory /alt/postgres/data
+
+Creating Postgres database system directory /alt/postgres/data/base
+
+</ProgramListing>
+
+<Para>
+To create a database in the alternate storage area <FileName>/alt/postgres/data</FileName>
+from the command line,
+type
+<ProgramListing>
+% createdb -D /alt/postgres/data mydb
+</ProgramListing>
+
+or
+
+<ProgramListing>
+% createdb -D PGDATA2 mydb
+</ProgramListing>
+
+and to do the same from within <Application>psql</Application> type
+<ProgramListing>
+* CREATE DATABASE mydb WITH LOCATION = 'PGDATA2';
+</ProgramListing>
+</Para>
+
+<Para>
+If you do not have the privileges required to create a database, you will see
+the following:
+<ProgramListing>
+% createdb mydb
+WARN:user "your username" is not allowed to create/destroy databases
+createdb: database creation failed on mydb.
+</ProgramListing>
+</Para>
+
+<Para>
+If the specified location does not exist or the database backend does not have
+permission to access it or to write to directories under it, you will see
+the following:
+<ProgramListing>
+% createdb -D /alt/postgres/data mydb
+ERROR: Unable to create database directory /alt/postgres/data/base/mydb
+createdb: database creation failed on mydb.
+</ProgramListing>
+
+</Sect1>
+
+<Sect1>
+<Title>Accessing a Database</Title>
+
+<Para>
+ Once you have constructed a database, you can access it
+ by:
+
+<ItemizedList Mark="bullet" Spacing="compact">
+<ListItem>
+<Para>
+running the <ProductName>Postgres</ProductName> terminal monitor programs (e.g.
+ <Application>psql</Application>) which allows you to interactively
+ enter, edit, and execute <Acronym>SQL</Acronym> commands.
+</Para>
+</ListItem>
+<ListItem>
+<Para>
+ writing a C program using the LIBPQ subroutine
+ library. This allows you to submit <Acronym>SQL</Acronym> commands
+ from C and get answers and status messages back to
+ your program. This interface is discussed further
+ in section ??.
+</Para>
+</ListItem>
+</ItemizedList>
+
+You might want to start up <Application>psql</Application>, to try out the examples in this manual.
+ It can be activated for the <Database>mydb</Database>
+ database by typing the command:
+<ProgramListing>
+% psql mydb
+</ProgramListing>
+
+ You will be greeted with the following message:
+<ProgramListing>
+Welcome to the POSTGRESQL interactive sql monitor:
+ Please read the file COPYRIGHT for copyright terms of POSTGRESQL
+
+ type \? for help on slash commands
+ type \q to quit
+ type \g or terminate with semicolon to execute query
+ You are currently connected to the database: template1
+
+mydb=>
+</ProgramListing>
+</Para>
+
+<Para>
+This prompt indicates that the terminal monitor is listening
+ to you and that you can type <Acronym>SQL</Acronym> queries into a
+ workspace maintained by the terminal monitor.
+ The <Application>psql</Application> program responds to escape codes that begin
+ with the backslash character, <Quote>\</Quote> For example, you
+ can get help on the syntax of various
+ <ProductName>Postgres</ProductName> <Acronym>SQL</Acronym> commands by typing:
+<ProgramListing>
+mydb=> \h
+</ProgramListing>
+
+ Once you have finished entering your queries into the
+ workspace, you can pass the contents of the workspace
+ to the <ProductName>Postgres</ProductName> server by typing:
+<ProgramListing>
+mydb=> \g
+</ProgramListing>
+
+ This tells the server to process the query. If you
+ terminate your query with a semicolon, the <Quote>\g</Quote> is not
+ necessary. <Application>psql</Application> will automatically process semicolon terminated queries.
+ To read queries from a file, say myFile, instead of
+ entering them interactively, type:
+<ProgramListing>
+mydb=> \i fileName
+</ProgramListing>
+
+ To get out of <Application>psql</Application> and return to UNIX, type
+<ProgramListing>
+mydb=> \q
+</ProgramListing>
+
+ and <Application>psql</Application> will quit and return you to your command
+ shell. (For more escape codes, type <Command>\h</Command> at the monitor
+ prompt.)
+ White space (i.e., spaces, tabs and newlines) may be
+ used freely in <Acronym>SQL</Acronym> queries. Single-line comments are denoted by
+ <Quote>--</Quote>. Everything after the dashes up to the end of the
+ line is ignored. Multiple-line comments, and comments within a line,
+ are denoted by <Quote>/* ... */</Quote>
+</Para>
+
+<Sect2>
+<Title>Database Privileges</Title>
+
+<Para>
+</Sect2>
+
+<Sect2>
+<Title>Table Privileges</Title>
+
+<Para>
+TBD
+</Para>
+
+</Sect2>
+
+</Sect1>
+
+<Sect1>
+<Title>Destroying a Database</Title>
+
+<Para>
+ If you are the database administrator for the database
+ <Database>mydb</Database>, you can destroy it using the following UNIX command:
+<ProgramListing>
+% destroydb mydb
+</ProgramListing>
+ This action physically removes all of the UNIX files
+ associated with the database and cannot be undone, so
+ this should only be done with a great deal of forethought.
+</Para>
+</Sect1>
+
+</Chapter>