Index: openacs-4/packages/acs-core-docs/www/xml/install-guide/next-steps.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/install-guide/Attic/next-steps.xml,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/acs-core-docs/www/xml/install-guide/next-steps.xml 10 Aug 2002 19:53:50 -0000 1.3
+++ openacs-4/packages/acs-core-docs/www/xml/install-guide/next-steps.xml 30 Nov 2002 17:17:46 -0000 1.4
@@ -2,79 +2,91 @@
Next Steps
- by Vinod Kurup
+ by Vinod Kurup
- Backup Strategy
+ Backup Strategy
- Here are some tips from Don Baccus regarding backup strategy:
+
-
- The need for making backups should be self-explanatory. There are
- several strategies you can use. My own strategy for minimizing the
- odds that I'll lose all my data is quite simple:
-
+ Here are some tips from Don Baccus regarding backup strategy:
-
-
- The database is stored on a mirrored (RAID 1) disk.
-
+
-
- The machine has battery backup.
-
+
-
- Backups are made nightly onto a third disk on another controller
-
+ The need for making backups should be self-explanatory. There are
+ several strategies you can use. My own strategy for minimizing the
+ odds that I'll lose all my data is quite simple:
-
- FTP is used to copy the resulting backup to two separate remote
- servers in two locations
-
-
+
-
- Rather than making remote copies, you might choose to dump to tape or
- writeable CD media. Whatever strategy you use, it is important to
- routinely check dumps to make sure they can be reloaded. The strategy
- outlined above means that in the case of catastrophic failure, I'll
- lose at most one day's data.
+
+
+ The database is stored on a mirrored (RAID 1) disk.
+
- By mirroring disks and using a battery backup, preferably one that
- can trigger an automatic and controlled shutdown of the system when
- the battery runs low, you greatly lower the odds of ever having to
- use your nightly backup. Despite this, it is important to take
- backups seriously if the data stored at your site is valuable to you
- or your users.
-
+
+ The machine has battery backup.
+
+
+
+ Backups are made nightly onto a third disk on another controller
+
+
+
+ FTP is used to copy the resulting backup to two separate remote
+ servers in two locations
+
+
+
+
+
+ Rather than making remote copies, you might choose to dump to tape or
+ writeable CD media. Whatever strategy you use, it is important to
+ routinely check dumps to make sure they can be reloaded. The strategy
+ outlined above means that in the case of catastrophic failure, I'll
+ lose at most one day's data.
+
+
+
+
+
+ By mirroring disks and using a battery backup, preferably one that
+ can trigger an automatic and controlled shutdown of the system when
+ the battery runs low, you greatly lower the odds of ever having to
+ use your nightly backup. Despite this, it is important to take
+ backups seriously if the data stored at your site is valuable to you
+ or your users.
+
+
- Set Up Nightly Oracle Exports
+ Set Up Nightly Oracle Exports
- While you're working with Oracle, you should configure it to do
- automatic exports. An export is a separate backup copy of the
- database. This copy includes all of the database's state at the
- time that the export was initiated. If your database is corrupted,
- you can restore from one of these backups. You should do this step as
- root.
-
+ While you're working with Oracle, you should configure it to do
+ automatic exports. An export is a separate backup copy of the
+ database. This copy includes all of the database's state at the
+ time that the export was initiated. If your database is corrupted,
+ you can restore from one of these backups. You should do this step as
+ root.
+
- Download the backup script. Save the file export-oracle.txt as
- /tmp/export-oracle.txt
-
+ Download the backup script. Save the file export-oracle.txt as
+ /tmp/export-oracle.txt
+
- Login as root. The following commands will install the export script:
-
-
-nsadmin:~$ su -
+ Login as root. The following commands will install the export script:
+
+
+joeuser:~$ su -
Password: ***********
root:~# cp /tmp/export-oracle.txt /usr/sbin/export-oracle
root:~# chmod 700 /usr/sbin/export-oracle
@@ -85,27 +97,27 @@
be stored. We recommend the directory
/ora8/m02/oracle-exports.
-
+
root:~# mkdir /ora8/m02/oracle-exports
root:~# chown oracle.dba /ora8/m02/oracle-exports
root:~# chmod 770 /ora8/m02/oracle-exports
- Now edit
- /usr/sbin/export-oracle and
- change the SERVICE_NAME and
- DATABASE_PASSWORD fields to
- their correct values. If you want to use a directory other than
- /ora8/m02/oracle-exports, you
- also need to change the
- exportdir setting.
-
+ Now edit
+ /usr/sbin/export-oracle and
+ change the SERVICE_NAME and
+ DATABASE_PASSWORD fields to
+ their correct values. If you want to use a directory other than
+ /ora8/m02/oracle-exports, you
+ also need to change the
+ exportdir setting.
+
- Test the export procedure by running the command:
-
+ Test the export procedure by running the command:
+
-
+
root:~# /usr/sbin/export-oracle
mv: /ora8/m02/oracle-exports/oraexport-service_name.dmp.gz: No such file or directory
@@ -145,379 +157,385 @@
Export terminated successfully without warnings.
If you don't have any warnings, proceed to automate the
- backups.
+ backups.
- Automating backups is accomplished using the UNIX
- crontab facility.
+ Automating backups is accomplished using the UNIX
+ crontab facility.
- While still root, run the
- following command. You can replace the
- EDITOR="emacs -nw"
- portion with whatever editor your prefer, such as
- EDITOR=vi.
-
-
+ While still root, run the
+ following command. You can replace the
+ EDITOR="emacs -nw"
+ portion with whatever editor your prefer, such as
+ EDITOR=vi.
+
+
root:~# export EDITOR="emacs -nw"
root:~# crontab -e
- Now add the following line on a line by itself
+ Now add the following line on a line by itself
-
+
0 23 * * * /usr/sbin/export-oracle
- Save the file, exit the editor. Verify that the addition
- succeeded by checking the output of the following command.
+ Save the file, exit the editor. Verify that the addition
+ succeeded by checking the output of the following command.
-
+
root:~# crontab -l | grep export-oracle
0 23 * * * /usr/sbin/export-oracle
root:~# exit
; Logout
- If you see the line, go ahead and log out.
-
+ If you see the line, go ahead and log out.
+
- Set up nightly Postgres exports
+ Set up nightly Postgres exports
-
- Dowload this script
- to /tmp. At the top of the script
- are several variables that you'll need to customize:
-
+
+ Dowload this script
+ to /tmp. At the top of the script
+ are several variables that you'll need to customize:
+
-
-
- bak - location where you want
- local backups to be saved
-
+
+
+ bak - location where you want
+ local backups to be saved
+
-
- servername - name of your server
- (and database instance)
-
+
+ servername - name of your server
+ (and database instance)
+
-
- ftp_user - username on your ftp
- account
-
+
+ ftp_user - username on your ftp
+ account
+
-
- ftp_password - password on your
- ftp account
-
+
+ ftp_password - password on your
+ ftp account
+
-
- ftp_dir - path on the remote
- server where your backups will be uploaded
-
+
+ ftp_dir - path on the remote
+ server where your backups will be uploaded
+
-
- ftp_server - your ftp server
-
-
+
+ ftp_server - your ftp server
+
+
-
+
- Next, we'll save this file to our server's
- tcl directory so that it will be
- loaded on startup. It will automatically be run every night at
- midnight. Note that this script only backs up the database - not the
- OpenACS scripts and file content.
-
+ Next, we'll save this file to our server's
+ tcl directory so that it will be
+ loaded on startup. It will automatically be run every night at
+ midnight. Note that this script only backs up the database - not the
+ OpenACS scripts and file content.
+
-
-nsadmin:~$ cp /tmp/acs-pgbackup-init.txt /web/birdnotes/tcl/acs-pgbackup-init.tcl
-nsadmin:~$ restart-aolserver birdnotes
+
+joeuser:~$ cp /tmp/acs-pgbackup-init.txt ~/web/birdnotes/tcl/acs-pgbackup-init.tcl
+joeuser:~$ restart-aolserver birdnotes
-
- That's it! The script will email you with each successful backup (or
- if it fails, it will send you an email with the reason)
-
+
+ That's it! The script will email you with each successful backup (or
+ if it fails, it will send you an email with the reason)
+
- Vacuum Postgres nightly
-
- The "vacuum" command must be run periodically to reclaim space. The
- "vacuum analyze" form additionally collects statistics on the
- disbursion of columns in the database, which the optimizer uses when
- it calculates just how to execute queries. The availability of this
- data can make a tremendous difference in the execution speed of
- queries. This command can also be run from cron, but it probably makes
- more sense to run this command as part of your nightly backup
- procedure - if "vacuum" is going to screw up the database, you'd
- prefer it to happen immediately after (not before!) you've made a
- backup! The "vacuum" command is very reliable, but conservatism is
- the key to good system management. So, if you're using the export
- procedure described above, you don't need to do this extra step.
-
+ Vacuum Postgres nightly
+
+ The "vacuum" command must be run periodically to reclaim space. The
+ "vacuum analyze" form additionally collects statistics on the
+ disbursion of columns in the database, which the optimizer uses when
+ it calculates just how to execute queries. The availability of this
+ data can make a tremendous difference in the execution speed of
+ queries. This command can also be run from cron, but it probably makes
+ more sense to run this command as part of your nightly backup
+ procedure - if "vacuum" is going to screw up the database, you'd
+ prefer it to happen immediately after (not before!) you've made a
+ backup! The "vacuum" command is very reliable, but conservatism is
+ the key to good system management. So, if you're using the export
+ procedure described above, you don't need to do this extra step.
+
- Edit your crontab:
-
-nsadmin:~$ crontab -e
+ Edit your crontab:
+
+joeuser:~$ crontab -e
- We'll set vacuum up to run nightly at 1 AM. Add the following
- line:
-
+ We'll set vacuum up to run nightly at 1 AM. Add the following
+ line:
+
0 1 * * * /usr/local/pgsql/bin/vacuumdb birdnotes
- How to add a second server on a different port
+ How to add a second server on a different port
- Starting another server is simply a matter of configuring another
- aolserver instance, creating another database and pointing this
- aolserver instance at a fresh copy of the OpenACS-4 code. We'll call
- our new server birdnotes-dev
+ Starting another server is simply a matter of configuring another
+ aolserver instance, creating another database and pointing this
+ aolserver instance at a fresh copy of the OpenACS-4 code. We'll call
+ our new server birdnotes-dev
-
-
- Download another copy of openacs4.tcl.txt
- into /tmp.
+
+
+ You can either copy your current OpenACS installation:
+
-
-nsadmin:~$ cp /tmp/openacs4.tcl.txt ./birdnotes-dev.tcl
-nsadmin:~$ chmod 660 birdnotes-dev.tcl
-nsadmin:~$ emacs birdnotes-dev.tcl
+
+joeuser:~$ cp -r web/birdnotes web/birdnotes-dev
- Just like in ,
- you'll need to set the server parameters appropriately. Be sure to
- choose a different port than your original server and to set
- server to
- birdnotes-dev.
-
+
+ Or Download the OpenACS
+ 4 software into /tmp again.
+
-
+
+joeuser:~$ cd web
+joeuser:~/web$ tar xzvf /tmp/openacs-4-5-release.tgz
+joeuser:~/web$ mv openacs-4 birdnotes-dev
+
- Create a new database instance called
- birdnotes-dev. Follow the instructions in
- or .
+
+ Download another copy of openacs4.tcl.txt
+ into /tmp.
-
+
+joeuser:~/web$ cp /tmp/openacs4.tcl.txt ./birdnotes-dev/nsd.tcl
+joeuser:~/web$ chmod 600 birdnotes-dev/nsd.tcl
+joeuser:~/web$ emacs birdnotes-dev/nsd.tcl
-
+ Just like in ,
+ you'll need to set the server parameters appropriately. Be sure to
+ choose a different port than your original server and to set
+ server to
+ birdnotes-dev.
+
- You can either copy your current OpenACS installation:
-
+
-
-nsadmin:~$ cd /web
-nsadmin:~$ cp -r birdnotes birdnotes-dev
+ Create a new database instance called
+ birdnotes-dev. Follow the instructions in
+ or .
-
- Or Download the OpenACS
- 4 software into /tmp again.
-
+
-
-nsadmin:~$ cd /web
-nsadmin:/web$ tar xzvf /tmp/alpha2.tgz
-nsadmin:/web$ mv openacs-4 birdnotes-dev
-
+
+
+ Start your new server!
+
+
+joeuser:~/web$ cd
+joeuser:~/web$ /usr/local/aolserver/bin/nsd-postgres -t /home/joeuser/web/birdnotes-dev/nsd.tcl
-
-
- Start your new server!
-
-
-nsadmin:/web$ cd
-nsadmin:~$ /usr/local/aolserver/bin/nsd-postgres -t /usr/local/aolserver/birdnotes-dev.tcl
-
-
- Visit the site with a web browser (using the port that you set
- above). You should see the OpenACS installer. Once you install
- the OpenACS datamodel, you'll also need to add your new aolserver
- instance to /etc/inittab (or
- daemontools) so it restarts automatically.
-
-
+
+ Visit the site with a web browser (using the port that you set
+ above). You should see the OpenACS installer. Once you install
+ the OpenACS datamodel, you'll also need to add your new aolserver
+ instance to /etc/inittab (or
+ daemontools) so it restarts automatically.
+
+
- Set up site-wide search
-
- OpenACS uses the OpenFTS package to
- implement site-wide-search. You'll need to have the Tcl development
- libraries and headers installed. (Debian users:
- apt-get install tcl8.3-dev)
-
+ Set up site-wide search
+
-
-
- As root, download the
- Search-OpenFTS driver.
-
+ OpenACS uses the OpenFTS package to
+ implement site-wide-search. As of this writing, the current version
+ is 0.3.2. There are good instructions included in the OpenFTS
+ instructions which I will repeat here. Be sure to look at those
+ instructions if you're installing a version later than 0.3.2; the
+ instructions may have changed. You'll need to have the Tcl
+ development libraries and headers installed. (Debian users:
+ apt-get install tcl8.3-dev)
-
-nsadmin:~$ su -
+
+
+
+
+
+ As root, download the latest TCL
+ version of the Search-OpenFTS driver from SourceForge
+ into /tmp. Extract the source
+ into /usr/local/src
+
+
+
+
+joeuser:~$ su -
Password: **********
-root:~# cd /tmp
-root:/tmp# wget http://prdownloads.sourceforge.net/openfts/Search-OpenFTS-tcl-0.2.tar.gz
root:~# cd /usr/local/src
-root:/usr/local/src# tar xzf /tmp/Search-OpenFTS-tcl-0.2.tar.gz
-root:/usr/local/src# chown -R nsadmin.web Search-OpenFTS-tcl-0.2
-root:/usr/local/src# exit
-
+root:/usr/local/src# tar xzf /tmp/Search-OpenFTS-tcl-0.3.2.tar.gz
+root:/usr/local/src# chown -R root.root Search-OpenFTS-tcl-0.3.2
+root:/usr/local/src# cd Search-OpenFTS-tcl-0.3.2
+
-
- Configure it. Note that you may need to set
- --with-tcl=(your Tcl library
- location). For Debian, add this to the end of the
- ./configure command:
- --with-tcl=/usr/lib/tcl8.3
-
+
-
-nsadmin:~$ cd /usr/local/src/Search-OpenFTS-tcl-0.2
-nsadmin:/usr/local/src/Search-OpenFTS-tcl-0.2$ ./configure --with-aolserver-src=/usr/local/src/aolserver/aolserver
-
+ Configure it. Note that you may need to set
+ --with-tcl=(your Tcl library
+ location). For Debian, add this to the end of the
+ ./configure command:
+ --with-tcl=/usr/lib/tcl8.3
-
- In order to compile on Debian, I had to edit my
- Makefile.global. Add
- -I/usr/include/tcl8.3 to the
- line where INC is defined, so it looks like this:
-
+
-
-INC = ../include -I/usr/include/tcl8.3
+
+root:/usr/local/src/Search-OpenFTS-tcl-0.3.2# ./configure --with-aolserver-src=/usr/local/src/aolserver/aolserver
+
- Then compile it:
+
-
-nsadmin:/usr/local/src/Search-OpenFTS-tcl-0.2$ make
-nsadmin:/usr/local/src/Search-OpenFTS-tcl-0.2$ cd aolserver
-nsadmin:/usr/local/src/Search-OpenFTS-tcl-0.2/aolserver$ make
-
+ Then compile it, copy the module to your AOLserver
+ bin directory, and copy the TCL
+ files to your AOLserver tcl
+ directory:
-
- Install it. You need to do this step as root since some of the
- libraries will be installed alongside your TCL libraries and some
- alongside your PostgreSQL libraries.
-
+
-
-nsadmin:/usr/local/src/Search-OpenFTS-tcl-0.2/aolserver$ su -
-Password: ***********
-root:~# cd /usr/local/src/Search-OpenFTS-tcl-0.2
-root:/usr/local/src/Search-OpenFTS-tcl-0.2# make install
-root:/usr/local/src/Search-OpenFTS-tcl-0.2# exit
-nsadmin:/usr/local/src/Search-OpenFTS-tcl-0.2/aolserver$ cp nsfts.so /usr/local/aolserver/bin/
-
+
+root:/usr/local/src/Search-OpenFTS-tcl-0.3.2# cd aolserver
+root:/usr/local/src/Search-OpenFTS-tcl-0.3.2/aolserver# make
+root:/usr/local/src/Search-OpenFTS-tcl-0.3.2/aolserver# cp nsfts.so /usr/local/aolserver/bin
+root:/usr/local/src/Search-OpenFTS-tcl-0.3.2/aolserver# cd ..
+
-
-
- Add the following line to your aolserver config file (in our
- example:
- /usr/local/aolserver/birdnotes.tcl)
- in the "ns_section ns/server/${server}/modules" section:
-
+
-
+ Load the tsearch module SQL into your database and then compile
+ the openfts module in the Postgresql contrib directory.
+
+
+
+
+root:/usr/local/src/Search-OpenFTS-tcl-0.3.2# cp -r pgsql_contrib_openfts /usr/local/src/postgresql-7.2.3/contrib
+root:/usr/local/src/Search-OpenFTS-tcl-0.3.2# cd /usr/local/src/postgresql-7.2.3/contrib/pgsql_contrib_openfts
+root:/usr/local/postgresql-7.2.3/contrib/pgsql_contrib_openfts# make
+root:/usr/local/postgresql-7.2.3/contrib/pgsql_contrib_openfts# su postgres
+postgres:/usr/local/postgresql-7.2.3/contrib/pgsql_contrib_openfts$ make install
+postgres:/usr/local/postgresql-7.2.3/contrib/pgsql_contrib_openfts$ /usr/local/pgsql/bin/psql birdnotes -f /usr/local/src/postgresql-7.2.3/contrib/tsearch/tsearch.sql
+postgres:/usr/local/postgresql-7.2.3/contrib/pgsql_contrib_openfts$ /usr/local/pgsql/bin/psql birdnotes -f openfts.sql
+postgres:/usr/local/postgresql-7.2.3/contrib/pgsql_contrib_openfts$ exit
+root:/usr/local/postgresql-7.2.3/contrib/pgsql_contrib_openfts# exit
+
+
+
+
+
+ Uncomment the following line in your aolserver config file (in our
+ example:
+ ~/web/birdnotes/nsd.tcl)
+ in the "ns_section ns/server/${server}/modules" section:
+
+
+
+
ns_param nsfts ${bindir}/nsfts.so
-
+
-
- Load the openFTS code into your database:
-
+
+ Open a browser and go to your server
+ (http://yourserver:port). Click on the "Package Manager" link in
+ the "Quick Links" section on the right side of the page.
+
-
-nsadmin:/usr/local/src/Search-OpenFTS-tcl-0.2/aolserver$ cd
-nsadmin:~$ psql -f /web/birdnotes/packages/openfts-driver/sql/postgresql/load.sql birdnotes
-nsadmin:~$ restart-aolserver birdnotes
-
+
+ Click on the "Install packages" link and follow the instructions
+ to install the Note package and the OpenFTS Driver 4.2 package.
+
-
- Open a browser and go to your server
- (http://yourserver:port). Click on the "Package Manager" link in
- the "Quick Links" section on the right side of the page.
-
+
+ Restart your server.
-
- Click on the "Install packages" link and follow the instructions
- to install the Note package and the OpenFTS Driver 4.2 package.
-
+
+joeuser:~$ svc -t /service/birdnotes
+
-
- Restart your server.
+
+ Give the server a few minutes to restart and then go back to your
+ server's front page and click on "Site Map" from the "Quick
+ Links"
+
-
-nsadmin:~$ restart-aolserver birdnotes
-
+
+ Create a "new sub folder" under "Main Site". Call the url
+ "openfts".
+
-
- Give the server a few minutes to restart and then go back to your
- server's front page and click on "Site Map" from the "Quick
- Links"
-
+ Click "mount" to mount the OpenFTS driver at the url
+ "openfts" (despite what the system says about these packages not
+ being meant to be mounted)
+
-
- Create a "new sub folder" under "Main Site". Call the url
- "openfts".
-
+
+
- Click "mount" to mount the OpenFTS driver at the url
- "openfts" (despite what the system says about these packages not
- being meant to be mounted)
-
+ Click the "Set parameters" link next to OpenFTS. Change the
+ openfts_tcl_src_path to
+ /usr/local/src/Search-OpenFTS-tcl-0.3.2
- Click on "Set parameters" for the OpenFTS instance
- and make sure that openfts_tcl_src_path properly points to your
- local copy of the Search package source code. If you've followed
- these directions strictly, you shouldn't need to change it.
-
+
+
-
- Create another folder under "Main Site" at the url
- "search". Create a "new application". Call the application
- "Search" and choose the "Search" package from the drop-down list.
-
+
+ Create another folder under "Main Site" at the url
+ "search". Create a "new application". Call the application
+ "Search" and choose the "Search" package from the drop-down list.
+
-
- Create a third folder under "Main Site" at the url
- "notes". Create a "new application". Call the application "Notes"
- and choose the "Note" package from the drop-down list.
-
+
+ Create a third folder under "Main Site" at the url
+ "notes". Create a "new application". Call the application "Notes"
+ and choose the "Note" package from the drop-down list.
+
-
- Restart the server.
-
+
+ Restart the server.
+
-
- Return to your home page. Near the bottom of the page, Click on
- the "OpenFTS Driver" link. Then click on
- "Administration". Finally, click on "Initialize OpenFTS
- Engine". Accept the defaults and continue.
-
+
+ Return to your home page. Near the bottom of the page, Click on
+ the "OpenFTS Driver" link. Then click on
+ "Administration". Finally, click on "Initialize OpenFTS
+ Engine". Accept the defaults and continue.
+
-
- Click on the "Main Site" link to get back to the home page. Now,
- click on the "ACS Service Contract" link near the bottom of the
- home page.
-
+
+ Click on the "Main Site" link to get back to the home page. Now,
+ click on the "ACS Service Contract" link near the bottom of the
+ home page.
+
-
- Click on the link to "install" the FtsEngineDriver. Also, click
- the link to install the Note content provider.
-
+
+ Click on the link to "install" the FtsEngineDriver. Also, click
+ the link to install the Note content provider.
+
-
- Restart the server. You can try inserting some notes and then
- going to the search page to search for stuff. Note that the
- content may not get indexed immediately, so give it a few
- minutes.
-
-
+
+ Restart the server. You can try inserting some notes and then
+ going to the search page to search for stuff. Note that the
+ content may not get indexed immediately, so give it a few
+ minutes.
+
+
($Id$)