Support

Site Restoration

#28710 Wordpress restoration issue

Posted in ‘Site restoration’
This is a public ticket

Everybody will be able to see its contents. Do not include usernames, passwords or any other sensitive information.

Environment Information

PHP version
n/a
CMS Type
Other
CMS Version
n/a
Backup Tool Version
n/a
Kickstart version
n/a

Latest post by assitecno on Monday, 13 November 2017 08:11 CST

assitecno
Hello,
Sorry for category mismatch but I didn't know how to ask you this. We have acquired a WP site of a new client and we have to manage updates and backups. I was trying a backup and restoration via Akeeba for WP Core before subscribing the pro version. I'm trying to restore it in my XAMPP virtual server under Windows. While restoring database I get this error:

ErrNo #1118
The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. Increase the redo log size using innodb_log_file_size.

I mean that there is one or more rows with too much text (in fact this site has often pages with many words inside)
Is there a solution?

Thank you

dlb
The reason you had trouble with the category is that your license does not include Akeeba Backup for Wordpress Pro, so you were unable to post the question there. We will make a one time exception in this case.

The answer is there in the error message, you need to increase the innodb_log_file_size setting. I found it on my Linux system in /etc/my.cnf. On a Windows system it would probably be in a my.ini file, but I don't know where. A Google search came up with this https://dev.mysql.com/doc/refman/5.6/en/option-files.html which has some possibilities.


Dale L. Brackin
Support Specialist


us.gifEnglish: native


Please keep in mind my timezone and cultural differences when reading my replies. Thank you!


????
My time zone is EST (UTC -5) (click here to see my current time in Philadelphia, PA)

assitecno
Yes I know that I didn't post cause of my subscription. Like I said at this moment this is our first wordpress site we have to manage and before buying Akeeba WP license I wanna be sure this works.
I'm going to try your suggested solution but I'd want to know if this problem could give me some troubles. For example: will I be able to recover the site on a host? I don't think they will accept to change the innodb_log_file_size setting in their servers.

I need to schedule backups, but I wanna be sure I can do a disaster recovery.
Thank you

dlb
I can't predict it, but it is possible. The default XAMPP installation is pretty stingy with its settings. But it is possible to get a single database field that it too large to be restored without adjusting the MySQL settings. It is rare, but it can happen.


Dale L. Brackin
Support Specialist


us.gifEnglish: native


Please keep in mind my timezone and cultural differences when reading my replies. Thank you!


????
My time zone is EST (UTC -5) (click here to see my current time in Philadelphia, PA)

assitecno
ok, so defined that it's a mysql configuration problem I can try to restore in my VM but pointing to a hosted mysql.
In the meantime it's about 8 hours that restore on my VM is working yet. It's replacing data, now it was stuck on "This may take a few minutes. You can see the progress below." And nothing were reported on the status bar. So I just clicked on "Next" and it has restarted replacing.
Ok, I try to understand what's happening. Many thanks for now!

assitecno
Restoration on VM was good at the end. The only problem was that akeeba kickstart didn't replace correctly the URLs in the database. I had to complete this procedure with Interconnect/it. It was stuck on this situation:


Now i'm restoring the WP site in a real host. Like you supposed before I got no errors. Here too, the only problem is that just reported.

I'm going to interrupt and finish the replacement with interconnect/it and I'm sure it will work at the end, so I'm going to subscribe the Akeeba Wordpress Pro. But I want you know there is this problem with kickstart that maybe it's due to a very populated site like it is (thousand of posts inside).

