[Glass] Cannot make full backup restore to work

Mariano Martinez Peck via Glass glass at lists.gemtalksystems.com
Tue Jul 7 06:43:43 PDT 2015


As a return, I paste the compactExtent.sh script in case you want to add it
to the gsDevKit. Of course, you will likely need to adjust it a bit (change
some variables), but easy to do.
Note the scripts keeps the original extent as backup... I do not want to
remove it automatically by the script..I do not trust bash return values
etc... hahahha. So I prefer to try the system myself and remove the old
extent when I am sure it works.




#!/bin/bash

# Requires a Sites subfolder password as a parameter
if [ "a$1" = "a" ]; then
        echo 'Missing argument <Sites subfolder>'
        exit 1
fi


# Requires a backup filename as a parameter
if [ "a$2" = "a" ]; then
        echo 'Missing argument <backup filename>'
        exit 1
fi



source $STONES_DIRECTORY/$1/gemstone/env

date=`date +%Y%m%d_%H%M%S`
su -m $GEMSTONE_USER -c "touch
$GEMSTONE_LOGDIR/${GEMSTONE_NAME}_extentCompact.log"

echo "`date` ------------------------ Starting extent compactation of
${GEMSTONE_NAME} ------------------------" >>
$GEMSTONE_LOGDIR/${GEMSTONE_NAME}_extentCompact.log


echo "`date` Stopping stone " >>
$GEMSTONE_LOGDIR/${GEMSTONE_NAME}_extentCompact.log
/bin/bash $STONES_DIRECTORY/${1}/gemstone/$GEMSTONE_NAME stop


echo "`date` Copying fresh extent " >>
$GEMSTONE_LOGDIR/${GEMSTONE_NAME}_extentCompact.log
sudo mv $GEMSTONE_DATADIR/extent0.dbf $GEMSTONE_DATADIR/extent0-original.dbf
sudo cp /opt/gemstone/product/bin/extent0.dbf $GEMSTONE_DATADIR/extent0.dbf
sudo chown $GEMSTONE_USER:$GEMSTONE_USER $GEMSTONE_DATADIR/extent0.dbf
sudo chmod 600 $GEMSTONE_DATADIR/extent0.dbf

echo "`date` Start stone with restore mode -R and start netldi " >>
$GEMSTONE_LOGDIR/${GEMSTONE_NAME}_extentCompact.log
su -m $GEMSTONE_USER -c 'cd $APPLICATION_DIR; $GEMSTONE/bin/startstone -R
-z $GEMSTONE_SYS_CONF -l $APPLICATION_LOG_DIR/log.txt $APPLICATION_NAME >
$GEMSTONE_LOGDIR/startup.log 2>&1'
su -m $GEMSTONE_USER -c 'cd $APPLICATION_DIR; $GEMSTONE/bin/startnetldi -g
-a $GEMSTONE_USER -n -P $NETLDI_PORT -l
$APPLICATION_LOG_DIR/netldi$APPLICATION_NAME.log netldi$APPLICATION_NAME >
$GEMSTONE_LOGDIR/netldiStartup.log 2>&1'


echo "`date` Restorying from backup: $2 " >>
$GEMSTONE_LOGDIR/${GEMSTONE_NAME}_extentCompact.log

# Here I must set the DataCurator user and password because the
runTopazStringScript.sh will use the .topazini username and password and
that is
# a custom user/pass generated for the repository that doesn't exist in the
virgin extent.
$GEMSTONE_ADDITIONS_SCRIPTS/runTopazStringScript.sh $1 "

set user DataCurator pass swordfish
login
run
SystemRepository restoreFromBackup: '$2'
%
exit
"

# Once restored, we can use the custom admin username/pass defined in the
.topazini
$GEMSTONE_ADDITIONS_SCRIPTS/runTopazStringScript.sh $1 "

send SystemRepository restoreStatus
printit
SystemRepository restoreFromCurrentLogs
%
login
printit
SystemRepository commitRestore
%
logout
exit


"



echo "`date` Starting again seaside gems again " >>
$GEMSTONE_LOGDIR/${GEMSTONE_NAME}_extentCompact.log

sudo sh $STONES_DIRECTORY/${1}/gemstone/scripts/startSeasideGems.sh


On Mon, Jul 6, 2015 at 10:17 PM, Mariano Martinez Peck <
marianopeck at gmail.com> wrote:

