GBASE南大通用GBase 8s数据库- 备份与恢复(onbar)(2)

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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值