Mysql/oceanbase数据导入导出方案

本文介绍了OceanBase数据库的导入导出方案,包括使用mysqldump命令的语法和注意事项,select重定向导出的方法,以及命令行导入数据的source命令使用。强调了禁止在生产环境中使用mysqldump因可能影响系统运行,并推荐使用DATAX工具处理大批量数据的导入导出。

一.命令行方式

OceanBase数据库为集群部署,数据库登录方式为通过网络连接远程登录,禁止将脚本、数据文件上传到集群服务器,禁止将数据导出到集群服务器本地。

命令行方式仅用于表结构和较小数据量的导出,大批量数据的导入导出请使用DATAX工具。

由于mysqldump命令会对表加锁,影响生产系统的正常运行,生产环境严禁使用mysqldump命令。

  1. mysqldump 导出
  • 语法格式
mysqldump -h xxx  -P3306 -u xxx -p xxx --skip-triggers database1 table1 > /home/.../x.sql
  • 参数说明

-h 源数据库IP

-P 源数据库端口

-u 源数据库账号

-p 源数据库账号对应的密码

-d 仅导出表结构不导出数据

-t 仅导出数据不导出表结构

--force 在导出过程中忽略出现的SQL错误,强制导出

--skip-triggers  忽略triggers,由于OceanBase目前不支持trigger语法,所以如果没有 --force 时必须要加上该选项,否则无法导出

--where 对导出数据添加where条件

--skip-extended-insert 导出语句为多条INSERT格式,否则为INSERT INTO table VALUES(...),(...),(...)格式

--ignore-table 不导出指定表,--ignore-table=database.table1

--single-transaction 在开启dump时会创建快照,保持数据一致性

其他参数参考:https://dev.mysql.com/doc/refman/5.6/en/mysqldump.html

2 . select重定向导出

  •  重要说明

select重定向输出只能导出查询结果的文本,如果需要导出sql脚本以供导入使用,请使用musqldump命令。

  • 语法格式

mysql -h xxx -P3306 -u xxx -p xxx -D xxx -e "select * from table;" > /home/.../x.txt
  • 参数说明

-h 源数据库IP

-P 源数据库端口

-u 源数据库账号

-p 源数据库账号对应的密码

-D 源数据库名

-e 导出结果带表头

-Ne 导出结果不带表头

  • 执行sql脚本导出

如果查询语句较为复杂,可以写在sql脚本里执行,语法格式如下:

mysql -h xxx -P3306 -u xxx -p xxx -D xxx < /xxx/x.sql > /home/.../x.txt

上述语句导出结果带表头,如果不需要带表头,要加上-N参数

3. 命令行导入

  • source命令

连接数据库:

mysql -h xxx -P3306 -u xxx -D xxx -p xxx

使用source命令执行本地sql脚本

source /home/.../data.sql

连接时执行

mysql -h xxx -P3306 -u xxx -D xxx -p xxx < /home/.../data.sql

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值