一、 数据库备份和恢复策略
a) 直接拷贝文件
直接将/usr/share/TSMIS/mysql/test 文件夹拷贝到其他地方。
mysqlhotcopy db_name /path/to/some/dir
只适合MyISAM表,实际上是复制表文件(.frm, ,MYI, .MYD)
缺点:会锁表。只能恢复到上一次备份的状态。
优点:速度快。45万条数据花了17s。
b) Mysqldump
i. mysqldump --tab=/path/to/some/dir --opt db_name
ii.
1. 开启二进制日志,重启服务。
在my.cnf中的mysqld段中,增加:
在相应目录下会产生mysql-bin.000001 mysql-bin.index文件。对这个数据进行update、insert、delete操作的时候,响应的操作就会被记录到mysql-bin.xxxxxx 文件中。
2. 使用mysqldump 备份的时候,加上 --flush-logs --delete-master-log 选项,备份之后,会删除以前的二进制日志文件。
3. 恢复的时候,需要先将mysqldump 备份的文件恢复。之后,使用mysqlbinlog 工具,将二进制日志转换成sql 重新导入。
mysqlbinlog hostname-bin.[0-9]* > test_bk.sql
优点:可以完全备份。
缺点:备份速度稍慢。45万条数据30s左右。日志占空间。
c) 通过程序进行同步
i. 创建一个备份数据库test_bak,定时执行一个任务,将test中的数据转存到test_bak中。当test出问题的时候,将test_bak中的数据重新转存到test中。
ii.
二、 数据库表结构整理
a) 将过车信息表合并,删除无用的表,删除无用的存储过程。
i. 删除brand、subbrand、uploadqueue相关表。
ii. 合并几表vehicleinfo, vehiclelicense, vehicletype, bodycolor, picture为ehicleinfo,删除其中的:colorname, 增加:colorcode
iii. 删除存储过程,只保留inserttrafficdata和deletehistorydata。
iv. 视图vehicle是否保留?
v. 其他的表:role相关的表也删除。
vi. 增加字典表,全局配置表,历史状态表,操作日志表。
b) 其他要修改的地方
c) 视频电警表整理问题
i.
10.67.51.151