WL#10583: InnoDB: Stop using rollback segments in the system tablespace

Affects: Server-8.0   —   Status: Complete

We need to stop using rollback segments in the system tablespace.

This means changing the minimum value for innodb_undo_tablespaces to 2 and
modifying any code that deals with rollback segments in the system tablespace so
that it only reads them in an existing system tablespace but does not create any
there.
FR1: Minimum value for innodb_undo_tablespace is raised from 0 to 2.

FR1A: If a value < 2 is used at startup, it is adjusted to 2 and a warning like
the following is issued.
   [Warning] option 'innodb-undo-tablespaces': unsigned value 0 adjusted to 2

FR1B: If a value < 2 is used at runtime, it is adjusted to 2 and a warning like
the following is issued.

mysql> set global innodb_undo_tablespaces=1;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> show warnings;
+---------+------+--------------------------------------------------------+
| Level   | Code | Message                                                |
+---------+------+--------------------------------------------------------+
| Warning | 1292 | Truncated incorrect innodb_undo_tablespaces value: '1' |
+---------+------+--------------------------------------------------------+
1 row in set (0.00 sec)

mysql> show variables like 'innodb_undo_tablespaces';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| innodb_undo_tablespaces | 2     |
+-------------------------+-------+
1 row in set (0.01 sec)

FR2: Upgrading from a 5.7 database where innodb-undo-tablespaces=0 was used
still works.

1) Change the minimum value for innodb_undo_tablespaces to 2.

2) Delete or modify any code that responds to innodb_undo_tablespaces=0.

3) Fix all testcases affected.