mysql数据库的导入,有两种方法:
先导出数据库sql脚本,再导入;
直接拷贝数据库目录和文件.
在不同操作系统或mysql版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生.
所以一般推荐用sql脚本形式导入.下面分别介绍两种方法.
方法一
sql脚本形式
操作步骤如下:
导出sql脚本
在原数据库服务器上,可以用phpmyadmin工具,或者mysqldump命令行,导出sql脚本.
用phpmyadmin工具
导出选项中,选择导出"结构"和"数据",不要添加"drop
database"和"drop
table"选项.
选中"另存为文件"选项,如果数据比较多,可以选中"gzipped"选项.
将导出的sql文件保存下来.
用mysqldump命令行
命令格式
mysqldump
-u用户名
-p
数据库名
数据库名.sql
范例:
-uroot
abc
abc.sql
(导出数据库abc到abc.sql文件)
提示输入密码时,输入该数据库用户名的密码.
创建空的数据库
通过主控界面/控制面板,创建一个数据库.假设数据库名为abc,数据库全权用户为abc_f.
将sql脚本导入执行
同样是两种方法,一种用phpmyadmin(mysql数据库管理)工具,或者mysql命令行.
从控制面板,选择创建的空数据库,点"管理",进入管理工具页面.
注意:phpmyadmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件
gzip使用方法:
#
gzip
xxxxx.sql
得到
xxxxx.sql.gz文件.
直接拷贝
如果数据库比较大,可以考虑用直接拷贝的方法,但不同版本和操作系统之间可能不兼容,要慎用.
准备原始文件
用tar打包为一个文件
创建空数据库
解压
在临时目录中解压,如:
cd
/tmp
tar
zxf
mydb.tar.gz
拷贝
将解压后的数据库文件拷贝到相关目录
mydb/
cp
*
/var/lib/mysql/mydb/
对于freebsd:
/var/db/mysql/mydb/
权限设置
chown
mysql:mysql
/var/lib/mysql/mydb/*
chmod
打字不易,如满意,望采纳.
首先,我们需要开启MySQL服务器的二进制日志功能,其实现方法有很多种,最常用的是在MySQL的配置文件的mysqld项中加入log-bin=[filepath]项;也可以使用mysqld –log-bin=[filepath]重新启动MySQL服务器.
第三,使用flush logs指令刷新创建新的二进制日志.可以通过mysqladmin flush logs或者flush logs语句实现.最方便有效的方法是将它做成批处理文件,然后让操作系统定期执行.
使用mysql *.sql进行完全备份的恢复.
同步业务库的数据到ODS层,之前一直是全量同步数据,主要考虑IO太大,耗时太长,重复拉取同样的数据,现在考虑增量同步的方式实现,同时对库表数据做分区.
增量同步主要分为两步,第一步,存量数据一次性同步;第二步,在存量数据的基础之上,做增量;后期的每一次同步都是增量同步.以下是具体同步方案:
用Sqoop同步表中全部数据到Hive表中;
a.根据hive中最大更新时间,用Sqoop提取更新时间为这个时间之后的增量数据;
①.)获取表的所有列,把datetime和timestamp类型,统一在java中映射成TIMESTAMP类型,脚本如下:
①.)创建增量同步的sqoop job,脚本如下:
a、从hive中获取表的最大更新时间
b、以上面获取的最大更新时间,作为起点,创建sqoop job,脚本如下:
c、创建sqoop job之后,就是执行job了,脚本如下:
具体参数详解,参考: