达梦数据库的初始运用

用命令方式建立数据库

在达梦的bin目录下使用dminit
./dminit path=/dm7/data db_name=DM01 instance_name=EST port_num=5327

达梦数据库的状态

4种状态

shutdown mount open suspend

状态切换

shutdown -- mount
shutdown -- open
open -- mount

查看状态

select status$ from v$instance;

启动数据库

方式一

在达梦安装bin目录下:./dmserver /dm7/data/DM01/dm.ini
这种方式。窗口关闭了,或者再窗口中输入exit,数据库就关闭了,适合临时启动数据库,数据库服务没有注册到OS。

方式二

linux6中

service DMService start

linux7中

Systemctl start DMService

判断数据库是否启动

netstat -ntl| grep 523*
ps -ef | grep dmserver

达梦数据库的体系结构

达梦逻辑存储结构

  1. 数据库由一个或多个表空间组成
  2. 每一个表空间由一个或多个数据文件组成
  3. 每个数据文件由一个或多个簇组成
  4. 页是数据库最小的分配单位,也是数据库中使用的最小的IO单元。
    实例:共享内存+后台的进程或是线程
    数据库:存放到磁盘的文件
    一般一个db对应一个实例,但是DSC(共享集群)多个实例对一个数据库。
    达梦服务器组成:客户端+服务器(实例+数据库)
    客户端不能直接去访问数据库,客户端把请求交给实例,实例去访问数据库,把访问信息返回给实例,实例交给客户端。

达梦的物理存储结构

配置文件

Dm.ini Dmarch.ini ......

控制文件

Dm.ctl Ctl_bak_path

数据文件

以.dbf结尾的文件

重做日志文件

重做日志文件又叫redo日志。主要用于数据库的备份和恢复。

归档文件

利用归档日志,系统可被恢复至故障发生的前一刻,也可以还原到指定的时间点,如果没有归档日志文件,则只能利用备份来进行恢复。

备份文件

以bak为扩展名的文件。

日志文件

跟踪日志,事件日件

重做日志管理

查看日志信息

select path from v$rlogfile;

增加一个日志文件

alter database add logfile '/dm7/data/DAMENG/DAMENG04.log' size 500;

修改日志文件大小

alter database resize logfile '/dm7/data/DAMENG/DAMENG04.log' to 1024;

表空间管理

表空间介绍

select TABLESPACE_NAME,STATUS from dba_tablespaces;
System表空间: 数据字典和全局的系统数据。
ROLL表空间:存放了数据库运行过程中产生的回滚记录。
TEMP表空间:临时表空间。
MAIN表空间:数据库默认的表空间,创建数据对象时,如果不指定存储位置,默认存放到该表空间。
HMAIN表空间:huge 表空间。
查所有表空间信息:
Select name from v$tablespace union select name from v$huge_tablespace

增加表空间

create tablespace tab1 datafile '/dm7/data/DAMENG/tab1_01.dbf' size 32;

案例2 创建一个表空间,初始大小50M,最大100M.

create tablespace tab2 datafile '/dm7/data/DAMENG/tab2_01.dbf' size 50 autoextend on maxsize 100;

案例3 创建一个表空间,初始50M,每次扩展1M,最大100M.

create tablespace tab3 datafile '/dm7/data/DAMENG/tab3_01.dbf' size 50 autoextend on next 1 maxsize 100;

案例4 创建一个表空间,初始50M,表空间由2个数据文件组成,分别存储到不同的磁盘上,每次扩展1m,每个数据文件最大100M.

create tablespace tab4 datafile '/dm7/data/DAMENG/tab4_01.dbf' size 50 autoextend on next 1 maxsize 100 , '/dm7/data/DAMENG/tab4_02.dbf' size 50 autoextend on next 1 maxsize 100;

维护表空间

表空间不足,如何去维护表空间:
1、创建大表空间,数据导出,导入。
2、Resize 数据文件大小。
3、增加数据文件
alert tablespace tabs2 add datafile '/dm7/data/DAMENG/tab2_02.dbf' size 50 autoextend on maxsize 100;

更换存储位置

