Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Migrating commonspot sites

561 views

Published on

This presentation, given at the Cornell Commonspot SIG meeting on March 22, 2006, addresses issues we discovered in moving sites from a test to production server. Content is stored in a per-site Oracle schema, while user identifiers are defined in a per-server schema. When migrating, it's necessary to update user identifiers in the site database. Peter Hoyt and Paul Houle developed a Perl script that examines the database structure, identifies fields that contain user identifiers, and maps them from the old to new server.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Migrating commonspot sites

  1. 1. Migrating Commonspot Sites Paul Houle Peter Hoyt Library Systems Thanks: James Reidy, Surinder Ghangas
  2. 2. Context • Support 21 unit libraries and many projects • Copia, our primary web server has > 50 virtual hosts • Commonspot sites up and running: • Transition to Fatherhood • Public Services Committee • Under development: • Mann Library • ASTEC (Engineering, Math & Physical Sciences and Vet) • NY Aerial Photos
  3. 3. Hardware Sun Fire V440 Solaris 9 fibre channel StorEdge 6130 Array
  4. 4. Software • Solaris 9 • Oracle 9.2.0.6 • Cold Fusion MX 6.1 Enterprise Edition (Jrun 4) • Apache 2 • CommonSpot 4.5sp2 • CornellCustomAuthZ
  5. 5. Two Instances SPOT SPOTTEST http port 80 http port X /spot/ apache /spottest/ apache spot jrun spottest jrun SPOT oracle SPOTTEST oracle
  6. 6. Database Structure SPOT SITES USERS SPOTTEST SITES USERS SITE A
  7. 7. The problem… SPOTTEST.users 66 105 144 157 jgr25 ph18 ph44 mhk33 SPOT.users James Reidy Paul Houle Peter Hoyt Melissa Kuo 9 78 107 139 ph18 Paul Houle jgr25 James Reidy ph44 Peter Hoyt jrc88 Jenn Colt-Demarie SPOTTEST.pages pageid authorid 11 66 12 105 12 157 title Our New Home Page About this site Our Privacy Policy
  8. 8. Stages 1. Find missing users in production system 2. Add missing users to production system 3. Create mapping of test -> production user ids 4. Get database schema dump 5. Extract list of user id fields 6. Update user ids
  9. 9. Schema Dump CREATE TABLE "PSA_SITE"."APPROVAL" ( "PAGEID" NUMBER(12,0) NOT NULL ENABLE, "CONTROLID" NUMBER(12,0) NOT NULL ENABLE, "ITEMID" NUMBER(12,0) DEFAULT 0, "USERGROUPID" NUMBER(12,0) NOT NULL ENABLE, "APPROVALTABLELIST" NVARCHAR2(255) NOT NULL ENABLE, "STATUS" NUMBER(12,0) DEFAULT 0, "APPROVALDATE" VARCHAR2(20), "APPROVALLEVEL" NUMBER(3,0) DEFAULT 0, "APPROVEDBY" NUMBER(12,0) DEFAULT 0,
  10. 10. Heuristics I KEEP COLUMNS STOP COLUMNS DROP TABLES AUTHOR ATTRIBORDER AVAILABLECONTROLS CHANGEBY CATEGORY CATEGOR CREATOR CONTROLID FORMAT DELETEDBY CHARID LANGUAGE GROUP CONTROLLIST SITEPAGES OWNER ELEMENTID SYSTEM REQUEST ITEM TRANSACT USER MASK PAGE QUERYID SORTORDER TYPE VERSION HEIGHT
  11. 11. Heuristics II • Group ids start with 1,000,000 • Look at values to see if a column contains user id’s • Is it numeric? • Do the numbers match users and groups? • LIST columns, ex. *.ITEMUSERGROUPLIST • Format: “7,12,55”
  12. 12. Commonspot Software Configuration: James Reidy (jgr25@ cornell.edu) Apache, Jrun, CFMX, SAMBA: Paul Houle (ph18@ cornell.edu) Oracle, Backups, Unix admin: Surinder Ghangas (sg14@ cornell.edu) General Questions: Oya Rieger (oyr1@ cornell.edu) http://commonspot.library.cornell.edu/

×