A data redistribution method in a database cluster comprising at least one first node, comprising: after a second node is newly added to the database cluster, starting a data redistribution process, wherein an original table is stored on the at least one first node, the data redistribution process is used to redistribute the original table to the at least one first node and the second node, the original table comprises a plurality of tuples, and a transaction identifier of each tuple is an identifier of a transaction that imports the tuple; wherein the data redistribution process comprises: starting a first transaction, wherein the first transaction is used to create a temporary table on the at least one first node and the second node and associate an import operation for the original table with an import operation for the temporary table, and a new tuple imported in the redistribution process is inserted into both the original table and the temporary table; starting a second transaction, wherein the second transaction is used to select an old tuple from the original table based on a transaction identifier of the first transaction, and redistribute the selected old tuple to the temporary table, and the transaction identifier of the first transaction is greater than a transaction identifier of the old tuple in the original table; and after the second transaction ends, exchanging metadata of the original table and metadata of the temporary table. after a second node is newly added to the database cluster, starting a data redistribution process, wherein an original table is stored on the at least one first node, the data redistribution process is used to redistribute the original table to the at least one first node and the second node, the original table comprises a plurality of tuples, and a transaction identifier of each tuple is an identifier of a transaction that imports the tuple; wherein the data redistribution process comprises: starting a first transaction, wherein the first transaction is used to create a temporary table on the at least one first node and the second node and associate an import operation for the original table with an import operation for the temporary table, and a new tuple imported in the redistribution process is inserted into both the original table and the temporary table; starting a second transaction, wherein the second transaction is used to select an old tuple from the original table based on a transaction identifier of the first transaction, and redistribute the selected old tuple to the temporary table, and the transaction identifier of the first transaction is greater than a transaction identifier of the old tuple in the original table; and after the second transaction ends, exchanging metadata of the original table and metadata of the temporary table. starting a first transaction, wherein the first transaction is used to create a temporary table on the at least one first node and the second node and associate an import operation for the original table with an import operation for the temporary table, and a new tuple imported in the redistribution process is inserted into both the original table and the temporary table; starting a second transaction, wherein the second transaction is used to select an old tuple from the original table based on a transaction identifier of the first transaction, and redistribute the selected old tuple to the temporary table, and the transaction identifier of the first transaction is greater than a transaction identifier of the old tuple in the original table; and after the second transaction ends, exchanging metadata of the original table and metadata of the temporary table. <EOS>