ITPub博客

首页 > 数据库 > > GaussDB 100 数据库系统管理之管理数据库状态

GaussDB 100 数据库系统管理之管理数据库状态

作者:GaussDB_数据库 时间:2020-03-02 10:47:10 0 删除 编辑

操作场景

数据库管理员需要在GaussDB 100不同的启动状态下,维护、重建数据库实例。

注意事项

  • 修改数据库状态只能NOMOUNT修改为MOUNT或OPEN,MOUNT修改为OPEN,不能从OPEN状态回退。如需在OPEN状态下切换到其他状态,请以NOMOUNT或者MOUNT状态重新启动数据库实例。

  • 数据库从OPEN状态切换为OPEN子状态时,READ WRITE和READ ONLY状态可以在线相互切换,RESETLOGS和RESTRICT仅能在NOMOUNT或MOUNT状态下切换。

相关概念

GaussDB 100启动需要经历四个状态,分别为CLOSED、NOMOUNT、MOUNT、OPEN。数据库管理员可以根据需求,启动到任意状态。

 

查看数据库状态
  • 在已连接GaussDB 100的情况下,可以通过DV_DATABASE视图查看数据库状态。

    SELECT STATUS FROM DV_DATABASE;
    STATUS
    --------------------
    OPEN
    1 rows fetched.
  • 通过DV_DATABASE视图查看OPEN状态。

    SELECT OPEN_STATUS FROM DV_DATABASE;
    OPEN_STATUS
    --------------------
    OPEN READONLY
    1 rows fetched.

修改数据库实例状态

  1. 以gaussdba用户身份登录GaussDB 100所在服务器。

  2. 以NOMOUNT或MOUNT状态启动数据库,并连接数据库。

    以NOMOUNT启动为例。
    python zctl.py -t start -m NOMOUNT

  3. 以DBA身份登录GaussDB 100数据库。

    zsqlconn gaussdba/gaussdb_123@192.168.0.1:1888

    gaussdba/gaussdb_123为安装后创建的系统管理员和修改后的密码,192.168.0.1为数据库所在的服务器IP地址,1888为连接的端口号。

     

  4. 修改数据库状态,以修改为MOUNT为例。

    ALTER DATABASE MOUNT;

     修改数据库OPEN子状态

  • 修改RESETLOGS和RESTRICT状态。

  1. 关闭数据库。

    cd ${GSDB_HOME}/bin
    python zctl.py -t stop

  2. 以NOMOUNT或MOUNT状态启动数据库。

    python zctl.py -t start -m { NOMOUNT | MOUNT }

  3. 以DBA身份登录GaussDB 100数据库。

    zsqlconn gaussdba/gaussdb_123@192.168.0.1:1888

    gaussdba/gaussdb_123为安装后创建的系统管理员和修改后的密码,192.168.0.1为数据库所在的服务器IP地址,1888为连接的端口号。

     

  4. 切换数据库状态为OPEN子状态。

    例如切换到RESTRICT子状态。
    ALTER DATABASE OPEN RESTRICT;

  • 修改READ WRITE和READ ONLY状态。

    READ WRITE和READ ONLY状态可以在线相互切换,HA主备部署时,只能在主机执行。

    • 从READ ONLY切换为READ WRITE:

      ALTER DATABASE CONVERT TO READWRITE;
    • 从READ WRITE切换为READ ONLY:

      ALTER DATABASE CONVERT TO READONLY;

状态说明

表1 数据库状态说明

状态名称

描述

使用场景

CLOSED

系统启动前的状态。

-

NOMOUNT

进程/线程已经启动,未加载数据库状态。用户能与数据库进行通信,但不能使用数据库中的任何文件。

  • 创建新数据库实例。

  • 重建控制文件。

CREATING

创建数据库状态

-

MOUNT

数据库加载状态,但不打开数据库。此模式下,仅数据库管理员可以通过命令修改数据库,但用户无法与数据库建立连接或会话。

  • 对数据文件进行重命名、增加、删除操作。

  • 执行数据库的完全恢复。

  • 改变数据库的归档模式。

RECOVERY

数据库恢复状态。

-

OPEN

数据库加载完成,实例启动完毕。

正常使用

表2 OPEN子状态说明

状态名称

描述

使用场景

READ WRITE

启动到open后的默认状态,支持读写

正常执行业务时采用该模式,open默认模式。

READ ONLY

只读模式,此时数据库只支持查询

  • 数据库主备切换前主机先置为该模式。

  • 只需要查询的场景。

RESTRICT

该模式只加载核心系统表,只支持SYS用户启动并执行操作。

  • 该模式可匹配升级脚本upgrade.py使用,请按照升级数据库进行操作,其他非常规操作将导致数据库进程异常退出等不可用场景。

  • 在该模式下,支持以通过COMMIT FORCE命令强制提交残留事务。不支持强制提交RESTRICT模式下产生的新事务。

RESETLOGS

重置数据库的时间线,防止陈旧的数据进入数据库。

物理备份恢复后,重置时间线。

说明:

必须执行完成recover database之后才能执行。

示例

修改数据库的状态。
--修改数据库状态为MOUNT。
ALTER DATABASE MOUNT;
--修改数据库状态为OPEN。
ALTER DATABASE OPEN;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3154405/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-01-06

  • 博文量
    2907
  • 访问量
    19244