目的
本操作的目的是,将用户的自选股恢复到周末测试开始前的节点的数据,防止周末测试期间误操作用户自选股造成影响。
整体大致步骤
1、落地库MySQL备份
2、进行测试
3、测试完成,开始清理数据
3.1、停止dcache主机、备机,按操作清除dcache缓存数据
3.2、还原落地库MySQL数据
3.3、启动dcache主机备机
注意事项
无
落地库MySQL备份
先登录taf服务打开DCache,查看DCache模块配置文件,查看数据库连接机器是哪一台,数据库前缀
- 模块1:DCache.PStock.PStockMyGroup.DCache.PStockMyGroupDbAccessServer
- 模块2:DCache.PStock.PStockMyItem.DCache.PStockMyItemDbAccessServer
登录mysql服务器,使用mysqldump进行数据库备份。
连接数据库:
1 | [root@iZuf68jvwg0rkh08ydfyuiZ ~]$ mysql -h192.168.23.63 -utafadmin -ptafadmin2017 |
显示数据库:
1 | mysql> show databases; |
备份命令:
参数-B --databases
指定数据库
参数-h --host
指定连接的主机
参数-u --user
指定连接的用户名
参数-p --password
连接数据库密码
参数-P --port
连接数据库端口号
1 | [root@iZuf68jvwg0rkh08ydfyuiZ ~]$ mysqldump -h192.168.23.63 -utafadmin -ptafadmin2017 --databases db_pstockmyitem_* db_pstockmygroup_* > pstock_20230223.sql |
mysqldump使用帮助:
1、导出所有数据库,该命令会导出包括系统数据库在内的所有数据库
1 [root@iZuf68jvwg0rkh08ydfyuiZ ~]$ mysqldump -uroot -proot --all-databases >/tmp/all.sql2、导出db1、db2两个数据库的所有数据
1 [root@iZuf68jvwg0rkh08ydfyuiZ ~]$ mysqldump -uroot -proot --databases db1 db2 >/tmp/user.sql3、导出db1中的a1、a2表(注意导出指定表只能针对一个数据库进行导出,且导出的内容中和导出数据库也不一样,导出指定表的导出文本中没有创建数据库的判断语句,只有删除表-创建表-导入数据)
1 [root@iZuf68jvwg0rkh08ydfyuiZ ~]$ mysqldump -uroot -proot --databases db1 --tables a1 a2 >/tmp/db1.sql错误处理:
unknown option '--no-beep'
第一种方法:删除my.ini[client]下的 no-beep 参数;
第二种方法:在 mysqldump 后加–no-defaults参数 。
进行测试
略
测试完成、清理数据
大致步骤如下:
停止dcache主机、备机,按操作清除dcache缓存数据
还原落地库MySQL数据
启动dcache主机备机
停止dcache主机、备机,按操作清除dcache缓存数据
确认模块
可以使用一条命令删除,其中1150543168为十进制字符
1 | ipcrm -M "$(printf '0x%x' 1150543168)" |
也可以继续确认程序所属的共享内存
1 | [root@iZuf68jvwg0rkh08ydfyuiZ ~]$ printf '0x%x\n' 1150543168 |
查看所有共享内存
没错就是在倒数第四个
1 | [root@iZuf68jvwg0rkh08ydfyuiZ ~]$ ipcs -m |
停止以下TCacheServer模块:
- DCache.PStock.PStockMyGroup.DCache.PStockMyGroupTCacheServer1
- DCache.PStock.PStockMyItem.DCache.PStockMyItemTCacheServer1
删除共享内存:
1 | [root@iZuf68jvwg0rkh08ydfyuiZ ~]$ ipcrm -M 0x4493e540 |
还原落地库MySQL数据
语法:mysql -u<username> -p<password> <dbname> < /opt/mytest_bak.sql
系统命令行:
1 | [root@iZuf68jvwg0rkh08ydfyuiZ ~]$ mysql -uusername -ppassword test < test.sql |
或 mysql 命令行:
1 | mysql> |
恢复整个数据库的方法:
1 | [root@iZuf68jvwg0rkh08ydfyuiZ ~]$ mysql -uroot -h127.0.0.1 -padmin -P3306 < test.sql |
具体恢复示例:
1、先登录该 MySQL 服务器,切换要导入数据的数据、具体命令如下:
1
2
3
4
5
6
7
8
9
10
11 mysql> use test;
mysql> source /home/test/test.sql
Query OK, 0 rows affected (0.01 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 9 rows affected (0.00 sec)
Records: 9 Duplicates: 0 Warnings: 0直接使用系统命令行:
1 [root@iZuf68jvwg0rkh08ydfyuiZ ~]$ mysql -uroot -h127.0.0.1 -padmin > -P3306 test < /home/test/test.sql
启动dcache主机备机
异常处理
无