迁移阿里云上的ECS操作说明
背景:
1.公司测试服务器快要到期了,但是续费太贵,就想用另一个阿里云账号下的服务器作为测试服务器。
2.测试服务器原在阿里云账号A下,要迁移到阿里云账号B下
3.该测试服务器有一个系统盘和俩数据盘
大致操作:
1.在账号A下给该测试服务器做一个快照,然后给该快照创建一个自定义镜像,然后把该镜像共享给账号B。
注意:只能给系统盘做快照,连带数据盘做快照不支持。或者直接给该测试服务器做自定义镜像也不支持,因为数据盘的问题。
不过幸好数据盘里的数据不太重要,就采用另外的办法来迁移数据盘的数据。
2.在账号B下,把新测试服务器关机,然后重新安装系统,选择账号A共享过来的自定义镜像,手动设置root密码等,然后开机。
3.因为该测试服务器有系统盘和数据盘,所以/etc/fstab
中写的有数据盘的挂载信息,但是新测试服务器重新安装系统的话,没数据盘,挂载这个就会有问题。
导致的结果是新测试服务器启动后,无法通过SSH远程连接,通过在web页面的VNC管理终端登陆,会看到系统启动后进入的是救援模式,而不是正常启动后的模式。
所以,输入root密码,登陆进救援模式,编辑/etc/fstab
文件,把里面挂载数据盘的挂载信息注释掉或删除掉,然后重启系统,此时系统就能够顺利启动,并可以通过SSH远程登陆了。
4.远程登陆系统后,修改各应用配置文件中连接的ip地址等。
5.该服务器中部署的有一个Redis伪集群,地址一样,但是端口号不一样的。通过里面的启动脚本,Redis集群各节点能顺利启动,但是并不是集群状态,登陆其中一个节点,通过cluster nodes
命令查看可知,各节点已经启动为集群状态,但是各节点没有加入集群当中,所以,在这个,还需要多操作一步,各节点加入到集群当中。
# 登录集群节点的命令
redis-cli -c -h ip -p port -a password
# 登录一般节点或者从节点的命令
redis-cli -h ip -p port -a password
# 各节点加入集群,三主三从
redis-trib.rb create --replicas 1 172.17.172.117:6371 172.17.172.117:6372 172.17.172.117:6373 172.17.172.117:6374 172.17.172.117:6375 172.17.172.117:6376
6.SpringCloud各组件使用jar包,有的是带exec的,比如canal生成的jar包是在target/bin目录下的exec。
7.crontab -l
中的各定时任务脚本需要处理一下,有些是备份后传输到OSS的,这里统一修改成备份保存到本地,不传输到OSS上
8.禅道
禅道使用的是自带的数据库,登陆到禅道项目中,查看禅道数据库使用的端口号:
# cat /opt/zbox/etc/mysql/my.cnf
[client]
port = 3307
socket = /opt/zbox/tmp/mysql/mysql.sock
[mysqld_safe]
socket = /opt/zbox/tmp/mysql/mysql.sock
nice = 0
[mysqld]
user = nobody
pid-file = /opt/zbox/tmp/mysql/mysqld.pid
socket = /opt/zbox/tmp/mysql/mysql.sock
port = 3307
basedir = /opt/zbox/run/mysql
datadir = /opt/zbox/data/mysql
tmpdir = /opt/zbox/tmp/mysql
skip-external-locking
bind-address = 127.0.0.1
key_buffer_size = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
query_cache_limit = 1M
query_cache_size = 16M
log_error = /opt/zbox/logs/mysql_error.log
explicit_defaults_for_timestamp
default-storage-engine=MyISAM
server-id = 1
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[isamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
地址是127.0.0.1,端口号是3307。
禅道默认使用的数据库账号密码分别是root,123456
登陆禅道数据库使用命令:/opt/zbox/bin/mysql -u root -P 3307 -p
若默认的账号密码不对,可以自己手动添加一个新账号密码
# cat /opt/zbox/auth/adduser.sh
echo "This tool is used to add user to access adminer";
read -p "Account: " account
read -s -p "Password: " password
/opt/zbox/bin/htpasswd -b /opt/zbox/auth/users $account $password
# 这个文件存储的是加密后的数据库账号和密码
#cat /opt/zbox/auth/users
root:$apr1$tEbOq1Vq$gu8hyE9xlRAnrPCUpFZV/1
然后使用新添加的数据库账号密码登陆数据库,从而导出数据库文件。(登陆后可知使用的是MariaDB数据库)
或者使用Navicat连接数据库,需要有SSH通道。
9.RabbitMQ
常用命令:service rabbitmq-server start|stop|status
开启端口:5672|15672|25672
web使用端口:15672
web页面访问的话,使用的端口是15672,默认账号密码是guest/guest。
登陆后需要添加程序使用的账号和密码,然后还需要给该用户配置添加Virtual Hosts
使用nginx反向访问RabbitMQ的web界面:
server {
listen 80;
server_name www.xxx.com;
location / {
client_body_buffer_size 128k;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 16 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_connect_timeout 30s;
proxy_pass http://localhost:15672;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
10.canal.deployer
路径:/opt/hkd-cloud/canal.deployer-1.1.2
修改配置文件中关于数据库连接的IP地址
文件:conf/canal.properties中的参数canal.ip
conf/canal-user/instance.properties中的参数canal.instance.master.address
启动:/opt/hkd-cloud/canal.deployer-1.1.2/bin/startup.sh