CLI cookbook: repairing a timeflow
Prerequisites
Know the dSource and Group you need to repair from
Make sure that your retention policy is set correctly so that the ingested logs are within the retention
Procedure
Log into the Delphix Engine as an Admin user. Go to Timeflow and then list. Find the name of the Timeflow that needs to be repaired.
ACTIONSCRIPT3ssh admin@<yourengine>delphix > timeflowdelphix timeflow > ls
List the missing logs for the Timeflow. The maximum number of logs reported is controlled by the value of the pageSize argument; if there are a very large number of missing logs, you may need to increase this value. Note the start and end scn of the missing log.
ACTIONSCRIPT3delphix timeflow > cd oracle/logdelphix timeflow oracle log> list timeflow=example missing=true pageSize=1000
Note: If the output from the above command does not list any logs as missing, but there are one or more sequences reported as missing by the Delphix Admin browser-based app, please contact Delphix Technical Support for assistance.
Stage the missing logs.
Verify that there is sufficient free space.
Copy or restore the missing archive logs into an alternative directory on a server the Delphix Engine can access via the network. All files and subdirectories in the configured directory are searched recursively, so staging the archive logs to a location with no other files or folders will ensure the process completes in a timely manner.
Verify that the user being specified in the next step has permission to read these archive log files in the directory. The user credentials are optional if the host and user credentials have already been added to the Delphix Engine.
CODEdelphix timeflow oracle log > fetchdelphix timeflow oracle log fetch *> set type=TimeflowLogFetchParametersdelphix timeflow oracle log fetch *> set timeflow=exampledelphix timeflow oracle log fetch *> set directory=[directory where you restored the log file]delphix timeflow oracle log fetch *> set endLocation=[end SCN of the sequence]delphix timeflow oracle log fetch *> set startLocation=[start SCN of the sequence]delphix timeflow oracle log fetch *> set host=[hostname or IP of the host you restored the file to]delphix timeflow oracle log fetch *> set username=[a user that can read the file]delphix timeflow oracle log fetch *> edit credentialsdelphix timeflow oracle log fetch *> set type=PasswordCredentialdelphix timeflow oracle log fetch *> set password=[password for this user]
Commit the changes.
CODEdelphix timeflow oracle log > fetchdelphix timeflow oracle log fetch *> set type=TimeflowLogFetchParametersdelphix timeflow oracle log fetch *> set timeflow=exampledelphix timeflow oracle log fetch *> set directory=[directory where you restored the log file]delphix timeflow oracle log fetch *> set endLocation=[end SCN of the sequence]delphix timeflow oracle log fetch *> set startLocation=[start SCN of the sequence]delphix timeflow oracle log fetch *> set host=[hostname or IP of the host you restored the file to]delphix timeflow oracle log fetch *> set username=[a user that can read the file]delphix timeflow oracle log fetch *> edit credentialsdelphix timeflow oracle log fetch *> set type=PasswordCredentialdelphix timeflow oracle log fetch *> set password=[password for this user]
Only do ONE repair job at a time.
It is possible for there to be more than one Timeflow visible for a given container/source. If that is the case, you can verify the current TimeFlow being used with:
delphix > databasedelphix database > select 'example'delphix database "example"> ls
Look for the currentTimeflow
value.