GBASE8S如何使用dbexport实现单表的还原和实现数据库的复制

(一) 通过dbexport实现单表数据还原

1. 测试前的信息查看

  • 本次以test库的表test21为例
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ ~]$ dbaccess test -
Your evaluation license will expire on 2025-05-26 00:00:00

Database selected.

> select * from test21;


         id name

          1 a
          2 b
          3 c

3 row(s) retrieved.

Elapsed time: 0.001 sec

2. 通过dbexport备份数据

--创建文件夹
mkdir backup
--执行命令
dbexport test  -ss -o backup/ -l

3. 还原数据

  • 备份过后将会在backup/文件夹下出现库名+.exp的格式的文件夹,本次出现的是test.exp文件夹
  • 文件夹内容里.sql的是表结构文件,其余的是数据文件
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ ~]$ cd backup/test.exp/
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ test.exp]$ ls -l *sql
--ora.sql是oracle模式下的表结构,如果没有使用oracle模式,则表结构在test下
-rw-rw-r-- 1 gbasedbt gbasedbt  9557 Jul  3 17:45 test_ora.sql
-rw-rw-r-- 1 gbasedbt gbasedbt 13244 Jul  3 17:45 test.sql
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ test.exp]$
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ test.exp]$ cat test.sql|grep -i -A 5 -B 5 'create table "gbasedbt".test21'
 commcol = id,name }
--说明表test21对应的数据文件为test200118.unl
{ unload file name = test200118.unl number of rows = 3 }


create table "gbasedbt".test21
  (
    id integer,
    name varchar(10)
  ) extent size 16 next size 64 lock mode page;

[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ test.exp]$ dbaccess test -
Your evaluation license will expire on 2025-05-26 00:00:00

Database selected.

> truncate table test21;

Table truncated.

Elapsed time: 0.003 sec

> load from /home/gbasedbt/backup/test.exp/test200118.unl insert into test21;

3 row(s) loaded.

Elapsed time: 0.002 sec

> select * from test21;


         id name

          1 a
          2 b
          3 c

3 row(s) retrieved.

Elapsed time: 0.001 sec

>

(二) 复制数据库(适合小数据库的场景,否则时间过长)

1. 统计数据库大小

select dbsname,sum(pe_size)*4 
from 
sysmaster:sysptnext a,
outer sysmaster:systabnames b 
where a.pe_partnum=b.partnum group by 1;

2. 复制数据库的步骤

  • 准备备份文件夹
  • 备份数据库
  • 更改信息
  • 粘贴(还原)数据库

3. 信息收集

  • 保存的文件夹:/home/gbasedbt/backup
  • 需要复制的数据库:test
  • 复制粘贴成的数据库:test_cp

4. 备份数据库

[gbasedbt@node01 ~]$ mkdir backup
[gbasedbt@node01 ~]$ dbexport test -ss -o backup/ -l
Your evaluation license will expire on 2025-04-22 00:00:00
{ DATABASE test  delimiter | }
grant dba to "gbasedbt";
set environment sqlmode 'oracle';
set environment sqlmode 'gbase';
revoke usage on language SPL from public ;
grant usage on language SPL to public ;
dbexport completed
[gbasedbt@node01 ~]$

5. 更改信息(四处)

--备份的文件夹名称更改
mv backup/test.exp backup/test_cp.exp

--更新gbase模式sql文件的名称
 mv backup/test_cp.exp/test.sql backup/test_cp.exp/test_cp.sql

 --更新oracle模式下sql文件的名称
 mv backup/test_cp.exp/test_ora.sql backup/test_cp.exp/test_cp_ora.sql

 --更新文件内的数据库名称
 sed -i 's/{ DATABASE test  delimiter | }/{ DATABASE test_cp  delimiter | }/g'   backup/test_cp.exp/test_cp.sql

6. 还原数据库

[gbasedbt@node01 ~]$ dbimport test_cp -i backup/   -l
Your evaluation license will expire on 2025-04-22 00:00:00
{ DATABASE test_cp  delimiter | }
grant dba to "gbasedbt";
revoke usage on language SPL from public ;
grant usage on language SPL to public ;
dbimport completed
set environment sqlmode 'oracle';
set environment sqlmode 'gbase';
  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值