Backups
Point-in-time recovery у Supabase: ціна та межі
Point-in-time recovery у Supabase відмотує базу на будь-яку секунду за останній тиждень. Коштує $100 на місяць понад Pro і покриває лише базу даних.

Коротко
- Point-in-time recovery у Supabase повертає базу даних на момент, який ви називаєте, а не на нічну копію. Це платне доповнення, доступне від плану Pro і вище.
- Воно коштує $100 на місяць за вікно в сім днів, а вмикання ще й переводить проєкт на більший обчислювальний інстанс, який оплачується окремо.
- Жоден зовнішній інструмент резервного копіювання не дасть того самого. Point-in-time recovery спирається на журнал запису самої бази, а прочитати його може лише платформа, якій належить диск.
- Воно покриває базу даних. Ваші файли зі Storage лишаються поза ним, і помилка, яку ви помітили після того, як вікно проїхало, теж лишається поза ним.
Ви на плані Supabase Pro, щось пішло не так у час, який ви могли б записати, а нічна копія старша за помилку. Десь у панелі є перемикач із назвою Point in Time Recovery і ціною поруч, і питання в тому, чи купує ця ціна те, що ви думаєте.
Ось частина, яку сплющує кожен огляд: point-in-time recovery і копія, яку тримаєте ви, це два різні продукти, і ввімкнення першого нічого не змінює в тому, для чого існує другий. У панелі обидва лежать під заголовком Backups, і звідси береться більша частина плутанини.
Допомагає думати про одне як про запис, а про інше як про фотографію. Щоденна копія це фотографія: один кадр на день, зроблений о сталій годині, і ви можете винести його з будівлі. Point-in-time recovery це камера самої будівлі, яка працює безперервно й дає зупинитися на будь-якому кадрі. Плівки лежать у підвалі й сягають тижня назад.
Що таке point-in-time recovery у Supabase?
Це спосіб повернути базу даних на конкретний момент, а не на конкретну копію.
Supabase будує його з двох речей, які працюють разом. Перша це фізична копія, щоденний знімок файлів бази. Друга це архівування Write Ahead Log: Postgres веде безперервний запис кожної зміни, яку робить, а Supabase відносить ці файли кожні дві хвилини або одразу, щойно один із них переходить певний розмір. Відновлення завантажує знімок і далі програє журнал уперед, доки не дійде до моменту, який ви попросили.
Саме з цього механізму й береться точність. Supabase описує результат як деталізацію аж до секунд, із найгіршим випадком, який вони оцінюють як Recovery Point Objective у дві хвилини, тобто найбільше, що ви могли б втратити в кінці обраного моменту.
Їхня документація з резервних копій це сторінка, де лежить поточний вигляд усього цього. Усе нижче спирається на цифри, які належать їм.
Скільки коштує point-in-time recovery у Supabase?
$100 на місяць за вікно в сім днів, понад план Pro, який сам по собі коштує $25 на місяць.
Supabase тарифікує доповнення погодинно й продає три розміри вікна:
| Вікно відновлення | Скільки бере Supabase |
|---|---|
| 7 днів | $0.137 за годину, близько $100 на місяць |
| 14 днів | $0.274 за годину |
| 28 днів | $0.55 за годину |
У рахунку є другий рядок, і саме він застає людей зненацька. Point-in-time recovery вимагає щонайменше обчислювального інстанса Small. Проєкт на Pro за замовчуванням працює на Micro, і $10 обчислювального кредиту, включені в план, покривають його повністю; Small коштує близько $15 на місяць, тож кредит перестає покривати ваші обчислення, а решта починає зʼявлятися в рахунку. Доповнення через це виходить трохи дорожчим за цифру, надруковану поруч із ним.
Воно доступне на Pro, Team та Enterprise. На безкоштовному плані немає до чого його додавати, бо безкоштовний план не робить жодних автоматичних копій.
Звіряйте обидві цифри зі сторінкою цін самого Supabase того дня, коли вирішуватимете, а не з цією сторінкою. Цифри належать їм, і ця сторінка не помітить, коли вони зміняться.
Коли point-in-time recovery вартий своїх грошей?
Коли ви можете назвати хвилину і коли робота по обидва боки від неї має вагу.
Міграція відпрацювала о 14:32 і забрала з собою колонку. Скрипт, який ви запустили в обід, записав хибне значення в кожен рядок. Аґент зі штучним інтелектом дістав доступ на запис і скористався ним. У всіх трьох випадках ви знаєте коли, і це коли є всім, що потрібно на вході. Ви обираєте 14:31, і база повертається такою, якою стояла за хвилину до шкоди.
Грошей коштує решта того ранку. Відновлення опівнічної копії стирає ще й кожну реєстрацію, кожне замовлення й кожне повідомлення, які ваші користувачі створили після півночі, тож скасувати одну помилку означає пристати на другу, меншу втрату. З point-in-time recovery ранкова робота лишається на місці.
Поки ви в панелі й думаєте, що може піти не так, варто знати й те, що ваш застосунок уже показує сторонньому. Наше безкоштовне сканування читає ваш живий сайт іззовні й каже, що бачить. Це близько 20 секунд і жодного акаунта: просканувати застосунок.
Чого point-in-time recovery не дістає
Двох речей: помилки, яку ви помітили після того, як вікно проїхало, і акаунта, у якому лежить уся ця конструкція.
Помилка, помічена пізно. Вікно рухається разом із сьогоднішнім днем, тож вікно в сім днів це завжди останні сім днів і ніколи не стала тижнева рамка. Для видалення це щедро, бо видалення зазвичай дає про себе знати за хвилини. З тихими воно не допомагає взагалі: форма, яка з позаминулого вівторка зберігає хибне значення, колонка, що зникла в міграції, яку ніхто уважно не читав, поле, яке скрипт переписує вже місяць. Такі речі спливають, коли пише клієнт, а клієнт, який пише, рідко робить це протягом семи днів після причини.
Акаунт, у якому живе відновлення. Знімки й архівований журнал лежать усередині вашого проєкту Supabase, і саме це робить їх швидкими й зводить до одного кліку. Це також означає, що призупинений проєкт, протермінована картка чи вхід, який ви не можете відновити, забирають відновлення разом із тим, що воно мало рятувати. Це чесний обмін, а не вада, і саме тому копія всередині вашого акаунта це лише половина страхувальної сітки.
Чи покриває point-in-time recovery мої файли зі Storage?
Ні. Слова самого Supabase такі: резервні копії бази даних не містять обʼєктів, які ви зберігаєте через Storage API, а point-in-time recovery є функцією бази.
Кожен аватар, кожен завантажений PDF і кожне фото товару, які додали ваші користувачі, живуть у Storage, а це окремий сервіс. Ваша база тримає шлях до кожного файлу й нічого з його вмісту. Тож база, відмотана на вівторок, вказує на те, що лежить у ваших бакетах сьогодні, а файл, видалений у середу, лишається видаленим після бездоганно виконаного відновлення.
Хоч би що ви вирішили на цій сторінці, ваші файли потребують власної відповіді. Три способи зробити резервну копію бази Supabase розповідає, де їх лишає кожен шлях.
Чи може сторонній інструмент дати мені point-in-time recovery?
Ні, і це те твердження в темі, яке найбільше варто роздивитися спокійно, бо звучить як порівняння можливостей, а є різницею категорій.
Point-in-time recovery відтворює write-ahead log, а цей журнал є файлом на диску, де працює ваша база. Прочитати його означає стояти на тій машині. Кожен зовнішній інструмент резервного копіювання, наш зокрема, підключається до вашої бази так само, як ваш застосунок, питає в неї вміст і записує відповідь. На виході виходить логічний дамп: повна переносна копія всього, що було в базі на момент, коли дамп відпрацював.
Дамп це знову фотографія. Ви можете забрати його куди завгодно, завантажити в щойно створений проєкт на іншому акаунті й прочитати звичайними інструментами Postgres, які про Supabase ніколи не чули. Чого ви не зможете, так це зупинитися між двома дампами, бо між ними нічого не записувало.
Отже, чесна версія порівняння. Якщо вам треба потрапити на 14:31, купуйте доповнення Supabase; ніхто за межами платформи не в змозі вам це продати. Постачальник, який рекламує point-in-time recovery поверх зʼєднання, описує розклад, і одне питання розділяє ці дві речі: його відновлення потрапляє на хвилину, яку ви набрали, чи на останній раз, коли відпрацювала його копія?
Point-in-time recovery чи копія, яку тримаєте ви?
Запитайте себе, від якого лиха ви страхуєтеся, бо ці двоє відповідають на різні лиха.
| Point-in-time recovery | Копія, яку тримаєте ви | |
|---|---|---|
| Повертає на названу хвилину | Так | На момент, коли відпрацювала копія |
| Сягає далі за вікно | Ні | Настільки, наскільки ви їх зберігаєте |
| Переживає втрату акаунта | Ні | Так |
| Містить файли зі Storage | Ні | Лише якщо їй сказали їх узяти |
| Де живе | Усередині вашого проєкту | Там, де ви її покладете |
| Скільки коштує | Від $100 на місяць, плюс обчислення | Руками безкоштовно, або підписка |
Більшості застосунків зі справжніми клієнтами потрібні обидва, і свідомо вирішувати варто саме про порядок. Копія, яку тримаєте ви, переживає все, зокрема й акаунт, тож саме її налаштовують першою. Доповнення купують тоді, коли порахували, що втрачений ранок замовлень коштує дорожче за нього.
Що зробити цього тижня
Що робити
- Зʼясуйте, чи доповнення вже ввімкнене, у розділі Database, а далі Backups у вашій панелі Supabase. Цілком можливо платити за нього й не знати про це.
- Запишіть, скільки тиха помилка могла б пролежати у вашому застосунку непоміченою. Якщо це число більше за сім днів, ширше вікно купує вам менше, ніж здається.
- Влаштуйте копію бази, яка живе поза вашим акаунтом Supabase, у будь-який спосіб. Point-in-time recovery цієї роботи не робить і не намагається.
- Копіюйте файли зі Storage окремо, бо жодне відновлення бази на жодному плані їх не містить.
- Відновіть щось один раз у тимчасовий проєкт, щоб перше читання однієї з цих копій не випало посеред інциденту.
Де тут місце Reeve Care
Care це копія, яку тримаєте ви, налаштована за вас, із відновленням, яке ви натискаєте, а не збираєте.
- Копії йдуть за розкладом, який вам не треба памʼятати, кожні шість годин на вищих планах, а невдалий запуск надсилає вам лист замість мовчання.
- Кожна копія живе поза вашим акаунтом Supabase. Зашифрована, на сховищі, яке тримаємо ми, щоб призупинений проєкт чи втрачений вхід не забрали ваші копії з собою.
- Кожну копію перечитують, перш ніж вона зарахується. Дата у вашій панелі це остання копія, яка пройшла цю перевірку, і ніколи не остання спроба.
- Відновлення це кнопка, і перед стартом воно робить знімок поточного стану, тож навіть у відновлення є власне скасування.
- Файли, які завантажили ваші користувачі, теж копіюються, щойно ви підключите свої бакети Storage. Це другий ключ, який просять окремо, бо ключ, що його Supabase видає для Storage, уміє не лише читати, а й писати, і ми радше спитаємо, ніж складемо його в одне з тим, який писати не вміє.
Care і доповнення доповнюють одне одного, і саме так вони й оцінені. Care починається з $49 на місяць за один застосунок, проти $100 за доповнення, і чимало застосунків мали б мати перше, перш ніж думати про друге. Наші цифри це прайсові ціни, а сторінка цін іноді буває нижчою за цифру тут і ніколи вищою. Кожна цифра Supabase на цій сторінці процитована з їхніх власних сторінок, без переведення й без оцінок.
Як копію знімають, перевіряють і повертають, крок за кроком намальовано на сторінці про резервні копії Supabase.
Перш ніж закрити цю вкладку, порахуйте число, навколо якого крутиться все це рішення: скільки помилка могла б пролежати у вашому застосунку, доки хтось її помітить. Менше за сім днів, і доповнення купує вам справжню точність того дня, коли вона знадобиться. Більше, і ширше вікно не є правильним місцем для грошей, бо далі назад сягає власна копія. Десятихвилинний список безпеки охоплює резервні копії поряд з усім іншим, що варто перевірити в запущеному застосунку.
Поширені запитання
Скільки коштує point-in-time recovery у Supabase?
Supabase бере $100 на місяць за вікно відновлення в сім днів, понад ваш план Pro. Є другий кошт, який велика цифра лишає осторонь: доповнення вимагає щонайменше обчислювального інстанса Small, а це близько $15 на місяць, тоді як проєкт на Pro за замовчуванням працює на меншому інстансі Micro. Прочитайте обидві цифри на їхній сторінці цін того дня, коли вирішуватимете, бо цифри належать їм і можуть змінитися.
Чи входить point-in-time recovery у план Supabase Pro?
Ні. План Pro включає щоденні копії, які сягають семи днів назад, а point-in-time recovery це платне доповнення понад них. Supabase пропонує його на планах Pro, Team та Enterprise. На безкоштовному плані автоматичних копій немає взагалі, тож там немає до чого це додавати.
Чи може сторонній інструмент резервного копіювання дати мені point-in-time recovery?
Ні, і інструмент, який натякає на протилежне, описує щось інше. Point-in-time recovery відтворює write-ahead log, файл на диску, де працює ваша база, тому прочитати його здатна лише платформа, яка цей диск тримає. Кожен зовнішній інструмент підключається так само, як ваш застосунок, і питає в бази її вміст, а на виході має переносну копію одного моменту. Ця копія справді корисна, і вона є іншим предметом.
Чи копіює point-in-time recovery мої файли Supabase Storage?
Ні. Supabase прямо пише, що резервні копії бази даних не містять обʼєктів, які ви зберігаєте через Storage API, а point-in-time recovery є функцією бази. Кожен аватар, PDF і зображення, які завантажили ваші користувачі, живуть в окремому сервісі, і база, відмотана на вівторок, лишає ці файли рівно такими, якими вони є сьогодні. Копіювати їх це окрема робота, хоч би який шлях ви обрали.
Наскільки далеко назад сягає point-in-time recovery у Supabase?
Рівно настільки, наскільки сягає вікно, за яке ви платите, і ні на день далі. Supabase продає зберігання трьома розмірами: сім днів, чотирнадцять днів і двадцять вісім днів, за $0.137, $0.274 і $0.55 на годину відповідно. Вікно рухається разом із сьогоднішнім днем, тож кожна прожита година виштовхує найстарішу годину з іншого кінця. Помилка пʼятитижневої давнини лежить поза всіма трьома.