>
>
> On Mon, Jul 6, 2015 at 9:31 PM, Dale Henrichs via Glass <
> glass at lists.gemtalksystems.com> wrote:
>
>>  Mariano,
>>
>> There should be more information about the commitRestore error in the
>> stone log .... Here are a few more comments from engineering:
>>
>>   Does tranlog 315 agree with the last tranlog stone was writing to ?
>>
>>
>
> Puffff you nailed it!!!   No...315 was not the last one..there was one 316
> which looked empty (512 bytes or so) and therefore stone log was saying:
>
>     *Creation of a new transaction log has failed,*
> *....*
>
> *DBF Op: Create; DBF Record: -1;*
> *Error: The specified file already exists.; System Codes: No disk I/O
> error information is available.*
>
> I don;t know how the 316 was generated but I simply deleted that one and
> now the restore procedure worked like a charm.
>
> Thank you very much. Cool, I now have a compactExtent.sh :)
>
> Cool!
>
>
>
>>    Recommend that all tranlogs be copied to an archive directory
>>   and then deleted from the directory stone is writing to before
>>   reattempting the restore.   Then you would restoreFromArchive...
>>   instead of restoreFromCurrent...   for  restoring the tranlogs.
>>
>>    And tell him to use output push,  so we see both his input and his
>> output
>>   in a single file.
>>
>>
>
>
>
>> Dale
>>
>> On 07/06/2015 12:22 PM, Mariano Martinez Peck via Glass wrote:
>>
>> Hi guys,
>>
>>  I am following the sysadmin guide, but still, cannot make it work. It
>> seems my main issue is that I have changed the password of DataCurator in
>> my extent.... but I am not sure.
>>
>>  I have already did the cp of the virgin extent, I have already started
>> gemstone with -R etc. So then I run a topaz with:
>>
>>  *set user DataCurator pass swordfish*
>> *login*
>> *run*
>> *SystemRepository restoreFromBackup: '$2'*
>> *%*
>> *exit*
>>
>>
>>  After that, I open another topaz with:
>>
>>  *send SystemRepository restoreStatus*
>> *printit*
>> *SystemRepository restoreFromCurrentLogs*
>> *%*
>> *login*
>> *printit*
>> *SystemRepository commitRestore*
>> *%*
>> *logout*
>> *exit*
>>
>>
>>  The output I get is:
>>
>>
>>  topaz> topaz> topaz> topaz> topaz> topaz> topaz> topaz> Warning:
>> clearing the previous GemStone password.
>> topaz> topaz> successful login
>> topaz 1> topaz 1> *The restore from backup completed, with 6906628
>> objects restored.*
>> * Ready for restore from transaction log(s). (error 4046)*
>> topaz> topaz> topaz> topaz> topaz> topaz> topaz> topaz> topaz> topaz>
>> successful login
>> topaz 1> topaz 1> topaz 1> topaz 1> topaz 1> topaz 1> topaz 1> topaz 1>
>> [281474976692481 sz:125 cls: 74753 String]* Restoring from transaction
>> log files, restored to 06/07/15 04:23:05 EDT, file 315 record 4, nextFileId
>> 315, oldest fileId 315*
>> *topaz 1> topaz 1> Restore from transaction log(s) succeeded,  (error
>> 4048)*
>> topaz> topaz> topazm: in login, found topaz session 1 stale
>> successful login
>> topaz 1> topaz 1> -----------------------------------------------------
>> *GemStone: Error         Fatal*
>> *Restore from transaction log failed, Unable to re-originate log in*
>> *commitRestore,*
>> Error Category: 231169 [GemStone] Number: 4049  Arg Count: 1 Context : 20
>> exception : 20
>> Arg 1: 20
>> topaz > exec iferr 1 : where
>> WHERE can't be used prior to logging in.
>> topaz> topaz> LOGOUT can't be used prior to logging in.
>> topaz > exec iferr 1 : where
>> WHERE can't be used prior to logging in.
>>
>>
>>  As you can see, I get a
>>
>>  *GemStone: Error         Fatal*
>> *Restore from transaction log failed, Unable to re-originate log in*
>> *commitRestore,*
>>
>>  And so I cannot make any login to it. So... how I am supposed to do
>> this? I am trying to follow the sysadmin guide. I do not understand the
>> error message.
>>
>>  Thanks in advance,
>>
>>  --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>>
>> _______________________________________________
>> Glass mailing listGlass at lists.gemtalksystems.comhttp://lists.gemtalksystems.com/mailman/listinfo/glass
>>
>>
>>
>> _______________________________________________
>> Glass mailing list
>> Glass at lists.gemtalksystems.com
>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>>
>>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>



-- 
Mariano
http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20150707/4dae5eb8/attachment-0001.html>


More information about the Glass mailing list