第 3 章 数据定义语句

发布时间 2024-01-11 14:45:07作者: 一品堂.技术学习笔记

第 3 章 数据定义语句

本章介绍 DM 的数据定义语句,包括数据库修改语句、用户管理语句、模式管理语句、表空间管理语句、表管理语句等等。 需要注意的是,在数据定义语句中有时需要指定一些文件的路径,无论用户指定的是绝 对路径还是相对路径,DM 在处理时最终都会将其统一处理为绝对路径,DM 规定这个绝对路 径的长度不能超过 256 字节。

3.1 数据库修改语句

一个数据库创建成功后,可以增加和重命名日志文件,修改日志文件大小。可以修改数 据库的状态和模式。

语法格式

ALTER DATABASE <修改数据库语句>;
<修改数据库语句>::=
RESIZE LOGFILE <文件路径> TO <文件大小>|
ADD LOGFILE <文件说明项>{,<文件说明项>}|
RENAME LOGFILE <文件路径>{,<文件路径>} TO <文件路径>{,<文件路径>}|
MOUNT |
SUSPEND |
OPEN [FORCE] |
NORMAL |
PRIMARY|
STANDBY |
ARCHIVELOG |
NOARCHIVELOG |
<ADD|MODIFY|DELETE> ARCHIVELOG <归档配置语句> |
ARCHIVELOG CURRENT
<文件说明项> ::= <文件路径>SIZE <文件大小>
<归档配置语句>::= 'DEST = <归档目标>,TYPE = <归档类型>'
<归档类型>::=
LOCAL [<文件和路径设置>] |
REALTIME|
SYNC |
ASYNC ,TIMER_NAME = <定时器名称> |
REMOTE ,ARCH_INCOMING_PATH = <远程归档路径>[<文件和路径设置>]|
TIMELY
<文件和路径设置>::=[,FILE_SIZE = <文件大小>][,SPACE_LIMIT = <空间大小限制>]


参数

1. <文件路径>  指明被操作的数据文件在操作系统下的绝对路径:'路径+数据文件 名'。例如:'C:\DMDBMS\data\dmlog_0.log'。

2.<文件大小> 整数值,单位为 M。

3.<归档目标> 指归档日志所在位置,若本地归档,则本地归档目录;若远程归档, 则为远程服务实例名;删除操作,只需指定归档目标。

4.<归档类型> 指 归 档 操 作 类 型 , 包 括 REALTIME/ASYNC/SYNC/LOCAL/REMOTE/TIMELY,分别表示远程实时归档/远程异步归 档/远程同步归档/本地归档/远程归档/主备即时归档。

5.<空间大小限制> 整数值,范围(1024~4294967294),若设为 0,表示不限制, 仅本地归档有效。

6.<定时器名称> 异步归档中指定的定时器名称,仅异步归档有效


图例 

image


file_item 


image




archive configure_clause

image


arch_type

image

file_loc


image


语句功能

供具有 DBA 权限的用户修改数据库。

使用说明

1. 归档的配置也可以通过 dm.ini 参数 ARCH_INI 和归档配置文件 dmarch.ini 进 行,可参看《DM_DBA》,SQL 语句提供了在 DM 服务器运行时对归档配置进行动态 修改的手段,通过 SQL 语句修改成功后会将相关配置写入 dmarch.ini 中;

2. 修改日志文件大小时,只能增加文件的大小,否则失败。最大不能超过 4096M;

3. 只有 MOUNT 状态 NORMAL 模式下才能启用或关闭归档,添加、修改、删除归档, 重命名日志文件;

4. 归档模式下,不允许删除本地归档;

5. ARCHIVELOG CURRENT 把新生成的,还未归档的联机日志都进行归档。

举例说明

假设数据库 BOOKSHOP 页面大小为 8K,数据文件存放路径为 C:\DMDBMS\data。

例1 给数据库增加一个日志文件C:\DMDBMS\data\dmlog_0.log,其大小为200M。

ALTER DATABASE ADD LOGFILE 'C:\DMDBMS\data\dmlog_0.log' SIZE 200;

例 2 扩展数据库中的日志文件 C:\DMDBMS\data\dmlog_0.log,使其大小增大为 300M。

