精华内容
下载资源
问答
  • 数据库备份和还原

    2014-07-09 22:46:57
    数据库备份和还原
  • Mysql数据库备份和还原常用的命令是进行Mysql数据库备份和还原的关键,没有命令,什么都无从做起,更谈不上什么备份还原,只有给系统这个命令,让它去执行,才能完成Mysql数据库备份和还原的操作,下面就是操作的...

    Mysql数据库备份和还原常用的命令是进行Mysql数据库备份和还原的关键,没有命令,什么都无从做起,更谈不上什么备份还原,只有给系统这个命令,让它去执行,才能完成Mysql数据库备份和还原的操作,下面就是操作的常用命令。

    一、备份命令

    1、备份MySQL数据库的命令

    mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

    2、备份MySQL数据库为带删除表的格式

    备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

    mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql

    3、直接将MySQL数据库压缩备份

    mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz

    4、备份MySQL数据库某个(些)表

    mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

    5、同时备份多个MySQL数据库

    mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql

    6、仅仅备份数据库结构

    mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql

    7、备份服务器上所有数据库

    mysqldump –all-databases > allbackupfile.sql

    二、还原命令

    1、还原MySQL数据库的命令

    mysql -hhostname -uusername -ppassword databasename < backupfile.sql

    2、还原压缩的MySQL数据库

    gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

    3、将数据库转移到新服务器

    mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename

    总结:

    做好数据备份和还原,定好合适的备份策略,这是一个DBA所做事情的一小部分,万事开头难,就从现在开始吧!

    【编辑推荐】

    【责任编辑:迎迎 TEL:(010)68476606】

    点赞 0

    展开全文
  • MySQL数据库备份和还原以下方法前景必须是一台用yum源安装的mysql数据库没操作过的崭新的服务器*查看是否启用二进制日志:show master logs;/show binary logs;*创建一个日志文件专门存放二进制日志:mkdir /data/...

    MySQL数据库备份和还原

    以下方法前景必须是一台用yum源安装的mysql数据库没操作过的崭新的服务器

    *查看是否启用二进制日志:show master logs;/show binary logs;

    aaed1e84dc23b2e716ad5781a05aef80.png

    *创建一个日志文件专门存放二进制日志:mkdir /data/logbin

    *修改配置文件:vim /etc/my.cnf

    255e30896ef53f8c3013586ab6bc94c5.png

    *设置权限所有者和所属组:chown mysql.mysql /data/logbin/

    *重新启动mysql服务:systemctl restart mariadb

    *查看文件夹是否生成二进制文件:ll /data/logbin(上面是二进制文件,下面是索引)

    268323a5be6729034b7f23140e4ee1aa.png

    *再次查看二进制文件是否启动:show master logs;(默认大小245)|show master status;(position默认大小)

    975c8be7ffc894eb9a58c2aabf00482d.png

    f4b42885cfc962efbc753abf613626e5.png

    *刷新日志(也是创建日志):flush logs;

    52f04f0d033d7c217ac10f42b1b0c34f.png

    *清除指定的二进制日志:purge binary logs to '删除文件之前的位置';(删除之前的文件不包括本身)

    987cdc9f36aaeed3cffe84ec8c14d448.png

    *删除所有的二进制文件从新计数:reset master;

    36f13e2af6680c7b18074908d1abc146.png

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    冷备份

    *停止服务:systemctl stop mariadb;

    *查看目录:ls /var/lib/mysql/(mysql.sock文件不存在了)

    *压缩数据:tar Jcvf all.bak.tar.xz /var/lib/mysql(打包数据库)

    tar Jcvf logbin.tar.xz(打包二进制文件)

    /etc/my.cnf(直接拷贝)

    *创建一个目录存放压缩数据:mkdir backup

    mv all.bak.tar.xz logbin.tar.xz /backup/

    cp /etc/my.cnf /backup/

    *拷贝到另一台机器上:scp -r /backup/ 192.168.198.17:/data/(本机地址为192.168.198.7)

    *打开ip为192.168.198.17的服务器(该机器未安装过mysql),查看传送过来的文件:ls /data

    *yum安装数据库:yum install mariadb-server -y

    *查看数据库:ls /var/lib/mysql(该目录是空的)

    *覆盖配置文件:cp /data/backup/my.cnf  /etc/my.cnf -b(-b是备份)

    *查看备份的my.cnf文件:ll /etc/my.cnf(my.cnf~备份文件)

    *创建二进制文件,改变所有者和所属组:mkdri /data/logbin/  chown mysql.mysql /data/logbin/

    *解压二进制文件压缩包:tar -xvf /data/backup/logbin.tar.xz -C /data/logbin

    *进入目录查看:cd /data/logbin(这是这个目录不对)mv data/logbin/* .(把数据移出)rm -rf data(删除data目录)

    *解压mysql压缩包然后移动到/var/lib/mysql中:cd /data/backup/(进入) tar xvf all.bak.tar.xz(解压在当前目录) cd var/lib/mysql(进入) mv * /var/lib/mysql(移动全部数据到该目录)

    *启动数据库:systemctl start mariadb;(启动之后进入mysql查看即可)

    ----------------------------------------------------------------------------------------------------------------------------------------------------------

    mysqldump

    一、mysqldump [options] database [tables](备份一个数据库此法问题较多不推荐使用)

    *创建一个备份目录:mkdir /data/backup/

    *复制整个数据库成sql语句:mysqldump hellodb > /data/backup/hellodb.sql

    *删除该数据库:mysql -e 'drop database hellodb';

    *还原数据库得先创建该数据库:create database hello;(mysqldump恢复数据时不具有自动创建数据库的功能需要手工创建,创建的新数据库名字可以改变)

    *还原数据:mysql hello < /data/backup/hellodb.sql

    *进入数据库查看是否还原即可

    二、mysqldump [options] -B DB1[DB2 DB3...](备份部分数据库)

    *创建一个备份目录:mkdir /data/backup

    *备份数据库:mysqldump -B hello[后面可以跟多个数据库] > /data/backup/hello.sql

    *删除数据库:mysql -e 'drop database hello';

    *还原数据:mysql < /data/backup/hello.sql

    *进入数据库查看即可

    三、mysqldump [options] -A [options](备份全部数据库)

    *创建一个备份目录:mkdir /data/backup

    *备份数据库:mysqldump -A > /data/backup/all.sql

    *删除数据库

    *还原数据:mysql < /data/backup/all.sql

    *进入数据库查看即可

    e64cfab05f5058c6c201dbb531e41289.png

    104ec20719d3bfb4b10977d033af6ca8.png

    四、mysqldump --master-data[=#](二进制日志还原)

    *创建备份存放目录:mkdir /data/backup/

    *备份为注释的CHANGE MASTER TO语句:mysqldump -A --master-data=2 > /data/backup/all.sql

    *查看现在的二进制文件:mysql -e 'show master logs';

    *随便写一条sql语句即可

    *再次查看二进制文件会发现文件变大:mysql -e 'show master logs';

    *开始删库:rm -rf /var/lib/mysql/*(啥也没了)

    *重启数据库服务:systemctl restart mariadb(会重新生成mysql文件)

    *恢复数据库时禁止用户访问,在配置文件修改:vim /etc/my.cnf 添加:skip_networking 不允许网络连接或者skip_grant_tables跳过授权表只是服务器选项不是变量

    *临时关闭二进制文件不让他生效:show variables like 'sql_log_bin'默认是NO,set sql_log_bin=OFF即可

    *再次查看二进制文件:show master logs;发现他多生成出几个文件

    *我要还原图中数据即可(只是我自己),可以查看备份的文件得出依据从哪里开始还原

    742a730efee26711b818ac26eb613bf0.png

    *进入二进制文件目录备份丢失的数据,如下图所示

    94b0c29e722d8fac96e091d78eef2f78.png

    *导入还原数据:进入mysql输入source /data/backup/all.sql(先还原全部备份)source /data/backup/inc.sql(还原丢失数据)

    *进入数据库查看即可

    *恢复二进制数据记录:set sql_log_bin=on;

    五、恢复误删的表

    *创建数据备份的目录:mkdri /data/backup/

    *备份二进制数据:mysqldump -A --master-data=2 > /data/backup/all_`date +%F`.sql

    *随便写一条sql语句

    *删表:drop table students;

    *刷新日志,找出丢失的日志文件

    211ee0e1b171a801f9bd8bf4e4cf352d.png

    *刷新丢失的二进制文件:mysqlbinlog  --start-position=245 /data/logbin/mysql-bin.000005 > /data/backup/inc.sql

    *打开配置文件vim /data/backup/inc.sql,找到删除命令注销

    0a6fef25894a3ad5ec90a06f73a55f2d.png

    *删除数据库:rm -rf /var/bin/mysql/*

    *重启服务器:systemctl restart mariadb

    *进入数据库停止二进制服务:set sql_log_bin=off;

    *导入还原数据:进入mysql输入source /data/backup/all_2019_7_11.sql(先还原全部备份)source /data/backup/inc.sql(还原丢失数据)

    *查看数据:执行一条查询语句(即可成功)

    展开全文
  • MySQL数据库备份和还原的常用命令小结,学习mysql的朋友可以参考下备份MySQL数据库的命令mysqldump-hhostname-uusername-ppassworddatabasename>backupfile.sql备份MySQL数据库为带删除表的格式备份MySQL数据库为...

    MySQL数据库备份和还原的常用命令小结,学习mysql的朋友可以参考下

    备份MySQL数据库的命令mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

    备份MySQL数据库为带删除表的格式备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。mysqldump ---add-drop-table -uusername -ppassword databasename > backupfile.sql

    直接将MySQL数据库压缩备份mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz

    备份MySQL数据库某个(些)表mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

    同时备份多个MySQL数据库mysqldump -hhostname -uusername -ppassword --databases databasename1 databasename2 databasename3 > multibackupfile.sql

    仅仅备份数据库结构mysqldump --no-data --databases databasename1 databasename2 databasename3 > structurebackupfile.sql

    备份服务器上所有数据库mysqldump --all-databases  allbackupfile.sql

    还原MySQL数据库的命令mysql -hhostname -uusername -ppassword databasename 

    还原压缩的MySQL数据库gunzip 

    将数据库转移到新服务器mysqldump \-uusername \-ppassword databasename \| mysql \--host=*.*.*.\* \-C databasename

    压缩备份

    备份并用gzip压缩:mysqldump  | gzip > outputfile.sql.gz

    从gzip备份恢复:gunzip 

    备份并用bzip压缩:mysqldump  | bzip2 > outputfile.sql.bz2

    从bzip2备份恢复:bunzip2 

    展开全文
  • 数据库 备份和还原

    2018-08-02 15:36:24
    备份数据库mysqldump -hhostname -uusername -pmypwd ...还原数据库mysql -hhostname -uuser -pmypwd databasename &lt; /备份路径/文件名.sql 备份表 mysqldump -hhostname -uusername -pmypwd databas...

    备份数据库
    mysqldump -hhostname -uusername -pmypwd databasename > /备份路径/文件名.sql

    还原数据库
    mysql -hhostname -uuser -pmypwd databasename < /备份路径/文件名.sql

    备份表

    mysqldump -hhostname -uusername -pmypwd databasename table > /备份路径/文件名.sql

     

     

     

     

    展开全文
  • Thinkphp数据库备份和还原
  • 备份MySQL数据库的命令mysqldump-hhostname-uusername-ppassworddatabasename>backupfile.sql备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。mysqldump-–add-drop-...
  • ORCLE数据库备份和还原,适合初学者,练习复习用!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,362
精华内容 3,344
关键字:

数据库备份和还原