周末测试期间的自选相关dcache回滚操作

目的

本操作的目的是,将用户的自选股恢复到周末测试开始前的节点的数据,防止周末测试期间误操作用户自选股造成影响。


整体大致步骤

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
    20230223164718

登录mysql服务器,使用mysqldump进行数据库备份。

连接数据库:

1
[root@iZuf68jvwg0rkh08ydfyuiZ ~]$ mysql -h192.168.23.63 -utafadmin -ptafadmin2017

显示数据库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
mysql> show databases;
+-------------------------------+
| Database |
+-------------------------------+
| information_schema |
| at_hl_testdb01 |
| at_hl_testdb02 |
| db_ad |
| db_pstockmygroup_0 |
| db_pstockmygroup_1 |
| db_pstockmygroup_2 |
| db_pstockmygroup_3 |
| db_pstockmygroup_4 |
| db_pstockmygroup_5 |
| db_pstockmygroup_6 |
| db_pstockmygroup_7 |
| db_pstockmygroup_8 |
| db_pstockmygroup_9 |
| db_pstockmyitem_0 |
| db_pstockmyitem_1 |
| db_pstockmyitem_2 |
| db_pstockmyitem_3 |
| db_pstockmyitem_4 |
| db_pstockmyitem_5 |
| db_pstockmyitem_6 |
| db_pstockmyitem_7 |
| db_pstockmyitem_8 |
| db_pstockmyitem_9 |
| wgcloud |
+-------------------------------+

备份命令:
参数-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.sql

2、导出db1、db2两个数据库的所有数据

1
[root@iZuf68jvwg0rkh08ydfyuiZ ~]$ mysqldump -uroot -proot --databases db1 db2 >/tmp/user.sql

3、导出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缓存数据

确认模块
20230223

可以使用一条命令删除,其中1150543168为十进制字符

1
ipcrm -M "$(printf '0x%x' 1150543168)"

也可以继续确认程序所属的共享内存
20230223

1
2
[root@iZuf68jvwg0rkh08ydfyuiZ ~]$ printf '0x%x\n' 1150543168
0x4493e540

查看所有共享内存

没错就是在倒数第四个

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@iZuf68jvwg0rkh08ydfyuiZ ~]$ ipcs -m
------------ 共享内存段 --------------
键 shmid 拥有者 权限 字节 nattch 状态
0x44066ba2 0 upchina 666 52428800 1
0x4404fbd2 32769 upchina 666 209715200 1
0x20120913 65538 upchina 600 20972592 0
0x443a9e7f 98307 upchina 666 209715200 1
0x4497431d 131076 upchina 666 209715200 1
0x4405b052 163845 upchina 666 524288000 1
0x44069d92 196614 upchina 666 52428800 1
0x44215529 229383 upchina 666 52428800 1
0x4460997a 262152 upchina 666 52428800 1
0x442dcc1c 294921 upchina 666 52428800 1
0x44690f13 327690 upchina 666 209715200 1
0x4493e540 425995 upchina 666 524288000 1
0x44240cd0 393228 upchina 666 524288000 1
0x00000072 458765 upchina 444 1 0
0x441b3ee1 491534 upchina 666 5242880 1

停止以下TCacheServer模块:

  • DCache.PStock.PStockMyGroup.DCache.PStockMyGroupTCacheServer1
  • DCache.PStock.PStockMyItem.DCache.PStockMyItemTCacheServer1
    20230223171802

删除共享内存:

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
2
3
4
5
mysql>
# 选择数据库
user test;
# 导入 sql
source test.sql;

恢复整个数据库的方法:

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主机备机

20230223174324


异常处理


Author: chacebai
Link: http://www.spyhex.com/2023/dcache/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.