|
|
@@ -1,212 +0,0 @@
|
|
|
-## wiki地址
|
|
|
-http://wiki.devdemo.trs.net.cn/pages/viewpage.action?pageId=15009127
|
|
|
-
|
|
|
->中间库说明:
|
|
|
-> * 假定trs_hycloud_iip与trs_mas为两台不同的服务器
|
|
|
-> * 每个节点建立一个中间库,命名为trs_data_migration_city[n]
|
|
|
-> * 分别在trs_hycloud_iip服务器与trs_mas服务器建立两个mas中间库
|
|
|
- mas中间库均命名为trs_data_migration_mas
|
|
|
-
|
|
|
-> SQL脚本说明:
|
|
|
-> * 0开头:脚本为数据修复类SQL。
|
|
|
-> * 1开头:脚本中间表。有data_migration_log(迁移日志表)、data_migration_offset(迁移偏移量表)
|
|
|
-> * 3开头:脚本为迁移表对应的存储过程。
|
|
|
-> * 4开头:脚本为迁移执行脚本。主要数据迁移的脚本都在脚本中。
|
|
|
-> * 6开头:脚本为清除本次迁移的数据脚本。
|
|
|
-
|
|
|
-## 迁移步骤
|
|
|
-
|
|
|
-### 1 数据准备
|
|
|
-#### 1.1 拷贝图片(待补充)
|
|
|
- 复制webpic目录下数据至采编服务器相同目录,
|
|
|
- 通过 rsync + inotify 实现文件系统的 实时同步+增量同步
|
|
|
-#### 1.2 拷贝视频
|
|
|
-##### 1.2.1 拷贝视频文件(待补充)
|
|
|
- * 将原mas服务器masdata/public目录下文件全部拷贝至新服务器临时文件夹
|
|
|
- **这里解释下为什么mas必须提前迁移**
|
|
|
- **mas缩略图的存储规则为:masdata/public/[日期]/[masId].images/[pic文件]**
|
|
|
- **迁移之后masId会变,所以需要修改缩略图存放路径**
|
|
|
- mas迁移步骤:
|
|
|
- * 将原mas服务器masdata/public目录下文件全部拷贝至新服务器临时文件夹
|
|
|
- **这里再解释下为什么必须用临时文件夹**
|
|
|
- **原视频id、日期与当前mas文件下极有可能相同,造成意料之外的错误**
|
|
|
- * 将mas库中以下几张表的数据迁移到与trs_mas相同环境下的trs_data_migration_mas中间库
|
|
|
- * mas中间库 trs_data_migration_mas,迁移mas数据
|
|
|
- * 执行python脚本修改缩略图文件夹名称(暂未提供)
|
|
|
- * 将临时文件夹与正式文件夹合并
|
|
|
- * 通过 rsync + inotify 实现文件系统的 实时同步+增量同步
|
|
|
-##### 1.2.2 拷贝mas视频数据
|
|
|
- * 将mas库中以下几张表的数据迁移到与trs_mas相同环境下的trs_data_migration_mas中间库
|
|
|
- * mas_publishedvideo
|
|
|
- * mas_videostream
|
|
|
- * mas_masid
|
|
|
- * mas_masvideo
|
|
|
- * 在trs_data_migration_mas运行3_sp_data_migration_mas*.sql 和 4_sp_city_mas.sql
|
|
|
-#### 1.3 拷贝数据
|
|
|
-##### 1.3.1 拷贝wcm数据表
|
|
|
- 创建节点中间库,trs_data_migration_city[n](用于迁移wcm数据;n表示节点ID,如trs_data_migration_city4;
|
|
|
- 将WCM中的以下表迁移到trs_data_migration_city[n]
|
|
|
- * 所有元数据表(wcmmetatable...)
|
|
|
- * wcmappendix
|
|
|
- * wcmchannel
|
|
|
- * wcmchannelchildindexquote
|
|
|
- * wcmchannelsyn
|
|
|
- * wcmchnldoc
|
|
|
- * wcmdocument
|
|
|
- * wcmfolderpublishconfig
|
|
|
- * wcmtemplate
|
|
|
- * wcmtemplateargument
|
|
|
- * wcmtemplateemploy
|
|
|
- * wcmtemplatenest
|
|
|
- * wcmtemplatequote
|
|
|
- * wcmwebsite
|
|
|
- * xwcmclassinfo
|
|
|
- * xwcmclassinfoview
|
|
|
- * xwcmdbfieldinfo
|
|
|
- * xwcmmaterial
|
|
|
- * xwcmmetaviewemployer
|
|
|
- * xwcmmetaviewfieldgroup
|
|
|
- * xwcmtableinfo
|
|
|
- * xwcmviewfieldinfo
|
|
|
- * xwcmviewinfo
|
|
|
-##### 1.3.2 准备脚本
|
|
|
- 中间库trs_data_migration_city[n],在Navicat中,中间库运行0-3开头的所有SQL存储过程。
|
|
|
- 
|
|
|
-##### 1.3.3 数据清洗
|
|
|
- * 清理脏数据
|
|
|
- ```sql
|
|
|
- #删除有问题的素材库数据
|
|
|
- DELETE FROM xwcmmaterial WHERE MATERIALTYPE = 1 and FILENAME is NULL;
|
|
|
- DELETE FROM xwcmmaterial WHERE MATERIALTYPE = 2 and MASID is NULL;
|
|
|
- #查询表中是否存在唯一建重复
|
|
|
- SELECT DOCID,CHNLID FROM wcmchnldoc GROUP BY DOCID,CHNLID HAVING COUNT(1) > 1;
|
|
|
- create table t_chnldoc as SELECT MAX(RECID) as 'RECID',DOCID,CHNLID,count(1) datacount FROM wcmchnldoc GROUP BY DOCID,CHNLID HAVING COUNT(1) > 1 ;
|
|
|
- DELETE FROM wcmchnldoc WHERE recid IN(SELECT recid FROM t_chnldoc);
|
|
|
- ```
|
|
|
- * 添加素材库的索引
|
|
|
- ```sql
|
|
|
- ALTER TABLE `xwcmmaterial`
|
|
|
- ADD PRIMARY KEY (`MATERIALID`);
|
|
|
- ALTER TABLE `xwcmmaterialquote`
|
|
|
- ADD INDEX (`MATERIALID`) USING BTREE ,
|
|
|
- ADD INDEX (`DOCID`) USING BTREE ;
|
|
|
- ```
|
|
|
- * 处理数据中视图字段
|
|
|
- ```sql
|
|
|
- # 相关视频 FieldType 由 51 变为 20
|
|
|
- update XWCMDBFieldInfo set FieldType=20 where FieldType=51;
|
|
|
- update XWCMViewFieldInfo set FieldType=20 where FieldType=51;
|
|
|
- # 相关图片 FieldType 由 50 变为 32
|
|
|
- update XWCMDBFieldInfo set FieldType=32 where FieldType=50;
|
|
|
- update XWCMViewFieldInfo set FieldType=32 where FieldType=50;
|
|
|
- # 相关文档 FieldType 由 57 变为 31
|
|
|
- update XWCMDBFieldInfo set FieldType=31 where FieldType=57;
|
|
|
- update XWCMViewFieldInfo set FieldType=31 where FieldType=57;
|
|
|
- # mw_文本框 FieldType 由 53 变为 3
|
|
|
- update XWCMDBFieldInfo set FieldType=3 where FieldType in (53,65);
|
|
|
- update XWCMViewFieldInfo set FieldType=3 where FieldType in (53,65);
|
|
|
- # mw_是否按钮 FieldType 由 54 变为 5
|
|
|
- update XWCMDBFieldInfo set FieldType=5 where FieldType=54;
|
|
|
- update XWCMViewFieldInfo set FieldType=5 where FieldType=54;
|
|
|
- # mw_时间按钮FieldType 由 55 变为 11
|
|
|
- update XWCMDBFieldInfo set FieldType=11 where FieldType=55;
|
|
|
- update XWCMViewFieldInfo set FieldType=11 where FieldType=55;
|
|
|
- # mw_复杂编辑器 FieldType 由 63 变为 12
|
|
|
- update XWCMDBFieldInfo set FieldType=12 where FieldType=63;
|
|
|
- update XWCMViewFieldInfo set FieldType=12 where FieldType=63;
|
|
|
- ```
|
|
|
- * 元数据表调整
|
|
|
- ```sql
|
|
|
- # [n]代表节点序号。迁移第1节点时,执行 call update_data_table('_city1', 0),迁移第2节点时执行 call update_data_table('_city2', 0),以此类推。
|
|
|
- call update_data_table('_city[n]', 0);
|
|
|
- # 注意该存储过程结果为sql 脚本。需要复制结果再执行一遍。
|
|
|
-
|
|
|
- ```
|
|
|
- 修改云数据表名
|
|
|
- ```sql
|
|
|
- # [n]代表节点序号。迁移第1节点时,执行 call update_data_table('_city1', 0),迁移第2节点时执行 call update_data_table('_city2', 0),以此类推。
|
|
|
- SELECT
|
|
|
- CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO ', table_name, '_city[n]' , ';' ) sqls
|
|
|
- FROM
|
|
|
- information_schema.TABLES
|
|
|
- WHERE
|
|
|
- table_schema = 'trs_data_migration_city[n]'
|
|
|
- AND table_name LIKE 'wcmmetatable%';
|
|
|
- # 注意该存储过程结果为sql 脚本。需要复制结果再执行一遍。
|
|
|
- ```
|
|
|
-
|
|
|
-#### 1.4 备份正式库
|
|
|
- 使用Navicat打开海云正式环境IIP数据库,执行如下截图中的操作
|
|
|
- 
|
|
|
-
|
|
|
- 
|
|
|
-
|
|
|
-### 2 迁移
|
|
|
- 该过程属于数据迁移到正式环境,一旦出现迁移错误,如果不能及时处理。请立即还原备份的正式库。迁移失败等待下次数迁移。
|
|
|
-#### 2.1 停止运行市州WCM、海云IIP
|
|
|
- ```
|
|
|
- # 使用XShell进入市州[n]IIP服务器运行以下命令
|
|
|
- # 执行本命令,预期应该可以见到一串阿拉伯数字,代表IDS运行程序的PID,说明IDS正常运行
|
|
|
- ps aux | grep java | grep IIP | grep -v 'grep' | awk '{print $2}'
|
|
|
- # 执行本命令将kill IDS运行程序
|
|
|
- ps aux | grep java | grep IIP | grep -v 'grep' | awk '{print $2}' | xargs kill -9
|
|
|
- # 执行本命令(和上上条是一样的),预期将不会看到任何输出结果,说明IDS已被正常kill;否则,说明kill IDS失败,建议暂停暂停,并求助于项目组
|
|
|
- ps aux | grep java | grep IIP | grep -v 'grep' | awk '{print $2}'
|
|
|
- ```
|
|
|
-#### 2.2 基本数据迁移
|
|
|
- 迁移站点,栏目,视图到trs_hycloud_iip;
|
|
|
- 基本数据迁移后,可以实现在海云中,处理站点下栏目下角色模板视图样式等问题。
|
|
|
- ```sql
|
|
|
- # [n]代表节点序号。迁移第1节点时,执行 call update_data_table('_city1', 0),迁移第2节点时执行 call update_data_table('_city2', 0),以此类推。
|
|
|
- call sp_city_base([n]);
|
|
|
- ```
|
|
|
- ```sql
|
|
|
- # [n]代表节点序号。迁移第1节点时,执行 call update_data_table('_city1', 0),迁移第2节点时执行 call update_data_table('_city2', 0),以此类推。
|
|
|
- SELECT concat('create table trs_hycloud_iip.wcmmetatable',TABLENAME,'_city[n] like ','wcmmetatable',TABLENAME,'_city[n];') from xwcmtableinfo;
|
|
|
- # 注意sql结果为sql 脚本。需要复制结果再执行一遍。
|
|
|
- ```
|
|
|
-#### 2.3 mas数据迁移
|
|
|
- 在中间库 trs_data_migration_mas,迁移mas数据
|
|
|
- ```sql
|
|
|
- #mas数据迁移
|
|
|
- call sp_city_mas();
|
|
|
- ```
|
|
|
-#### 2.4 文档和附件数据迁移
|
|
|
- * 迁移元数据
|
|
|
- ```sql
|
|
|
- # [n]代表节点序号。迁移第1节点时,执行 call update_data_table('_city1', 0),迁移第2节点时执行 call update_data_table('_city2', 0),以此类推。
|
|
|
- SELECT concat('INSERT INTO trs_hycloud_iip.wcmmetatable',TABLENAME,'_city[n] SELECT * from ','wcmmetatable',TABLENAME,'_city[n];') from xwcmtableinfo;
|
|
|
- # 注意sql结果为sql 脚本。需要复制结果再执行一遍。
|
|
|
- ```
|
|
|
- * 迁移数据
|
|
|
- ```sql
|
|
|
- call sp_city_data(节点ID)
|
|
|
- ```
|
|
|
- * 节点中间库trs_data_migration_city[n],迁移附件
|
|
|
- ```sql
|
|
|
- # [n]代表节点序号。迁移第1节点时,执行 call update_data_table('_city1', 0),迁移第2节点时执行 call update_data_table('_city2', 0),以此类推。
|
|
|
- call sp_city_appendix([n], 0);
|
|
|
- ```
|
|
|
- * 中间库trs_data_migration_city[n],修改元数据中相关图片,相关视频字段不对
|
|
|
- ```sql
|
|
|
- # [n]代表节点序号。迁移第1节点时,执行 call update_data_table('_city1', 0),迁移第2节点时执行 call update_data_table('_city2', 0),以此类推。
|
|
|
- # masurl前缀http://[ip]/mas/openapi/pages.do?method=exPlay&appKey=[appKey]&id= 。例如:http://172.16.153.72/mas/openapi/pages.do?method=exPlay&appKey=gov&id=
|
|
|
- call update_data_relation_appendix([n], masurl前缀, 0, 0);
|
|
|
- ```
|
|
|
-### 3 清除redis缓存,启动后台后的操作:
|
|
|
- redis 清理命令
|
|
|
- ```
|
|
|
- redis-cli -h 127.0.0.1 -p 6379
|
|
|
- auth password
|
|
|
- select 1
|
|
|
- flushdb
|
|
|
- ```
|
|
|
- * 生成所有视图应用:进入http://ip/gov/wcm_use--应用工具--生成视图应用
|
|
|
- * 发布全部站点
|
|
|
- * 验证其他功能
|
|
|
-
|
|
|
-### 4 其他工具
|
|
|
- * 自动生成索引 
|
|
|
- 通过配置文件 idxid.generatedtable.properties 配置需要生成的元数据表名称。
|
|
|
-
|
|
|
-
|