KingbaseES V8R6 逻辑恢复到新的 schema
前言
本文介绍一下KingbaseES V8R6版本中逻辑恢复时,将原有的对象恢复到新的schema。
sys_restore命令中如果只加入了-g(原schema) -G(新schema)参数 那么导入数据后,表的schema为最新,但是表的owner没变化。如需owner也替换为最新,还需要加入-O参数。
当然,我们还可以导出.sql格式结尾的文件,然后对文件进行编辑替换掉原来的shcema。但是对于大数据量可能会影响速度。
注:逻辑备份恢复命令的参数说明详见官方文档解释:https://help.kingbase.com.cn/v8/admin/reference/ref-client/app-pgrestore.html?highlight=sys_restore
测试
创建测试环境:
CREATE USER abc ;
CREATE DATABASE abc WITH OWNER abc;
\c abc abc
CREATE SCHEMA abc;
ALTER SCHEMA abc OWNER to abc;
GRANT USAGE ON SCHEMA abc to abc;
create table t1(id int);
查看t1表的schema,owner都是abc
abc=> \d
List of relations
Schema | Name | Type | Owner
--------+---------------------+-------+--------
abc | t1 | table | abc
public | sys_stat_statements | view | system
(2 rows)
创建U2用户
\c abc system
CREATE USER u2 with superuser;
CREATE SCHEMA u2 ;
ALTER SCHEMA u2 OWNER to u2;
GRANT USAGE ON SCHEMA u2 to u2;
1、sys_dump导出abc库下的表,加入-O,-g,-G参数导入
sys_dump -Uabc -Fc -f abc.dmp abc -p 2920
sys_restore 恢复刚才导出的文件,注意这里加入了-O参数,
-O参数的作用:默认原始表的owner是abc,加入此参数表示不延用原始的owner,而是根据 -U 指定owner
-g,-G 指定目标schema为u2
sys_restore -Uu2 -dabc -Fc -p 2920 -gabc -Gu2 -O abc.dmp
abc-# \c abc u2
You are now connected to database "abc" as user "u2".
abc-#
abc-# \d
List of relations
Schema | Name | Type | Owner
--------+---------------------+-------+--------
public | sys_stat_statements | view | system
u2 | t1 | table | u2
(2 rows)
下面看一下不加-O参数的导入结果,t1表的owner没变,还是导出前的abc。
sys_restore -Uu2 -dabc -Fc -p 2920 -gabc -Gu2 abc.dmp
abc=# \d
List of relations
Schema | Name | Type | Owner
--------+---------------------+-------+--------
public | sys_stat_statements | view | system
u2 | t1 | table | abc
(2 rows)
2、导出sql文件,再用sed命令替换原来schema
sys_dump -Usystem -Fp -f abc.sql abc -p 2920
sed -i 's/abc/u2/g' abc.sql
sed -i 's/public/u2/g' abc.sql
ksql abc -Usystem -f abc.sql
查看t1表的schema,owner已经替换为最新
abc=# \d
List of relations
Schema | Name | Type | Owner
--------+---------------------+-------+--------
public | sys_stat_statements | view | system
u2 | t1 | table | u2
(2 rows)
KingbaseES V8R6 逻辑恢复到新的 schema的更多相关文章
- KingbaseES V8R6备份恢复案例之---自定义表空间指定恢复目录数据恢复
案例说明: KingbaseES V8R6在通过sys_rman执行物理备份恢复时,可以通过参数'--kb1-path',指定恢复的数据(data)目录,但如果原备份中包含自定义表空间时,需要建立表空 ...
- KingbaseES V8R6备份恢复案例之---同一数据库创建不同stanza备份
案例说明: 在生产环境,有的应用需要调用数据库的sys_rman做备份,为了区分数据库自身的sys_rman备份和应用的备份,可以使用不同的stanza name创建备份.本案例介绍了,如何在King ...
- KingbaseES V8R6备份恢复案例之--删除test数据库后sys_backup.sh备份
案例说明: KingbaseES V8R6通过sys_backup.sh执行物理备份,默认sys_backup.sh执行备份初始化时,需要连接test数据库进行身份的认证:在一些生产环境为了安全需求, ...
- KingbaseES V8R6备份恢复案例之---手工清理冗余历史备份
案例说明: 对于KingbaseES V8R6的通过sys_rman执行的物理历史备份,可以在执行备份时,备份的保留(retention)策略自动清理.不能通过手工删除备份,可以通过expire参数手 ...
- kingbaseES V8R6集群备份恢复案例之---备库作为repo主机执行物理备份
案例说明: 此案例是在KingbaseES V8R6集群环境下,当主库磁盘空间不足时,执行sys_rman备份,将集群的备库节点作为repo主机,执行备份,并将备份存储在备库的磁盘空间. 集群架构 ...
- KingbaseES V8R6集群维护案例之--单实例数据迁移到集群案例
案例说明: 生产环境是单实例,测试环境是集群,现需要将生产环境的数据迁移到集群中运行,本文档详细介绍了从单实例环境恢复数据到集群环境的操作步骤,可以作为生产环境迁移数据的参考. 适用版本: Kingb ...
- KingbaseES V8R6集群运维案例之---repmgr standby promote应用案例
案例说明: 在容灾环境中,跨区域部署的异地备节点不会自主提升为主节点,在主节点发生故障或者人为需要切换时需要手动执行切换操作.若主节点已经失效,希望将异地备机提升为主节点. $bin/repmgr s ...
- KingbaseES V8R6兼容Oracle的exp-imp导出导入工具使用
说明: KingbaseES V8R6版本中的兼容Oracle的exp-imp导入导出工具,支持完全模式.用户模式和表模式的导出功能. 本次案例数据库版本: test=# select version ...
- KingbaseES V8R6集群维护之--修改数据库服务端口案例
案例说明: 对于KingbaseES数据库单实例环境,只需要修改kingbase.conf文件的'port'参数即可,但是对于KingbaseES V8R6集群中涉及到多个配置文件的修改,并且在应 ...
- KingbaseES V8R6单实例外部备份案例
案例说明: 本案例采用sys_backup.sh执行物理备份,备份使用如下逻辑架构:数据库主机采用CentOS 7系统,repo采用kylin V10 Server. 单实例+外部备份服务器 备份逻辑 ...
随机推荐
- Spring boot 2.0启动自动执行sql语句
项目地址:https://gitee.com/indexman/spring_boot_in_action 1.准备sql文件 将department.sql放到resources路径下 /* Nav ...
- 《系列二》-- 11、Aware是什么
目录 正文 阅读之前要注意的东西:本文就是主打流水账式的源码阅读,主导的是一个参考,主要内容需要看官自己去源码中验证.全系列文章基于 spring 源码 5.x 版本. 写在开始前的话: 阅读spri ...
- win32 - IFolderView2::GetCurrentFolderFlags的使用
网上关于IFolderView2接口调用的示例有点少. 下面的例子是将桌面的图标隐藏起来,使用了FWF_NOICONS样式. #include <ShlObj.h> // Shell AP ...
- win32 - 基于hwnd获取进程名字(GetModuleFileNameEx)
#include <Windows.h> #include <psapi.h> int main() { DWORD process_ID = 0; WCHAR process ...
- 异常处理try...except...finally---day26
1.认识异常处理 # ### 认识异常处理 #IndexError 索引超出序列范围 #lst = [1,2,3,4] #print(lst[10]) #KeyError 字典中查找一个不存在的关键字 ...
- java+文件实现的超市管理系统
一.需求 1.使用java语言实现系统 2.数据存储使用io读写文件 3.超市的商品管理+销售功能 二.效果 商品列表 商品增删改查 购买 三.说明 1.开发工具/技术 java eclipse 2 ...
- instance must be started before calling this method
解决方法 检查zk的连接数: 端口号: 数据库连接配置: zk的连接配置: 如果都没有问题,就重启容器.
- golang中关于map的value类型定义为函数类型时(方法值)的一点点思考
文章的内容仅仅是自己关于map的value类型定义为函数类型时的一点点思考,如有不对的地方,请不吝赐教. 学习过后才知道叫做 方法值. 1.起因 最近在看老项目代码时,看到了一段类似于下面的定义,最开 ...
- 【Azure 环境】Azure 流分析服务(Steam Analytics) 报出 OutputDataConversionError 错误引起延迟及超时
问题描述 Azure 流分析服务(Steam Analytics) 报出 OutputDataConversionError 错误引起延迟及超时. 查看详细错误: 问题解答 在错误消息中,有非常明确的 ...
- 【Azure 应用服务】FTP 部署 Vue 生成的静态文件至 Linux App Service 后,访问App Service URL依旧显示Azure默认页面问题
问题描述 将 JS项目打包为静态文件后,通过 FTP 上传到 App Service For Linux 的 /home/site/wwwroot文件夹中.但打开App Service URL 后依旧 ...