It's all about the answers!

Ask a question

error after copying RAM repository to more recent RAM server: The persist folder is not synchronized with the database


Gordon Flood (25147) | asked Aug 06 '12, 4:58 p.m.
edited Aug 06 '12, 5:53 p.m.

We are intending to move a RAM repository from one RAM instance to another. We opted to do this by copying the persist file system and the RAM and RTC databases, rather than exporting metadata and assets 1000 at a time.

 

We encountered the following error on starting the new server after having copied the persist fs and db:

The persist folder has never been synchronized with any database, but the database indicates it has done a synchronization in the past. This could be because the persist folder is an older backup from before the migration or is for another repository that has not yet been migrated to the new format.

The persist folder is not synchronized with the database. A message above explains the problem. You can force the persist folder to be marked as synchronized. This will only marked it as synchronized. It will not change any data. Depending on how far off the data is from the database there could be problems accessing certain files since they may not be there or they may be older or newer than the database. 

(We're seeking answers to three questions, marked Q1-3 below.)

 

We are speculating that the error may arise from the fact that the destination database is from a more recent release than the source database:

This could be because the persist folder is...for another repository that has not yet been migrated to the new format

(Q1) Is this specualtion correct?

This seems a little improbable, considering that both the db content and fs are from the source server. 

As an alternative explanation we're considering whether the error may arise from omitting part of the persist fs, the part that marks it as synchronized:

The persist folder has never been synchronized with any database, but the database indicates it has done a synchronization in the past... You can force the persist folder to be marked as synchronized. This will only mark it as synchronized.

Both the folder and the db should be from the old repository and so both should indicate they have been synched or both should not...

(Q2) So how is the persist folder marked as synchronized? Is there a metadata/properties file that could have been omitted?

 

(Q3) Should we "force the persist folder to be marked as synchronized", or should we modify the procedure we are using to copy the server?

Any information/background on the source of the error would be appreciated.

Details of our procedure follow:

  • The source RAM server is RAM751-I20111019_1219
  • The destination RAM server is RAM7511-I20120320_1046
  • We did the following:
    1. installed the destination RAM instance
    2. took the destination server down
    3. restored the source RAM and RTC DB2 databases
  • copied the source persist into the destination persist folder
  • restarted the destination RAM server
  • logged on to the RAM web ap as admin
  • encountered the error

  • Comments
    Rich Kulp commented Aug 13 '12, 10:02 a.m.
    FORUM MODERATOR / JAZZ DEVELOPER

    1) The databases and persist folders must be backed up and at the same time (and RAM and RTC should of been down during the backup) and then those used to restore to a new location. 2) This error indicates that you didn't get the files in the root of the persist folder when you moved. The persist folder is everything under the com.ibm.ram.persist subfolder. You must copy the entire com.ibm.ram.persist folder as is and put it in the new location and point the persist directory in server setup to be the folder that "contains" the com.ibm.ram.persist subfolder that you copied. In that subfolder there must be two files (persist.properties and persistS.txt) plus the bucket-x folders.


    Rich Kulp commented Aug 14 '12, 6:17 p.m.
    FORUM MODERATOR / JAZZ DEVELOPER

    Are you sure you restored the source RAM database into the new RAM destination's database?

    This is looking to me like the new ram instance is still seeing the contents of the initial new ram instance database that you created in step (1). If that is the case then what is happening is RAM is looking at the intermediate 7511 that HAD a persist control file in the persist area (so it is indicated in the database) but it is looking at your updated persist folder from old RAM. 751 RAM did not have a persist sync control file. That was added in 7511.


    Gordon Flood commented Aug 18 '12, 5:49 p.m.

    I think you're onto it... what happened is that our cloud vendor initially brought the server up with the 751 db's but the 7511 persist; after realizing the situation, he swapped in the 751 persist, and we got the synch error. I'll update the thread when we do our final dry run, my hope and expectation is that when done correctly we will not see the error again.

    Thanks for the info about the persist sync control file in 7511, that was part of my original question that I was particularly interested in to hear the answer.

    Accepted answer


    permanent link
    Gili Mendel (1.8k56) | answered Aug 07 '12, 9:09 a.m.
    JAZZ DEVELOPER
    ... some background,

    RAM is based on a RAM/RTC DB and they need to match to a persist folder to the tee.
    If you install a new version of RAM, most likely there are schema/structure changes with the new release.  RAM will detect the level of the DB/Persist and perform migration for you.   Once you have migrated, you can not go back to a back level.

    Something does not seems right from the symptoms above:  the RAM server notices that the DB (migration) level, is not the same as the persist level. ... a post-migrated DB, and pre-migrated persist.

    If the
    RAM751-I20111019_1219 server still up and running properly, repeat move process again :
    Shut it down, and backup the DBs/Persist for the source server

    Create these DBs/Persist on a different DB server/instances
    Shutdown the newer target RAM server, and go to its server setup, and point it to the new DBs/Persist
    When you bring the new target RAM server up, it should go through the migration for you, bringing the DB/persist to the latest migration level.

    Gordon Flood selected this answer as the correct answer

    Comments
    Gordon Flood commented Aug 07 '12, 4:03 p.m.

    Thanks for your reply. Unfortunatley we were not able to elicit a persist conversion (as of yet)...

    We ran the set up ap, confirmed the new persist location, and started the server and again did not receive the 'convert' prompt.

    We clicked the "Synchronize" button, but it warns that it will make no changes to the data, only mark the persist as synchronized: "You can force the persist folder to be marked as synchronized. This will only marked it as synchronized. It will not change any data. Depending on how far off the data is from the database there could be problems "

    Given this, would it seem reasonable to conclude that we have a lurking problem, that our persist does not mirror new features implemented in the most recent db schema?

    We have our final dry run to do, and could use your advice on this point: would it be imprudent to not reinstall the RAM server and redirect it to the persist in order to trigger conversion? (Is there something else we can do to trigger a persist conversion?)

    One other answer



    permanent link
    Gili Mendel (1.8k56) | answered Aug 08 '12, 10:36 a.m.
    JAZZ DEVELOPER
    Database, wold be the things that will instigate a migration ... but the DB should always be on the same level as the persist.

    Your answer


    Register or to post your answer.


    Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.