• openGauss每日一练第1天 | openGauss数据库状态查看


    第二届openGauss每日一练活动开始了,前几天没跟上,周末时间来补上,开始深入学习openGauss,要坚持学习哦!

    一、学习目标

    学习从操作系统层面和使用openGauss工具查看数据库的状态、版本和数据文件目录。

    1. 从操作系统层面查看数据库进程和线程,判断数据库是否启动。
    2. 使用gs_ctl工具查看数据库状态,判断数据库是否启动。
    3. 使用gs_ctl 查看数据文件的目录。
    4. 从环境变量查看数据文件的目录。
    5. 在gsql中查看数据文件目录、数据库版本

    二、课程学习

    gs_ctl是openGauss提供的数据库服务控制工具,可以用来启停数据库服务和查询数据库状态。主要供openGauss管理模块调用。

    gs_ctl工具由操作系统用户omm执行。可以执行:
    启动、停止、重启openGauss节点。

    三、课程作业

    1. 操作系统层面查看数据库进程和线程。如果数据库启动,则有相应的进程和线程。
    查看实例中的进程
    ps -ef|grep gauss
    查看实例中的线程
    ps -Tp 1
    
    • 1
    • 2
    • 3
    • 4

    实训环境示例:

    root@modb:~# su - omm
    omm@modb:~$ ps -ef|grep gauss
    omm          1     0  0 18:40 ?        00:00:05 gaussdb
    omm        521   517  0 19:03 pts/0    00:00:00 grep gauss
    omm@modb:~$ ps -Tp 1
      PID  SPID TTY          TIME CMD
        1     1 ?        00:00:00 gaussdb
        1   293 ?        00:00:00 jemalloc_bg_thd
        1   299 ?        00:00:00 gaussdb
        1   300 ?        00:00:00 syslogger
        1   301 ?        00:00:00 jemalloc_bg_thd
        1   302 ?        00:00:00 alarm
        1   303 ?        00:00:00 reaper
        1   304 ?        00:00:00 jemalloc_bg_thd
        1   305 ?        00:00:00 jemalloc_bg_thd
        1   349 ?        00:00:00 checkpointer
        1   350 ?        00:00:00 Spbgwriter
        1   351 ?        00:00:00 pagewriter
        1   352 ?        00:00:00 pagewriter
        1   353 ?        00:00:00 pagewriter
        1   354 ?        00:00:00 pagewriter
        1   355 ?        00:00:00 pagewriter
        1   356 ?        00:00:00 WALwriter
        1   357 ?        00:00:00 WALwriteraux
        1   358 ?        00:00:00 AVClauncher
        1   359 ?        00:00:00 Jobscheduler
        1   360 ?        00:00:00 asyncundolaunch
        1   361 ?        00:00:00 globalstats
        1   362 ?        00:00:00 applylauncher
        1   363 ?        00:00:00 statscollector
        1   365 ?        00:00:02 ashworker
        1   366 ?        00:00:00 TrackStmtWorker
        1   367 ?        00:00:00 auditor
        1   364 ?        00:00:00 percentworker
        1   368 ?        00:00:00 2pccleaner
        1   369 ?        00:00:00 faultmonitor
        1   370 ?        00:00:00 WLMworker
        1   371 ?        00:00:00 WLMmonitor
        1   373 ?        00:00:00 undorecycler
        1   372 ?        00:00:00 WLMarbiter
    omm@modb:~$ 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    2. 使用gs_ctl工具查看数据库状态,如果数据库启动,显示gs_ctl: server is running (PID: 1)

    gs_ctl status

    omm@modb:~$ gs_ctl status
    [2022-11-27 19:06:28.525][536][][gs_ctl]: gs_ctl status,datadir is /var/lib/opengauss/data 
    gs_ctl: server is running (PID: 1)
    /usr/local/opengauss/bin/gaussdb
    omm@modb:~$ 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    3. 使用gs_ctl 查看数据文件的目录

    gs_ctl notify

    omm@modb:~$ gs_ctl notify
    [2022-11-27 19:07:31.613][544][][gs_ctl]: gs_ctl notify ,datadir is /var/lib/opengauss/data 
    [2022-11-27 19:07:31.614][544][][gs_ctl]: the parameter of notify must be specified
    omm@modb:~$ 
    
    • 1
    • 2
    • 3
    • 4
    4. 查看omm用户的环境变量:

    cat ~/.bashrc

    omm@modb:~$ cat ~/.bashrc
    # ~/.bashrc: executed by bash(1) for non-login shells.
    # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
    # for examples
    
    # If not running interactively, don't do anything
    case $- in
        *i*) ;;
          *) return;;
    esac
    
    # don't put duplicate lines or lines starting with space in the history.
    # See bash(1) for more options
    HISTCONTROL=ignoreboth
    
    # append to the history file, don't overwrite it
    shopt -s histappend
    
    # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
    HISTSIZE=1000
    HISTFILESIZE=2000
    
    # check the window size after each command and, if necessary,
    # update the values of LINES and COLUMNS.
    shopt -s checkwinsize
    
    # If set, the pattern "**" used in a pathname expansion context will
    # match all files and zero or more directories and subdirectories.
    #shopt -s globstar
    
    # make less more friendly for non-text input files, see lesspipe(1)
    #[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
    
    # set variable identifying the chroot you work in (used in the prompt below)
    if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
        debian_chroot=$(cat /etc/debian_chroot)
    fi
    
    # set a fancy prompt (non-color, unless we know we "want" color)
    case "$TERM" in
        xterm-color|*-256color) color_prompt=yes;;
    esac
    
    # uncomment for a colored prompt, if the terminal has the capability; turned
    # off by default to not distract the user: the focus in a terminal window
    # should be on the output of commands, not on the prompt
    #force_color_prompt=yes
    
    if [ -n "$force_color_prompt" ]; then
        if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
            # We have color support; assume it's compliant wit
        #alias egrep='egrep --color=auto'
    fi
    
    # colored GCC warnings and errors
    #export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
    
    # some more ls aliases
    #alias ll='ls -l'
    #alias la='ls -A'
    #alias l='ls -CF'
    
    # Alias definitions.
    # You may want to put all your additions into a separate file like
    # ~/.bash_aliases, instead of adding them here directly.
    # See /usr/share/doc/bash-doc/examples in the bash-doc package.
    
    if [ -f ~/.bash_aliases ]; then
        . ~/.bash_aliases
    fi
    
        . /etc/bash_completion
      fi
    fi
    export GAUSSHOME=/usr/local/opengauss
    export PATH=$GAUSSHOME/bin:$PATH 
    export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
    export PGDATA=/var/lib/opengauss/data
    h Ecma-48
            # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
            # a case would tend to support setf rather than setaf.)
            color_prompt=yes
        else
            color_prompt=
        fi
    fi
    
    if [ "$color_prompt" = yes ]; then
        PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
    else
        PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    fi
    unset color_prompt force_color_prompt
    
    # If this is an xterm set the title to user@host:dir
    case "$TERM" in
    xterm*|rxvt*)
        PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
        ;;
    *)
        ;;
    esac
    
    # enable color support of ls and also add handy aliases
    if [ -x /usr/bin/dircolors ]; then
        test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
        alias ls='ls --color=auto'
        #alias dir='dir --color=auto'
        #alias vdir='vdir --color=auto'
    
        #alias grep='grep --color=auto'
        #alias fgrep='fgrep --color=auto'# enable programmable completion features (you don't need to enable
    # this, if it's already enabled in /etc/bash.bashrc and /etc/profile
    # sources /etc/bash.bashrc).
    if ! shopt -oq posix; then
      if [ -f /usr/share/bash-completion/bash_completion ]; then
        . /usr/share/bash-completion/bash_completion
      elif [ -f /etc/bash_completion ]; then
    omm@modb:~$ 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    5. 从环境变量查看数据文件的目录

    grep -i PGDATA ~/.bashrc

    omm@modb:~$ grep -i PGDATA ~/.bashrc
    export PGDATA=/var/lib/opengauss/data
    
    • 1
    • 2
    6. 在gsql中查看数据文件的目录、数据库版本
    su - omm
    gsql -r
    show data_directory ;
    select version();
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    root@modb:~# su - omm
    omm@modb:~$ gsql -r
    gsql ((openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:00 commit 0 last mr  )
    Non-SSL connection (SSL connection is recommended when requiring high-security)
    Type "help" for help.
    
    omm=# show data_directory;
         data_directory      
    -------------------------
     /var/lib/opengauss/data
    (1 row)
    
    omm=# select version();
    -----------------------------------------------------------------------------------------------
    --------------------------------------------------------
     (openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:00 commit 0 last mr   on aarch64
    -unknown-linux-gnu, compiled by g++ (GCC) 7.3.0, 64-bit
    (1 row)
    
                                                                            version                
                                                            
    omm=# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  • 相关阅读:
    Python低溫半导体电子束量子波算法计算
    【ManageEngine】网络带宽管理工具
    c++智能指针(raii)
    SpringBoot日志操作及使用/在IDEA中SpringBoot怎么使用热部署/SpringBoot自动部署更新修改内容
    面试题:Kafka中Controller的作用是什么?选举流程是怎样的?以及如何避免脑裂问题?
    SpringBoot项目如何进行打包部署
    Go&Java算法之迷你语法分析器
    一、ubuntu-django+nginx+uwsgi:ubuntu系统部署django项目,前后端不分离项目
    HCIP学习笔记
    Dubbo基本结构及执行流程
  • 原文地址:https://blog.csdn.net/qq_40220309/article/details/128070587