Artifactory recommends the steps outlined here when moving from an old Artifactory server to a new one: https://jfrog.com/knowledge-base/what-is-the-best-way-to-migrate-a-large-artifactory-instance-with-minimal-downtime/

Under both methods it says that you're supposed to copy over $ARTIFACTORY_HOME/data/filestore, but then you just go ahead an export the old data and import it into the new instance, and in the first method you also rsync the files. This seems like you're just doing the exact same thing three times in a row. JFrog really doesn't explain why each of these steps is necessary and I don't understand what each does differently that cannot be done by the other.

2 Answers

5
Yonatan Brand On Best Solutions

When migrating Artifactory instance we need to take two things into consideration:

  1. Artifactory Database - Contains the information about the binaries, configurations, security information (users, groups, permission targets, etc)

  2. Artifactory Filestore - Contains all the binaries

Regardless to your questions, I would like to add that from my experience, in case of a big filestore size (500GB+) it is recommended to use a skeleton export (export the database only, without the filestore. This can be done by marking "Exclude Content" in Export System) and copy the filestore with the help of a 3rd party tool such as Rsync.

I hope this clarifies further.

3
Ariel Kabov On

The main purpose of this article is to provide a bit faster migration comparing to simple full export & import. The idea of both methods is to select the "Exclude Content". The content we select to exclude is exactly the one that is stored in $ARTIFACTORY_HOME/data/filestore/.

The difference between the methods is that Method #1 exposes some downtime, as you will have to shut down Artifactory at a certain point, sync the diffs, and start the new one. While method #2 exposes a bit more complexed process, that includes in-app replications to sync the diffs.

Hope that makes more sense.