From 8f0d686db667862a43798f30742d1012ffcbf323 Mon Sep 17 00:00:00 2001 From: danielclow <106956386+danielclow@users.noreply.github.com> Date: Fri, 7 Feb 2025 08:46:19 +0800 Subject: [PATCH] docs: update backup document --- docs/en/08-operation/09-backup.md | 98 ++++++++++++++++++++++-------- docs/en/assets/data-backup-01.png | Bin 0 -> 57265 bytes 2 files changed, 71 insertions(+), 27 deletions(-) create mode 100644 docs/en/assets/data-backup-01.png diff --git a/docs/en/08-operation/09-backup.md b/docs/en/08-operation/09-backup.md index 6457719d88..ee0a56c497 100644 --- a/docs/en/08-operation/09-backup.md +++ b/docs/en/08-operation/09-backup.md @@ -1,14 +1,19 @@ --- title: Data Backup and Restoration -slug: /operations-and-maintenance/back-up-and-restore-data +slug: /operations-and-maintenance/data-backup-and-restoration --- -To prevent data loss and accidental deletions, TDengine provides comprehensive features such as data backup, restoration, fault tolerance, and real-time synchronization of remote data to ensure the security of data storage. This section briefly explains the backup and restoration functions. +import Image from '@theme/IdealImage'; +import imgBackup from '../assets/data-backup-01.png'; + +You can back up the data in your TDengine cluster and restore it in the event that data is lost or damaged. ## Data Backup and Restoration Using taosdump taosdump is an open-source tool that supports backing up data from a running TDengine cluster and restoring the backed-up data to the same or another running TDengine cluster. taosdump can back up the database as a logical data unit or back up data records within a specified time period in the database. When using taosdump, you can specify the directory path for data backup. If no directory path is specified, taosdump will default to backing up the data in the current directory. +### Back Up Data with taosdump + Below is an example of using taosdump to perform data backup. ```shell @@ -19,6 +24,8 @@ After executing the above command, taosdump will connect to the TDengine cluster When using taosdump, if the specified storage path already contains data files, taosdump will prompt the user and exit immediately to avoid data overwriting. This means the same storage path can only be used for one backup. If you see related prompts, please operate carefully to avoid accidental data loss. +### Restore Data with taosdump + To restore data files from a specified local file path to a running TDengine cluster, you can execute the taosdump command by specifying command-line parameters and the data file path. Below is an example code for taosdump performing data restoration. ```shell @@ -27,25 +34,62 @@ taosdump -i /file/path -h localhost -P 6030 After executing the above command, taosdump will connect to the TDengine cluster at localhost:6030 and restore the data files from /file/path to the TDengine cluster. -## Data Backup and Restoration Based on TDengine Enterprise +## Data Backup and Restoration in TDengine Enterprise -TDengine Enterprise provides an efficient incremental backup feature, with the following process. +TDengine Enterprise implements incremental backup and recovery of data by using data subscription. The backup and recovery functions of TDengine Enterprise include the following concepts: -Step 1, access the taosExplorer service through a browser, usually at the port 6060 of the IP address where the TDengine cluster is located, such as `http://localhost:6060`. +1. Incremental data backup: Based on TDengine's data subscription function, all data changes of **the backup object** (including: addition, modification, deletion, metadata change, etc.) are recorded to generate a backup file. +2. Data recovery: Use the backup file generated by incremental data backup to restore **the backup object** to a specified point in time. +3. Backup object: The object that the user backs up can be a **database** or a **supertable**. +4. Backup plan: The user creates a periodic backup task for the backup object. The backup plan starts at a specified time point and periodically executes the backup task at intervals of **the backup cycle. Each backup task generates a** **backup point** . +5. Backup point: Each time a backup task is executed, a set of backup files is generated. They correspond to a time point, called **a backup point** . The first backup point is called **the initial backup point** . +6. Restore task: The user selects a backup point in the backup plan and creates a restore task. The restore task starts from **the initial backup point** and plays back the data changes in **the backup file** one by one until the specified backup point ends. -Step 2, in the "System Management - Backup" page of the taosExplorer service, add a new data backup task, fill in the database name and backup storage file path in the task configuration information, and start the data backup after completing the task creation. Three parameters can be configured on the data backup configuration page: +### Incremental Backup Example -- Backup cycle: Required, configure the time interval for each data backup execution, which can be selected from a dropdown menu to execute once every day, every 7 days, or every 30 days. After configuration, a data backup task will be initiated at 0:00 of the corresponding backup cycle; -- Database: Required, configure the name of the database to be backed up (the database's wal_retention_period parameter must be greater than 0); -- Directory: Required, configure the path in the running environment of taosX where the data will be backed up, such as `/root/data_backup`; +
+Incremental backup process +
Figure 1. Incremental backup process
+
-Step 3, after the data backup task is completed, find the created data backup task in the list of created tasks on the same page, and directly perform one-click restoration to restore the data to TDengine. +1. The user creates a backup plan to execute the backup task every 1 day starting from 2024-08-27 00:00:00 . +2. The first backup task was executed at 2024-08-27 00:00:00, generating an initial backup point . +3. After that, the backup task is executed every 1 day, and multiple backup points are generated . +4. Users can select a backup point and create a restore task . +5. The restore task starts from the initial backup point, applies the backup points one by one, and restores to the specified backup point. -Compared to taosdump, if the same data is backed up multiple times in the specified storage path, since TDengine Enterprise not only has high backup efficiency but also implements incremental processing, each backup task will be completed quickly. As taosdump always performs full backups, TDengine Enterprise can significantly reduce system overhead in scenarios with large data volumes and is more convenient. +### Back Up Data in TDengine Enterprise -**Common Error Troubleshooting** +1. In a web browser, open the taosExplorer interface for TDengine. This interface is located on port 6060 on the hostname or IP address running TDengine. +2. In the main menu on the left, click **Management** and open the **Backup** tab. +3. Under **Backup Plan**, click **Create New Backup** to define your backup plan. + 1. **Database:** Select the database that you want to backup. + 2. **Super Table:** (Optional) Select the supertable that you want to backup. If you do not select a supertable, all data in the database is backed up. + 3. **Next execution time:** Enter the date and time when you want to perform the initial backup for this backup plan. If you specify a date and time in the past, the initial backup is performed immediately. + 4. **Backup Cycle:** Specify how often you want to perform incremental backups. The value of this field must be less than the value of `WAL_RETENTION_PERIOD` for the specified database. + 5. **Retry times:** Enter how many times you want to retry a backup task that has failed, provided that the specific failure might be resolved by retrying. + 6. **Retry interval:** Enter the delay in seconds between retry attempts. + 7. **Directory:** Enter the full path of the directory in which you want to store backup files. + 8. **Backup file max size:** Enter the maximum size of a single backup file. If the total size of your backup exceeds this number, the backup is split into multiple files. + 9. **Compression level:** Select **fastest** for the fastest performance but lowest compression ratio, **best** for the highest compression ratio but slowest performance, or **balanced** for a combination of performance and compression. -1. If the task fails to start and reports the following error: +4. Click **Confirm** to create the backup plan. + +You can view your backup plans and modify, clone, or delete them using the buttons in the **Operation** columns. Click **Refresh** to update the status of your plans. Note that you must stop a backup plan before you can delete it. You can also click **View** in the **Backup File** column to view the backup record points and files created by each plan. + +### Restore Data in TDengine Enterprise + +1. Locate the backup plan containing data that you want to restore and click **View** in the **Backup File** column. +2. Determine the backup record point to which you want to restore and click the Restore icon in the **Operation** column. +3. Select the backup file timestamp and target database and click **Confirm**. + + + +## Troubleshooting + +### Port Access Exception + +A port access exception is indicated by the following error: ```text Error: tmq to td task exec error @@ -54,9 +98,11 @@ Caused by: [0x000B] Unable to establish connection ``` -The cause is an abnormal connection to the data source port, check whether the data source FQDN is connected and whether port 6030 is accessible. +If you encounter this error, check whether the data source FQDN is connected and whether port 6030 is listening and accessible. -2. If using a WebSocket connection, the task fails to start and reports the following error: +### Connection Issues + +A connection issue is indicated by the task failing to start and reporting the following error: ```text Error: tmq to td task exec error @@ -67,15 +113,16 @@ Caused by: 2: failed to lookup address information: Temporary failure in name resolution ``` -When using a WebSocket connection, you may encounter various types of errors, which can be seen after "Caused by". Here are some possible errors: +The following are some possible errors for WebSocket connections: +- "Temporary failure in name resolution": DNS resolution error. Check whether the specified IP address or FQDN can be accessed normally. +- "IO error: Connection refused (os error 111)": Port access failed. Check whether the port is configured correctly and is enabled and accessible. +- "IO error: received corrupt message": Message parsing failed. This may be because SSL was enabled using the WSS method, but the source port is not supported. +- "HTTP error: *": Confirm that you are connecting to the correct taosAdapter port and that your LSB/Nginx/Proxy has been configured correctly. +- "WebSocket protocol error: Handshake not finished": WebSocket connection error. This is typically caused by an incorrectly configured port. -- "Temporary failure in name resolution": DNS resolution error, check if the IP or FQDN can be accessed normally. -- "IO error: Connection refused (os error 111)": Port access failure, check if the port is configured correctly or if it is open and accessible. -- "IO error: received corrupt message": Message parsing failed, possibly because SSL was enabled using wss, but the source port does not support it. -- "HTTP error: *": Possibly connected to the wrong taosAdapter port or incorrect LSB/Nginx/Proxy configuration. -- "WebSocket protocol error: Handshake not finished": WebSocket connection error, usually because the configured port is incorrect. +### WAL Configuration -3. If the task fails to start and reports the following error: +A WAL configuration issue is indicated by the task failing to start and reporting the following error: ```text Error: tmq to td task exec error @@ -84,11 +131,8 @@ Caused by: [0x038C] WAL retention period is zero ``` -This is due to incorrect WAL configuration in the source database, preventing subscription. - -Solution: -Modify the data WAL configuration: +To resolve this error, modify the WAL retention period for the affected database: ```sql -alter database test wal_retention_period 3600; +ALTER DATABASE test WAL_RETENTION_PERIOD 3600; ``` diff --git a/docs/en/assets/data-backup-01.png b/docs/en/assets/data-backup-01.png new file mode 100644 index 0000000000000000000000000000000000000000..b05c571f6cee6455406d40c5d3f71539646b27b0 GIT binary patch literal 57265 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 NjcN)hta#Ditbiop+wm9hRknYMaWUfr4 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 literal 0 HcmV?d00001