27.MySQL备份与恢复
27.备份与恢复
27.1 备份/恢复策略
考虑因素:
备份表的存储引擎(事务性or非事务性);
全备份or增量备份
用复制做异地备份
定期备份,考虑恢复时间
确保mysql打开log-bin,有了BINLOG,Mysql才可以在必要的时候做完整恢复,或基于时间点的恢复,或基于位置的恢复
经常做备份恢复测试,确保备份的有效性。
27.2 逻辑备份和恢复
优点:对于各种存储引擎都可以用同样的方法来备份。
缺点:速度慢,不适合比较大的数据库。
27.2.1 备份
将数据库中的数据备份为一个文本文件,备份的文件可以被查看和编辑。
备份工具:mysqldump
备份方式:
备份指定的表:mysqldump [options] db_name [tables] > table_name.sql
备份指定的库:mysqldump [options] db_name > db_name.sql
备份所有的库:mysqldump [options] --all-database > all.sql
备份所有的库语法:
mysqldump -u root -proot --all > C:\db_file\all.sql ???
备份scott库语法:
mysqldump -u root -proot scott > C:\db_file\scott.sql
备份scott库和world库语法:
mysqldump -u root -proot ---database scott world > C:\db_file\scott_world.sql ???
备份scott库下的dept表语法:
mysqldump -u root -proot scott dept > C:\db_file\dept.sql
备份scott库下的dept表和emp表语法:
mysqldump -u root -proot scott dept emp > C:\db_file\dept_emp.sql
例子:
-- 测试
mysqldump -h 192.168.7.245 -P 25006 -u root -puniGroup-321 zgai_db company > E:\db_file\company.sql
mysqldump -h 192.168.7.245 -P 25006 -u root -puniGroup-321 zgai_db LC_MainSHListNew > E:\db_file\LC_MainSHListNew.sql
-- 正式
mysqldump -h 192.168.7.245 -P 25006 -u root -puniGroup-321 zgai_db AI_company_info AI_com_id AI_conpany_augment AI_const AI_leader_info AI_leader_info_old AI_pes_id AI_shareholder_info AI_shareholder_j_info AI_shareholder_p AI_shareholder_p_info AI_trade_date > E:\db_file\AI.sql
mysqldump -h 192.168.7.245 -P 25006 -u root -puniGroup-321 zgai_db company company_A_stock company_shareholder company_S_temp fundp_S_temp fund_product fund_product_shareholder person person_leader person_shareholder person_S_temp > E:\db_file\KG_node.sql
mysqldump -h 192.168.7.245 -P 25006 -u root -puniGroup-321 zgai_db shareholding shareholding_company_temp shareholding_person_temp shareholding_fundp_temp Tenure Tenure_temp > E:\db_file\KG_relation.sql
mysqldump -h 192.168.7.245 -P 25006 -u root -puniGroup-321 zgai_db today_all area_classified user_info search_log > E:\db_file\Wangqingxia.sql
mysqldump -h 192.168.7.245 -P 25006 -u root -puniGroup-321 zgai_db com_mainfinaindexnas_temp COM_QMainFinaDataNAS > E:\db_file\Liubowen.sql
mysqldump -h 192.168.7.245 -P 25006 -u root -puniGroup-321 zgai_db EPS_PETTM > E:\db_file\Zhangyanchao.sql
mysqldump -h 192.168.7.245 -P 25006 -u root -puniGroup-321 zgai_db error_log execute_log jydb_Incremental map_jy_hk SecuMain > E:\db_file\Common.sql
mysqldump -h 192.168.7.245 -P 25006 -u root -puniGroup-321 zgai_db LC_MainSHListNew > E:\db_file\LC_MainSHListNew.sql
mysqldump -h 192.168.7.245 -P 25006 -u root -puniGroup-321 zgai_db NI_NewsInfo > E:\db_file\NI_NewsInfo.sql
mysqldump -h 192.168.7.245 -P 25006 -u root -puniGroup-321 zgai_db LC_TextAnnounce > E:\db_file\LC_TextAnnounce.sql
导出选项设置:
--extended-insert 默认,使用批量导入,每行1M
--skip-extended-insert 使用单行导入
系统参数
show VARIABLES like '%autocommit%'; --自动提交设置
27.2.2 完全恢复
将备份文件作为输入执行即可。
mysql [options] db_name < backfile
例子:
-- 测试
mysql -h stage-mysql.c5immry9azen.rds.cn-north-1.amazonaws.com.cn -P 3306 -u stageprisvq7zv5l -paeP5high70fd3lgc --default-character-set=utf8 zgai_db < E:\db_file\company.sql
-- 正式
mysql -h stage-mysql.c5immry9azen.rds.cn-north-1.amazonaws.com.cn -P 3306 -u stageprisvq7zv5l -paeP5high70fd3lgc --default-character-set=utf8 zgai_db < E:\db_file\AI.sql
mysql -h stage-mysql.c5immry9azen.rds.cn-north-1.amazonaws.com.cn -P 3306 -u stageprisvq7zv5l -paeP5high70fd3lgc --default-character-set=utf8 zgai_db < E:\db_file\KG_node.sql
mysql -h stage-mysql.c5immry9azen.rds.cn-north-1.amazonaws.com.cn -P 3306 -u stageprisvq7zv5l -paeP5high70fd3lgc --default-character-set=utf8 zgai_db < E:\db_file\KG_relation.sql
mysql -h stage-mysql.c5immry9azen.rds.cn-north-1.amazonaws.com.cn -P 3306 -u stageprisvq7zv5l -paeP5high70fd3lgc --default-character-set=utf8 zgai_db < E:\db_file\Wangqingxia.sql
mysql -h stage-mysql.c5immry9azen.rds.cn-north-1.amazonaws.com.cn -P 3306 -u stageprisvq7zv5l -paeP5high70fd3lgc --default-character-set=utf8 zgai_db < E:\db_file\Liubowen.sql
mysql -h stage-mysql.c5immry9azen.rds.cn-north-1.amazonaws.com.cn -P 3306 -u stageprisvq7zv5l -paeP5high70fd3lgc --default-character-set=utf8 zgai_db < E:\db_file\Zhangyanchao.sql
mysql -h stage-mysql.c5immry9azen.rds.cn-north-1.amazonaws.com.cn -P 3306 -u stageprisvq7zv5l -paeP5high70fd3lgc --default-character-set=utf8 zgai_db < E:\db_file\Common.sql
mysql -h stage-mysql.c5immry9azen.rds.cn-north-1.amazonaws.com.cn -P 3306 -u stageprisvq7zv5l -paeP5high70fd3lgc --default-character-set=utf8 zgai_db < E:\db_file\LC_MainSHListNew.sql
mysql -h stage-mysql.c5immry9azen.rds.cn-north-1.amazonaws.com.cn -P 3306 -u stageprisvq7zv5l -paeP5high70fd3lgc --default-character-set=utf8 zgai_db < E:\db_file\NI_NewsInfo.sql
mysql -h stage-mysql.c5immry9azen.rds.cn-north-1.amazonaws.com.cn -P 3306 -u stageprisvq7zv5l -paeP5high70fd3lgc --default-character-set=utf8 zgai_db < E:\db_file\LC_TextAnnounce.sql
增加字符集设置可以减少导入过程中的报错。
导入相关系统参数如下:
max_allowed_packet
mysql根据max_allowed_packet参数会限制server接受的数据包大小,有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败。
slave_max_allowed_packet
这个新参数将在5.1.64, 5.5.26和5.6.6版本里生效,为从服务器(IO线程)设定一个和max_allowed_packet不同的限制 . 现在从服务器端最大的数据包大小由这个参数决定,而不是max_allowed_packet.
目的是为了缓解复制大的read_buffer_size是被中断的BUG。这个BUG没有被修复,但是现在有了一个官方解决方案,使用一个新的配置参数去缓解这个问题。
net_buffer_length
每个客户端连接时,用于维持连接缓冲,初始分配预设值,在有需要时,则会自动扩大到max_allowed_packet大小,然后在回收预设的net_buffer_length大小 最小1k 最大1m默认16k
Mysqldump时每个extended insert行长度不能超过net-buffer-length的值。
注意:
备份文件恢复后还需要恢复备份后执行的日志文件(binlog)。
mysqlbinlog binlog-file | mysql -u root -p***
完整备份恢复例子:
0)启用BINLOG
set gloable log-bin=1;
1)备份数据库
mysqldump -uroot-ppassword -l -F test>test.dmp
-l选项指给所有表增加读锁。
-F选项指新生成一个二进制日志文件。
2)插入新数据
备份完成后插入新的数据
insert into ...,
然后模拟数据库故障,数据文件损坏。
3)恢复数据库
mysql -uroot -ppassword test<test.dmp
4)恢复BINLOG
mysqlbinlog localhost-bin.000xxx | mysql -uroot -ppassword test
27.2.3 基于时间点恢复
不完全恢复指跳过部分语句(误操作语句)的恢复。
不完全恢复分为基于时间点恢复和基于位置恢复两种。
例子:跳过10点整1分钟的SQL语句
mysqlbinlog --stop-date="2019-01-01 10:00:00" localhost-bin.000xxx | mysql -uroot -ppassword test
mysqlbinlog --start-date="2019-01-01 10:01:00" localhost-bin.000xxx | mysql -uroot -ppassword test
27.2.4 基于位置恢复
将某个时间段内的binlog转储为文本文件:
mysqlbinlog --start-date="2019-01-01 10:00:00" --stop-date="2019-01-01 10:05:00" localhost-bin.000xxx > restore.sql
找到误操作语句前后的position,分别按照前后position恢复。
mysqlbinlog --stop-position=123456 localhost-bin.000xxx | mysql -uroot -ppassword test
mysqlbinlog --start-position=123460 localhost-bin.000xxx | mysql -uroot -ppassword test
27.3 物理备份和恢复
物理备份分为冷备份和热备份。
物理备份基于文件拷贝,优点是速度快,缺点是不同存储引擎方法不同。
27.3.1 冷备份
冷备份指停掉数据库服务,拷贝数据文件和日志文件到备份目录下。
冷备份适用于InnoDB引擎和MyISAM引擎。
冷备份优点是速度快,缺点是停数据库。
冷备份恢复时也需要停掉数据库服务,用备份文件覆盖数据文件和日志文件,再启动数据库并恢复上次备份后的binlog。
27.3.2 热备份
热备份指在不停止数据库服务时拷贝数据文件。
1.热备份MyISAM
给需要备份的表加读锁,再拷贝数据文件到备份目录下。
1.1 使用mysqlhotcopy工具
#>mysqlhotcopy db_name [/path/to/new_directory]
1.2 手动锁表+copy
mysql>flush tables for read;
#>cp 数据文件 [/path/to/new_directory]
2.热备份InnoDB
ibbackup工具(收费,免费使用1个月),
2.1 备份步骤如下:
参照my.cnf编辑backup-my.cnf,参数包括:
datadir=/home/mysql/data datadir=/home/mysql/backup
innodb_data_home_dir=/home/mysql/data innodb_data_home_dir=/home/mysql/backup
innodb_log_group_home_dir=/home/mysql/data innodb_log_group_home_dir=/home/mysql/backup
备份命令:ibbackup my.cnf backup-my.cnf 需要保证备份目录下没有同名的文件。
备份目录下生成了所有的数据文件和日志文件。
生成的日志文件中记录了备份过程中数据库的操作,用于保证恢复的完整性和一致性。
2.2 恢复步骤如下:
进行日志重做
ibbackup --apply-log backup-my.cnf
恢复后重启数据库服务
./bin/mysqld_saft --defaults-file=backup-my.cnf &
再用binlog恢复备份点到故障点的数据
mysqlbinlog localhost-bin.000xxx | mysql -uroot -ppassword test
3.innobackupex工具备份恢复原理
3.1 全量备份
首先开启一个后台检测进程,实施检测mysql redo的变化,发现有redo写入时,将redo同时写入xtrabackup_log中;
复制InnoDB的数据文件和系统表空间文件ibdata1;
复制结束后增加读锁防止执行DDL操作,执行flush tables with read lock;
复制.frm、.MYI、.MYD等文件;
获取binlog的位置;
释放锁,unlock tables;
停止xtrabackup_log。
3.2 全量恢复
用备份文件覆盖数据文件,并执行xtrabackup_log文件。
3.3 增量备份
增量备份即只拷贝有变更的数据块,通过页上的LSN和xtrabackup_checkpoint中给定的LSN比较,确定块是否有更新。
全量备份第二步时(复制InnoDB的数据文件和系统表空间文件ibdata1;)只拷贝有变更的块。
3.4 增量恢复
恢复全量数据,恢复增量数据,恢复xtrabackup_log,恢复binlog,回滚未提交的数据。
4.innobackupex工具备份恢复示例
4.1 innobackupex下载安装
从http://www.percona.com下载和安装Percona XtraBackup软件:
wget -c http://www.percona.com/redir/downloads/XtraBackup-2.1.2/binary/Linux/x86_64/percona-xtrabackup-2.1.2-611.tar.gz
tar xvzf percona-xtrabackup-2.1.2-611.tar.gz
cd percona-xtrabackup-2.1.2
mv percona-xtrabackup-2.1.2 /usr/local/xtrabackup
export PATH=/usr/local/xtrabackup/bin/:$PATH
4.2 全量备份及恢复
创建备份用户并授权
mysql> create user 'backup'@'%' identified by '123456';
mysql> grant reload,lock tables,replication client,create tablespace,super on *.* to 'backup'@'%';
规划好备份路径为mkdir -p /data/backup/hotbackup/
创建innobackupex的配置文件/tmp/my.cnf,内容如下:
[mysqld]
datadir="/home/mysql_test/mysqlhome/data"
innodb_data_home_dir="/home/mysql_test/mysqlhome/data1"
innodb_data_file_path="ibdata1:10M:autoextend"
innodb_log_group_home_dir="/home/mysql_test/mysqlhome/data"
innodb_log_files_in_group=2
innodb_log_file_size=536870912
创建测试表
mysql> create table test(id int auto_increment not null primary key,name varchar(20));
mysql> insert into test (name) values ('test1');
mysql> insert into test (name) values ('test2');
mysql> insert into test (name) values ('test3');
mysql> insert into test (name) values ('test4');
进行全量备份
innobackupex --user=backup --password=123456 --socket=/tmp/mysql_test.sock --defaults-file=/tmp/my.cnf /data/backup/hotbackup/full --no-timestamp
恢复全量备份
innobackupex --apply-log --use-memory=20G /data/backup/hotbackup/full
恢复备份到MySQL的数据文件目录:先关闭MySQL,重命名原数据文件目录,再创建新的数据文件目录,将备份数据复制到新的目录下,授权,启动MySQL。
mysqladmin -S /tmp/mysql_test.sock shut
mv /home/mysql_test/mysqlhome/data /home/mysql_test/mysqlhome/data_bak
mkdir /home/mysql_test/mysqlhome/data
innobackupex --defaults-file=/tmp/my.cnf --copy-back --rsync /data/backup/hotbackup/full/
chown -R mysql:test:mysql_test /home/mysql_test/mysqlhome/data
cd /home/mysql_test/mysqlhome
./bin/mysql_safe -user=mysql &
检验恢复后数据库的一致性,即通过test表的数据检查:
mysql> select * from test;
4.3 增量备份
第一次增量备份是基于全备的,之后的增量备份基于上一次的增量备份。
先进行一次全量备份:
innobackupex --user=backup --password=123456 --socket=/tmp/mysql_test.sock --defaults-file=/tmp/my.cnf /data/backup/hotbackup/full --no-timestamp
增加数据
mysql> insert into test (name) values ('test5');
mysql> insert into test (name) values ('test6');
第一次增量备份基于全备
innobackupex --user=backup --password=123456 --socket=/tmp/mysql_test.sock --defaults-file=/tmp/my.cnf
--incremental /data/backup/hotbackup/incremental_1 --incremental-basedir=/data/backup/hotbackup/full --no-timestamp --parallel=2
再增加数据
mysql> insert into test (name) values ('test7');
mysql> insert into test (name) values ('test8');
之后的增量备份基于上一次的增量备份
innobackupex --user=backup --password=123456 --socket=/tmp/mysql_test.sock --defaults-file=/tmp/my.cnf
--incremental /data/backup/hotbackup/incremental_2 --incremental-basedir=/data/backup/hotbackup/incremental_1 --no-timestamp --parallel=2
4.4 增量备份恢复
恢复基础备份,加--redo-only选项
innobackupex --apply-log --redo-only --use-memory=20G /data/backup/hotbackup/full
--redo-only指只应用xtrabackup日志中已经提交的事务数据,不回滚还未提交的数据
将增量备份应用到基础备份,加--redo-only选项
innobackupex --apply-log --redo-only --use-memory=20G /data/backup/hotbackup/full --incremental-dir=/data/backup/hotbackup/incremental_1/
将最后一个增量备份应用到基础备份,不加--redo-only选项
innobackupex --apply-log --use-memory=20G /data/backup/hotbackup/full --incremental-dir=/data/backup/hotbackup/incremental_2/
将合并后的基础备份做一次apply操作,并回滚未提交的数据:
innobackupex --apply-log --use-memory=20G /data/backup/hotbackup/full
把恢复完成的备份复制到数据文件目录中,赋权并启动MySQL
mysqladmin -S /tmp/mysql_test.sock shut
mv /home/mysql_test/mysqlhome/data /home/mysql_test/mysqlhome/data_bak
mkdir /home/mysql_test/mysqlhome/data
innobackupex --defaults-file=/tmp/my.cnf --copy-back --rsync /data/backup/hotbackup/full/
chown -R mysql:test:mysql_test /home/mysql_test/mysqlhome/data
cd /home/mysql_test/mysqlhome
./bin/mysql_safe -user=mysql &
验证数据
mysql> select * from test;
4.5 不完全恢复
不完全恢复指基于位置或时间点分两次恢复,以跳过错误操作的位置或时间点。
查看备份文件
cd /data/backup/hotbackup/full/yyyymmdd
ls -l
从xtrabackup_binlog_info中查看备份结束时刻的binlog文件名和位置。
cat xtrabackup_binlog_info
查看当前数据库的binlog的文件名和位置。
mysql> show master logs;
从全备中恢复数据库,恢复全备;再从热备结束时刻binlog的位置开始,恢复到误操作时刻之前的binlog。
mysqlbinlog --start-position="热备结束时刻binlog的位置" --stop-datetime="误操作时刻" 所涉及的binlog文件名(多个文件用空格分隔) | mysql -uroot -p******
跳过故障点后,应用之后的所有binlog文件,完成恢复操作。
mysqlbinlog --start-datetime="误操作后的时刻" 所涉及的binlog文件名(多个文件用空格分隔) | mysql -uroot -p******
4.6 克隆slave
克隆应用于在线添加从库的业务场景。
--slave-info选项会将Master的binlog的文件名和偏移位置保存到xtrabackup_slave_info文件中。
--safe-slave-backup选项为了保证复制的一致性,会暂停Slave的SQL线程,直到没有打开的临时表的时候开始备份,待备份结束后再启动SQL线程。
在备机上进行备份:
innobackupex --user=backup --password=123456 --socket=/tmp/mysql_test.sock --defaults-file=/tmp/my.cnf
--slave-info --safe-slave-backup /data/backup/hotbackup/cloneslave --no-timestamp --parallel=2
查看生成的文件:
ls -lrt /data/backup/hotbackup/cloneslave
查看xtrabackup_slave_info文件内容,即新备机开启复制的change master语句:
cat /data/backup/hotbackup/cloneslave/xtrabackup_slave_info
在备机上进行还原:
innobackupex --apply-log --redo-only --use-memory=20G /data/backup/hotbackup/cloneslave
将还原后的文件复制到新备机
rsync -avprP -e ssh /data/backup/hotbackup/cloneslave newslave:/home/mysql_test/mysqlhome/data
在主库上创建对新备机的复制用户,并授权;
mysql> create user
mysql> grant
在新备机上拷贝备机的my.cnf文件,并修改server-id参数
scp slave:/etc/my.cnf /etc/my.cnf
vi /etc/my.cnf
skip-slave-start
server-id=3
log-slave-updates=1
在新备机上运行xtrabackup_slave_info文件中的change master语句:
mysql> change master to
启动新备机的MySQL,并检查复制线程是否正常(I/O,SQL):
mysql> start slave;
27.4 表的导入导出
27.4.1 导出
将表中数据导出为某些符号分隔的纯文本数据,而不是SQL语句。
纯文本数据优点:节省空间,加载速度快(是SQL的20倍),可用于execl显示。
1.select ... into outfile
语法:
SELECT * FROM tab_name INTO OUTFILE file_name [option];
option选项包括(char为单个字符,string可以是多个字符的组合):
fields terminated by 'string' --指定string为字段分隔符,默认为制表符'\t'
fields [optionally] enclosed by 'char' --字段引用符,如果加optionally选项则只用在char、varchar、text等字符类型上。默认不使用引用符。
fields escaped by 'char' --转义字符,默认'\',
lines starting by 'string' --指定string为每行开始符,默认''
lines terminated by 'string' --指定string为行结束符,默认'\n'
例子1:字段分隔符',' 字段引用符为'"' --结果是所有字段(包括数值类型的字段)的值都被双引号括起来。
mysql>select * from emp into outfile '/tmp/emp.txt' fields terminated by ',' enclosed by '"';
在mysql客户端执行操作系统命令的方法:system+操作系统命令
mysql>system cat /tmp/emp.txt
例子2:字段分隔符',' 字段引用符'"'只引用文本类型需要增加optionally子选项。
mysql>select * from emp into outfile '/tmp/emp.txt' fields terminated by ',' optionally enclosed by '"';
MySQL导出数据中转义字符本身、字段分隔符、记录分隔符将被转义:
当导出命令中包含字段引用符时,数据中含有的转义字符本身和字段引用符的字符会被自动转义;
当导出命令中不包含字段引用符时,数据中含有的转义字符本身和字段分隔符的字符会被自动转义。
注意:
select ... into outfile ...产生的输出文件不能重名,新文件不会覆盖原来文件,即不会生成新文件。
2.mysqldump
语法:
mysqldump -u 用户名 -T 目标文件 db_name tab_name [option]
option选项包括:
--fields-terminated-by=name --字段分隔符
--fields-enclosed-by=name --字段引用符
--fields-optionally-enclosed-by=name --文本类型的字段引用符
--fields-escaped-by=name --转义字符
--lines-terminated-by=name --记录结束符
例子:
# mysqldump -uroot -T /tmp test emp --fields-terminated-by ',' --fields-optionally-enclosed-by '"'
该命令生成了emp.txt(文本数据)和emp.sql(建表语句)
# more /tmp/emp.txt
# more /tmp/emp.sql
总结:mysqldump工具实际就是调用了select ... into outfile ...语句。
27.4.2 导入
将纯文本数据导入到数据库表中。
1.load data infile
语法:
mysql> load data [local] infile 'file_name' into table tab_name [option];
option选项包括(char为单个字符,string可以是多个字符的组合):
fields terminated by 'string' --指定string为字段分隔符,默认为制表符'\t'
fields [optionally] enclosed by 'char' --字段引用符,如果加optionally选项则只用在char、varchar、text等字符类型上。默认不使用引用符。
fields escaped by 'char' --转义字符,默认'\',
lines starting by 'string' --指定string为每行开始符,默认''
lines terminated by 'string' --指定string为行结束符,默认'\n'
ignore number lines --忽略文件的前number行数据
(col_name_or_user_var,...) --按照列出的字段顺序和字段数量加载数据
set col_name=expr,... --将列做一定的数值转换后再加载
例子1:
mysql> load data infile '/tmp/emp.txt' into table emp fields terminated by ',' enclosed by '"';
例子2:不加载前2行
mysql> load data infile '/tmp/emp.txt' into table emp fields terminated by ',' enclosed by '"' ignore 2 lines;
例子3:按指定列顺序加载
mysql> load data infile '/tmp/emp.txt' into table emp fields terminated by ',' enclosed by '"' ignore 2 lines (id,content,name);
例子4:只加载部分列
mysql> load data infile '/tmp/emp.txt' into table emp fields terminated by ',' enclosed by '"' ignore 2 lines (id);
例子5:加载时对列进行运算
mysql> load data infile '/tmp/emp.txt' into table emp fields terminated by ',' enclosed by '"' set id=id+10;
2.mysqlimport
语法:
# mysqlimport -uroot -p*** [local] db_name file_name [option]
option选项包括:
--fields-terminated-by=name --字段分隔符
--fields-enclosed-by=name --字段引用符
--fields-optionally-enclosed-by=name --文本类型的字段引用符
--fields-escaped-by=name --转义字符
--lines-terminated-by=name --记录结束符
--ignore-lines=number --忽略前number行
例子:
# mysqlimport -uroot -proot test /tmp/emp.txt --fields-terminated-by=',' --fields-enclosed-by='"'
注意:
不同操作系统平台行结尾符不同,Windows平台设置lines-terminated-by='\r\n',Linux平台设置lines-terminated-by='\n',IOS平台lines-terminated-by='\r'。
27.5 小结
27.MySQL备份与恢复的更多相关文章
- ch5 MySQL 备份与恢复
第 5 章 MySQL 备份与恢复 前言 数据库的备份与恢复一直都是 DBA 工作中最为重要的部分之一,也是基本工作之一.任何正式环境的数据库都必须有完整的备份计划和恢复测试,本章内容将主要介绍 My ...
- mysql常用操作 mysql备份与恢复
先登录mysql ==>mysql -uroot -p 查看数据库的版本 select version(); 查看有哪些库 show datases; 查看当前处于哪个库 select da ...
- 第 5 章 MySQL 备份与恢复
第 5 章 MySQL 备份与恢复 前言 数据库的备份与恢复一直都是 DBA 工作中最为重要的部分之一,也是基本工作之一.任何正式环境的数据库都必须有完整的备份计划和恢复测试,本章内容将主要介绍 My ...
- centos LAMP第四部分mysql操作 忘记root密码 skip-innodb 配置慢查询日志 mysql常用操作 mysql常用操作 mysql备份与恢复 第二十二节课
centos LAMP第四部分mysql操作 忘记root密码 skip-innodb 配置慢查询日志 mysql常用操作 mysql常用操作 mysql备份与恢复 第二十二节课 mysq ...
- Data Base mysql备份与恢复
mysql 备份与恢复 为什么要备份: 由于系统使用到了MySQL 数 据库,所以每天的工作,就设计到了MySQL数据库的备份问题.但如果每天手工来做MySQL数据库的定时备份,工作量不说,时间还不 ...
- Mysql备份与恢复(2)---逻辑备份
数据库及时备份可以帮助我们在数据库出现异常宕机时及时的使用备份数据进行恢复工作,将因为数据库宕机产生的影响降低到最小.上一篇针对使用xtrabackup工具进行物理备份和数据恢复做了一个详细讲解,本篇 ...
- MySQL备份与恢复-innobackupex
:上一片myloder搞崩溃,为什么百度的博文都是抄袭一模一样的,哎烦! 这一片文章我们来介绍物理备份工具xtracebackup! 首先是安装可以percona官网下载安装,下载rpm包直接yum安 ...
- mysql备份与恢复-xtracebackup
因为percona打算放弃使用innobackupex备份工具,因此我们这里也说明一下innobackupex的兄弟工具xtraceback工具的使用 这个工具的安装可以参考上面的一些博文,上面详细说 ...
- MySQL备份与恢复-mydumper
上一片博文中,我们说明了mysqldump的备份与恢复.因为mysqldump是单线程导出,单线程恢复的,因此备份与恢复的时间比较长! 首先来安装mydumper: 下载源码:https://gith ...
随机推荐
- 在iOS上使用ffmpeg播放视频
国外靠谱的有这几个:1.Mooncatventures group https://github.com/mooncatventures-group 2.KxMoviePlayer (use Open ...
- MVC模式浅谈
MVC模式浅谈 一.MVC模式概述 模型-视图-控制器(MVC模式)是一种非常经典的软件架构模式,在UI框架和UI设计思路中扮演着非常重要的角色.从设计模式的角度来看,MVC模式是 一种复合模式,它将 ...
- php yii 命令
php yii 敲回车 This is Yii version 2.0.11. The following commands are available: - asset Allows you to ...
- js-for (var in )遍历顺序乱了
存放的key 为如下: “01”,“02”,“03”,········“10”,“11”,“12” 遍历之后“10”,“11”,“12”, “01”,“02”,“03”,········ 解决办法:把 ...
- 微信小程序开发攻略
首先,需要明确的一点是,小程序开发就是前端开发的一个小分支. 其次,小程序开发框架是一个精简版的React ,并且开发比较简单 . 第一步 获取AppId 小程序注册入口http://https:// ...
- excel表格输入思想
1.创建工作簿 SXSSFWorkbook wb = new SXSSFWorkbook(); //#设置单元格的垂直居中,水平居中,字体颜色 2.创建sheet Sheet sheet = wb ...
- metasploit framework(十三):FTP扫描
设置目标IP 查看是否支持匿名登录 获取到版本信息 使用ftp登录模块 搜索刚才获取到的版本信息,找到一个针对这个版本的漏洞利用代码
- Java 16进制转10进制
牛课网上的题目 char '1'和 int 1给我好好上了一课 package suanfa; import java.util.*; public class Main{ public static ...
- Python 豆瓣日记爬取
无聊写了个豆瓣日记的小爬虫,requests+bs4. cookies_src可填可不填,主要是为了爬取仅自己可见的日记. url填写的是日记页面,即https://www.douban.com/pe ...
- idea使用maven打包jar包
1.在pom.xml中加入以下内容: <?xml version="1.0" encoding="UTF-8"?> <project xmln ...