Note |
---|
DRAFT |
Maintenance Window
- Date: ?February 24, 2007
- Time: ?00:00 to 08:00
Upgrade Process
- (Joncarlo : 00:00) Prevent any client access to SmartSite via iptables and redirect clients to a maintenance/outage page
- We may need to allow access from dedicated IPs for possible pre-upgrade work, such us exporting Melete modules, etc.
- IPs : 169.237.11.40, 69.12.224.247, ...
- We may need to allow access from dedicated IPs for possible pre-upgrade work, such us exporting Melete modules, etc.
- (James : 00:10) Export all Melete modules
- (Thomas/Emily 01:00) Shutting down Sakai instances on all nodes (stubing, walton)
- (Prabhu 01:10) Backing up (CLONE) production database so that it can be fully restored.
- This backup/clone should maintain the names for all constraints, indexes, etc.
- Production SmartSite internal DB server is caje
- (Thomas/Emily 02:00) Perform maintenance on the SmartSite internal DB on caje
- Remove all existing melete tables : We only do this if we choose to export/import all Melete modules
- (James 02:10 ) Apply update scripts to Sakai internal DB on caje:
- https://mware.ucdavis.edu/svn/ucd-sakai/update/sakai_2_1_2-2_2_0_oracle_conversion.sql
- https://mware.ucdavis.edu/svn/ucd-sakai/update/sakai_2_2_0-2_2_1_oracle_conversion.sql
- https://mware.ucdavis.edu/svn/ucd-sakai/update/sakai_2_2_1-2_3_0_oracle_conversion.sql
- https://mware.ucdavis.edu/svn/ucd-sakai/update/sakai_2_3_0-2_3_1_oracle_conversion.sql
- We still need to figure out how we handle the DB constraint errors
- Apply additional table creation scripts if we choose to create our tables via DDL scripts instead of using Hibernate's audo.ddl
- The tables in question are:
- UCDSAKAI_COURSE_REQUEST
- UCDSAKAI_META_DATA
- UCDSAKAI_PROJECT_REQUEST
- UCDSAKAI_SITE_REQUEST
- SAKAI_DYNAMIC_CONFIGURATION
- The tables in question are:
- (Thomas/Emily 02:30) Perform maintenance on the SmartSite AFS volumes
- Backup all existing melete entries
- Melete volumes are:
- /afs/.ucdavis.edu/app/sakai/misc/melete/smartsite/melete
- /afs/.ucdavis.edu/app/sakai/misc/melete/smartsite/meleteDocs
- /afs/.ucdavis.edu/app/sakai/misc/melete/smartsite/uploads
Code Block mkdir /afs/.ucdavis.edu/app/sakai/misc/melete/smartsite/melete.bak mkdir /afs/.ucdavis.edu/app/sakai/misc/melete/smartsite/meleteDocs.bak mkdir /afs/.ucdavis.edu/app/sakai/misc/melete/smartsite/uploads.bak cp -R /afs/.ucdavis.edu/app/sakai/misc/melete/smartsite/melete/* /afs/.ucdavis.edu/app/sakai/misc/melete/smartsite/melete.bak/ cp -R /afs/.ucdavis.edu/app/sakai/misc/melete/smartsite/meleteDocs/* /afs/.ucdavis.edu/app/sakai/misc/melete/smartsite/meleteDocs.bak/ cp -R /afs/.ucdavis.edu/app/sakai/misc/melete/smartsite/uploads/* /afs/.ucdavis.edu/app/sakai/misc/melete/smartsite/uploads.bak/
- Delete the content in melete volumes : We only do this if we choose to export/import all Melete modules
Code Block rm -fr /afs/.ucdavis.edu/app/sakai/misc/melete/smartsite/melete/* rm -fr /afs/.ucdavis.edu/app/sakai/misc/melete/smartsite/meleteDocs/* rm -fr /afs/.ucdavis.edu/app/sakai/misc/melete/smartsite/uploads/*
- (Thomas/Emily 03:15) Backup all configuration files on production staging area
- /afs/.ucdavis.edu/app/sakai/staging/config/*
Code Block mkdir /afs/.ucdavis.edu/app/sakai/staging/config/config-2-1-x.bak cp /afs/.ucdavis.edu/app/sakai/staging/config/* /afs/.ucdavis.edu/app/sakai/staging/config/config-2-1-x.bak/
- /afs/.ucdavis.edu/app/sakai/staging/config/*
- (Thomas/Emily 03:20) Start process of preparing Sakai v2.3.x source on the head node (stubing).
- Getting the source code:
Code Block cd ~/src svn co https://mware.ucdavis.edu/svn/ucd-sakai/sakai/tags/sakai_2-3-x-prod-001
- Setting up the build environment:
- ~/build.properties
Code Block maven.repo.remote=http://source.sakaiproject.org/maven/,http://svn.ucdavis.edu/maven/,http://www.ibiblio.org/maven2/ maven.tomcat.home=/ucd/opt/sakai/tomcat-staging/ maven.compile.source = 1.5 maven.compile.target = 1.5
- ~/.bash_profile
Code Block PATH=/ucd/opt/java5/bin:/ucd/opt/maven/bin:$PATH MAVEN_HOME=/ucd/opt/maven CATALINA_HOME=/ucd/pkg/apache-tomcat JAVA_HOME=/ucd/opt/java5 JAVA_OPTS=" -d64 -Xmx6144m -Xms6144m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseAdaptiveSizePolicy -XX:NewSize=512m -XX:MaxPermSize=200m -XX:PermSize=64m -XX:MaxTenuringThreshold=3 -XX:CMSInitiatingOccupancyFraction=75 -XX:MinHeapFreeRatio=18 -Dsakai.home=/ucd/opt/sakai/sakai-home/ -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" MAVEN_OPTS=" -d64 -Xmx1024m -Xms1024m" export PATH MAVEN_HOME CATALINA_HOME JAVA_HOME JAVA_OPTS MAVEN_OPTS
- Delete old tomcat content
Code Block rm -fr /ucd/pkg/apache-tomcat/*
- Delete old tomcat staging build
Code Block cd ~/bin ./tomcatclean.sh
- Build the source code
Code Block cd ~/src/sakai_2-3-x-prod-001 maven sakai
- Copy staged tomcat
Code Block cd /ucd/pkg/apache-tomcat/ cp -R /afs/.ucdavis.edu/app/sakai/staging/tomcat/apache-tomcat-5.5.17/* .
- Getting the source code:
- (Thomas/Emily 03:45) Follow specific Melete installation instructions for the v2.3 release
- Copy content
Code Block cp -R ~/src/sakai_2-3-x-prod-001/melete/var/melete/* /var/melete/ ls -la /var/melete
- After executing "ls -la /var/melete, we should see a directory called "packagefiles" in /var/melete
- Copy meleteDocs.xml
Code Block cp ~/src/sakai_2-3-x-prod-001/melete/meleteDocs.xml /ucd/pkg/apache-tomcat/conf/Catalina/localhost/
- meleteDocs.xml should look like this:
Code Block <Context path="/meleteDocs" docBase="/var/melete/meleteDocs"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_admin_log." suffix=".txt" timestamp="true"/> </Context>
- Copy content
- (Thomas/Emily 03:55) Making sure all the configuration files are in place for v2.3.x such as sakai.properties etc.
- Configure JAVA_OPTS to allow JMX access via JConsole
- Synchronize all configuration files on the head node (stubing) with the AFS configuration stating area
- /afs/.ucdavis.edu/app/sakai/staging/config
- Start-up head node (stubing) and check catalina.out for any errors
- Access head node and perform any appropriate testing
- If there are no errors/problems, perform installation on second node (walton)
- Start-up walton and perform any appropriate testing
- (Joncarlo 04:20) Adjust iptables on head node (stubing) to allow JMX access to port 9000 for specified IPs
- (Kirk, Sandra, ... 04:30) Release SmartSite for initial testing to determine "successful upgrade"
...