Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 85 additions & 1 deletion .cursor/technical-lesson-review.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,24 @@ If you change something, make sure you explain _why_ the change has been made.

* [ ] Titles should always be followed by two line breaks.
* [ ] The "== Check your understanding" header should be preceded with `[.quiz]` on the previous line.
* [ ] There must always be a blank line between a paragraph and a list (ordered or unordered).

**Example - Incorrect:**

```asciidoc
Here is some text in a paragraph.
* List item 1
* List item 2
```

**Example - Correct:**

```asciidoc
Here is some text in a paragraph.

* List item 1
* List item 2
```

## Links

Expand All @@ -33,18 +51,84 @@ A lesson may be read-only, or include questions. Any questions are stored in th

* If a lesson has questions, it must not have a "Mark as read" button (`read::{text}[]`). Remove the read button.
* For each .adoc file in the `questions/` folder, make sure that the file is included.
* **There can only be ONE bullet list in a question** - the answer choices. Avoid bullet lists in the scenario/question text. Numbered lists are acceptable for presenting data, but bullet lists should be avoided in the question setup.


### How to include a question

Use the include macro, making sure there is a
Use the include macro:

```asciidoc
include::questions/[file-name].adoc[leveloffset=+1]

```


### Challenge Lessons

Challenge lessons (`:type: challenge`) should follow a specific structure to avoid duplicating content:

**In the lesson.adoc file:**
1. Present the scenario with all context needed
2. Include a "The Challenge" section with the question prompt
3. Include the question file directly (no `[.quiz]` or `== Check Your Understanding` header needed)
4. Provide a summary with key takeaways

**Structure:**

```asciidoc
= Challenge Title
:type: challenge
:order: 2


== Scenario

Present the full scenario with all context, constraints, and information the user needs.


== The Challenge

State the challenge question (e.g., "What is the BEST course of action?")


include::questions/1-question.adoc[leveloffset=+1]


[.summary]
== Summary

Provide key takeaways and lessons learned.
```

**In the question file:**

The question file should contain ONLY the question title, answer options, hint, and solution. Do NOT duplicate the scenario from the lesson.adoc file.

```asciidoc
[.question]
= Question Title

What is the best approach?

* [ ] Option A
* [x] Option B (correct)
* [ ] Option C

[TIP,role=hint]
.Hint
====
Hint text
====

[TIP,role=solution]
.Solution
====
Explanation of correct answer
====
```



## Slides

Expand Down
Binary file added asciidoc/courses/aura-administration/banner.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
54 changes: 54 additions & 0 deletions asciidoc/courses/aura-administration/course.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
= Aura In Production
:categories: administrator:1, aura:2, intermediate:10
:status: draft
:caption: Learn how to backup, restore and monitor Neo4j Aura instances in production
:duration: 2 hours
:key-points: Backup and restore strategies, Instance monitoring and metrics, Resource optimization, Query logs and performance tuning

In this course, you will learn how to effectively manage and monitor Neo4j Aura instances in production environments.

As a database administrator, you will learn how to identify and respond to performance issues, optimize resource usage, and maintain data integrity through backup and restore operations.

This course focuses on the operational aspects of running Aura in production, helping you recognize when action is needed and how to respond effectively.


== Duration

2 hours


== Prerequisites

Before starting this course, you should have:

* Completed the link:/courses/aura-fundamentals/[Aura Fundamentals course^]
* Basic understanding of database concepts

* Access to a Neo4j Aura Professional or higher tier instance (for full feature access)


== What you will learn

* How to create and manage backups for data protection and testing scenarios

* How to use backups to create test environments

* How to navigate and interpret the Metrics dashboard

* How to monitor resource usage (CPU, storage, query rate)
* How to identify memory and performance issues using instance metrics

* How to monitor database health through entity counts, transactions, and checkpoints

* How to use query logs to identify and optimize slow queries

* How to troubleshoot common production issues

* How to integrate Aura metrics with external monitoring tools


[.includes]
== This course includes

* [lessons]#37 lessons#
* [quizes]#17 challenge scenarios with multiple choice questions#
24 changes: 24 additions & 0 deletions asciidoc/courses/aura-administration/illustration.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
= Managing Snapshots
:type: lesson
:order: 1


[.discrete]
== Introduction

The data in your Aura instance can be backed up, exported, and restored using snapshots.

A **snapshot** is a copy of the data in an instance at a specific point in time.

In this lesson, you will learn about snapshot types, how to access and manage them, and the retention policies for different Aura tiers.


== Snapshot Types

Aura provides two types of snapshots to help you protect your data and maintain operational flexibility.


=== Scheduled Snapshots

Scheduled snapshots run automatically based on your Aura tier without manual intervention.

