KingbaseES V8R6备份恢复案例之---sys_restore实现schema转换
**案例说明:**
sys_restore用于sys_dump备份的数据恢复,在实际的应用中有需求,将从sys_dump备份对象从原schema中转换到到另外的schema,sys_restore支持此需求的实现,但在应用中需要注意参数的使用。
**适用版本:**
` KingbaseES V8R6`
**一、sys_restore参数说明**
-g namespace --fromSchema=schema
源模式(默认大小写不敏感),恢复源模式中的对象到 -G 指定的目标模式中去,与 -G 一起使用。可以用多个 -g 开关来指定多个源模式。这可以与 -t 选项组合在一起只恢复一个指定的表。
--from-schema-case-sensitive
设置源模式大小写敏感。
-G namespace --targetSchema=schema
目标模式,恢复 -g 指定的源模式中的对象到目标模式中,与 -g 一起使用。可以用多个 -G 开关来指定多个目标模式。
注意
-g/-G 必须一起使用,不能和 -n 同时使用。和 -n 类似, -g/-G 仅恢复模式下的内容,不恢复模式定义。
注意
-g 指定的源模式和 -G 指定的目标模式一一对应,或者目标模式数量等于一且源模式数量大于一。
-O --no-owner
不要输出将对象的所有权设置为与原始数据库匹配的命令。默认情况下,sys_restore 会发出 ALTER OWNER 或者 SET SESSION AUTHORIZATION 语句来设置已创建的模式对象的所有权。除非到该数据库的初始连接是一个超级用户(或者拥有脚本中所有对象的同一个用户)建立的,这些语句将会失败。通过 -O ,任何用户名都可以用于初始连接,并且这个用户将会拥有所有创建的对象。
**二、应用案例**
**1、只使用-g和-G参数:**

错误日志:

---如上所示,在restore过程中,执行了'alter table xxx'的命令,但是普通用户无权限执行此命令,导致restore失败。
**2、增加-O参数**
`[kingbase@localhost ~] $ sys_restore -U xhl -d test -g xhltest -G xhl -O -t xhltest1 /home/kingbase/xhltest1.dmp`
如下图所示:

**三、总结**
sys_restore支持备份导入时,对象的schema的转换,在使用时注意-g、-G、-O三个参数的结合使用。
KINGBASE研究院
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2021-09-18 字符类数据类型和oracle字符类型的区别