Skip to content

How Backup Works

MetaMiner backs up Power BI and Fabric content on a schedule or on demand, writes each run to a zip archive on the MetaMiner Server, and restores from those archives into workspaces you choose.

How it works

You define a backup job in the MetaMiner Client (MMC): which environment, which workspaces or objects, what to capture, and when to run. The job is saved in the MetaMiner Database (MMDB). The MetaMiner Server (MMS) runs the job, either when you press Run now or when its schedule falls due.

flowchart LR
  MMC[MetaMiner Client] -->|save job / Run now| MMS[MetaMiner Server]
  SCHED[Backup scheduler in MMS] -->|due job| MMS
  MMS -->|service principal| PBI[Power BI and Fabric REST APIs]
  MMS --> ARCH[(Archive folder on the server)]
  MMS --> MMDB[(MMDB: jobs and run history)]
  MMC -->|Restore, signed in as you| MMS
  MMS -->|your delegated sign-in| PBI

A backup run:

  1. Reads the job's selection and checks what MetaMiner already knows about each workspace.
  2. Lists the items in each selected workspace and captures each one by the method its type supports (see What Is Backed Up).
  3. Packs everything into one archive file and records the run in the job's run history.
  4. Applies the job's retention, then emails the run outcome if notifications apply.

A run is all-or-nothing. If any object that should be captured fails, the run fails, no archive is written, and the failure names every object that could not be captured.

Two identities

Backups run as the service principal configured for the environment, with no user session, so schedules run unattended. Restores run as you, through your own Microsoft sign-in, so a restore can only write where you are allowed to write. See Prerequisites and Access.

Jobs, runs and archives

Term Meaning
Backup job A saved definition: environment, name, selection, contents options, method, schedule, retention, notifications. Owned by the MMC user who created it.
Run One execution of a job. Trigger is Manual (Run now) or Scheduled. Result is OK, OK, with warnings, Failed or Running.
Archive The zip file a successful run produces. One archive per successful run.
Whole workspace A workspace selected as a unit: every item Power BI lists, plus the workspace's own parts (access, folders, settings) if chosen.
Partial workspace A workspace with only some items selected. Workspace parts are still captured.
Loose object An item selected on its own, without its workspace. No workspace parts are captured for it.

Where archives are stored

Archives are written under the backup archive folder set in the MetaMiner Administrator (MMA) under Settings > Backup > Backup Archive Path. Inside it, each run gets its own folder:

Archive layout
<Backup Archive Path>\pbi\<environment id>\<job id>\<run id>\MM_backup_<job name>_<run id>.zip

The archive holds a descriptor for the whole backup and one nested zip per workspace or loose object. Each nested zip carries the item definitions in Fabric's own folder layout.

TODO: confirm the default absolute path of the backup archive folder

Source to check: a fresh install. Code default is alerts\archives relative to the MetaMiner Server working folder.

Schedules

The backup scheduler runs inside MMS and checks once a minute for jobs whose schedule fell due. It uses the same schedule editor as other MMC schedules (minutes, hourly, daily, weekdays, weekly, monthly, with start and end conditions).

  • A scheduled occurrence is skipped if the previous run of the same job is still in progress.
  • Once a day the scheduler also deletes archives older than each job's retention.
  • A job without a schedule is Manual: it runs only when you press Run now.

Scheduler start

The scheduler starts with MMS when at least one Power BI environment is enabled. If you enable the first Power BI environment while MMS is running, restart MMS so scheduled backups run.

Retention

Retention applies to scheduled jobs only. After every successful run, and once a day, MMS deletes that job's archives older than the retention period (default 365 days). The newest successful archive is always kept, whatever its age. Run history stays after its archive is deleted. Manual jobs keep their archives until you delete them.