GBase 8a单机,其事务是记录在事务日志translog里的,如果因某些原因出现损坏。而在数据库启动时,会尝试redo, 而此时translog日志损坏,导致卡住或报错。删除日志文件后,可以正常启动。
GBase 8a单机因为不涉及到MPP,在早期版本的事务支持就比集群略好一些,且当时的版本没有做到很好的保护,如果进程或服务器意外宕机、重启、磁盘空间满或断电等情况发生,可能导致事务日志有部分内容没有刷到磁盘,由于事务日志translog损坏导致无法启动的分析和处理。
目录导航
现象
数据库system,log里在启动时,出现redo操作信息,包含flush刷新信息,但一直没有完成。
解决方案
停掉进程,然后将事务日志删除或挪走,然后再重启服务。
建议现场,除非硬件故障,断电等情况,否则重启时,一定先停掉数据库服务,然后再重启reboot。
事务日志位置
安装目录/server/translog/tranalog, 同时会出现一个flush字样的文件。
更多单机内容,请参考 http://www.gbase8.cn/tag/%e5%8d%95%e6%9c%ba%e7%89%88
单机事务介绍
默认是不开启事务的,其translog大小也一直是0. 数据库参数也是不使用。
gbase> show variables like '%tx%';
+-------------------------+-------------------------------------+
| Variable_name | Value |
+-------------------------+-------------------------------------+
| gbase_tx_log_dir | /home/gbase8/GBase/server/translog/ |
| gbase_tx_log_flush_time | 90.000000 |
| gbase_tx_log_mode | NO_USE,NO_STANDARD_TRANS |
| tx_isolation | REPEATABLE-READ |
+-------------------------+-------------------------------------+
4 rows in set (Elapsed: 00:00:00.00)
gbase> ^CAborted
[gbase8@gbase8a ~]$ cd GBase
[gbase8@gbase8a GBase]$ ll
total 8
drwxrwxr-x 2 gbase8 gbase8 56 Sep 4 05:54 config
drwxrwxr-x 2 gbase8 gbase8 6 Sep 4 05:54 docs
drwxrwxr-x 2 gbase8 gbase8 101 Sep 4 05:54 install_config
drwxrwxr-x 3 gbase8 gbase8 37 Sep 4 05:54 install_templet
-rw-r--r-- 1 gbase8 gbase8 3351 Sep 4 05:54 license.txt
drwxrwxr-x 3 gbase8 gbase8 21 Sep 4 05:54 log
drwxrwxr-x 2 gbase8 gbase8 6 Sep 4 05:54 misc
-rw-rw-r-- 1 gbase8 gbase8 446 Sep 4 05:54 readme.txt
drwxrwxr-x 7 gbase8 gbase8 72 Sep 4 05:54 server
drwxrwxr-x 4 gbase8 gbase8 49 Sep 4 05:54 tmpdata
drwxrwxr-x 3 gbase8 gbase8 21 Sep 4 05:54 userdata
[gbase8@gbase8a GBase]$ cd server/
[gbase8@gbase8a server]$ ll
total 4
drwxrwxr-x 4 gbase8 gbase8 4096 Sep 4 05:54 bin
drwxrwxr-x 3 gbase8 gbase8 19 Sep 4 05:54 include
drwxrwxr-x 3 gbase8 gbase8 19 Sep 4 05:54 lib
drwxrwxr-x 4 gbase8 gbase8 35 Sep 4 05:54 share
drwx------ 2 gbase8 gbase8 22 Sep 4 05:54 translog
[gbase8@gbase8a server]$ cd translog/
[gbase8@gbase8a translog]$ ll
total 0
-rw------- 1 gbase8 gbase8 0 Sep 4 05:54 translog
[gbase8@gbase8a translog]$
开启事务
增加或修改配置参数,然后重启服务
gbase_tx_log_mode=USE,STANDARD_TRANS
[gbase8@gbase8a config]$ vi gbase_8a_gbase8a.cnf
[gbase8@gbase8a config]$ gbase.server restart
Shutting down GBase.... SUCCESS!
Starting GBase. SUCCESS!
[gbase8@gbase8a config]$ gbase
GBase client Free Edition 8.6.2.43-R7-free.110605. Copyright (c) 2004-2020, GBase. All Rights Reserved.
gbase> show variables like '%tx%';
+-------------------------+-------------------------------------+
| Variable_name | Value |
+-------------------------+-------------------------------------+
| gbase_tx_log_dir | /home/gbase8/GBase/server/translog/ |
| gbase_tx_log_flush_time | 90.000000 |
| gbase_tx_log_mode | USE,STANDARD_TRANS |
| tx_isolation | REPEATABLE-READ |
+-------------------------+-------------------------------------+
4 rows in set (Elapsed: 00:00:00.00)
gbase> ^CAborted
查看translog,已经开始使用了。
[gbase8@gbase8a GBase]$ cd server/translog/
[gbase8@gbase8a translog]$ ll
total 4
-rw------- 1 gbase8 gbase8 4 Sep 4 06:38 translog
[gbase8@gbase8a translog]$ cat translog
[gbase8@gbase8a translog]$ xxd translog
0000000: 0000 0000 ....
[gbase8@gbase8a translog]$