一.命令行方式
OceanBase数据库为集群部署,数据库登录方式为通过网络连接远程登录,禁止将脚本、数据文件上传到集群服务器,禁止将数据导出到集群服务器本地。
命令行方式仅用于表结构和较小数据量的导出,大批量数据的导入导出请使用DATAX工具。
由于mysqldump命令会对表加锁,影响生产系统的正常运行,生产环境严禁使用mysqldump命令。
- 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
本文介绍了OceanBase数据库的导入导出方案,包括使用mysqldump命令的语法和注意事项,select重定向导出的方法,以及命令行导入数据的source命令使用。强调了禁止在生产环境中使用mysqldump因可能影响系统运行,并推荐使用DATAX工具处理大批量数据的导入导出。

1万+

被折叠的 条评论
为什么被折叠?



