#DROP DATABASE

# 通用描述

DROP DATABASE用于删除当前数据库,删除数据库所包含的如下持久化文件:

  • 数据文件
  • 切片文件
  • redo日志文件(可通过指定KEEP LOGFILE关键字保留)
  • 归档日志文件(默认保留,可通过指定INCLUDING ARCHIVELOG关键字一并删除)
  • 控制文件
  • 双写文件(共享集群/分布式集群部署中无此类文件)

Warn:

DROP DATABASE语句无法回滚,请谨慎操作

当YashanDB部署为容器数据库(配置参数ENABLE_PLUGGABLE_DATABASE=TRUE)时,若连接根容器使用该语句,表示进行全局操作,即涵盖根容器和所有PDB。若直连某个PDB使用该语句,则会报错,只能连接根容器执行DROP PLUGGABLE DATABASE语句删除某个PDB。

该语句不适用于存算一体分布式集群部署。

该语句的使用要求如下:

  • 要求数据库的控制文件完整(控制文件组成员均存在且正确)。

  • 要求数据库处于NOMOUNT阶段,此时只能由sys用户连接数据库。

  • 共享集群/分布式集群部署中,要求在主实例(GV$INSTANCE视图中INSTANCE_ROLE=MASTER_ROLE)上执行本语句。

  • 在容器数据库中,删除根容器时还要求已删除所有PDB(包括种子容器)。

# 语句定义

drop database::=

syntax
DROP DATABASE INCLUDING ARCHIVELOG KEEP LOGFILE

# 1. INCLUDING ARCHIVELOG

该语句决定是否删除数据库的归档日志文件,缺省为不删除。

# 2. KEEP LOGFILE

该语句决定是否保留redo日志文件,缺省为不保留。

示例(单机/共享集群/分布式集群部署)

# 启动实例到NOMOUNT
$ yasboot cluster restart -c yashandb -m nomount

# 以sys用户登录数据库
$ yasql / as sysdba

-- 删除数据库
SQL> DROP DATABASE;
-- 或
DROP DATABASE INCLUDING ARCHIVELOG;
-- 或
DROP DATABASE KEEP LOGFILE;
pdf-btn 下载文档 copy-btn 复制链接
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流