|
27 | 27 | # Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group |
28 | 28 | # Portions Copyright (c) 1994, Regents of the University of California |
29 | 29 | # |
30 | | -# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.163 2002/07/29 22:14:11 tgl Exp $ |
| 30 | +# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.164 2002/08/04 06:26:38 thomas Exp $ |
31 | 31 | # |
32 | 32 | #------------------------------------------------------------------------- |
33 | 33 |
|
|
252 | 252 | -D*) |
253 | 253 | PGDATA=`echo $1 | sed 's/^-D//'` |
254 | 254 | ;; |
| 255 | +# Directory to hold WAL log files. |
| 256 | + --pgxlog|-X) |
| 257 | + PGXLOG="$2" |
| 258 | + defined_pgxlog=yes |
| 259 | + shift;; |
| 260 | + --pgxlog=*) |
| 261 | + PGXLOG=`echo $1 | sed 's/^--pgxlog=//'` |
| 262 | + defined_pgxlog=yes |
| 263 | + ;; |
| 264 | + -X*) |
| 265 | + PGXLOG=`echo $1 | sed 's/^-X//'` |
| 266 | + defined_pgxlog=yes |
| 267 | + ;; |
255 | 268 | # The directory where the .bki input files are stored. Normally |
256 | 269 | # they are in PREFIX/share and this option should be unnecessary. |
257 | 270 | -L) |
@@ -341,6 +354,7 @@ if [ "$usage" ]; then |
341 | 354 | echo |
342 | 355 | echo "Options:" |
343 | 356 | echo " [-D, --pgdata] DATADIR Location for this database cluster" |
| 357 | + echo " [-X, --pgxlog] XLOGDIR Location for the cluster transaction logs" |
344 | 358 | echo " -W, --pwprompt Prompt for a password for the new superuser" |
345 | 359 | if [ -n "$MULTIBYTE" ] ; then |
346 | 360 | echo " -E, --encoding ENCODING Set default encoding for new databases" |
|
369 | 383 | if [ "$MULTIBYTE" ] |
370 | 384 | then |
371 | 385 | MULTIBYTEID=`$PGPATH/pg_encoding -b $MULTIBYTE` |
372 | | - if [ "$?" -ne 0 ] |
| 386 | + if [ "$?" -ne 0 ] |
373 | 387 | then |
374 | 388 | ( |
375 | 389 | echo "$CMDNAME: pg_encoding failed" |
@@ -401,6 +415,11 @@ then |
401 | 415 | exit 1 |
402 | 416 | fi |
403 | 417 |
|
| 418 | +if [ -z "$PGXLOG" ] |
| 419 | +then |
| 420 | + PGXLOG="$PGDATA"/pg_xlog |
| 421 | +fi |
| 422 | + |
404 | 423 |
|
405 | 424 | #------------------------------------------------------------------------- |
406 | 425 | # Find the input files |
|
418 | 437 | ( |
419 | 438 | echo |
420 | 439 | echo "initdb variables:" |
421 | | - for var in PGDATA datadir PGPATH MULTIBYTE MULTIBYTEID \ |
| 440 | + for var in PGDATA PGXLOG datadir PGPATH MULTIBYTE MULTIBYTEID \ |
422 | 441 | POSTGRES_SUPERUSERNAME POSTGRES_BKI \ |
423 | 442 | POSTGRES_DESCR POSTGRESQL_CONF_SAMPLE \ |
424 | 443 | PG_HBA_SAMPLE PG_IDENT_SAMPLE ; do |
@@ -503,44 +522,61 @@ then |
503 | 522 | echo "$CMDNAME: The directory $PGDATA exists but is not empty." |
504 | 523 | echo "If you want to create a new database system, either remove or empty" |
505 | 524 | echo "the directory $PGDATA or run initdb with" |
506 | | - echo "an argument other than $PGDATA." |
| 525 | + echo "an argument for -D other than $PGDATA." |
| 526 | + ) 1>&2 |
| 527 | + exit 1 |
| 528 | +fi |
| 529 | + |
| 530 | +# find out if transaction log directory is empty |
| 531 | +pgxlog_contents=`ls -A "$PGXLOG" 2>/dev/null` |
| 532 | +if [ x"$pgxlog_contents" != x ] |
| 533 | +then |
| 534 | + ( |
| 535 | + echo "$CMDNAME: The directory $PGXLOG exists but is not empty." |
| 536 | + echo "If you want to create a new transaction log, either remove or empty" |
| 537 | + echo "the directory $PGXLOG or run initdb with" |
| 538 | + echo "an argument for -X other than $PGXLOG." |
507 | 539 | ) 1>&2 |
508 | 540 | exit 1 |
| 541 | +fi |
| 542 | + |
| 543 | +if [ ! -d "$PGDATA" ]; then |
| 544 | + $ECHO_N "creating directory $PGDATA... "$ECHO_C |
| 545 | + mkdir -p "$PGDATA" >/dev/null 2>&1 || mkdir "$PGDATA" || exit_nicely |
| 546 | + made_new_pgdata=yes |
509 | 547 | else |
510 | | - if [ ! -d "$PGDATA" ]; then |
511 | | - $ECHO_N "creating directory $PGDATA... "$ECHO_C |
512 | | - mkdir -p "$PGDATA" >/dev/null 2>&1 || mkdir "$PGDATA" || exit_nicely |
513 | | - made_new_pgdata=yes |
514 | | - else |
515 | | - $ECHO_N "Fixing permissions on existing directory $PGDATA... "$ECHO_C |
516 | | - chmod go-rwx "$PGDATA" || exit_nicely |
517 | | - fi |
518 | | - echo "ok" |
| 548 | + $ECHO_N "Fixing permissions on existing directory $PGDATA... "$ECHO_C |
| 549 | +chmod go-rwx "$PGDATA" || exit_nicely |
| 550 | +fi |
| 551 | +echo "ok" |
519 | 552 |
|
520 | | - if [ ! -d "$PGDATA"/base ] |
521 | | - then |
522 | | - $ECHO_N "creating directory $PGDATA/base... "$ECHO_C |
523 | | - mkdir "$PGDATA"/base || exit_nicely |
524 | | - echo "ok" |
525 | | - fi |
526 | | - if [ ! -d "$PGDATA"/global ] |
527 | | - then |
528 | | - $ECHO_N "creating directory $PGDATA/global... "$ECHO_C |
529 | | - mkdir "$PGDATA"/global || exit_nicely |
530 | | - echo "ok" |
531 | | - fi |
532 | | - if [ ! -d "$PGDATA"/pg_xlog ] |
533 | | - then |
534 | | - $ECHO_N "creating directory $PGDATA/pg_xlog... "$ECHO_C |
535 | | - mkdir "$PGDATA"/pg_xlog || exit_nicely |
536 | | - echo "ok" |
537 | | - fi |
538 | | - if [ ! -d "$PGDATA"/pg_clog ] |
539 | | - then |
540 | | - $ECHO_N "creating directory $PGDATA/pg_clog... "$ECHO_C |
541 | | - mkdir "$PGDATA"/pg_clog || exit_nicely |
542 | | - echo "ok" |
543 | | - fi |
| 553 | +if [ ! -d "$PGXLOG" ]; then |
| 554 | + $ECHO_N "creating directory $PGXLOG... "$ECHO_C |
| 555 | + mkdir -p "$PGXLOG" >/dev/null 2>&1 || mkdir "$PGXLOG" || exit_nicely |
| 556 | + made_new_pgxlog=yes |
| 557 | +else |
| 558 | + $ECHO_N "Fixing permissions on existing directory $PGXLOG... "$ECHO_C |
| 559 | +chmod go-rwx "$PGXLOG" || exit_nicely |
| 560 | +fi |
| 561 | +echo "ok" |
| 562 | + |
| 563 | +if [ ! -d "$PGDATA"/base ] |
| 564 | +then |
| 565 | + $ECHO_N "creating directory $PGDATA/base... "$ECHO_C |
| 566 | + mkdir "$PGDATA"/base || exit_nicely |
| 567 | +echo "ok" |
| 568 | +fi |
| 569 | +if [ ! -d "$PGDATA"/global ] |
| 570 | +then |
| 571 | + $ECHO_N "creating directory $PGDATA/global... "$ECHO_C |
| 572 | + mkdir "$PGDATA"/global || exit_nicely |
| 573 | +echo "ok" |
| 574 | +fi |
| 575 | +if [ ! -d "$PGDATA"/pg_clog ] |
| 576 | +then |
| 577 | + $ECHO_N "creating directory $PGDATA/pg_clog... "$ECHO_C |
| 578 | + mkdir "$PGDATA"/pg_clog || exit_nicely |
| 579 | +echo "ok" |
544 | 580 | fi |
545 | 581 |
|
546 | 582 |
|
|
549 | 585 | # RUN BKI SCRIPT IN BOOTSTRAP MODE TO CREATE TEMPLATE1 |
550 | 586 |
|
551 | 587 | # common backend options |
552 | | -PGSQL_OPT="-F -D$PGDATA" |
| 588 | +PGSQL_OPT="-F -D$PGDATA -X$PGXLOG" |
553 | 589 |
|
554 | 590 | if [ "$debug" = yes ] |
555 | 591 | then |
|
677 | 713 | echo "ok" |
678 | 714 | fi |
679 | 715 |
|
680 | | - |
681 | 716 | $ECHO_N "enabling unlimited row size for system tables... "$ECHO_C |
682 | 717 |
|
683 | 718 | "$PGPATH"/postgres $PGSQL_OPT template1 >/dev/null <<EOF |
@@ -1058,14 +1093,24 @@ echo "ok" |
1058 | 1093 | # |
1059 | 1094 | # FINISHED |
1060 | 1095 |
|
| 1096 | +postmaster_startup="$PGPATH/postmaster -D $PGDATA" |
| 1097 | +if [ x"$defined_pgxlog" != x ]; then |
| 1098 | + postmaster_startup="$postmaster_startup -X $PGXLOG" |
| 1099 | +fi |
| 1100 | +pg_ctl_startup="$PGPATH/pg_ctl -D $PGDATA" |
| 1101 | +if [ x"$defined_pgxlog" != x ]; then |
| 1102 | + pg_ctl_startup="$pg_ctl_startup -X $PGXLOG" |
| 1103 | +fi |
| 1104 | +pg_ctl_startup="$pg_ctl_startup -l logfile start" |
| 1105 | + |
1061 | 1106 | echo |
1062 | 1107 | echo "Success. You can now start the database server using:" |
1063 | 1108 | echo "" |
1064 | | -echo " $PGPATH/postmaster -D $PGDATA" |
| 1109 | +echo " $postmaster_startup" |
1065 | 1110 | echo "or" |
1066 | 1111 | # (Advertise -l option here, otherwise we have a background |
1067 | 1112 | # process writing to the terminal.) |
1068 | | -echo " $PGPATH/pg_ctl -D $PGDATA -l logfile start" |
| 1113 | +echo " $pg_ctl_startup" |
1069 | 1114 | echo |
1070 | 1115 |
|
1071 | 1116 | exit 0 |
0 commit comments