备份参数
- –set-gtid-purged=OFF
If you don’t want to restore GTIDs, pass –set-gtid-purged=OFF.
- -n,–no-create-db
'CREATE DATABASE /!32312 IF NOT EXISTS/ db_name;'will not be put in the output.只导出数据,而不添加CREATE DATABASE 语句
- -add-drop-table
Add a ‘drop table’ before each create. 默认为打开状态,使用–skipadddroptable取消选项
- -ignore-table=table_name
Do not dump the specified table. To specify more than one table to ignore, use the directive multiple times, once for each table.
- -t -no-create-info
Don’t write table creation info.只导出数据,而不添加CREATE TABLE 语句
- -d -no-data
No row information.不导出任何数据,只导出数据库表结构
- -C -compress
- Use compression in server/client protocol.在客户端和服务器之间启用压缩传递所有信息
- -opt
等同于–add-drop-table, –add-locks,–create-options,–quick, –extended-insert, -lock-tables, -set-charest, -disable-keys该选项默认开启, 可以用–skip-opt禁用
- -quick -q
不缓冲查询,直接导出到标准输出。默认为打开状态,使用–skip-quick取消该选项
- –routines, -R
导出存储过程以及自定义函数
参数说明
- 备份时需要添加–set-gtid-purged=OFF参数
- n,–no-create-db,如把线上数据导入到142、76,测试服已创建数据库,可以添加此参数
- –add-drop-table,默认打开。从A点导入到B点,如果确定B点表的数据不能被drop,需要使用–skip-add-drop-table
参数
- –ignore-table=table_name,不导出某个表,如果dev库两张表数据非常大,线上到内网测试,-ignore-table=u_accessory,-ignore-table=u_mail,导入后的库没有这两张表
- -t -no-create-info 线上的数据直接导入内外测试,若还用以前的库和表,需要添加此参数
- -d 只导结构,如XXXX_charegecenter_dev、XXXX_log_dev库,只需要导结构
- -C, 远程mysqldump,需要加此参数,备份更快
- 使用–all-databases备份所有库,–databases备份指定库,默认会有create database和use database的语句。
With –all-databases or –databases, mysqldump writes CREATE DATABASE and USE statements prior to the dump output for each database.
常用的备份情景,注:所有数据都需要去从库、只读实例备份
- 从库备份各个游戏库的数据,关闭gtid,不缓冲查询,锁表,不drop tables等
mysqldump --opt -q --single-transaction --set-gtid-purged=OFF --databases
database_name > database_name.sql
- 线上数据导入到76、142,以便QA测试,关闭gtid,其他采用默认即可,如dev库,需要数
据;chargecenter_dev,log_dev只要结构;
mysqldump --set-gtid-purged=OFF XXX_dev > XXX_dev.sql
mysqldump --set-gtid-purged=OFF -d XXX_log_dev > XXX_log_dev.sql
mysqldump --set-gtid-purged=OFF -d XXX_chargecenter_dev > XXX_chargecente
r_dev.sql
- 线上俱乐部数据导出至76、142,以便QA测试,需要有存储过程
注:76、142的俱乐部,曹旭阳所使用的账号权限比root_yunwei低,所以需要检查club.sql文件中 create 与 procedure之间的definer='root_yunwei'@'%'
,存在则删除所有。显示如下:
可搜索routine 关键字
mysqldump -h rr-bp1r3u3p8r7lz52sr.mysql.rds.aliyuncs.com -u root_yunwei -
p -R club > club.sql
--
-- Dumping routines for database 'club'
--
/*!50003 DROP PROCEDURE IF EXISTS `CP_club_getPage` */;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client = utf8 */ ;
/*!50003 SET character_set_results = utf8 */ ;
/*!50003 SET collation_connection = utf8_general_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = '' */ ;
DELIMITER ;;
CREATE DEFINER=`root_yunwei`@`%` PROCEDURE `CP_club_getPage`(
IN_pageNum int
,IN_pageSize int
,out OUT_total int)
BEGIN
mysql权限标准
- 给予后台数据统计只应有select权限,在从库授权
授权,线下匹配公司内网即可,不需要授权%,如php_production@'172.16.0.0/255.255.0.0'
- 开发的账号:select,insert,update,delete,如需要drop表,运维需要审核;若某个表需要delete需要找到负责人确认。
如club_dict.dict_share需要delete,但俱乐部后台表示可能会影响线上数据。最后让PHP开发人员确认不需要delete权限。
- 开房游戏后台,涉及到更新数据,修改配置,指定库与表可以放开update,delete权限