Back to HVR Hub Cockpit

HVR Hub Server Documentation

Fivetran HVR 6.2.5 — Real-Time Data Replication Platform
Overview

What is Fivetran HVR?

Fivetran HVR (High-Volume Replicator) is a self-hosted enterprise-level replication platform for databases and file systems. It provides real-time Change Data Capture (CDC) with low latency and high throughput, supporting a distributed architecture across numerous Database Management Systems (DBMSs).

This Server: saphvrhub runs HVR 6.2.5/5 as a Hub Server, connected to Fivetran's cloud proxy for managed orchestration. It replicates data from SAP systems to target destinations using CDC technology.

Core Modules

ModuleDescription
RefreshInitial bulk load of data from source to target
CaptureContinuous change data capture from the source location (CDC)
IntegrateApplies captured changes to the target location in near real-time
CompareCompares source and target to verify data is in sync

Key Capabilities

  • Real-time CDC with sub-second latency
  • Supports 50+ database platforms and file systems
  • Automatic DDL replication (schema changes)
  • Built-in conflict detection and resolution
  • Data transformation during replication
  • Web UI and REST API for management
  • Secure cloud proxy connectivity to Fivetran
Infrastructure

Server Specifications

PropertyValue
Hostnamesaphvrhub
Operating SystemRocky Linux 8.10 (Green Obsidian)
Kernel4.18.0-553.51.1.el8_10.cloud.0.1.x86_64
CPUs2 vCPUs — Intel(R) Xeon(R) CPU @ 2.20GHz
Memory3.6 GB RAM
Private IP10.128.15.240
Public IP35.209.174.110
Cloud PlatformGoogle Cloud Platform (us-central1-a)
HVR VersionFivetran HVR 6.2.5/5 (linux_glibc2.12-x64-64bit)
Repository DBPostgreSQL 14.20

Storage Layout

MountSizeUsedPurpose
/50 GB26 GB (52%)Root filesystem (XFS)
/boot/efi200 MB5.8 MB (3%)UEFI boot partition
/SUMHANA589 GB270 GB (49%)SAP/HANA data volume (LVM, ext4)
/media786 GB591 GB (80%)Media/data volume (LVM, ext4)
/archive738 GB494 GB (71%)NFS mount from sapidesecc8 (Oracle archive logs)
/media at 80% usage — Monitor this volume. HVR uses it for replication data staging.

Network Ports

PortServiceDescription
4340hvrhubserverHVR Hub Server — Web UI and REST API (HTTP)
4343systemd (HVR)HVR HTTPS port
4344systemd (HVR)HVR additional service port
5432PostgreSQLHVR repository database (localhost only)
43177hvrhubserverInternal hub server port
43111hvrschedulerInternal scheduler port
22sshdSSH access
20201otelopscolOpenTelemetry operations collector
Architecture

System Architecture

The HVR Hub Server is the central component that manages all replication channels, schedules jobs, and maintains the configuration repository.

Components on this Server

ComponentUserDescription
hvrhubserverhvrMain hub server process — manages channels, REST API, Web UI
hvrschedulerhvrJob scheduler (main + DB scheduler for hub hvrhub)
hvrstatshvrStatistics collector (global metrics + log analysis)
proxyagentrootFivetran cloud proxy agent (Java) — secure tunnel to Fivetran
PostgreSQL 14postgresRepository database (hvr6) storing all HVR metadata

Hub and Agent Architecture

