Closed adofsauron closed 1 year ago
If the binary data is not compatible after the upgrade, the error message needs to be more explicit than just a prompt (Got error 1 from storage engine).
I don't think it is necessary to be compatible with the data of the old version for the following reasons:
Compatibility with the data of the old version requires the addition of many version compatible codes. These codes will not only affect the system performance, but also will be useless in the later versions that run normally, which will cause a lot of performance waste.
I think we can give an important explanation of this problem when releasing the version, and remind users to backup data when upgrading the version.
we should have tools to support seamless upgrade mannually, if we cannot do these automatically.
Yes, we can refer to the Redis tool for reading and verifying binary data files
[root@zsl redis]# redis-check-rdb ./dump.rdb
[offset 0] Checking RDB file ./dump.rdb
[offset 27] AUX FIELD redis-ver = '3.2.12'
[offset 41] AUX FIELD redis-bits = '64'
[offset 53] AUX FIELD ctime = '1663566107'
[offset 68] AUX FIELD used-mem = '812464'
[offset 70] Selecting DB ID 0
[offset 89] Checksum OK
[offset 89] \o/ RDB looks OK! \o/
[info] 1 keys read
[info] 0 expires
[info] 0 already expired
Upgrade method | Applicable scenarios | Time required |
---|---|---|
Logical backup and restore (mysqldump) | When the data volume is small, this method usually does not failIt is used more when upgrading across major versions, for example, upgrading directly from MySQL 5.6 (or earlier) to version 8.0 Upgrade between different MySQL branches | Depends on the size of the database |
mysql_upgrade tool | Minor version upgrade between the same large versions. There is a large amount of data, which can be used when upgrading between two versions after testing in advance. | A few minutes |
Upgrade method | Applicable scenarios | Time required |
---|---|---|
Logical backup and restore | Small and medium-sized databases, such as less than 100 GB Support cross platform data migration | Depends on the size of the database |
pg_upgrade tool | Medium and large databases, such as less than 100 GB Support cross platform data migration | A few minutes |
Logical replication | Medium and large databases, such as less than 100 GB Support cross platform data migration | A few minutes |
Upgrade method | Applicable scenarios | Time required |
---|---|---|
Logical backup and restore (mongodump/mongorestore) | The advantage of this scheme is that it can be migrated and upgraded across multiple versions. The disadvantage is that the data migration speed is slow. | Depends on the size of the database |
Physical upgrade | Small version upgrades between the same large versions cannot be performed across multiple large versions. There is a large amount of data, which can be used when upgrading between two versions after testing in advance.. | A few minutes |
The upgrade scheme of SQL Server, Oracle and other data is similar to the above three.
Advantages: high universality, simple operation, cross system and cross version upgrades Disadvantages: The time required for a large data volume scenario is high. Applicable scenario: It is suitable for upgrading small and medium-sized databases. Currently supported by StoneDB.
Use the original mysql_upgrade tool is used to upgrade in place, but the data about the Tianmu engine needs to be provided with the (tianmu_upgrade) tool to upgrade in situ. Not yet supported, to be developed...
When the system is multi node, it can be upgraded through physical replication, which needs to support cross version data replication. Not yet supported, to be developed...
initially using the RockSDB data format as binary data files, and later writing their own TSM engine to reformat binary data files, they have written work to reformat binary files
https://docs.influxdata.com/influxdb/v1.8/concepts/storage_engine/
Describe the problem
After upgrading to the stonedb5.7.101 test version, keep the old data and execute the query
An error occurred when viewing the log
Expected behavior
No response
How To Reproduce
No response
Environment
No response
Are you interested in submitting a PR to solve the problem?