Tested the backup/restore scripts work fine for out of box 3.1.0. I am guessing you are still using your old php-gacl sql database. Ensure the following three files are reverted to the original 3.1.0 versions (after copy them, do not modify them in any way).
I have only two files openemr.tar.gz and openemr.sql.gz. The restore doesn’t work.
Is it really worthwhile to have gacl within the openemr or a separate phpgacl is good enough?
To ensure future compatibility, it is worthwhile to use the embedded php-gacl. Your backup is working fine. The issue is your restore, and I am guessing that your not using the restore script included with 3.1.0 version ( openemr/contrib/util/restore ); this was updated in 3.0.1/3.1.0 to be compatible with embedded php-gacl.
If still problems, give the details of what options you choose during the restore script.
Bingo! Having just solved the problem using the restore script that shipped with 3.1.0 I logged on to find your post pointing to the same solution! I had been using the restore script from the first release. Surprisingly it worked very well with 3.0.1.
A big thank you for your help