数据库KingbaseES V8R6 逻辑恢复到新的 schema

创建测试环境:

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)

欢迎使用66资源网
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
7. 本站有不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!

66源码网 » 数据库KingbaseES V8R6 逻辑恢复到新的 schema

提供最优质的资源集合

立即查看 了解详情