Manual restoring after server reset

Dear forum,

for a strange reason, today no login was possible anymore (no updates on virtual server in Ubuntu, Docker, SeaTable or others). I copied /opt directory, resetted the server, re-installed SeaTable in version 4.4.9 (former was 4.3) and tried to set up the data. So far no success.

Which files/directories need to be copied back to restore the

  • bases,
  • web forms,
  • plugins and
  • apps?

In /opt/seatable-server/seatable/db-data/f5a… directory, the .vlog files have different numbers then before. If this directory is right for bases, how can I re-connect the files to the installation?

Thanks for now!

Please consult our manual: Backup and Recovery - SeaTable Admin Manual

Thanks, that is what I was looking for. Unfortunately, I could not recover my bases, although I copied the whole directories storage-data, seafile-data and seahub-data, then the mariadb directories as mentioned. After login as admin, there are no bases, web forms or automations recorded although copied.

I tried filesystem check, but the command does not work anymore, and I could not find the mentioned script seaf-fsck.sh elsewhere to run. Does the script still exist?

Is there anything else preventing the system to recognize FTP-copied directories and files?

What do you find in the log files?

What did you mean by that? Did you re-imported the dump files?

In general:
If you don’t see any base, it sounds like you didn’t restore the mariadb database. Please read the part of the manual of the architecture.

  • The mariadb is responsible for storing the users, bases and groups
  • The content of the bases is stored in the filesystem

I did download all the files by FTP. Then I re-installed SeaTable and after, I copied the directories as mentioned on the Backup and Recovery page via FTP back in the file structure, overwriting the generic files. As it turns out, simple re-copying of the whole directories was not enough.

Now I tried dumping the backup databases, but they cannot be dumped/restored due to invalid ID tokens. But the database passwords are unchanged, I don’t know about other tokens.

Any chance I can at least save the bases and their automations?

So in summary: you didn’t dump the mariadb database, instead, you just copied the folders, right?

1 Like

:+1:t6: Exactly, that’s how I could save the (raw) data.

I am sorry, but now you have a problem. I have no idea, if it is possible to restore your database.

Important: your data inside the base is not lost. How many bases did you had in your system?

:face_with_peeking_eye:

There were four bases and three to four templates. The main work was in the automation and webforms.

Well… So the situation is bad but you can try to limit the damage.

You can try to recover mariadb from the files in the folder. Luckily, I was never in the situation that I didn’t have any dumps. But you can try it.

Another thing that you can do is, that you manually create new .dtable files and import them to your system. This would recover your data that was stored in the base. dtable files are basically zip files that contain json files. If you create zip files with the right json files in it and rename it to.dtable, you can import them as new bases to your system.

Here is what you can do:
Go to the folder /opt/seatable-server/seatable/storage-data/. There you will find multiple folders like:

  • 06/06092fc1-1c50-46b5-be46-bc421055f9cf
  • 5e/5e3bdce8-355b-4e3a-bc50-338c446b9714

Inside these folders, you find a file called current.

  • Copy this current file to your computer
  • Rename the file to content.json
  • Create a zip file with only the content content.json
  • Change the file ending from .zip to .dtable

Now you can import this to your SeaTable Server.

Unfortunately, this will not include webforms, automations or universal apps.

Everything is restored, all data recovered!

In case someone will ever have similiar issues: I used

  • version 4.3.10 (so not latest) with
  • 3 users and just
  • 5 bases, no big data,
  • standard plugins from market.seatable.io installed.

But the bases had automations, e-mail automations (smtp as „integrations from third parties“ set up), general apps and some webforms.

What happened
Literally without any changes, SeaTable was this week just not accessible anymore (so nobody was logged in = assumingly no data cached, SeaTable being the only software run on this virtual Linux/Ubuntu server). I copied all directories as mentioned at „Backup and Recovery“ from SeaTable without dumping the MariaDB databases before.

Error
I deleted the whole server and set up a new virtual server image. Then, I re-installed SeaTable and tried to copy all directories back. System did not run, no login page accessible.

Error reason
Every user has a single and random ID #, even the same user data at a new installation results in a different ID #. Bases and data were there, but could not be connected to any user (old user ID did not exist in the new installation, new user ID not in old bases or metadata). So they were not shown in system admin dashboard.

Solution
Some manual work!

  1. Installing the system (the same old version!) again
  2. Login, create all former users manually again
  3. Replace these users’ former user ID # with the new one from 2. in seafile_db and dtable_db
  4. Delete and re-install plugins by changing repos ID.
  5. Re-create „integrations from third parties“, here the smtp for e-mail automations.

About 1.: As mentioned in the Admin handbook for Installation, make sure to install your former version.

About 2.: Login as admin, create users as before in system admin, copy their user id #, i.e.from user name by clicking on each user.

About 3.: If you can read/extract the former user ID # from ccnet_db, e.g. in table UserRole, perfect. If not, I used the free version of „Stellar Repair“, see at “Repair corrupt MariaDB Database” (although the database was actually not corrupted and could be dumped). The software is easy to use and depicts all data from each table of your databases in a nice structure, although export is not possible in the free version. By selecting database ccnet_db, you can find the old user ID #.

Then, I dumped the two „content databases“ dtable_db and seafile_db from /opt/mariadb, i.e. the subdirectories dtable_db and seafile_db which comprised mainly of .frm and .ibd files. This is easy as described in „Backup & Recovery“ with

docker exec -it mariadb mysqldump -u root -p${SEATABLE_MYSQL_ROOT_PASSWORD} --opt seafile_db > ./seafile_db.sql
docker exec -it mariadb mysqldump -u root -p${SEATABLE_MYSQL_ROOT_PASSWORD} --opt dtable_db > ./dtable_db.sql

The result are two .sql files, which can be processed like simple text files e.g. in Notepad++. There, you replace your old user ID # with the new ones in both seafile_db.sql and dtable_db.sql.

Afterwards, docker down, restore seafile_db and dtable_db in their directories at your re-installed version. Leave ccnet_db as it is – your former users are already back. Copy the old directories storage-data, seafile-data and seahub-data back as described in “Backup and Recovery” to replace the new, generic ones. Your bases are back!
==> In ccnet_db, the users are recorded again (with new ID #). Through dtable_db and seafile_db, you connected your users’ new ID # with the old bases (entries like who created them, who can see/edit them), the same for old apps and automations!
Docker up to see whether the system works and bases are back.

About 4.: Plugins were depicted in system admin but did not work (error when trying to open, update or use). For this, delete the PLUGINS_REPO_ID as described in “Backup & Recovery” → “Special cases and advanced topics”. Again docker down and up again, then simply re-install any plugin from marketplace (or elsewhere).

About 5.: What I did not properly restore were the „integrations from third parties“, in my case just e-mail details to send e-mail automations. I did this manually in each base, luckily the e-mail automations are not corrupted or deleted because of a missing sender.

Thank you very much for your support and night shifts, SeaTable team! And for creating this robust system!

2 Likes

Thanks for Your feedback and congratulations, that you could recover Everything.

It would love it, if you can help us spread the word and leave a review at producthunt, capterra, g2 or anywhere else. :star_struck:

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.