HVR uses a Hub-Agent model:

  • Hub (this server) — Central orchestrator at /usr/hvr/hvr_home. Manages channels, locations, actions, and scheduling.
  • Agent (HVA) — A secondary agent installation exists at /usr/hva/hvr_home (HVR 6.2.0/1). Agents run on source/target systems to execute capture and integrate jobs locally.
  • Proxy Agent — Java-based agent connecting to Fivetran cloud (wss://prod.aws.us-east-1.proxy.fivetran.com) for managed replication.

Hub Configuration

SettingValue
Hub Namehvrhub
Repository ClassPostgreSQL (Aurora compatible)
Database Hostlocalhost
Database Namehvr6
Database Port5432
Database Userpostgres
HTTP Port4340
Installation

Directory Structure

PathPurpose
/usr/hvr/hvr_homeHVR Hub binaries, libraries, JRE, web UI (v6.2.5/5)
/usr/hvr/hvr_configHub configuration: hubs, logs, log archives, metering, wallet
/usr/hvr/hvr_tmpHub temporary files
/usr/hva/hvr_homeHVR Agent binaries (v6.2.0/1)
/usr/hva/hvr_configAgent configuration
/usr/hva/hvr_tmpAgent temporary files
/home/hvr/hvr_config/proxyFivetran proxy agent configuration

OS Users

UserRole
hvrHVR Hub Server owner — runs hvrhubserver, scheduler, stats
hvaHVR Agent owner — runs agent processes
postgresPostgreSQL database owner
rootSystem administrator — runs proxy agent

Systemd Service

[Unit]
Description=HVR Hub Server

[Service]
Type=forking
Environment="HVR_HOME=/usr/hvr/hvr_home"
Environment="HVR_CONFIG=/usr/hvr/hvr_config"
Environment="HVR_TMP=/usr/hvr/hvr_tmp"
User=hvr
ExecStart=/usr/hvr/hvr_home/bin/hvrhubserver
Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target
The service is enabled and set to Restart=always with 5 second delay. To keep it stopped, use the Stop button in the cockpit which also disables the service.
Configuration

Hub Server Configuration

The hub server configuration is stored in /usr/hvr/hvr_config/etc/hvrhubserver.conf:

{
  "Database_Host": "localhost",
  "Database_Name": "hvr6",
  "Database_Port": 5432,
  "Database_User": "postgres",
  "HTTP_Port": "4340",
  "License_Agreement_Accepted": true,
  "Repository_Class": "postgresql",
  "Repository_Class_Flavor": "aurora_pq"
}

Fivetran Proxy Agent

The proxy agent connects this hub to Fivetran's cloud management plane via a secure WebSocket tunnel:

PropertyValue
Agent IDbluntly_ethanol
Proxy Serverwss://prod.aws.us-east-1.proxy.fivetran.com
Config File/home/hvr/hvr_config/proxy/proxyagent.conf
ProcessJava (JRE bundled with HVR)
Memory Usage~180 MB
The proxy agent authenticates to Fivetran using the auth_token stored in the proxy configuration file. This enables Fivetran's cloud dashboard to manage replication channels on this hub.

PostgreSQL Repository

HVR uses a local PostgreSQL 14 instance as its metadata repository. The cockpit displays real-time status including uptime in both Amsterdam (CET/CEST) and Los Angeles (PT) timezones.

PropertyValue
VersionPostgreSQL 14.20
Databasehvr6
Listens on127.0.0.1:5432 and [::1]:5432 (localhost only)
Userpostgres
Connections4 persistent from HVR (scheduler, stats)
Uptime sourcepg_postmaster_start_time()

NFS Mount

The server has an NFS mount from sapidesecc8 for Oracle archive log access:

# /etc/fstab entry
sapidesecc8:/oracle/ABA/oraarch    /archive    nfs    defaults    0  0

This provides access to SAP ECC Oracle archive logs for CDC replication.

Operations

Service Management

Check Status

systemctl status hvrhubserver --no-pager

Start / Stop / Restart

# Start (also re-enable auto-restart)
systemctl enable hvrhubserver && systemctl start hvrhubserver

# Stop (also disable to prevent auto-restart)
systemctl stop hvrhubserver && systemctl disable hvrhubserver

# Restart
systemctl restart hvrhubserver
The cockpit Stop button automatically disables the service to prevent systemd from respawning it (Restart=always). The Start button re-enables it.

Process Overview

When running, the following processes should be active:

ProcessUserDescription
hvrhubserverhvrMain hub server (PID parent)
hvrscheduler hvrhubhvrJob scheduler for hub
hvrscheduler -wdb hvrhubhvrDatabase scheduler for hub
hvrstats -g0 hvrhubhvrStatistics collector
hvr -chvrstats-logshvrLog statistics processor
hvr -chvrstats-globhvrGlobal statistics processor
proxyagent.jarrootFivetran cloud proxy (Java)

Web UI Access

HVR provides a web-based user interface for managing replication:

PropertyValue
URLhttp://35.209.174.110:4340 (or internal http://10.128.15.240:4340)
RequiresPC/laptop with at least 1024px screen width
Not supportedMobile phones, Internet Explorer 11
The Web UI allows you to configure channels, locations, tables, actions, monitor jobs and events, view statistics, and manage users. Access requires GCP firewall to allow port 4340.

Web UI Sections

SectionDescription
ChannelsCreate, configure, activate/deactivate replication channels
LocationsManage source and target database connections
TablesSelect and configure tables for replication
JobsMonitor running and completed replication jobs
EventsView replication events and alerts
StatisticsPerformance metrics, latency, throughput
TopologyVisual architecture diagram of replication flows
SystemHub settings, permissions, users, repository config

REST API

HVR exposes a comprehensive REST API on port 4340 with ~200 endpoints organized into 19 interface categories:

Activate Refresh Compare Agent Config Alert Authentication Control Definition Encryption Event Hub Config HubServer Job License Logfile Query Repository Statistics User Config

The API uses standard HTTP methods (GET, PUT, POST, DELETE) and returns JSON. It is version-independent and backward-compatible.

Replication Modules

Capture

The Capture module continuously reads changes from the source database transaction logs (CDC). Key parameters:

ParameterDescription
CoalesceMerge multiple changes to same row into single operation
NoBeforeUpdateSkip capturing before-image of updated rows
HashBuckets / HashKeyPartition captured changes for parallel processing
IgnoreConditionFilter out changes matching a condition
DeleteAfterCaptureRemove source rows after capture (for queue tables)

Integrate

The Integrate module applies captured changes to the target location. Supports various target types including databases, Kafka, and file systems.

ParameterDescription
Commit frequencyControl batch size for target writes
MethodsINSERT/UPDATE/DELETE, MERGE, or bulk operations
Kafka Topic/MessageKeyTarget Kafka topic and partitioning key
FileFormatXML, CSV, Avro, JSON, Parquet with compression

Actions Reference

Actions define replication behavior. A channel requires at minimum Capture (on source) and Integrate (on target).

ActionPurpose
AdaptDDLAutomatic schema adaptation (add/drop tables, alter columns)
AgentPluginExecute external operations (scripts, stored procedures)
CaptureChange data capture from source
CollisionDetectConflict detection and resolution for bi-directional replication
ColumnPropertiesColumn-level transformations and data type mappings
DbObjectGenerationAuto-create triggers, procedures, tables on target
DbSequenceDatabase sequence management during replication
EnvironmentSet environment variables for replication jobs
FileFormatFile-based output format (Avro, Parquet, CSV, JSON)
IntegrateApply changes to target location
RestrictFilter/partition data during replication
SchedulingJob timing, start times, latency SLA
TablePropertiesTable-level transformations and schema mappings
TransformCustom data transformations via scripts

Full action reference: fivetran.com/docs/hvr6/action-reference

Command Line Interface

Key HVR Commands

All commands are in /usr/hvr/hvr_home/bin/. Run as user hvr with environment variables set.

Environment Setup

export HVR_HOME=/usr/hvr/hvr_home
export HVR_CONFIG=/usr/hvr/hvr_config
export HVR_TMP=/usr/hvr/hvr_tmp
export PATH=$HVR_HOME/bin:$PATH

Common Commands

CommandDescription
hvrhubserverStart/manage the hub server
hvractivateActivate replication on a channel
hvrcompareCompare source and target data
hvrcontrolStart/stop/manage replication jobs
hvragentManage HVR agents
hvragentconfigConfigure agent connections
hvragenttestTest agent connectivity
hvralertManage alert definitions
hvrcryptEncrypt/decrypt credentials
hvradaptAdapt table definitions (DDL sync)

Example: Check Hub Status

# As user hvr
su - hvr
export HVR_HOME=/usr/hvr/hvr_home
export HVR_CONFIG=/usr/hvr/hvr_config
$HVR_HOME/bin/hvrcontrol -h hvrhub list
PostgreSQL Repository

Overview

HVR uses a local PostgreSQL 14 instance as its metadata repository. This database stores all hub configuration, channel definitions, location settings, replication state, event history, and job metadata.

PropertyValue
VersionPostgreSQL 14.20
Servicepostgresql-14 (systemd)
Database Namehvr6
OS Userpostgres
Binaries/usr/pgsql-14/bin/
Data Directory/var/lib/pgsql/14/data/
Listenlocalhost:5432 (local only)
Size~576 MB
PostgreSQL only listens on localhost. It is not exposed to the network. HVR connects via Unix socket as the hvr user.

Service Management

The cockpit provides Start, Stop, and Restart controls for the postgresql-14 systemd service on the hub server.

ActionAuthBehaviour
StartNoneEnables and starts postgresql-14. Reports if already running.
StopMaster passwordStops and disables postgresql-14 (prevents auto-restart). HVR Hub will lose its repository connection — all replication stops.
RestartMaster passwordRestarts postgresql-14 and re-enables self-healing. HVR connections are briefly interrupted.
Caution: Stopping PostgreSQL will cause the HVR Hub Server to lose all metadata access. All active replication channels will fail until PostgreSQL is restarted.

Manual Service Control (CLI)

# Check status
systemctl status postgresql-14 --no-pager

# Start (enable self-healing)
systemctl enable postgresql-14 && systemctl start postgresql-14

# Stop (disable self-healing)
systemctl stop postgresql-14 && systemctl disable postgresql-14

# Restart
systemctl restart postgresql-14

Backup

Database backups use pg_dump in custom format (-Fc) for efficient compression and selective restore. Each backup is written to two locations simultaneously:

LocationPathPurpose
Local/usr/hvr/hvr_config/backup/Primary backup, fast restore
NFS (/media)/media/HVR/Secondary copy on persistent disk, survives VM rebuild

From the Cockpit

Click Backup Now in the PostgreSQL status card. The backup runs in the background and typically completes in a few seconds.

Manual Backup (CLI)

# SSH to the hub server
ssh root@10.128.15.240

# Create backup directories
mkdir -p /usr/hvr/hvr_config/backup /media/HVR
chmod 777 /usr/hvr/hvr_config/backup /media/HVR

# Run pg_dump (custom format for efficient restore)
BKNAME=hvr6_$(date +%Y%m%d_%H%M%S).dump
su - postgres -c '/usr/pgsql-14/bin/pg_dump -Fc hvr6' > /usr/hvr/hvr_config/backup/$BKNAME

# Copy to secondary location
cp /usr/hvr/hvr_config/backup/$BKNAME /media/HVR/$BKNAME
chown hvr:hvr /usr/hvr/hvr_config/backup/$BKNAME /media/HVR/$BKNAME

# Verify both copies
ls -lh /usr/hvr/hvr_config/backup/$BKNAME /media/HVR/$BKNAME
Important: Always create a database backup before applying HVR updates. The cockpit does not automatically back up the database during the update process — only the hvr_home directory is backed up.

Restore

Restoring from a backup requires stopping the HVR Hub Server first, as active connections prevent a clean restore.

From the Cockpit

Click Restore in the PostgreSQL status card. Select a backup from the list, confirm the operation, and enter the master password. The cockpit automatically stops the hub, restores, re-enables self-healing, and restarts.

Manual Restore (CLI)

# Stop HVR Hub Server
systemctl stop hvrhubserver

# Restore (--clean drops and recreates objects)
su - postgres -c '/usr/pgsql-14/bin/pg_restore --clean --if-exists -d hvr6 /usr/hvr/hvr_config/backup/hvr6_YYYYMMDD_HHMMSS.dump'

# Re-enable and restart
systemctl enable hvrhubserver
systemctl start hvrhubserver

# Verify
systemctl status hvrhubserver --no-pager
Downtime: Restore requires stopping the hub. All replication channels will pause. They resume automatically when the service restarts.
Updates & Upgrades

Overview

HVR Hub updates are managed through the cockpit's HVR Updates section. The process supports both upgrades and downgrades by uploading a Fivetran HVR release package (.tar.gz) and applying it to the running installation.

Release packages are available from Fivetran HVR 6 Release Notes. Download the hub_and_agent_linux_glibc2.12-x64-64bit variant for this server.

Package Format

Release packages are .tar.gz compressed archives containing the full HVR home directory. Each package includes a hvr.ver file with the version string (e.g., Fivetran HVR 6.2.5/5 (linux_glibc2.12-x64-64bit)).

Example filename: fivetran-6.1.0_94-hub_and_agent-linux_glibc2.12-x64-64bit-ga_patch.tar.gz

Update Workflow

The cockpit provides a 4-step workflow for applying updates:

StepActionDescription
1a. UploadUpload PackageSelect a .tar.gz package from your local machine. The file is streamed to the web server in 64 KB chunks (supports files up to 500 MB), then SCP'd to the hub's staging directory at /usr/hvr/hvr_config/download/.
1b. DownloadDownload from URLPaste a direct URL to a .tar.gz package. The hub server downloads it directly via curl into the staging directory — faster than uploading through the browser for large files.
2. CheckCheck UpdatesCompares the running version (from /usr/hvr/hvr_home/hvr.ver) against the staged package version (extracted from the tar). Reports upgrade, downgrade, or same version.
3. ApplyApply UpdateRequires master password. Stops the hub service, creates a timestamped backup of hvr_home, extracts the package, fixes ownership, and restarts the service.
4. DeleteDelete StagedRemoves all staged .tar.gz packages from the download directory.

Apply Update — Detailed Steps

When you click Apply Update in the cockpit, the following commands execute on the hub server via SSH:

# 1. Stop the HVR Hub service
systemctl stop hvrhubserver

# 2. Create a timestamped backup of the current installation
cp -a /usr/hvr/hvr_home /usr/hvr/hvr_home.backup.$(date +%Y%m%d_%H%M%S)

# 3. Extract the new package over the existing installation
cd /usr/hvr/hvr_home
tar xzf /usr/hvr/hvr_config/download/<package>.tar.gz

# 4. Fix file ownership
chown -R hvr:hvr /usr/hvr/hvr_home

# 5. Restart the service
systemctl start hvrhubserver
Downtime: The hub server is offline during the update (typically 30–60 seconds). All active replication channels (CDC Capture, Integrate, Refresh) will stop. Channels resume automatically once the service restarts.
Master password required: The apply operation requires the vault master password. A detailed confirmation dialog lists all actions before proceeding.
Self-healing: After the update, the service is explicitly re-enabled (systemctl enable hvrhubserver) to ensure Restart=always is active. If the update fails mid-way, the error handler also re-enables and attempts to restart the service automatically.

Rollback Procedure

If an update fails or causes issues, restore from the automatic backup:

# Stop the service
systemctl stop hvrhubserver

# List available backups
ls -la /usr/hvr/hvr_home.backup.*

# Restore from the most recent backup
rm -rf /usr/hvr/hvr_home
cp -a /usr/hvr/hvr_home.backup.YYYYMMDD_HHMMSS /usr/hvr/hvr_home

# Restart
systemctl start hvrhubserver

Manual Update (CLI)

If the cockpit is unavailable, you can perform the update manually via SSH:

# SSH to the hub server
ssh root@10.128.15.240

# Upload the package (from your local machine)
scp fivetran-*.tar.gz root@10.128.15.240:/usr/hvr/hvr_config/download/
chown hvr:hvr /usr/hvr/hvr_config/download/*.tar.gz

# Check the staged version
tar xzf /usr/hvr/hvr_config/download/*.tar.gz -O hvr.ver

# Compare with running version
cat /usr/hvr/hvr_home/hvr.ver

# Apply (stop, backup, extract, start)
systemctl stop hvrhubserver
cp -a /usr/hvr/hvr_home /usr/hvr/hvr_home.backup.$(date +%Y%m%d_%H%M%S)
cd /usr/hvr/hvr_home && tar xzf /usr/hvr/hvr_config/download/*.tar.gz
chown -R hvr:hvr /usr/hvr/hvr_home
systemctl start hvrhubserver

# Verify
cat /usr/hvr/hvr_home/hvr.ver
systemctl status hvrhubserver --no-pager

Staging Directory

PropertyValue
Path/usr/hvr/hvr_config/download/
Ownerhvr:hvr
Format.tar.gz (gzip-compressed tar)
CleanupUse cockpit "Delete Staged" or rm -f /usr/hvr/hvr_config/download/*.tar.gz
Only the most recent .tar.gz file is used for version comparison and apply operations. Upload a new package to replace the staged one.

Version Format

HVR version strings follow the pattern: Fivetran HVR major.minor.patch/build (platform)

ComponentExampleDescription
Major6Major version (HVR 6)
Minor2Feature release
Patch5Bug fix release
Build5Build number within patch
Platformlinux_glibc2.12-x64-64bitTarget platform

The cockpit compares version tuples (major, minor, patch, build) to determine if the staged package is an upgrade, downgrade, or the same version.

Troubleshooting

Common Issues

IssueResolution
Hub server not starting Check logs: journalctl -u hvrhubserver --no-pager -n 50
Verify PostgreSQL is running: systemctl status postgresql-14
Web UI not accessible Verify port 4340 is listening: ss -tlnp | grep 4340
Check GCP firewall allows port 4340 from your IP
Proxy agent not connecting Check Java process: ps aux | grep proxyagent
Verify proxy config: cat /home/hvr/hvr_config/proxy/proxyagent.conf
NFS mount /archive unavailable Check sapidesecc8 is reachable: ping sapidesecc8
Remount: mount -a
/media volume running out of space Check usage: du -sh /media/*
Clean old staging data or extend LVM volume
Service keeps restarting Disable auto-restart: systemctl disable hvrhubserver
Then stop: systemctl stop hvrhubserver
Check logs for crash cause

Log Locations

LogPath
Hub Server Logs/usr/hvr/hvr_config/logs/
Log Archives/usr/hvr/hvr_config/logarchives/ (548 archived logs)
Systemd Journaljournalctl -u hvrhubserver
Metering Data/usr/hvr/hvr_config/metering/

External Resources