\346\225\260\346\215\256\345\272\223\350\277\201\347\247\273\346\226\271\346\241\210.md
... ...
@@ -0,0 +1,344 @@
1
+数据库迁移方案
2
+
3
+
4
+
5
+名词解释
6
+单机 : docker 部署
7
+分布式:k8s,多个容器,有边车,配置文件参数区分,
8
+engine.run.mode=SINGLE
9
+engine.store.meta.mode=CLOUD
10
+
11
+
12
+整库迁移:保留目标库系统表数据,
13
+环境检查:
14
+升级指引:
15
+一、单机迁移分布式环境
16
+单机环境迁移到生产分布式环境,
17
+1.1 环境检查
18
+来源:127.0.0.1 /test
19
+目标: 1.0.0.0/ snest
20
+
21
+迁移步骤:
22
+序号 执行步骤 执行内容 状态 开始时间
23
+1 停服来源数据库 test整库备份(test.sql) 完成
24
+2 检查目标库 有目标库的时候,没有目标库,有,备份目标库业务表数据(业务表名smi_* )smi_back.sql,无,创建目标库
25
+ 完成
26
+3 整库备份test.sql导入目标库 将序号1备份的(test.SQL)导入目标库中 完成
27
+4 将目标库中的业务表smi_back.sql导入目标库中 完成
28
+5 应用市场上传应用,上架应用 完成
29
+6 执行sql 执行1.1 ,1.2, 等SQL 完成
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+1.2 数据库准备
38
+平台sql
39
+1.1 卸载应用SQL
40
+
41
+update meta_app set is_primary =0, state = 'uninstalled' , is_delete = 1 where author='smi';
42
+
43
+
44
+
45
+1.2 已安装表(meta_appp)关联市场(meta_app_store)
46
+UPDATE meta_app
47
+SET meta_app_store_id = (
48
+ SELECT id
49
+ FROM meta_app_store AS subquery_meta_app
50
+ WHERE subquery_meta_app.name = meta_app.name
51
+)
52
+WHERE `author` = 'smi'
53
+
54
+
55
+1.3 已经安装(meta_app)前端资源文件 (注意视情况而定,非必须执行SQL)
56
+UPDATE meta_app
57
+SET view_file_id = (
58
+ SELECT view_file_id
59
+ FROM meta_app_store AS subquery_meta_app
60
+ WHERE subquery_meta_app.name = meta_app.name
61
+)
62
+WHERE `author` = 'smi'
63
+
64
+UPDATE meta_app
65
+SET view_file = (
66
+ SELECT att.name
67
+ FROM meta_app_store AS subquery_meta_app left join meta_attachment att on subquery_meta_app.view_file_id = att.id
68
+ WHERE subquery_meta_app.name = meta_app.name
69
+)
70
+WHERE `author` = 'smi'
71
+
72
+
73
+
74
+1.3 应用市场准备
75
+归档应用文件一份。
76
+2.1 市场上传,上架。
77
+2.2 市场安装到容器。
78
+ 具体操作参考
79
+http://iidp.chinasie.com:9999/iidpdoc/pages/0570a6/#%E5%BA%94%E7%94%A8%E5%B8%82%E5%9C%BA
80
+1.4 容器准备
81
+1.5 MINO存储迁移
82
+Minio数据迁移(mc命令)
83
+mc(MinIO Client)是一个强大的命令行工具,用于管理MinIO和其他兼容的对象存储服务(如Amazon S3)。你可以使用mc来执行各种操作,如创建和删除存储桶,上传、下载和删除对象,配置策略等。
84
+
85
+4.1 下载
86
+wget https:// dl.minio.org.cn/client/mc/release/linux-amd64/mc
87
+chmod +x mc
88
+
89
+4.2 数据迁移常用命令
90
+#注:mc只适合用于同网段minio之间的迁移或确保mc能连接到要迁移的服务器也可以使用mc
91
+
92
+
93
+
94
+例:全量迁移
95
+
96
+如下两台机器minio数据需要进行迁移,10.11全量迁移到10.12
97
+192.168.10.11 minio
98
+192.168.10.12 minio
99
+
100
+
101
+#添加新的minio服务地址
102
+语法: mc alias set 名称 服务地址 用户名 密码
103
+mc alias set minio1 http://192.168.10.11:9000 minioadmin minioadmin
104
+mc alias set minio2 http://192.168.10.12:9000 minioadmin minioadmin
105
+
106
+
107
+#查看已经添加的minio服务信息
108
+mc config host ls
109
+
110
+#移除已经添加的minio服务
111
+mc config host remove minio1
112
+
113
+
114
+#全量迁移,重名文件不覆盖,bucket不存在会自动创建
115
+mc mirror minio1 minio2
116
+#只是迁移某个bucket,以test为例,目标的bucket需要提前建好
117
+mc mirror minio1/test minio2/test
118
+#覆盖重名文件,加--overwrite
119
+mc mirror --overwrite minio1/test minio2/test
120
+
121
+常用命令
122
+已经添加minio服务地址后
123
+
124
+
125
+
126
+192.168.10.11 minio
127
+192.168.10.12 minio
128
+
129
+
130
+#添加新的minio服务地址
131
+语法: mc alias set 名称 服务地址 用户名 密码
132
+mc alias set minio1 http://192.168.10.11:9000 minioadmin minioadmin
133
+mc alias set minio2 http://192.168.10.12:9000 minioadmin minioadmin
134
+
135
+
136
+#列出minio1的桶,和linux的ls一样
137
+mc ls minio1
138
+
139
+#列出minio1中mybucket桶中的数据,和linux的ls一样
140
+mc ls minio1/mybucket
141
+
142
+
143
+#删除桶
144
+mc rm minio1/mybucket
145
+#删除桶中的数据
146
+mc rm minio1/mybucket/yuehansuzhangaiqing99.txt
147
+
148
+
149
+#查看桶的大小
150
+mc du minio1/mybucket
151
+输出如下结果
152
+825KiB 3 objects mybucket
153
+
154
+
155
+#移动桶数据
156
+#把minio1中mydata桶中的数据移动到minio2 archive桶下。
157
+# --recursive:这是一个选项,告诉 mc 移动所有子目录中的对象。如果没有这个选项,mc 只会移动顶层目录中的对象。
158
+
159
+mc mv --recursive minio1/mydata minio2/archive
160
+
161
+
162
+
163
+#复制桶数据
164
+#把minio1中mydata桶中的数据复制到minio2 archive桶下。
165
+
166
+mc cp --recursive minio1/mydata minio2/archive
167
+
168
+
169
+#查看文件内容,如果查看视频二进制文件等内容会乱码
170
+
171
+mc cat minio1/mybucket/suzhanyuehanaiqing99.txt
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+二、测试分布式-迁移生产分布式环境
180
+
181
+整库迁移,
182
+
183
+2.1 环境检查
184
+KubeSphere 容器升级指引
185
+升级指引http://iidp.chinasie.com:9999/iidpwiki/upgrad
186
+
187
+2.2 数据库准备
188
+第一原则,源整库迁移,把客户需要的业务表数据迁移,在把客户业务表数据覆盖之前整库备份的数据。只保留系统表。目的是为了保留系统表。重新在新的环境,安装应用容器。
189
+方案一:
190
+来源:127.0.0.1 /test
191
+目标: 1.0.0.0/ snest
192
+
193
+2.2.1 数据迁移步骤
194
+序号 执行步骤 执行内容 状态 开始时间
195
+1 停服来源数据库 test整库备份(test.sql) 完成
196
+2 检查目标库 有目标库的时候,没有目标库,有,备份目标库业务表数据(业务表名smi_* )smi_back.sql,无,创建目标库
197
+ 完成
198
+3 整库备份test.sql导入目标库 将序号1备份的(test.SQL)导入目标库中 完成
199
+4 执行sql
200
+ 将目标库中的业务表smi_back.sql导入目标库中 完成
201
+5 执行sql
202
+ 执行批量卸载SQL 完成
203
+6 执行sql 执行批量下架SQL 完成
204
+
205
+
206
+
207
+
208
+
209
+
210
+2.1 卸载应用SQL
211
+
212
+update meta_app set is_primary =0, state = 'uninstalled' , is_delete = 1 ;
213
+
214
+
215
+
216
+2.2 批量下架SQL
217
+UPDATE `snest_no_tenant`.`meta_app_store` SET `app_market` = 'noUp' ;
218
+
219
+
220
+
221
+
222
+2.3 已经安装(meta_app)前端资源文件(视情况而定非必须执行SQL)
223
+UPDATE meta_app
224
+SET view_file_id = (
225
+ SELECT view_file_id
226
+ FROM meta_app_store AS subquery_meta_app
227
+ WHERE subquery_meta_app.name = meta_app.name
228
+)
229
+WHERE `author` = 'smi'
230
+
231
+UPDATE meta_app
232
+SET view_file = (
233
+ SELECT att.name
234
+ FROM meta_app_store AS subquery_meta_app left join meta_attachment att on subquery_meta_app.view_file_id = att.id
235
+ WHERE subquery_meta_app.name = meta_app.name
236
+)
237
+WHERE `author` = 'smi'
238
+
239
+
240
+
241
+2.3 容器准备
242
+升级指引http://iidp.chinasie.com:9999/iidpwiki/upgrad
243
+
244
+2.4 应用市场准备
245
+http://iidp.chinasie.com:9999/iidpdoc/pages/0570a6/#%E5%BA%94%E7%94%A8%E5%B8%82%E5%9C%BA
246
+2.5 MINO准备
247
+Minio数据迁移(mc命令)(同网络迁移方案,不同网络需要自行准备)
248
+mc(MinIO Client)是一个强大的命令行工具,用于管理MinIO和其他兼容的对象存储服务(如Amazon S3)。你可以使用mc来执行各种操作,如创建和删除存储桶,上传、下载和删除对象,配置策略等。
249
+
250
+4.1 下载
251
+wget https:// dl.minio.org.cn/client/mc/release/linux-amd64/mc
252
+chmod +x mc
253
+
254
+4.2 数据迁移常用命令
255
+#注:mc只适合用于同网段minio之间的迁移或确保mc能连接到要迁移的服务器也可以使用mc
256
+
257
+
258
+
259
+例:全量迁移
260
+
261
+如下两台机器minio数据需要进行迁移,10.11全量迁移到10.12
262
+192.168.10.11 minio
263
+192.168.10.12 minio
264
+
265
+
266
+#添加新的minio服务地址
267
+语法: mc alias set 名称 服务地址 用户名 密码
268
+mc alias set minio1 http://192.168.10.11:9000 minioadmin minioadmin
269
+mc alias set minio2 http://192.168.10.12:9000 minioadmin minioadmin
270
+
271
+
272
+#查看已经添加的minio服务信息
273
+mc config host ls
274
+
275
+#移除已经添加的minio服务
276
+mc config host remove minio1
277
+
278
+
279
+#全量迁移,重名文件不覆盖,bucket不存在会自动创建
280
+mc mirror minio1 minio2
281
+#只是迁移某个bucket,以test为例,目标的bucket需要提前建好
282
+mc mirror minio1/test minio2/test
283
+#覆盖重名文件,加--overwrite
284
+mc mirror --overwrite minio1/test minio2/test
285
+
286
+常用命令
287
+已经添加minio服务地址后
288
+
289
+
290
+
291
+192.168.10.11 minio
292
+192.168.10.12 minio
293
+
294
+
295
+#添加新的minio服务地址
296
+语法: mc alias set 名称 服务地址 用户名 密码
297
+mc alias set minio1 http://192.168.10.11:9000 minioadmin minioadmin
298
+mc alias set minio2 http://192.168.10.12:9000 minioadmin minioadmin
299
+
300
+
301
+#列出minio1的桶,和linux的ls一样
302
+mc ls minio1
303
+
304
+#列出minio1中mybucket桶中的数据,和linux的ls一样
305
+mc ls minio1/mybucket
306
+
307
+
308
+#删除桶
309
+mc rm minio1/mybucket
310
+#删除桶中的数据
311
+mc rm minio1/mybucket/yuehansuzhangaiqing99.txt
312
+
313
+
314
+#查看桶的大小
315
+mc du minio1/mybucket
316
+输出如下结果
317
+825KiB 3 objects mybucket
318
+
319
+
320
+#移动桶数据
321
+#把minio1中mydata桶中的数据移动到minio2 archive桶下。
322
+# --recursive:这是一个选项,告诉 mc 移动所有子目录中的对象。如果没有这个选项,mc 只会移动顶层目录中的对象。
323
+
324
+mc mv --recursive minio1/mydata minio2/archive
325
+
326
+
327
+
328
+#复制桶数据
329
+#把minio1中mydata桶中的数据复制到minio2 archive桶下。
330
+
331
+mc cp --recursive minio1/mydata minio2/archive
332
+
333
+
334
+#查看文件内容,如果查看视频二进制文件等内容会乱码
335
+
336
+mc cat minio1/mybucket/suzhanyuehanaiqing99.txt
337
+
338
+
339
+
340
+
341
+
342
+
343
+
344
+