项目级服务器数据迁移流程
创建时间: 2022/09/24
更新时间: 2022/09/24
编辑: 徐俊杰
项目级服务器数据迁移流程
以下操作针对最终迁移目标为移动机房托管的硬件服务器,其它服务器进具备参考价值
```text
183.213.16.9
dtsite
qwer4321asdf
```
一、目录必要拷贝
注意:部分内容可能有遗漏和确认,请自行补充。
1. 拷贝数据库数据
```text
备份
pg_dump -h 127.0.0.1 -p {数据库端口} -U odoo |gzip > ./dbdata_{项目名称}.gz
上传到硬件服务器/home/dtsite/aliyun3/dbData/目录下
scp -P 22 ./dbdata_{项目名称}.gz [email protected]:/home/dtsite/aliyun3/dbData/
```
2. 拷贝项目目录
```cmd
tar -czvf project_aliyun4.tar.gz /opt/project
上传到目标服务器
scp -P 22 ./project_aliyun4.tar.gz [email protected]:/opt
```
3. 拷贝iothttp3并上传到目标服务器
```cmd
cd /opt
拷贝iothttp3
cp -r iothttp3 iothttp3_aliyun4
删除不必要的文件
rm -rf ./iothttp4_aliyun3/venv ./iothttp3_aliyun4/*.log
./iothttp3_aliyun4/test ./iothttp3_aliyun4/__pycache__
打包
tar -czvf iothttp3_aliyun4.tar.gz iothttp3_aliyun4
上传到目标服务器
scp -P 22 ./iothttp3_aliyun4.tar.gz [email protected]:/opt
```
4. 拷贝supervisor的配置文件
```
scp -P 22 /etc/supervisor/conf.d/iothttp3.conf [email protected]:/home/dtsite/supervisorConfigBak/iothttp3_aliyun4.conf
```
5. 拷贝docker 镜像文件
docker save命令打包下面的这几个镜像,然后在目标服务器中使用docker load加载
```
47.104.8.212:8000/postgres 11
47.104.8.212:8000/dtsite v6
47.104.8.212:8000/dtsite/frontend v4
47.104.8.212:8000/postgres 10
```
二、项目部署
迁移备份的项目数据目录
例如: 迁移国家质量的项目数据到/opt/projects目录中
```cmd
cp -r /home/dtsite/aliyun3/optProjects/Dtcloud_guojiazl /opt/projects
```
使用serverOM来自动部署项目
以下内容均为以已下面的硬件服务器为例,其它服务器仅提供参考。
1. 添加服务器参数
打开[serverOM](http://183.213.16.9:9005/zyf/python_iot-data-testing),在服务器配置文件server_info.ini中添加新服务器参数,`注意需要root用户`
![[Pasted image 20220921114918.png]]
示例:
```text
[硬件服务器]
ssh连接参数
sshparams = {'host': '183.213.16.xx', 'port': 22, 'user': 'root', 'password': 'xxx'}
服务器odoo的模块目录位置
appaddonspath = /opt/projects/source/dtsite_addons
服务器采集服务位置
iotserverpath="/opt/iothttp3"
项目模板目录位置
projecttemplatepath="/opt/projects/source/projectTemplate"
服务器最大创建项目数
maxProjectNumber=50
```
2. 先在创建数据库这里打断点
创建数据库后,需要先导入数据。否则数据库被odoo自动初始化
![[Pasted image 20220924111820.png]]
3. 执行创建项目脚本
- 修改启动参数,使用debug命令启动
![[Pasted image 20220924112256.png]]
- 第一个提示输入`no`
![[Pasted image 20220924112228.png]]
- 断点触发后,服务器控制台输入以下命令,把数据导入到数据库
查看项目数据库端口(以guojiazl项目为例)
![[Pasted image 20220924112535.png]]
导入数据
```cmd
gunzip -c /home/dtsite/dbData/dbdata_{项目简称}.gz |psql -h 127.0.0.1 -p {新的数据库端口} -U odoo odoo
```
4. 继续执行部署脚本
下面的提示直接输入done,直接完成即可,报错不用管。
![[Pasted image 20220924113037.png]]
7. 添加网关并修改配置参数
- 登录[服务器网关KONGA](http://183.213.16.9:9003/#!/services),参照project_info.ini中的项目参数,把端口添加进去(odoo、大屏、iot采集服务都要配置);
- 然后把下面的参数值修改成与[KONGA]()中配置的地址一致,用于后面的大屏代码更新
![[Pasted image 20220924120826.png]]
参数说明:
```text
odoo_site:odoo外网请求地址
frontend_site:大屏外网请求地址
iot_site:iothttp3外网请求地址
kongagateway_odoo:KONGA中设置的odoo网关路由
kongagateway_frontend:KONGA中设置的大屏网关路由
```
8. 更新大屏地址
测试odoo和大屏
测试odoo
- 登录[服务端浏览器](http://183.213.16.9:9010/),尝试通过**内网**(192.168.32.91)。`注意不要使用外网访问odoo,会访问不进去的。后续对odoo的操作,都使用【服务端浏览器】来操作`
odoo 相关问题解决方案
1. **访问odoo白屏**
**此问题一般是备份的项目目录没有拷贝到/opt/projects目录中导致的**。如果确认拷贝成功还是不行,请执行以下操作。
```text
方法一
修改配置文件
docker exec -it dtsite_{{项目简称}} bash
echo "ODOO_HTTP_SOCKET_TIMEOUT=30" >> /etc/odoo/odoo.conf
退出然后重启
ctrl+D
docker restart dtsite_{{项目简称}}
查看是否启动成功
docker logs -f dtsite_{{项目简称}}
,如果还是不行,使用方法二
数据库中执行以下命令
DELETE FROM ir_attachment WHERE url LIKE '/web/content/%';
重启数据库
docker restart db_{{项目简称}}
```
**2. odoo无法访问,页面报错**
**此情况一般是由于容器中的必要python模块缺失**,使用`docker logs -f {容器名称}`查看报错内容来进行解决。下面列出了缺失模块的安装方法,其它问题请自行排查
```exec
进入容器
docker exec -it dtsite_{{项目简称}} bash
安装遗漏的python模块
pip3 install ws4py pdfkit python-dateutil
退出然后重启
ctrl+D
docker restart dtsite_{{项目简称}}
查看是否启动成功
docker logs -f dtsite_{{项目简称}}
```
测试大屏
通过本地浏览器尝试访问大屏。注意,如果大屏访问不了。执行serverOM中的更新大屏脚本就行了。
![[Pasted image 20220921174302.png]]
如果还是访问不了,浏览器按F12查看请求地址是否正确。
部署redis
- 提示: 部署时,使用的端口请遵守旧服务器的部署规范
```text
假设相同占用的起始端口为8020,那么各项目服务的端口如下
数据库: 8020
odoo: 8021
大屏: 8022
iot: 8023
redis: 8024
```
- redis直接通过docker部署就行了,速度快
```cmd
docker run --name redis_{{项目简称}} -p {{redis端口}}:6379 -d redis redis-server --requirepass zhsz
```
部署iothttp3
1. 首次配置安装依赖
略。。。
2. 修改服务器上的iothttp3项目配置
进入 iothttp3/conf/{{项目简称}}
```cmd
进入目录
cd /opt/iothttp3/conf/{项目简称}
修改conf.py
vim ./conf.py
修改lanuch
vim ./launch
```
- config.py中需要修改的参数
![[Pasted image 20220924105345.png]]
- launch中修改启动端口
![[Pasted image 20220924105425.png]]
3. 检查supervisor配置
- iothttp3使用supervisor来监控,启动命令添加到/etc/supervisor/conf.d目录中。如果需要修改,参考旧服务器中配置文件。
- 修改后,重载载配置文件的命令为 `supervisorctl reload`
4. 启动iothttp3
- 打开[服务端浏览器](http://183.213.16.9:9010/)访问 http://183.213.16.9:9010/ ,启动对应的iothttp3
![[Pasted image 20220924105844.png]]
- 查看log日志。
点击 tail -f stdout查看日志确保有报错
![[Pasted image 20220924110433.png]]
配置konga网关
联系硬件厂商修改iot采集服务地址
标签:级服务器,Pasted,流程,odoo,iothttp3,dtsite,服务器,迁移,docker From: https://www.cnblogs.com/DTCLOUD/p/17428495.html作者:吴太强