In the second column you can see rows that still need to be updated (so kickstart didn't):


Thanks for support

nicholas
Akeeba Staff
Manager
Kickstart is the script which extract the backup archive. You are well past that step since you are currently using ANGIE, the restoration script which is included in the backup archive during the backup process. So, no there is no problem with Kickstart.

As for ANGIE itself, no, there is no problem with ANGIE. There might be, however, a problem with the actual host where you are restoring the site to. Replacing data in the database is a process which requires a lot of resources. After all, for each selected table we have to go through all its record. For each record we have to pull all of its fields. We then have to see if they contain serialized data, parse it, make replacements and encode it back to serialized data. If it's simple text data we do a much faster simple text replacement. Then we have to write everything back.

The thing is that all other WordPress data replacement solutions do NOT parse serialized data. They rely on very precarious and outright wrong regular expressions which work with about 80% of serialized data. On some sites they just destroy your data. ANGIE does not suffer from that problem. However, parsing (tokenizing) serialized data is inherently SLOW. It takes about 10 seconds per Megabyte. This means that you can very easily get a timeout error if you try replacing everything at once.

We deal with that the same way we do with the backup process itself: split it in chunks. However, unlike the backup process, we cannot offer a great deal of control over the timing settings or let you skip over anything. Therefore you may end up in a situation that you're making too many requests per unit of time that the server temporarily blacklists your IP. Or you may simply end up using too much CPU or memory because, well, replacing ALL data in the ENTIRE database requires a lot of work and memory.

So, technically, it's your server that has the problem. You can sidestep the issue by temporarily disabling server-side protections against denial of service attacks such as mod_security2 or mod_evasive on Apache. This helps with the auto-blacklisting of IPs. But if the problem is CPU usage there's not much you can do.

Why do other data replacement solutions "work"? Because they don't really work :) Instead of parsing serialized data they just use a one-size-fits-all regular expression to try and modify data. If the size of the data you are replacing has a different character count this will break nested objects. This breaks a lot of third party plugins' data in the database. But since the regular expressions are faster than full tokenization of serialized data they do sidestep most of the reasons leading to the server interrupting the data replacement so your site mostly works. I don't really want us to make this kind of half-baked, half-working solution.

Also, you might wonder why do our Joomla!, Drupal etc restoration scripts work much better than the WordPress one? The reason is simple: no other CMS is written by inexperienced developers who use a broken and completely unfit for purpose data format (serialized data) as WordPress. Therefore no other CMS needs a resource-intensive operation to move it to a different domain.

Also note that what I said about serialized data is not my arbitrary opinion. Serialized data has a very scary and troubling history of security issues which, two years ago, affected ALL CMS. The only CMS that did exactly nothing to address this issue was, guess what, WordPress :( I'm saying that as the person who worked around the impact of that PHP security issue in Joomla! itself back in Christmas 2015. Also note that the developers of PHP itself have announced that they won't fix any more security issues in serialize. That's pretty much the biggest reason why I moved my blog back to Joomla! in 2015: I saw the gaping holes and the complete disregard to security in WordPress so I decided to not use it for any of my own sites. As you understand, writing security software comes with having a rather big bullseye painted on my sites. I can't risk it ;)

But I digress. The very short answer to your question is that yes, there is a correlation between the size of the site's database and the likelihood of data replacement failing. I would recommend NOT selecting all tables of the site in the Replace Data page. Select a subset of the tables, ideally only the ones which contain serialized data. For non-serialized data, e.g. the links in third party content items, images in a web shop etc you can always and safely use third party scripts. Somewhere in my mile long to-do list I have an item for writing such a script which will be released under the Akeeba brand. Other things have taken priority for now.

If you feel the need for clarifications, feel free to ask me :)

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

assitecno
Thank you for the exaustive answer. I'm not a programmer, but my instinct always felt that wordpress is not reliable like others and now I know more than before. For our clients we always suggest Joomla! for their websites, I know it's probably more complex but much more reliable, especially for multilanguage ones.
Sorry if I have confused kickstart with Angie. I have supposed there could be a problem because during the DB replacement the system goes stuck, like attached before, both in my VM and in the webhost. Like you can see no rows are reported in the progress bar while at the beginning of the process I can read all the rows that hand by hand are worked. Also when it went stuck on my VM the CPU was working at 0% - 1% so I suppose it was idle. In the webhost the replacement has been much faster before going stuck and I read it has elaborated about 132000 rows in not even 10 minutes, so after 30 minutes of nothing being reported I assumed it was not working anymore.
These are the reasons why I thought there could be a restore problem with ANGIE. Anyway with ANGIE first and Interconnect after it seems that site has been restored without problems (IT SEEEEEMS) so I'm going to subscribe Akeeba WP Pro, hoping to not assume other clients with WP sites.
Thank you

nicholas
Akeeba Staff
Manager
You're welcome :)

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

assitecno
Hi.
Just to let you know.
I was trying a last attempt. The restore started about at 10.30 am; in a few minutes all the rows have been updated as I could read in the "replacementsProgressText". After that the text became blank and the only things that are still alive are the four squares in the bottom. Now at 3.00 pm nothing's changed. If I click on next it restarts with replacement.
The database is about 216mb.
After reading you can close the ticket.

Thank you.

Support Information

Working hours: We are open Monday to Friday, 9am to 7pm Cyprus timezone (EET / EEST). Support is provided by the same developers writing the software, all of which live in Europe. You can still file tickets outside of our working hours, but we cannot respond to them until we're back at the office.

Support policy: We would like to kindly inform you that when using our support you have already agreed to the Support Policy which is part of our Terms of Service. Thank you for your understanding and for helping us help you!