By default, Jive stores
binary content (attachments on blog posts, discussions, uploaded documents, images,
profile pictures, and avatars) in the application database, but we recommend migrating
binary content to a different binary storage provider. Storing binary content data in a
location outside the database is more efficient and scalable. For production Jive
systems, we recommend using a shared file system for storing all
binary content.
Documents created in the content editor are
not binary content and are stored in the
application database.
Preparing to Migrate to a Shared File System Location
You need to migrate your binary storage provider if:
- You want to use a file system provider instead of the JDBC provider enabled
by default.
- You want to use the provider you're currently using, but change how you're
using it. For example, you might want to use a different file system
location for the file system provider.
Before you migrate to a different provider, be sure you do the following:
- Back up your current storage provider's backing store.
- Run a successful migration on a backup of this system.
- Do not run the migration tool during a busy period.
- Make sure the file system location is always available to the application.
- Estimate the amount of space you'll need for shared storage. For more on
these requirements, see Binary
Storage in Required External Components
Keep the following things in mind as you go through the migration process:
- During the migration, any new binary content will be stored in both the
current and the new storage provider. Once the migration has completed
successfully the system will switch over to the new provider.
- If any errors occur during migration the system will revert back to the
current storage provider settings to allow the system to continue to
function normally. Errors will be logged (see Getting
Application Logs for more on logs). When you've addressed the
errors, start over with migration.
- Keep in mind that binary content caching is disabled during migration. This
might cause increased load on both the current storage provider as well as
the application in general.
- Allow at least a couple of hours for binary storage migration unless you
have a trivial amount of content, for example, if you're just starting a
community.
- When configuring a file system provider, you'll specify a namespace. The
namespace helps ensure that data is isolated for the application instance it
belongs to. So, for example, if you had multiple instances (such as an
internal and an external instance), you could use the same storage server
while giving the storage provider for each instance a different
namespace.
Migrating to a Shared File System for Binary Storage
Fastpath: Admin Console: System > Settings >
Storage Provider
To migrate to a shared file system:
- Prepare a single unit of shared NFS or block-level storage on your SAN/NAS, and
mount it from each of your web application nodes using the same mount point on
each node (for example, /opt/jiveBinStore). Refer to Sizing
Binary Storage for help estimating the amount of shared storage
you'll need.
- From the Storage Provider page in the Admin Console, click Migrate to another
Storage Provider.
- Select FileStorageProvider in the Registered Providers
field.
- Click Continue.
- Enter a namespace that will correspond to binary data for this application
instance.
- Enter the path to the local directory that you mapped to a mountable location in
Step 1.
- Click Continue.
- Read the notes and confirm that the settings shown are the values you
specified.
- To delete binary content from the current source storage after migration, select
the Delete binary content check box.
- Click Start Migration to begin the process.
- When the migration is complete, restart the application.
- Disable local file caching:
- Navigate to Admin Console:
- Click Edit under Caching.
- Select No in the Cache Enable field.
- Click Save.
Jdbc Storage Providers
You can also migrate content to Jdbc storage providers (a DBMS).
To migrate to a different provider:
- In the Admin Console go to the Storage Provider page.
- Click Migrate to another storage provider.
- In the Registered Providers field, select JdbcStorageProvider.
About Using a Database for Binary Storage
When you use another database for binary content storage, you specify a JNDI name
corresponding to the database. During migration to the new provider, the application
will create the database tables needed.
In a cluster, the JNDI name must be the same on each node where you configure an
instance to use the provider.