GBASE南大通用GBase 8s基于ON-Bar的备份与恢复实验
t_employee更新1条数据(t12)
> update t_employee set f_employeename = 'employee_updated' where f_employeeid = 11;
1 row(s) updated.
> select * from t_employee;
f_employeeid f_deptid f_employeename
1 1 employee_01
2 1 employee_02
3 2 employee_03
4 2 employee_04
5 3 employee_05
11 1 employee_updated
12 1 employee_12
13 2 employee_13
14 2 employee_14
15 3 employee_15
16 3 employee_16
21 1 employee_21
22 1 employee_22
23 2 employee_23
24 2 employee_24
25 3 employee_25
16 row(s) retrieved.
> !date +'%F %T'
2021-07-30 16:35:08
>
切换逻辑日志(t13)
[gbasedbt@devsvr ~]$ onstat -l
Your evaluation license will expire on 2022-07-30 00:00:00
On-Line -- Up 02:00:25 -- 597864 Kbytes
Physical Logging
Buffer bufused bufsize numpages numwrits pages/io
P-1 15 1024 1731 44 39.34
phybegin physize phypos phyused %used
3:53 49700 1952 30 0.06
Logical Logging
Buffer bufused bufsize numrecs numpages numwrits recs/pages pages/io
L-2 0 512 82067 6335 400 13.0 15.8
Subsystem numrecs Log Space used
OLDRSAM 81912 12130972
HA 50 2200
DDL 105 36540
address number flags uniqid begin size used %used
4713df88 4 U-B---- 17 2:53 5000 33 0.66
48309970 5 U---C-L 18 2:5053 5000 6 0.12
483099d8 6 U-B---- 9 2:10053 5000 34 0.68
48309a40 7 U-B---- 10 2:15053 5000 27 0.54
48309aa8 8 U-B---- 11 2:20053 5000 41 0.82
48309b10 9 U-B---- 12 2:25053 5000 30 0.60
48309b78 10 U-B---- 13 2:30053 5000 36 0.72
48309be0 11 U-B---- 14 2:35053 5000 2029 40.58
48309c48 12 U-B---- 15 2:40053 5000 34 0.68
48309cb0 13 U-B---- 16 2:45053 5000 26 0.52
10 active, 10 total
[gbasedbt@devsvr ~]$ onmode -l
Your evaluation license will expire on 2022-07-30 00:00:00
[gbasedbt@devsvr ~]$ onstat -l
Your evaluation license will expire on 2022-07-30 00:00:00
On-Line -- Up 02:00:33 -- 597864 Kbytes
Physical Logging
Buffer bufused bufsize numpages numwrits pages/io
P-1 15 1024 1731 44 39.34
phybegin physize phypos phyused %used
3:53 49700 1952 30 0.06
Logical Logging
Buffer bufused bufsize numrecs numpages numwrits recs/pages pages/io
L-3 0 512 82067 6335 400 13.0 15.8
Subsystem numrecs Log Space used
OLDRSAM 81912 12130972
HA 50 2200
DDL 105 36540
address number flags uniqid begin size used %used
4713df88 4 U-B---- 17 2:53 5000 33 0.66
48309970 5 U-----L 18 2:5053 5000 7 0.14
483099d8 6 U---C-- 19 2:10053 5000 0 0.00
48309a40 7 U-B---- 10 2:15053 5000 27 0.54
48309aa8 8 U-B---- 11 2:20053 5000 41 0.82
48309b10 9 U-B---- 12 2:25053 5000 30 0.60
48309b78 10 U-B---- 13 2:30053 5000 36 0.72
48309be0 11 U-B---- 14 2:35053 5000 2029 40.58
48309c48 12 U-B---- 15 2:40053 5000 34 0.68
48309cb0 13 U-B---- 16 2:45053 5000 26 0.52
10 active, 10 total
[gbasedbt@devsvr ~]$
切换逻辑日志后,当前逻辑日志唯一编号由18变为19。
t_employee删除1条数据(t14)
> delete from t_employee where f_employeeid = 14;
1 row(s) deleted.
> select * from t_employee;
f_employeeid f_deptid f_employeename
1 1 employee_01
2 1 employee_02
3 2 employee_03
4 2 employee_04
5 3 employee_05
11 1 employee_updated
12 1 employee_12
13 2 employee_13
15 3 employee_15
16 3 employee_16
21 1 employee_21
22 1 employee_22
23 2 employee_23
24 2 employee_24
25 3 employee_25
15 row(s) retrieved.
> !date +'%F %T'
2021-07-30 16:38:10
>
删除Chunk文件(t15)
[gbasedbt@devsvr ~]$ cd /opt/gbase/gbaseserver_dbs/
[gbasedbt@devsvr gbaseserver_dbs]$ pwd
/opt/gbase/gbaseserver_dbs
[gbasedbt@devsvr gbaseserver_dbs]$ ll
total 1331200
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:38 datadbs1_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 14:35 datadbs2_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 14:35 datadbs3_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 14:35 datadbs4_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 14:35 datadbs5_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:38 llogdbs
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:38 plogdbs
-rw-rw----. 1 gbasedbt gbasedbt 209715200 Jul 30 16:38 rootdbs
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 14:35 sbspace1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:34 tmpdbs1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:34 tmpdbs2
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:34 tmpdbs3
[gbasedbt@devsvr gbaseserver_dbs]$ rm -rf datadbs1_1
[gbasedbt@devsvr gbaseserver_dbs]$ ll
total 1228800
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 14:35 datadbs2_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 14:35 datadbs3_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 14:35 datadbs4_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 14:35 datadbs5_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:38 llogdbs
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:38 plogdbs
-rw-rw----. 1 gbasedbt gbasedbt 209715200 Jul 30 16:38 rootdbs
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 14:35 sbspace1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:34 tmpdbs1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:34 tmpdbs2
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:34 tmpdbs3
[gbasedbt@devsvr gbaseserver_dbs]$
t_dept新增1条数据(t16)
> insert into t_dept values(5, 'dept_5');
1 row(s) inserted.
> select * from t_dept;
f_deptid f_deptname
1 dept_1
2 dept_2
3 dept_3
4 dept_4
5 dept_5
5 row(s) retrieved.
> !date +'%F %T'
2021-07-30 16:40:39
>
即使在保存数据的Chunk文件被删除,最近的事务仍然可以执行成功。
备份逻辑日志(t17)
[gbasedbt@devsvr ~]$ onbar -b -l
Your evaluation license will expire on 2022-07-30 00:00:00
[gbasedbt@devsvr ~]$ onpsm -O list
__PSM__ Object List
Object ID Date Created Size (MB) Logical path (name.version)
1 2021-07-30 16:26:30 15.9 /gbaseserver/rootdbs/0/gbaseserver.1
2 2021-07-30 16:26:31 18.1 /gbaseserver/datadbs1/0/gbaseserver.1
3 2021-07-30 16:26:32 0.1 /gbaseserver/plogdbs/0/gbaseserver.1
4 2021-07-30 16:26:32 0.1 /gbaseserver/datadbs5/0/gbaseserver.1
5 2021-07-30 16:26:32 0.1 /gbaseserver/datadbs3/0/gbaseserver.1
6 2021-07-30 16:26:32 0.1 /gbaseserver/datadbs2/0/gbaseserver.1
7 2021-07-30 16:26:32 0.1 /gbaseserver/sbspace1/0/gbaseserver.1
8 2021-07-30 16:26:33 0.1 /gbaseserver/llogdbs/0/gbaseserver.1
9 2021-07-30 16:26:33 0.1 /gbaseserver/datadbs4/0/gbaseserver.1
10 2021-07-30 16:26:33 4.0 /gbaseserver/165/14/gbaseserver.1
11 2021-07-30 16:26:34 0.0 /gbaseserver/critical_files/ixbar/gbaseserver.1
12 2021-07-30 16:26:34 0.0 /gbaseserver/critical_files/oncfg/gbaseserver.1
13 2021-07-30 16:26:34 0.1 /gbaseserver/critical_files/onconfig/gbaseserver.1
14 2021-07-30 16:26:34 0.0 /gbaseserver/critical_files/sqlhosts/gbaseserver.1
15 2021-07-30 16:28:44 0.1 /gbaseserver/rootdbs/1/gbaseserver.1
16 2021-07-30 16:28:45 0.1 /gbaseserver/datadbs1/1/gbaseserver.1
17 2021-07-30 16:28:45 0.1 /gbaseserver/datadbs3/1/gbaseserver.1
18 2021-07-30 16:28:45 0.1 /gbaseserver/datadbs4/1/gbaseserver.1
19 2021-07-30 16:28:46 0.1 /gbaseserver/sbspace1/1/gbaseserver.1
20 2021-07-30 16:28:46 0.1 /gbaseserver/llogdbs/1/gbaseserver.1
21 2021-07-30 16:28:46 0.1 /gbaseserver/datadbs2/1/gbaseserver.1
22 2021-07-30 16:28:46 0.1 /gbaseserver/datadbs5/1/gbaseserver.1
23 2021-07-30 16:28:46 0.1 /gbaseserver/plogdbs/1/gbaseserver.1
24 2021-07-30 16:28:48 0.1 /gbaseserver/165/15/gbaseserver.1
25 2021-07-30 16:28:48 0.0 /gbaseserver/critical_files/ixbar/gbaseserver.2
26 2021-07-30 16:28:48 0.0 /gbaseserver/critical_files/oncfg/gbaseserver.2
27 2021-07-30 16:28:48 0.1 /gbaseserver/critical_files/onconfig/gbaseserver.2
28 2021-07-30 16:28:48 0.0 /gbaseserver/critical_files/sqlhosts/gbaseserver.2
29 2021-07-30 16:30:17 0.1 /gbaseserver/rootdbs/1/gbaseserver.2
30 2021-07-30 16:30:18 0.1 /gbaseserver/sbspace1/1/gbaseserver.2
31 2021-07-30 16:30:19 0.1 /gbaseserver/datadbs2/1/gbaseserver.2
32 2021-07-30 16:30:19 0.1 /gbaseserver/datadbs4/1/gbaseserver.2
33 2021-07-30 16:30:19 0.1 /gbaseserver/plogdbs/1/gbaseserver.2
34 2021-07-30 16:30:19 0.1 /gbaseserver/datadbs3/1/gbaseserver.2
35 2021-07-30 16:30:19 0.1 /gbaseserver/datadbs5/1/gbaseserver.2
36 2021-07-30 16:30:19 0.1 /gbaseserver/datadbs1/1/gbaseserver.2
37 2021-07-30 16:30:20 0.1 /gbaseserver/llogdbs/1/gbaseserver.2
38 2021-07-30 16:30:21 0.1 /gbaseserver/165/16/gbaseserver.1
39 2021-07-30 16:30:21 0.0 /gbaseserver/critical_files/ixbar/gbaseserver.3
40 2021-07-30 16:30:21 0.0 /gbaseserver/critical_files/oncfg/gbaseserver.3
41 2021-07-30 16:30:21 0.1 /gbaseserver/critical_files/onconfig/gbaseserver.3
42 2021-07-30 16:30:21 0.0 /gbaseserver/critical_files/sqlhosts/gbaseserver.3
43 2021-07-30 16:32:07 0.2 /gbaseserver/rootdbs/2/gbaseserver.1
44 2021-07-30 16:32:08 0.1 /gbaseserver/datadbs1/2/gbaseserver.1
45 2021-07-30 16:32:09 0.1 /gbaseserver/datadbs2/2/gbaseserver.1
46 2021-07-30 16:32:09 0.1 /gbaseserver/datadbs4/2/gbaseserver.1
47 2021-07-30 16:32:09 0.1 /gbaseserver/datadbs5/2/gbaseserver.1
48 2021-07-30 16:32:09 0.1 /gbaseserver/sbspace1/2/gbaseserver.1
49 2021-07-30 16:32:09 0.1 /gbaseserver/datadbs3/2/gbaseserver.1
50 2021-07-30 16:32:09 0.1 /gbaseserver/llogdbs/2/gbaseserver.1
51 2021-07-30 16:32:10 0.1 /gbaseserver/plogdbs/2/gbaseserver.1
52 2021-07-30 16:32:10 0.1 /gbaseserver/165/17/gbaseserver.1
53 2021-07-30 16:32:10 0.0 /gbaseserver/critical_files/ixbar/gbaseserver.4
54 2021-07-30 16:32:10 0.0 /gbaseserver/critical_files/oncfg/gbaseserver.4
55 2021-07-30 16:32:10 0.1 /gbaseserver/critical_files/onconfig/gbaseserver.4
56 2021-07-30 16:32:10 0.0 /gbaseserver/critical_files/sqlhosts/gbaseserver.4
57 2021-07-30 16:43:15 0.0 /gbaseserver/165/18/gbaseserver.1
[gbasedbt@devsvr ~]$
可以通过下面的命令,查看数据的最新备份情况。
[gbasedbt@devsvr ~]$ onstat -g arc
Your evaluation license will expire on 2022-07-30 00:00:00
On-Line (CKPT INP) -- Up 00:01:24 -- 597864 Kbytes
Blocked:OVERRIDE_DOWN_SPACE
num DBSpace Q Size Q Len Buffer partnum size scanner
Dbspaces - Archive Status
name number level date log log-position
rootdbs 1 0 07/30/2021.16:26 14 0x7d5018
1 07/30/2021.16:30 16 0x3018
2 07/30/2021.16:32 17 0x8018
llogdbs 2 0 07/30/2021.16:26 14 0x7d9018
1 07/30/2021.16:30 16 0x7018
2 07/30/2021.16:32 17 0xc018
plogdbs 3 0 07/30/2021.16:26 14 0x7d9018
1 07/30/2021.16:30 16 0x7018
2 07/30/2021.16:32 17 0xc018
sbspace1 4 0 07/30/2021.16:26 14 0x7db018
1 07/30/2021.16:30 16 0x7018
2 07/30/2021.16:32 17 0xe018
datadbs1 8 0 07/30/2021.16:26 14 0x7d9018
1 07/30/2021.16:30 16 0x7018
2 07/30/2021.16:32 17 0xc018
datadbs2 9 0 07/30/2021.16:26 14 0x7d9018
1 07/30/2021.16:30 16 0x7018
2 07/30/2021.16:32 17 0xc018
datadbs3 10 0 07/30/2021.16:26 14 0x7d9018
1 07/30/2021.16:30 16 0x7018
2 07/30/2021.16:32 17 0xc018
datadbs4 11 0 07/30/2021.16:26 14 0x7d9018
1 07/30/2021.16:30 16 0x7018
2 07/30/2021.16:32 17 0xc018
datadbs5 12 0 07/30/2021.16:26 14 0x7d9018
1 07/30/2021.16:30 16 0x7018
2 07/30/2021.16:32 17 0xc018
[gbasedbt@devsvr ~]$
演示完全恢复(t18)
重启数据库,确定被删除的文件
在GBase 8s启动过程中,会因无法打开被删除的文件而报错。
Cannot open chunk '/opt/gbase/gbaseserver_dbs/datadbs1_1
根据报错中的信息,得到被删除的Chunk文件(datadbs1_1)。
[gbasedbt@devsvr ~]$ onmode -ky
Your evaluation license will expire on 2022-07-30 00:00:00
[gbasedbt@devsvr ~]$ oninit -vy
Your evaluation license will expire on 2022-07-30 00:00:00
Reading configuration file '/opt/gbase/etc/onconfig.gbaseserver'...succeeded
Creating /GBASEDBTTMP/.infxdirs...succeeded
Allocating and attaching to shared memory...succeeded
Creating resident pool 36470 kbytes...succeeded
Creating infos file "/opt/gbase/etc/.infos.gbaseserver"...succeeded
Linking conf file "/opt/gbase/etc/.conf.gbaseserver"...succeeded
Initializing rhead structure...rhlock_t 65536 (2048K)... rlock_t (26562K)... Writing to infos file...succeeded
Initialization of Encryption...succeeded
Initializing ASF...succeeded
Initializing Dictionary Cache and SPL Routine Cache...succeeded
Bringing up ADM VP...succeeded
Creating VP classes...succeeded
Forking main_loop thread...succeeded
Initializing DR structures...succeeded
Forking 1 'soctcp' listener threads...succeeded
Starting tracing...succeeded
Initializing 32 flushers...succeeded
Initializing SDS Server network connections...succeeded
Initializing log/checkpoint information...succeeded
Initializing dbspaces...succeeded
Opening primary chunks...oninit: Cannot open chunk '/opt/gbase/gbaseserver_dbs/datadbs1_1'. errno = 2
succeeded
Validating chunks...succeeded
Initialize Async Log Flusher...succeeded
Starting B-tree Scanner...succeeded
Init ReadAhead Daemon...succeeded
Init DB Util Daemon...succeeded
Initializing DBSPACETEMP list...succeeded
Init Auto Tuning Daemon...succeeded
Checking database partition index...succeeded
Initializing dataskip structure...succeeded
Checking for temporary tables to drop...succeeded
Updating Global Row Counter...succeeded
Forking onmode_mon thread...succeeded
Creating periodic thread...succeeded
Creating periodic thread...succeeded
Starting scheduling system...succeeded
Verbose output complete: mode = 5
[gbasedbt@devsvr ~]$ onstat -
Your evaluation license will expire on 2022-07-30 00:00:00
On-Line (CKPT INP) -- Up 00:07:37 -- 597864 Kbytes
Blocked:OVERRIDE_DOWN_SPACE
[gbasedbt@devsvr ~]$
创建被删除的文件,并设置权限。
[gbasedbt@devsvr gbaseserver_dbs]$ pwd
/opt/gbase/gbaseserver_dbs
[gbasedbt@devsvr gbaseserver_dbs]$ ll
total 1228800
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 datadbs2_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 datadbs3_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 datadbs4_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 datadbs5_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 llogdbs
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 plogdbs
-rw-rw----. 1 gbasedbt gbasedbt 209715200 Jul 30 16:46 rootdbs
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 sbspace1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 tmpdbs1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 tmpdbs2
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 tmpdbs3
[gbasedbt@devsvr gbaseserver_dbs]$ touch datadbs1_1
[gbasedbt@devsvr gbaseserver_dbs]$ ll
total 1228800
-rw-rw-r--. 1 gbasedbt gbasedbt 0 Jul 30 16:52 datadbs1_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 datadbs2_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 datadbs3_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 datadbs4_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 datadbs5_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 llogdbs
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 plogdbs
-rw-rw----. 1 gbasedbt gbasedbt 209715200 Jul 30 16:46 rootdbs
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 sbspace1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 tmpdbs1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 tmpdbs2
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 tmpdbs3
[gbasedbt@devsvr gbaseserver_dbs]$ chmod o-r datadbs1_1
[gbasedbt@devsvr gbaseserver_dbs]$ ll
total 1228800
-rw-rw----. 1 gbasedbt gbasedbt 0 Jul 30 16:52 datadbs1_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 datadbs2_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 datadbs3_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 datadbs4_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 datadbs5_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 llogdbs
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 plogdbs
-rw-rw----. 1 gbasedbt gbasedbt 209715200 Jul 30 16:46 rootdbs
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 sbspace1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 tmpdbs1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 tmpdbs2
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Jul 30 16:46 tmpdbs3
[gbasedbt@devsvr gbaseserver_dbs]$
完全恢复
[gbasedbt@devsvr ~]$ onstat -
Your evaluation license will expire on 2022-07-30 00:00:00
shared memory not initialized for GBASEDBTSERVER 'gbaseserver'
[gbasedbt@devsvr ~]$ onbar -r
Your evaluation license will expire on 2022-07-30 00:00:00
Your evaluation license will expire on 2022-07-30 00:00:00
[gbasedbt@devsvr ~]$ onstat -
Your evaluation license will expire on 2022-07-30 00:00:00
Quiescent -- Up 00:00:35 -- 1135464 Kbytes
[gbasedbt@devsvr ~]$ onmode -m
Your evaluation license will expire on 2022-07-30 00:00:00
[gbasedbt@devsvr ~]$ dbaccess - -
Your evaluation license will expire on 2022-07-30 00:00:00
> database mydb;
Database selected.
> select * from t_employee;
f_employeeid f_deptid f_employeename
1 1 employee_01
2 1 employee_02
3 2 employee_03
4 2 employee_04
5 3 employee_05
11 1 employee_updated
12 1 employee_12
13 2 employee_13
15 3 employee_15
16 3 employee_16
21 1 employee_21
22 1 employee_22
23 2 employee_23
24 2 employee_24
25 3 employee_25
15 row(s) retrieved.
> select * from t_dept;
f_deptid f_deptname
1 dept_1
2 dept_2
3 dept_3
4 dept_4
5 dept_5
5 row(s) retrieved.
>
即使数据库空间的Chunk文件被删除,只要有备份,依然可以完全恢复,不丢失数据。
t_employee新增5条数据(19)
> select * from t_employee;
f_employeeid f_deptid f_employeename
1 1 employee_01
2 1 employee_02
3 2 employee_03
4 2 employee_04
5 3 employee_05
11 1 employee_updated
12 1 employee_12
13 2 employee_13
101 1 employee_101
15 3 employee_15
16 3 employee_16
21 1 employee_21
22 1 employee_22
23 2 employee_23
24 2 employee_24
25 3 employee_25
102 1 employee_102
103 2 employee_103
104 2 employee_104
105 3 employee_105
20 row(s) retrieved.
> !date +'%F %T'
2021-07-30 17:05:54
>
删除t_employee表(20)
为了演示方便,在删除表之前,记录一个时间,用于后续的不完全恢复时间点。
> !date +'%F %T'
2021-07-30 17:06:45
> drop table t_employee;
Table dropped.
> select * from t_employee;
206: The specified table (t_employee) is not in the database.
111: ISAM error: no record found.
Error in line 1
Near character position 24
> info tables;
Table name
t_dept
>
基于时间点的不完全恢复(t21)
根据上面测试时记录的时间点,进行不完全恢复。
[gbasedbt@devsvr ~]$ onstat -
Your evaluation license will expire on 2022-07-30 00:00:00
shared memory not initialized for GBASEDBTSERVER 'gbaseserver'
[gbasedbt@devsvr ~]$ export GL_DATETIME="%iY-%m-%d %H:%M:%S"
[gbasedbt@devsvr ~]$ echo $GL_DATETIME
%iY-%m-%d %H:%M:%S
[gbasedbt@devsvr ~]$ onbar -r -t '2021-07-30 17:06:45'
Your evaluation license will expire on 2022-07-30 00:00:00
Your evaluation license will expire on 2022-07-30 00:00:00
Your evaluation license will expire on 2022-07-30 00:00:00
[gbasedbt@devsvr ~]$ onmode -m
Your evaluation license will expire on 2022-07-30 00:00:00
查看恢复结果。
[gbasedbt@devsvr ~]$ echo "select * from t_employee" | dbaccess mydb
Your evaluation license will expire on 2022-07-30 00:00:00
Database selected.
f_employeeid f_deptid f_employeename
1 1 employee_01
2 1 employee_02
3 2 employee_03
4 2 employee_04
5 3 employee_05
11 1 employee_updated
12 1 employee_12
13 2 employee_13
101 1 employee_101
15 3 employee_15
16 3 employee_16
21 1 employee_21
22 1 employee_22
23 2 employee_23
24 2 employee_24
25 3 employee_25
102 1 employee_102
103 2 employee_103
104 2 employee_104
105 3 employee_105
20 row(s) retrieved.
Database closed.
[gbasedbt@devsvr ~]$ echo "select * from t_dept" | dbaccess mydb
Your evaluation license will expire on 2022-07-30 00:00:00
Database selected.
f_deptid f_deptname
1 dept_1
2 dept_2
3 dept_3
4 dept_4
5 dept_5
5 row(s) retrieved.
Database closed.
[gbasedbt@devsvr ~]$
即使因为误操作删除了整个表,也依然可以通过不完全恢复,找回被删除的数据。
附录
数据库与表(t1)
create database mydb in datadbs1 with log;
create table t_dept(f_deptid int, f_deptname varchar(20));
create table t_employee(f_employeeid int, f_deptid int, f_employeename varchar(20));
数据(t2)
insert into t_dept values(1, 'dept_1');
insert into t_dept values(2, 'dept_2');
insert into t_dept values(3, 'dept_3');
数据(t3)
insert into t_employee values(1, 1, 'employee_01');
insert into t_employee values(2, 1, 'employee_02');
insert into t_employee values(3, 2, 'employee_03');
insert into t_employee values(4, 2, 'employee_04');
insert into t_employee values(5, 3, 'employee_05');
数据(t5)
insert into t_employee values(11, 1, 'employee_11');
insert into t_employee values(12, 1, 'employee_12');
insert into t_employee values(13, 2, 'employee_13');
insert into t_employee values(14, 2, 'employee_14');
insert into t_employee values(15, 3, 'employee_15');
数据(t7)
insert into t_employee values(16, 3, 'employee_16');
数据(t9)
insert into t_employee values(21, 1, 'employee_21');
insert into t_employee values(22, 1, 'employee_22');
insert into t_employee values(23, 2, 'employee_23');
insert into t_employee values(24, 2, 'employee_24');
insert into t_employee values(25, 3, 'employee_25');
数据(t11)
insert into t_dept values(4, 'dept_4');
数据(t12)
update t_employee set f_employeename = 'employee_updated' where f_employeeid = 11;
数据(t14)
delete from t_employee where f_employeeid = 14;
数据(t15)
drop table t_employee;
数据(t16)
insert into t_dept values(5, 'dept_5');
数据(t19)
insert into t_employee values(101, 1, 'employee_101');
insert into t_employee values(102, 1, 'employee_102');
insert into t_employee values(103, 2, 'employee_103');
insert into t_employee values(104, 2, 'employee_104');
insert into t_employee values(105, 3, 'employee_105');
数据(t20)
drop table t_employee;