GBase 8s
备份恢复
问答
数据库内指定的表备份以及恢复脚本如何编写
发表于2024-06-25 16:48:59157次浏览7个评论
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【GBase版本】:8s
【操作系统】:linux
【CPU】:
【问题描述】*:如题,数据库内将指定表备份以及恢复脚本应该如何编写
评论
登录后才可以发表评论
9527发表于 2年前
GBase用户17261发表于 2年前
@9527:#!/bin/sh
dbname=$1
username=$2
password=$3
tablename=$4
filename=$5
tablename=${tablename//,/ }
if [ $dbname == "mysql" ]; then
/usr/local/mysql/bin/mysqldump -u${username} -p${password} kms ${tablename} > ${filename}.sql
elif [ $dbname == "oceanbase" ]; then
/root/.oceanbase-all-in-one/obclient/u01/obclient/bin/mysqldump -u${username} -p${password} kms ${tablename} > ${filename}.sql
能不能以类似上面的脚本进行备份以及恢复呢
dbname=$1
username=$2
password=$3
tablename=$4
filename=$5
tablename=${tablename//,/ }
if [ $dbname == "mysql" ]; then
/usr/local/mysql/bin/mysqldump -u${username} -p${password} kms ${tablename} > ${filename}.sql
elif [ $dbname == "oceanbase" ]; then
/root/.oceanbase-all-in-one/obclient/u01/obclient/bin/mysqldump -u${username} -p${password} kms ${tablename} > ${filename}.sql
能不能以类似上面的脚本进行备份以及恢复呢
wty发表于 2年前
导出可以用dbaccess执行SQL
unload to 文件 select * from tabname;
导入同样用dbaccess执行SQL
load from 文件 insert into tabname;
如果担心数据一致性问题,可以在导出之前先手动锁表
lock table tabname in share mode; (共享锁)
lock table tabname in exclusive mode; (排他锁)
导入导出完成之后解锁表
unlock table tabnale;
如果有CLOB/BLOB会存到导出文件之外的其他文件里,需要一起存起来
unload to 文件 select * from tabname;
导入同样用dbaccess执行SQL
load from 文件 insert into tabname;
如果担心数据一致性问题,可以在导出之前先手动锁表
lock table tabname in share mode; (共享锁)
lock table tabname in exclusive mode; (排他锁)
导入导出完成之后解锁表
unlock table tabnale;
如果有CLOB/BLOB会存到导出文件之外的其他文件里,需要一起存起来
GBase用户17261发表于 2年前
@wty:#!/bin/sh
dbname=$1
username=$2
password=$3
tablename=$4
filename=$5
tablename=${tablename//,/ }
if [ $dbname == "mysql" ]; then
/usr/local/mysql/bin/mysqldump -u${username} -p${password} kms ${tablename} > ${filename}.sql
elif [ $dbname == "oceanbase" ]; then
/root/.oceanbase-all-in-one/obclient/u01/obclient/bin/mysqldump -u${username} -p${password} kms ${tablename} > ${filename}.sql
能不能以类似上面的脚本进行备份以及恢复呢?
dbname=$1
username=$2
password=$3
tablename=$4
filename=$5
tablename=${tablename//,/ }
if [ $dbname == "mysql" ]; then
/usr/local/mysql/bin/mysqldump -u${username} -p${password} kms ${tablename} > ${filename}.sql
elif [ $dbname == "oceanbase" ]; then
/root/.oceanbase-all-in-one/obclient/u01/obclient/bin/mysqldump -u${username} -p${password} kms ${tablename} > ${filename}.sql
能不能以类似上面的脚本进行备份以及恢复呢?
wty发表于 2年前
@GBase用户17261:echo "你的sql" > dbaccess dbname
可以这样在shell里执行SQL,其他逻辑按你自己的需求写吧
可以这样在shell里执行SQL,其他逻辑按你自己的需求写吧
最佳回答
GBase用户17261发表于 2年前
@wty:好的,我试试,感谢
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25051
- 42023-09-25浏览数:18521
- 52020-05-11浏览数:17526
2.还原时,先恢复表结构,然后使用dbload进行数据导入。