ALTER DATABASE RESIZE LOGFILE 'C:\DMDBMS\data\dmlog_0.log' TO 300;

例 3 设置数据库状态为 MOUNT。

例 4 设置数据库状态为 OPEN。

例 5 设置数据库状态为 SUSPEND。

ALTER DATABASE SUSPEND;

例 6 重命名日志文件 C:\DMDBMS\data\dmlog_0.log 为 d:\dmlog_1.log。

ALTER DATABASE MOUNT;

ALTER DATABASE RENAME LOGFILE 'C:\DMDBMS\data\dmlog_0.log' TO 'd:\dmlog_1.log';
ALTER DATABASE OPEN;


例 7 设置数据库模式为 PRIMARY。

例 8 设置数据库模式为 STANDBY。

ALTER DATABASE MOUNT;

ALTER DATABASE STANDBY;

ALTER DATABASE OPEN FORCE;

例 9 设置数据库模式为 NORMAL。

例 10 设置数据归档模式为非归档。

ALTER DATABASE MOUNT;

ALTER DATABASE NOARCHIVELOG;

例 11 设置数据库归档模式为归档。

ALTER DATABASE MOUNT;

ALTER DATABASE ARCHIVELOG;

例 12 增加本地归档配置,归档目录为 c:\arch_local,文件大小为 128MB,空间 限制为 1024MB。

ALTER DATABASE MOUNT;

ALTER DATABASE ADD ARCHIVELOG 'DEST = c:\arch_local, TYPE = local, FILE_SIZE = 128, SPACE_LIMIT = 1024';

例 13 增加一个实时归档配置,远程服务实例名为 realtime,需事先配置 mail。

ALTER DATABASE MOUNT;

ALTER DATABASE ADD ARCHIVELOG 'DEST = realtime, TYPE = REALTIME';

例 14 增加一个同步归档配置,远程服务实例名为 syn,需事先配置 mail。

ALTER DATABASE MOUNT;

ALTER DATABASE ADD ARCHIVELOG 'DEST = syn, TYPE = SYNC ';

例 15 增加一个异步归档配置,远程服务实例名为 asyn,定时器名为 timer1,需事 先配置好 mail 和 timer。

ALTER DATABASE MOUNT;

ALTER DATABASE ADD ARCHIVELOG 'DEST = asyn, TYPE = ASYNC, TIMER_NAME = timer1';

例 16 修改实时归档为同步归档,同步归档只能存在一个,若已经存在,则需删除(沿 用前面的例子)。

ALTER DATABASE MOUNT;

ALTER DATABASE DELETE ARCHIVELOG 'DEST = syn';

ALTER DATABASE MODIFY ARCHIVELOG 'DEST = realtime, TYPE = SYNC';



3.2管理用户

3.2.1 用户定义语句

在数据库中创建新的用户,DM7 中直接用 USER 与数据库服务器建立连接。

语法格式

CREATE USER <用户名> IDENTIFIED <身份验证模式> [PASSWORD_POLICY <口令策略>][<

锁定子句>][<存储加密密钥>][<空间限制子句>][<只读标志>][<资源限制子句>][<允许 IP 子句>][<

禁止 IP 子句>][<允许时间子句>][<禁止时间子句>][<TABLESPACE 子句>][<INDEX_TABLESPACE 子

句>];

<身份验证模式> ::= <数据库身份验证模式>|<外部身份验证模式>

<数据库身份验证模式> ::= BY <口令>

<外部身份验证模式> ::= EXTERNALLY | EXTERNALLY AS <用户 DN>

<口令策略> ::= 口令策略项的任意组合

<锁定子句> ::= ACCOUNT LOCK | ACCOUNT UNLOCK

<存储加密密钥> ::= ENCRYPT BY <口令>

<空间限制子句> ::= DISKSPACE LIMIT <空间大小>| DISKSPACE UNLIMITED

<只读标志> ::= READ ONLY | NOT READ ONLY

<资源限制子句> ::= LIMIT <资源设置项>{,<资源设置项>}

<资源设置项> ::= SESSION_PER_USER <参数设置>|

CONNECT_IDLE_TIME <参数设置>|

