Skip to content

docs: Point-in-Time Recovery covers MySQL (standalone and HA) - #1344

Open
paulocsanz wants to merge 2 commits into
mainfrom
pcs/mysql-pitr-docs
Open

docs: Point-in-Time Recovery covers MySQL (standalone and HA)#1344
paulocsanz wants to merge 2 commits into
mainfrom
pcs/mysql-pitr-docs

Conversation

@paulocsanz

Copy link
Copy Markdown
Contributor

What

The Point-in-Time Recovery page described Postgres only. MySQL PITR has shipped — standalone (mysql-pitr overlay, binlog archiving from Railway's MySQL image) and MySQL HA (rolling enable, archiving from the writable primary, restore across primary handoffs) — so the page now covers both engines:

  • Intro and "How it works" split per engine: pgBackRest WAL + weekly/daily base backups vs. binlog shipping + daily full logical backups, 7-day horizon, no local deletion before upload, fail-closed restore on an archive gap, HA archiving from the primary.
  • Enabling: the shared bucket + variables + redeploy flow, with the MySQL specifics — the stock template's upstream mysql image is moved onto Railway's MySQL image at the same version, the template start command is cleared, a customized start command has to be removed first.
  • Restore, disable and HA rollout paragraphs made engine-neutral; recovery variables named for both.
  • Cost: compression per engine and what the bucket stabilizes at (4 weeks vs. a week + seven fulls).
  • Limitations: the MySQL equivalents of the Postgres minor-pin rule (build-tag pins) and the ~1 minute ceiling lag.
  • databases/mysql.md gains a Point-in-time recovery bullet under Backups.

The CLI section stays Postgres-only: railway mysql pitr is in flight (railwayapp/cli#1144) and not released.

Source of truth

Retention, cadence and rotation values are the image's defaults (BINLOG_RETENTION_DAYS=7, BINLOG_FULL_BACKUP_INTERVAL_SECONDS=86400, BINLOG_ROTATE_INTERVAL_SECONDS=60 in mysql-ha's config.rs); the transition rule is mysqlPitrOfficialTransition.ts in mono; the fail-closed restore is restore.rs's gap/GTID checks.

The PITR page described Postgres only. MySQL PITR has shipped — binlog
archiving from Railway's MySQL image with daily full logical backups and a
7-day horizon, standalone and on MySQL HA (rolling enable, archiving from
the writable primary, restore across primary handoffs) — so the page now
covers both engines: how each archives, the enable flow (including the
stock template's move onto Railway's MySQL image at the same version), the
engine-neutral restore/disable/HA paragraphs, cost per engine and the MySQL
equivalents of the Postgres limitations. databases/mysql.md and
databases/mysql-ha.md link to it.
@rw-growth-check

rw-growth-check Bot commented Sep 7, 2026

Copy link
Copy Markdown

Growth check — AMH estimate

#1344 @ a49a82d — advisory only. Judgment ranges, ≤2 significant figures; SEO and AEO legs are never summed (AMH_RULES v2.2, constants v2.3 (2026-08-06)).

Files considered:

  • content/docs/databases/mysql-ha.md (modified)
  • content/docs/databases/mysql.md (modified)
  • content/docs/volumes/point-in-time-recovery.md (modified)

SEO leg (Google surface)

2–6.8 visits/mo

AEO leg (AI assistants)

1.2–3.5 visits/mo

Gates

  • SERP page type(s): /Document,/Document/Manual, /Article,/Article/Tutorial_or_Guide, /Listing,/Listing/Product, /Landing_Page,/Landing_Page/Product_Page, /Article,/Article/Listicle, /Landing_Page,/Landing_Page/Service_Page
  • AI Overview present: absent
  • Gated to zero: no
  • Gauge topic: database-and-search-deployment (matched)

Keyword candidates for the AMH panel

New (not yet curated) deploy/hosting-intent keywords found around this content — candidates to add to the panel/Gauge:

Keyword US volume/mo KD Question
mysql backup and recovery 20 0 no
mysql replication configuration 10 no
mysql point in time recovery 10 0 no
mysql high availability setup 0 no
point in time recovery mysql 0 no
mysql point-in-time recovery documentation 0 no
point in time recovery in mysql database 0 no
mysql point in time recovery step by step 0 no
mysql group replication configuration 0 no
how to setup mysql high availability 0 yes

Caveats & verification stamps

  • Current-traffic baseline (modified pages): /databases/mysql-ha: 61 pageviews, 50 visitors (6 AI-referred) over ~2mo; /deploy/mysql-ha: 10 pageviews, 7 visitors (0 AI-referred) over ~2mo; /new/template/mysql: 1442 pageviews, 901 visitors (28 AI-referred) over ~2mo; /deploy/mysql: 1384 pageviews, 504 visitors (39 AI-referred) over ~2mo; /volumes/point-in-time-recovery: 291 pageviews, 245 visitors (6 AI-referred) over ~2mo.
  • Verification pass: PostHog rates are stamped person- vs event-level — visitors are person-level (uniqExact person_id), pageviews are event-level (AMH_RULES §5/§8).
  • Verification pass: the AEO Δ is a labeled ASSUMPTION (+1pt; caps +2 pts/quarter, +6 pts/12mo — AMH_RULES §3.5).

How to go deeper

Ask an agent with the railway-internal MCP (the gauge_* / ahrefs_* / posthog_* tools) or the amh-growth skill for observed-anchor pricing, live SERP inspection, topic curation, and citation checks.

Ahrefs cost: 3108 API units · How AMH is calculated

@railway-app

railway-app Bot commented Sep 7, 2026

Copy link
Copy Markdown

🚅 Deployed to the docs-pr-1344 environment in 🪄 *.railway.com

Service Status Web Updated
Docs Frontend ✅ Success (View Logs) Web Sep 9, 2026 at 4:03 pm UTC
6 services not affected by this PR
  • Meilisearch
  • Turnout
  • Frontend Redis
  • devicons
  • OG
  • Geofeed

@railway-app
railway-app Bot temporarily deployed to *.railway.com / docs-pr-1344 September 7, 2026 16:12 Destroyed
Binlog events are stamped to the second and the restore stops at the first
event at or after the target's second, so a MySQL restore yields the state
as of the start of the chosen second. Said once where the archive's timing
is described and once in the engine differences list.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant