绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
GaussDB 100 修改数据库状态
2020-02-27 10:24:49

ALTER DATABASE

功能描述

修改数据库。

注意事项

  • 执行该语句的用户需要有ALTER DATABASE系统权限。

  • 不支持自动的备机文件管理。

  • 不支持在备机上执行add/drop logfile操作。

语法格式

ALTER DATABASE [ database_name ]
{ startup_clauses
| logfile_clauses
| archlogfile_clauses
| standby_database_clauses
| alter_datafile_clauses
| clear_logfile_clauses
| rebuild_clauses
| SWITCHOVER
| FAILOVER
| CANCEL RESTRICTED
| CONVERT TO { READONLY | READWRITE } |{[ CASCADED ] PHYSICAL STANDBY [ MOUNT ] }
}
  • startup_clauses 子句:

    { MOUNT | OPEN [ RESETLOGS | READ ONLY | READ WRITE | RESTRICTED | UPGRADE | FORCE IGNORE LOGS] }
  • logfile_clauses 子句:

    { [ ARCHIVELOG | NOARCHIVELOG ] add_logfile_clauses | drop_logfile_clauses }
    • add_logfile_clauses 子句:

      ADD  LOGFILE redo_log_file_spec
      redo_log_file_spec 子句:
      ( { 'file_name' SIZE integer [ K | M | G | T | P | E ]
      } [ , ... ]
      )
    • drop_logfile_clauses 子句:

      DROP  LOGFILE ( 'file_name' )
  • archlogfile_clauses 子句:

    DELETE ARCHIVELOG { ALL | UNTIL TIME 'date_string' } [ FORCE ]
  • standby_database_clauses 子句:

    SET STANDBY DATABASE TO MAXIMIZE {   PROTECTION 
    | AVAILABILITY
    | PERFORMANCE
    }
  • alter_datafile_clauses 子句:

    DATAFILE { { 'file_name' | file_number 
    } [, ...]
    }
    { autoextend_clause | resize_clause }
    • autoextend_clause 子句:

      AUTOEXTEND {   OFF 
      | ON [ NEXT integer [ K | M | G] ]
      [ MAXSIZE { integer [ K | M | G]
      | UNLIMITED
      }
      ]
      }
    • resize_clause 子句:

      RESIZE integer [ K | M | G ]
  • clear_logfile_clauses 子句

    CLEAR LOGFILE file_id
  • rebuild_clause子句

    REBUILD TABLESPACE tablespace_name