The frequency depends on your tier. For instances running the latest version of Neo4j, **AuraDB Professional** and **AuraDS Professional** create snapshots once per day. **AuraDB Business Critical** creates snapshots every hour. **AuraDB Virtual Dedicated Cloud** creates both daily full snapshots and hourly differential snapshots. **AuraDS Enterprise** creates daily snapshots.

If you're running Virtual Dedicated Cloud instances on Neo4j 4.x, you'll get scheduled snapshots every 6 hours.

[NOTE]
.Full vs. Differential Snapshots
====
Understanding the difference between snapshot types is important for your recovery strategy. A **full snapshot** captures your entire database at a specific point in time - it's complete and self-contained. A **differential snapshot**, on the other hand, only records the changes since the last full snapshot, making it more efficient but dependent on the full snapshot that came before it.

Keep in mind that differential snapshots are not exportable and cannot be used to create new instances. They're designed purely for restore operations on your existing instance.
====


=== On Demand Snapshots

On demand snapshots are manually triggered using the **Take snapshot** button in the Aura console. You can create them at any time.

For AuraDB Free instances, on demand snapshots are the only snapshot type available.


== Accessing Snapshots

To view and manage snapshots:

. Navigate to your Aura instance card in the console
. Click the more menu icon (**…**) on the instance card
. Select **Inspect**
. Select the **Snapshots** tab

The Snapshots tab displays a list of available snapshots with their creation time, type, and available actions.

Use the **Show exportable only** toggle to filter snapshots by whether they can be exported.


== Snapshot Actions

The more menu (**…**) next to each snapshot provides access to three actions: export, create instance, and restore.


=== Export

Exporting downloads a snapshot as a backup file for offline storage or use with other Neo4j installations. **AuraDB instances** export as `.backup` files (latest version) or `.dump` files (version 4.x). **AuraDS instances** export as `.tar` files.

Exported files provide data recovery options independent of Aura's infrastructure.

[IMPORTANT]
.Exportability Restrictions
====
There are some limits to be aware of. For Virtual Dedicated Cloud instances running Neo4j latest version, you can only export one full snapshot per day. This is by design to balance data protection with system resources.

Remember that differential backups cannot be exported at all - only full snapshots can be downloaded.
====


=== Create Instance from Snapshot

Creating a new instance from a snapshot produces an independent instance populated with data from the snapshot point in time. The original instance remains unchanged.

This enables testing changes, debugging production issues in isolation, and providing realistic test data without affecting production.


=== Restore

The restore action (accessed via the arrow icon next to the more menu) reverts the instance to the state captured in the snapshot.

[WARNING]
====
Restoring from a snapshot **overwrites** all current data in the instance, replacing it entirely with the snapshot data. The operation is destructive and irreversible.

The console requires confirmation before proceeding. To verify snapshot data without overwriting current data, create a new instance from the snapshot instead.
====


== Snapshot Retention

Different tiers offer different retention policies:

[cols="1,1,1,1", options="header"]
|===
|Tier
|Restorable Days
|Exportable Days
|Total Retention

|AuraDB Free
|N/A (on-demand only)
|N/A (on-demand only)
|N/A

|AuraDB Professional
|7
|7
|7

|AuraDB Business Critical
|30
|30 (full only)
|30

|AuraDB Virtual Dedicated Cloud (latest)
|60 (full)
|60 (full)
|90

|AuraDB Virtual Dedicated Cloud (4.x)
|60 (long), 7 (short)
|14 (long), 7 (short)
|90

|AuraDS Professional
|7
|7
|30

|AuraDS Enterprise
|14
|7
|90
|===

[NOTE]
.On-Demand Snapshot Retention
====
On-demand snapshots are restorable and exportable for the same period as the total retention for your tier.
====


== Best Practices

Effective snapshot management requires consistent operational procedures:

Take an on-demand snapshot before making major database changes. While automatic snapshots run on schedule, a snapshot immediately before a risky operation provides a specific recovery point.

Test restore procedures regularly. Restore a snapshot to a test instance and verify data integrity. This confirms that recovery processes function correctly before they're needed in production.

Download snapshots as backup files for critical data. This provides recovery options independent of Aura's infrastructure.

Use the **Show exportable only** filter in the Snapshots tab to identify downloadable snapshots. Differential backups are not exportable.

Understand your tier's retention policies, including the difference between restorable and exportable retention periods. Professional tier provides 7 days for both. Higher tiers have different periods for full versus differential backups.

Create new instances from snapshots for testing or troubleshooting rather than restoring to production instances. This maintains production stability during investigation.


[.quiz]
== Check Your Understanding

include::questions/1-snapshot-schedule.adoc[leveloffset=+1]


[.summary]
== Summary

You learned how to manage snapshots for your Aura instances.

You learned about automatic snapshot schedules, retention policies, and how to access the Snapshots page in the Aura console.

In the next lesson, you will learn how to use snapshots to create test environments from production data.

Loading