用命令方式建立数据库
在达梦的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
达梦数据库的体系结构
达梦逻辑存储结构
- 数据库由一个或多个表空间组成
- 每一个表空间由一个或多个数据文件组成
- 每个数据文件由一个或多个簇组成
- 页是数据库最小的分配单位,也是数据库中使用的最小的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的存储位置
- 表空间offline
alter tablespace tbs1 offline; - 修改存储位置
alter tablespace tbs1 rename datafile '/dm7/data/DAMENG/tbs1_01.dbf' to '/dm7/data/tbs1_01.dbf'; -
表空间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;
- 使用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;
- 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;