达梦表空间的状态:
0 ---online
1 ----- offline
注意:SYSTEM,ROLL, TEMP 不能offline;
案例1:更换tbs1的存储位置

  1. 表空间offline
    alter tablespace tbs1 offline;
  2. 修改存储位置
    alter tablespace tbs1 rename datafile '/dm7/data/DAMENG/tbs1_01.dbf' to '/dm7/data/tbs1_01.dbf';
  3. 表空间online
    alter tablespace tbs1 online;

    删除表空间

    drop tablespace tbs1;
    如果表空间有数据库不允许直接删除!

用户管理

查询有哪些用户

select username from dba_users;
1、sys --- 达梦数据库的内置管理用户,不能登录数据库,数据库使用的大部分的数据字典和动态性能视图,sys
2、Sysdba ---数据库的管理员
3、Sysauditor --- 审计用户
4、Syssso---安全用户
5、sysdbo --数据操作员 (安全版有,四权分立)

如何规划用户

名字:字母开头,a-z,0-9,$#_
位置:
Create tablespace
密码:
口令策略:
用户密码最长为48个字节,创建用户语句使用 password policy子句来指定口令策略。(DM.INI PWD_POLICY)
系统支持的口令策略:
0 无策略
1 禁止与用户名相同
2 口令长度不小于9
4 至少包含一个大写字母(A-Z)
8 至少包含一个数字(0-9)
16 至少包含一个标点符号(英文状态输入,除”和空格外)
口令可以单独使用,也可以组合使用,比如需要应策略1和2,
则设置口令策略为:3
密码尝试登录次数 FAILED_LOGIN_ATTEMPS
密码失败锁定时间 PASSWORD_LOCK_TIME
密码过期时间 PASSWORD_LIFE_TIME

案例1:为数据库设置一个用户,该账户,可以创建自己的表,有属于自己的独立表空间,用户密码要求每60天变更一次。

create tablespace test datafile '/dm7/data/DAMENG/test01.dbf' size 32;
create user test identified by dameng123 limit password_life_time 60 default tablespace test;

规划用户权限

系统权限 create drop alter 能够对数据库做什么操作。
对象权限(表,视图,过程等等)select delete update insert
查看角色
select role from dba_roles;
查看用户权限
select grantee,granted_role from dba_role_privs where grantee='TAB1_USER';
查询角色所拥有的权限
select grantee,privilege from dba_sys_privs where grantee='PUBLIC';

案例2 新建一个test用户,并在test用户下创建表t1;

  1. 使用sysdba为用户授权
    grant create table to tab1_user;
    2.使用授权用户登录并创建表
    conn tab1_user/dameng123
    create table t1(id int);

案例3:规划一个用户,账户每60天变更一次密码,密码尝试连接2次失败,账户锁定5分钟,用户还可以查询dmhr.employee表。

1.为用户授权
grant select on dmhr.employee to test1
2.为用户解锁
alter user test1 account unlock;

案例4 企业招聘一批录入人员,权限是固定的,只有录入CITY表,

角色:一类权限的集合,
1.创建用户
create user test2 identified by dameng123;
2.创建角色
create role r1;
3.为角色授权
grant insert on dmhr.city to r1;

  1. grant references any table to r1;
    5.把角色赋给用后
    grant r1 to test2;

用户维护

撤回权限revoke
revoke insert on dmhr.city from r1;
修改用户密码
alert user test identified by dameng123456;
修改用户锁定状态
alter user test account lock;
alter user test account unlock;
删除用户
drop user test1
drop user test1 cascade;
Drop user test cascade ----慎用,删除之前,我们一定要做备份。
对象管理
(模式:表,视图,序列,索引,同义词)
模式:一组数据对象的集合,为了安全,创建用户的时候,就会生成一个跟用户同名的模式。
CREATE SCHEMA "DAMENG" AUTHORIZATION "SYSDBA";
Drop schema DAMENG;

上一篇:Troubleshooting ORA-30036 - Unable To Extend Undo Tablespace (Doc ID 460481.1)


下一篇:故障排除指南(TSG)-ORA-01552: Cannot Use System Rollback Segment for Non-System Tablespace (Doc ID 1579215.