参数说明

  • database_name

    待修改的数据库名,不指定则取当前MOUNT状态的数据库。

  • startup_clauses

    指定数据库状态为MOUNT或者OPEN。

     说明:
    • 只能将数据库从MOUNT状态修改为OPEN状态,不能从OPEN状态修改为MOUNT状态。

    • 数据库从OPEN状态切换为OPEN子状态,或除READ WRITE和READ ONLY外的其他OPEN子状态之间相互切换状态时,只能按照下面的步骤,否则报错:

    • UPGRADE模式是升级专用模式,该模式需匹配升级脚本upgrade.py使用,具体操作请参见《GaussDB 100 V300R001C00用户指南(单机)》中的“安装部署 > 安装准备 > 升级数据库”,其他非常规操作将导致数据库进程异常退出等不可用场景。

    • RESTRICTED模式下可以进行系统表的索引重建,非必要时不建议进行该操作;如果发现系统表的索引结构稀疏,占空间较大,影响业务运行速度,建议在RESTRICTED模式下进行索引重建;重建系统表索引不支持在线(online),也不支持重新指定表空间。主备场景下,如果主机要进行重建系统表索引的维护操作,备机也需要进入RESTRICTED模式。

    • RESETLOGS,重置数据库日志序列号为1。

    • READ WIRTE,启动到OPEN后的默认状态,支持读写。

    • READ ONLY,只读模式,此时数据库只支持查询。

    • RESTRICTED, 约束模式,该模式用来支持数据库维护,紧急修复等DFX能力。该模式只支持SYS用户启动并执行操作,进入该模式后,仅支持一个session连接。模式下支持重建系统表的索引,但是需要严格遵循步骤操作。

    • UPGRADE,该模式只加载核心系统表,只支持SYS用户启动并执行操作,进入该模式后,仅支持一个session连接。

      数据库升级时,需要先切换数据库状态为UPGRADE。

      该模式仅用于升级,如果不严格按照升级流程操作,会导致数据库处于不可用状态。

    • FORCE IGNORE LOGS, 数据库启动到OPEN模式时,强制忽略日志文件。

      用于数据库日志文件损坏,无法恢复到CONSISTENT POINT时,强制忽略损坏的日志。

      该操作无法保证数据库的一致性,如果未恢复到CONSISTENT POINT点,会在运行日志中提示用户,同时视图DV_DATABASE中的OPEN_INCONSISTENCY将置为TRUE。

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

      如果数据库当前状态为MOUNT,再次修改为MOUNT时将报错。

    • OPEN,数据库正常启动状态。

      OPEN数据库时初始化DC,将堆文件元数据加载到内存中。

  1. 使用python zctl.py -t stop命令,关闭数据库。

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

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

  • logfile_clauses

    添加或删除日志文件。

    设置Redo日志归档和Redo日志在线,只能在数据库MOUNT状态下执行。添加和删除Redo日志只能在数据库open状态下执行。

    • online和standby的日志文件之和多支持256个,如果超过则报错。

    • SIZE integer [ K | M | G | T | P | E ]

      指定文件大小。默认单位为字节。K表示单位为KB,M表示单位为MB,G表示单位为GB,T表示单位为TB,E表示单位为EB。

    • ARCHIVELOG

      设置Redo日志归档。

    • NOARCHIVELOG

      设置Redo日志在线。

       说明:

      数据库主备部署时,只能设置Redo日志归档,不能设置Redo日志在线。

    • add_logfile_clauses

      在主机的Redo Log增加一个或者多个Redo日志文件。如果只是给出日志文件名,则文件默认添加在“$GSDB_HOME/data”目录下面。

      redo_log_file_spec

      Redo日志文件,可以设置一个或多个。此参数必须包含文件大小、路径或文件名,其中文件大小无限制条件。

    • drop_logfile_clauses

      在主机的Redo Log删除Redo日志文件,一次只能删除一个日志文件。

  • archlogfile_clauses

    删除归档日志文件,只能在归档模式下执行。

    • date_string :时间参数,格式可以为YYYY-MM-DD hh:mm:ss 或 YYYY-MM-DD。

    • ALL

      删除所有满足删除策略的归档日志。

      删除策略指归档日志占用空间是否达到MAX_ARCH_FILES_SIZE的85%,归档日志是否已经备份,归档日志是否被备机重演完,可通过配置MAX_ARCH_FILES_SIZE和ARCH_CLEAN_IGNORE_STANDBY参数配置删除策略。

    • UNTIL TIME 'date_string'

      删除date之前产生的满足删除策略的归档日志。

    • FORCE

      删除时忽略归档日志是否已经备份,对所有小于rcy_point的归档日志进行删除。FORCE子句是高危语句,在使用时应当十分谨慎。

  • standby_database_clauses

    切换数据库备机的数据保护模式。

    • PROTECTION:大保护模式。只能在备机MOUNT状态执行。

      提供别的数据保护能力。要求数据库备机收到Redo日志后,数据库主机的事务才能提交。此模式可以保证没有数据丢失,但是对网络等客观条件要求非常高,对数据库性能会有较大影响。

    • AVAILABILITY:大可用模式。

      提供仅次于“PROTECTION”模式的数据保护能力。原则上要求数据库备机收到Redo日志后,数据库主机的事务才能提交,当备机无法写入Redo日志时,数据保护模式临时降低为“PERFORMANCE”,直到备机恢复可以成功写入日志。此模式可以在数据库备机没有问题时,保证备机数据不丢失,对数据库性能有一定影响。

    • PERFORMANCE:大性能模式。

      保证数据库主机的高可用性。主机不受备机影响,但如果数据库主机提交的事务相关的恢复数据没有发送到备机,这些事务数据将丢失,不能保证数据无损失。

  • alter_datafile_clauses

    变更数据库的一个或多个数据文件属性。当前只支持变更数据文件的自动扩展属性。

    数据文件可以通过“文件名”以及“文件编号”两种方式指定。

    • integer [ K | M | G ]

    • OFF

      关闭自动扩展属性。

    • ON

      开启自动扩展属性。

      当自动扩展属性设置为ON时,可设置的属性如下:
    • NEXT,指定自动扩展的大小。若用户未指定时,默认值为16MB。

    • MAXSIZE,指定数据文件自动扩展的上限。设置的上限大小不能超过当前文件大小。若用户未指定或指定为 “UNLIMITED” 时,上限尺寸为8TB。若用户指定了上限值,则指定的上限值不可大于8TB。若用户既指定了上限值也通过“NEXT”指定了自动扩展大小,则指定的上限值不得小于用户指定的自动扩展值。

      UNLIMITED

      自动扩展,无上限。

    • file_name文件名。支持路径和单纯文件名两种方式。如果用户输入的是单纯的文件名,则数据库会根据当前ALTER DATABASE语句指定的数据库实例路径的 “data”目录拼接出一个全路径。若用户输入的就是路径,则数据库不会对输入值进行任何加工。file_name大长度为256字节。

    • file_number:文件编号。数据库中的数据文件编号。请参见《GaussDB 100 V300R001C00数据库参考信息》中的“数据字典和视图 > 动态性能视图 > DV_DATA_FILES”的ID字段获得一个数据文件的编号。

    • autoextend_clause

      设置自动扩展属性,以及开启时每次自动扩展的尺寸或自动扩展的上限。

    • resize_clause

      修改数据文件的大小,请参见《GaussDB 100 V300R001C00数据库参考信息》中的“数据字典和视图 > 动态性能视图 > DV_DATA_FILES”的FILE_NAME字段或ID字段所表示的文件的大小。

      不支持在OPEN状态下的READ ONLY状态执行该语句,OPEN状态下的其余子状态下均支持。

      当减小数据文件的大小时,不能小于数据库系统要求的小尺寸,其中system表空间以及undo表空间小尺寸为128M,其他数据文件小尺寸为1M。

      减小数据文件大小时不能损坏有效数据的存储区域,否则命令执行失败。

      有效数据占用的页面数,请参见《GaussDB 100 V300R001C00数据库参考信息》中的“数据字典和视图 > 动态性能视图 > DV_DATA_FILES”的HIGH_WATER_MARK字段获取,需要注意的是该参数是数据文件占据的页面数,要计算文件大小需要将该值乘以每一页面的尺寸大小。

      数据文件大小。

      K:单位KB

      M:单位MB

      G:单位GB

  • SWITCHOVER

    数据库主备机切换。

  • FAILOVER

    数据库备机升为主机。

  • CANCEL RESTRICT

    取消RESTRICTED模式。数据库升级完成后,需要取消RESTRICTED模式。

    需在进入RESTRICTED模式且执行完成ALTER SYSTEM INIT DICTIONARY语句后执行。

  • CONVERT TO

    • READWIRTE,启动到OPEN后的默认状态,支持读写。

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

    • [CASCADED] PHYSICAL STANDBY [MOUNT]

      修改数据库角色为备机(PHYSICAL STANDBY)或者级联备机(CASCADED PHYSICAL STANDBY)。该操作只能在MOUNT状态下执行。

      如果指定参数MOUNT,则只修改角色,不修改数据库状态;若不指定参数MOUNT,修改角色后,数据库会自动转换为OPEN状态下的READ ONLY 状态。

    • READONLY| READWRITE

      修改数据库状态。READWRITE和READONLY状态可以在线相互切换,数据库主备部署时,只能在主机执行。

  • clear_logfile_clause

    清理和重建日志文件id为file_id的日志文件内容,用于日志文件头部损坏导致数据库无法启动时,若此日志文件可以清理,则可以使用此命令清理损坏内容,重建日志文件,使数据库可以启动。

    该操作可以在mount或open状态下执行。

    • file_id,指定要清理重建的日志文件id。仅支持状态为UNUSED或INACTIVE的日志文件。

  • rebuild_clause

    重建表空间,注意此命令必须在mount模式下执行。

    • tablespace_name,表空间名称,当前仅支持重建temp表空间。


    分享好友

    分享这个小栈给你的朋友们,一起进步吧。

    GaussDB_数据库
    创建时间:2020-01-06 16:21:44
    华为GaussDB数据库小栈
    展开
    订阅须知

    • 所有用户可根据关注领域订阅专区或所有专区

    • 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

    • 专区发布评论属默认订阅所评论专区(除付费小栈外)

    技术专家

    查看更多
    • GaussDB_数据库
      专家
    戳我,来吐槽~