暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GaussDB T :智能的控制文件自动恢复,一号控制文件是GaussDB的灵魂

原创 eygle 2020-02-18
1233

在GaussDB 中,第一个控制文件是主控制文件,其作用至关重要。以下测试来验证这个结论。

首先,前面小节的测试已经表明,如果丢失了控制文件,数据库肯定是无法正常启动的。我们接下来看看其他运行时情况。

以下实验,在运行时清空控制文件的内容,重新启动数据库时,可以发现数据库没有出现错误,而二号控制文件被自动复制同步过来:

[eygle@enmodb1 data]$ python $GSDB_HOME/bin/zctl.py -t start
Successfully started instance.
[eygle@enmodb1 data]$ 
[eygle@enmodb1 data]$ echo "" > cntl2
[eygle@enmodb1 data]$ ls -l cntl2
-rw------- 1 eygle enmotech 1 Jan  3 12:24 cntl2
[eygle@enmodb1 data]$ python $GSDB_HOME/bin/zctl.py -t stop
Successfully stopped instance.
[eygle@enmodb1 data]$ ls -l cntl2
-rw------- 1 eygle enmotech 32768 Jan  3 12:24 cntl2
[eygle@enmodb1 data]$ python $GSDB_HOME/bin/zctl.py -t start
Successfully started instance.
[eygle@enmodb1 data]$ ls -l cntl2
-rw------- 1 eygle enmotech 10485760 Jan  3 12:25 cntl2

这种情况,就为我们恢复控制文件提供了一个新的选择,如果数据库丢了的是二号或者三号控制文件,那么仅仅需要创造一个空文件出来,数据库在启动过程中就会自动来同步恢复这两个控制文件。

测试如下:

[eygle@enmodb1 data]$ python $GSDB_HOME/bin/zctl.py -t stop
Successfully stopped instance.
[eygle@enmodb1 data]$ echo "" > cntl2
[eygle@enmodb1 data]$ echo "">  cntl3
[eygle@enmodb1 data]$ ls -l cntl*
-rw------- 1 eygle enmotech 10485760 Jan  3 12:28 cntl1
-rw------- 1 eygle enmotech        1 Jan  3 12:28 cntl2
-rw------- 1 eygle enmotech        1 Jan  3 12:28 cntl3
[eygle@enmodb1 data]$ python $GSDB_HOME/bin/zctl.py -t start
Successfully started instance.
[eygle@enmodb1 data]$ ls -l cntl[1-3]
-rw------- 1 eygle enmotech 10485760 Jan  3 12:28 cntl1
-rw------- 1 eygle enmotech 10485760 Jan  3 12:28 cntl2
-rw------- 1 eygle enmotech 10485760 Jan  3 12:28 cntl3

但是如果损失的是一号控制文件,则数据库将无法启动:

[eygle@enmodb1 data]$ python $GSDB_HOME/bin/zctl.py -t stop
Successfully stopped instance.
[eygle@enmodb1 data]$ echo ""> cntl1
[eygle@enmodb1 data]$ python $GSDB_HOME/bin/zctl.py -t start
Can not get instance '/gaussdb/gaussdata' process pid

所以在此补充一下本章的第一句话:控制文件是数据库的“大脑,而一号控制文件是GaussDB的灵魂。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论