CONNECT_TIME <参数设置>|

CPU_PER_CALL <参数设置>|

CPU_PER_SESSION <参数设置>|

MEM_SPACE <参数设置>|

READ_PER_CALL <参数设置>|

READ_PER_SESSION <参数设置>|

FAILED_LOGIN_ATTEMPS <参数设置>|

PASSWORD_LIFE_TIME <参数设置>|

PASSWORD_REUSE_TIME <参数设置>|

PASSWORD_REUSE_MAX <参数设置>|

PASSWORD_LOCK_TIME <参数设置>|

PASSWORD_GRACE_TIME <参数设置>

<参数设置> ::=<参数值>| UNLIMITED

<允许 IP 子句> ::= ALLOW_IP <IP 项>{,<IP 项>}

<禁止 IP 子句> ::= NOT_ALLOW_IP <IP 项>{,<IP 项>}

<IP 项> ::= <具体 IP>|<网段>

<允许时间子句> ::= ALLOW_DATETIME <时间项>{,<时间项>}

<禁止时间子句> ::= NOT_ALLOW_DATETIME <时间项>{,<时间项>}

<时间项> ::= <具体时间段> | <规则时间段>

<具体时间段> ::= <具体日期> <具体时间> TO <具体日期> <具体时间>

<规则时间段> ::= <规则时间标志> <具体时间> TO <规则时间标志> <具体时间>

<规则时间标志> ::= MON | TUE | WED | THURS | FRI | SAT | SUN

<TABLESPACE 子句> ::=DEFAULT TABLESPACE <表空间名>

<INDEX_TABLESPACE 子句> ::= DEFAULT INDEX TABLESPACE <表空间名>

参数



1. <用户名> 指明要创建的用户名称,用户名称最大长度 128 字节;

2. <参数设置>用于限制用户对 DM 数据库服务器系统资源的使用;

3. 系统在创建用户时,必须指定一种身份验证模式:<数据库身份验证模式>或者<外部身份验证模式>,外部身份验证模式支持基于操作系统(OS)的身份验证、LDAP 身份验证和 KERBEROS 身份验证,具体请参考《DM 安全管理》2.3 节;

4. <口令策略>可以为以下值,或其任何组合:

0 无策略;

1 禁止与用户名相同;

2 口令长度不小于 9;

4 至少包含一个大写字母(A-Z);

8 至少包含一个数字(0-9);

16 至少包含一个标点符号(英文输入法状态下,除― 和空格外的所有符号)。

若为其他数字,则表示以上设置值的和,如 3=1+2,表示同时启用第 1 项和第 2 项 策略。当设置为 0 时,表示设置口令没有限制,但总长度不得超过 48 个字节。另外,若不 指定该项,则默认采用系统配置文件中 PWD_POLICY 所设值。

5. 存储加密密钥用于与半透明加密配合使用,缺省情况下系统自动生成一个密钥;

6. 空间限制子句用于限制用户使用的最大存储空间,以 M 为单位,取值范围为 1 到

1048576,关键字 UNLIMITED 表示无限制;

7. 只读标志表示该登录是否只能对数据库作只读操作,默认为可读写;

8. 资源设置项的各参数设置说明见下表:

image

image

9. 允许 IP 和禁止 IP 用于控制此登录是否可以从某个 IP 访问数据库,其中禁止 IP 优先。在设置 IP 时,可以利用*来设置网段,如 192.168.0.*。设置的允许和 禁止 IP 需要用双引号括起来;

10. 允许时间段和禁止时间段用于控制此登录是否可以在某个时间段访问数据库,其中禁止时间段优先。设置的时间段中的日期和时间要分别用双引号括起来。在设置时 间段时,有两种方式:

  • 1) 具体时间段,如 2016 年 1 月 1 日 8:30 至 2006 年 2 月 1 日 17:00;
  • 2) 规则时间段,如 每周一 8:30 至 每周五 17:00。

11. 允许 IP、禁止 IP、允许时间段、禁止时间段和外部身份验证功能只在安全版本中 提供;

12. 用户默认表空间和索引默认表空间不能使用 SYSTEM、RLOG、ROLL、TEMP 表空 间。