@@ -104,3 +104,128 @@ show field keys from cpu
104
104
5 . 双击打开` influx.exe ` 文件, 输入 ` SHOW DATABASES ` ,如果报错说明身份认证功能已打开
105
105
6 . 创建admin管理员用户` CREATE USER influxdb WITH PASSWORD 'influxdb' WITH ALL PRIVILEGES `
106
106
7 . 验证账户是否创建成功,输入` auth ` 后按回车,根据提示输入用户名和密码。登录后输入` SHOW DATABASES ` ,如有输出数据库名称即为安装成功
107
+
108
+ ## 3. 备份和还原
109
+ 为了防止因为操作错误或机器故障导致数据丢失,InfluxDB企业版提供了两个工具集:备份和还原
110
+ 备份工具集;导出和导入数据工具集。这两个工具集都可以用于数据备份和还原,但侧重点又有所不
111
+ 同。
112
+ - 备份和还原备份工具集:适用于大多数场景,是通用型工具。
113
+ - 导出和导入数据工具集:针对海量数据集(100G以上)场景补充设计的备份工具。
114
+
115
+ 上述两个工具集可用于以下场景:
116
+ - 在意外故障导致数据损坏后进行灾难恢复。
117
+ - 将数据迁移到新环境或新服务器。
118
+ - 将集群还原到一致性状态。
119
+
120
+ 备份和还原备份工具集支持以数据库、保留策略、分片3个维度选定要操作的数据,进行备份或
121
+ 还原备份操作,一般推荐使用备份和还原备份工具集。
122
+
123
+ > 注意:对于大型数据集(100G以上),推荐使用导出和导入数据工具集。
124
+ Influx 企业级版本备份恢复官方文档:[ Back up and restore | InfluxDB Enterprise 1.10
125
+ Documentation] ( https://docs.influxdata.com/enterprise_influxdb/v1.10/administration/backup-and-restore/ )
126
+
127
+ ### 1. 备份
128
+ 备份是指创建存放在META节点上的元数据和DATA节点上的分片数据的副本,并将该副本存储在
129
+ 指定目录中。除了指定的数据副本,一个完整的备份还包括一个JSON格式的备份描述文件,描述具
130
+ 体的备份内容。所有备份文件的文件名包含一个UTC时间戳,表示创建备份的时间。
131
+
132
+ - META节点的元数据备份:20221108T034621Z.meta
133
+ - DATA节点的分片数据备份:20221108T034621Z.<shard_id>.tar.gz
134
+ - 备份描述文件:20221108T034621Z.manifest
135
+
136
+ 备份可以是完整备份或增量备份,默认情况下,生成的备份是增量备份。增量备份会创建自上次
137
+ 增量备份以来已更改的元数据和分片数据的副本。如果当前目录下不存在增量备份,系统将自动做完
138
+ 整备份。
139
+
140
+ > 注意:因为还原完整备份的命令与还原增量备份的命令不同,为防止还原备份时出错,建议将完
141
+ 整备份和增量备份放置在不同的目录中。
142
+
143
+ 参考官方文档连接:[ Back up and restore data in InfluxDB v1.8 | InfluxDB OSS 1.8 Documentation] ( https://docs.influxdata.com/influxdb/v1.8/administration/backup_and_restore/#time-based-backups )
144
+
145
+ 备份命令基本语法:
146
+
147
+ ``` shell
148
+ influxd backup
149
+ [ -d atabase < db_name> ] # 指定需要备份的数据库名称,可选,若没有指定,将备份所有数据
150
+ 库
151
+ [ -p ortable ] # 表示在线备份,必选
152
+ [ -h ost < host:port> ] # influxdb服务所在的机器,默认为 127.0.0.1:8088
153
+ [ -r etention < rp_name> ] | [ -s hard < shard_ID> -r etention < rp_name> ] # 备份的保留策略,注意shard是挂在rp下的;我们需要备份的就是shard中的数据
154
+ [ -s tart < timestamp> [ -e nd < timestamp> ] | -s ince < timestamp> ] # 备份指定时间段的数据
155
+ < path-to-backup> # 备份文件的输出地址
156
+ # 补充
157
+ -host: fluxdb绑定地址(仅当从远程fluxdb主机创建备份时需要)
158
+ -database/db:数据库名称(如果不指定数据库名称,则备份所有数据库)
159
+ -rp:保留策略名称(如果不指定保留策略,则备份所有保留策略)
160
+ -shard:分片ID(如果不指定分片ID,则备份所有分片)。需要保留策略。)
161
+ -start:起始时间(如果不指定起始时间,则备份所有时间的数据。)
162
+ -end/stop:停止时间(如果不指定停止时间,则备份到当前时间)。
163
+ ```
164
+
165
+ 1 . 备份所有的数据库
166
+ 将 [ influxdb] ( https://so.csdn.net/so/search?q=influxdb&spm=1001.2101.3001.7020 ) 中的所有的数据库都备份到 /path/to/backup-directory 目录下:
167
+ > influxd backup -portable /path/to/backup-directory
168
+ 2 . 从远程InfluxDB实例备份所有数据
169
+ > influxd backup -portable -host 203.0.113.0:8088 /path/to/backup-directory
170
+ 3 . 备份指定数据库
171
+ 假设此时 influxdb 中有数据库 monitor,将数据库monitor中的所有数据完整备份到指定目录中:
172
+ > influxd backup -portable -db monitor /path/to/backup-directory
173
+ 4 . 备份特定的时间范围
174
+ 备份2022-01-01到2022-02-01内的数据:
175
+ > influxd backup -portable -start 2022-01-01T00:00:00Z -stop 2022-02-01T00:00:00Z /path/to/backup-directory
176
+ 5 . 备份指定时间到现在的数据
177
+ > influxd backup -portable -start 2022-01-01T00:00:00Z /path/to/backup-directory
178
+ 6 . 备份特定的保留策略
179
+ > influxd backup -portable -db example-db -rp example-retention-policy /path/to/backupdirectory
180
+ 7 . 备份特定的shard
181
+ > influxd backup -portable -rp example-retention-policy -shard 123 /path/to/backup-directory
182
+
183
+ 如何查看shard id 参考官方文档:[ InfluxQuery Language (InfluxQL) reference | InfluxDB OSS 1.8
184
+ Documentation] ( https://docs.influxdata.com/influxdb/v1.8/query_language/spec/#show-shards )
185
+
186
+ ### 2. 恢复
187
+ 恢复命令基本语法:
188
+
189
+ ``` shell
190
+ influxd restore [ -d b < db_name> ] # 待恢复的数据库(备份中的数据库名)
191
+ -portable | -online
192
+ [ -h ost < host:port> ] # influxdb 的服务器
193
+ [ -ne wdb < newdb_name> ] # 恢复到influxdb中的数据库名
194
+ [ -r p < rp_name> ] # 备份中的保留策略
195
+ [ -ne wrp < newrp_name> ] # 恢复的保留策略
196
+ [ -s hard < shard_ID> ]
197
+ < path-to-backup-files>
198
+ # 补充说明
199
+ -host: fluxdb绑定地址(仅在将备份恢复到远程fluxdb主机时需要)
200
+ -db:数据库名称(如果不指定数据库名称,则恢复所有数据库)
201
+ -newdb:新的数据库名称(当恢复一个已经存在的数据库时需要)
202
+ -rp:保留策略名称(如果不指定保留策略,则恢复所有保留策略)
203
+ -newrp:新的保留策略名称(在恢复已经存在的保留策略时需要)
204
+ -shard:分片ID(如果不指定分片ID,则备份所有分片)。需要保留策略。)
205
+ ```
206
+
207
+ 1 . 恢复所有数据库
208
+ > influxd restore -portable /path/to/backup-directory
209
+ 2 . 将所有数据恢复到远程InfluxDB实例
210
+ > influxd restore -portable -host 203.0.113.0:8088 /path/to/backup-directory
211
+ 3 . 恢复一个特定的数据库
212
+ > influxd restore -portable -db example-db /path/to/backup-directory
213
+ 4 . 从已经存在的数据库中恢复数据
214
+ 如果想将备份恢复到一个已经存在的database中时,并不是那么简单的,这里采用的一个策略是
215
+ 先备份到一个临时的db中,然后将临时DB中的数据写入已存在的db中。
216
+ ```shell
217
+ #1 . 将备份恢复到临时数据库example-tmp-db中
218
+ influxd restore -portable -db example-db -newdb example-tmp-db /path/to/backup-direct
219
+ ory
220
+ #2 . 登录连接influx客户端,从临时数据库查询数据,并将其写回现有数据库test中
221
+ SELECT * INTO "test".autogen.: MEASUREMENT FROM "example-tmp-db".autogen./.* / GROUP BY
222
+ *
223
+ #3 . 删除临时数据库example-tmp-db
224
+ DROP DATABASE "example-tmp-db"
225
+ ```
226
+ 5 . 恢复指定的保留策略
227
+ > influxd backup -portable -db example-db -rp example-retention-policy /path/to/backupdirectory
228
+ 6 . 从已经存在的保留策略中恢复数据
229
+ > influxd restore -portable -db example-db -rp example-rp -newrp example-new-rp /path/to/backup-directory
230
+ 7 . 恢复指定的分片
231
+ > influxd backup -portable -db example-db -rp example-rp -shard 123 /path/to/backup-directory
0 commit comments