1. 表空间
数据库的物理结构:文件系统--> 数据文件
数据库的逻辑结构:数据库-->表空间-->段-->簇-->页
-
达梦有哪些表空间
select tablespace_name from dba_tablespaces; * SYSTEM-系统表空间,存放数据字典信息 * ROLL-回滚表空间,存放的回滚数据,MVCC(事务多版本) * TEMP-临时表空间,存放临时数据 * MAIN-main表空间,如果用户创建数据对象不指定存储位置,默认存放到main * HMAIN-hmain表空间,存放huge table信息
-
创建一个表空间
案例1:创建一个表空间tbs,数据文件存放到$DM_HOME/data/DB_NAME中,初始文件大小为31M
错误:create tablespace tbs datafile '/dm7/data/DAMENG/tbs.dbf' size 31; // 因为初始文件大小是要page的4096倍 create tablespace tbs datafile '/dm7/data/DAMENG/tbs.dbf' size 32; select page*4096/1024/1024;
案例2:创建一个表空间tbs2要求2个数据库文件,数据存放到不同的磁盘,初始大小为32,最大100M
cd /dm7/data/DAMENG mkdir disk{1,2} create tablespace tbs2 datafile '/dm7/data/DAMENG/disk1/tbs2_1.dbf' size 32 autoextend on maxsize 100, '/dm7/data/DAMENG/disk2/tbs2_2.dbf' size 32 autoextend on maxsize 100; select page;
案例3:规划表空间tbs3,初始文件大小32M,每次扩展1M,最大33M
create tablespace tbs3 datafile '/dm7/data/DAMENG/tbs3.dbf' size 32 autoextend on next 1 maxsize 33;
-
维护和管理表空间
* 表空间不足 create table test tablespace tbs3 as select * from v$dm_ini; insert into test select * from test; 1.创建大的表空间数据导出再导入 2.把表空间数据文件resize 3.增加数据文件(推荐使用) alter tablespace tbs3 add datafile '/dm7/data/DAMENG/tbs3_1.dbf' size 32 autoextend on maxsize 50; * 表空间更换存储位置 select tablespace_name, file_name from dba_data_files where tablespace_name='TBS'; // 查询表空间存储文件位置 // 注意:表空间更换存储位置要求表空间offline select tablespace_name, status from dba_tablespaces; // 查询是否offline,0是online,1是offline alter tablespace tbs offline; // 设置表空间offline alter tablespace tbs rename datafile '/dm7/data/DAMENG/tbs.dbf' to '/dm7/data/DAMENG/tbs/tbs.dbf'; //更改存储位置 alter tablespace tbs online; // 设置表空间online * 删除表空间 drop tablespace tbs3; // 如果表空间有数据,不允许直接删除
2. 用户管理
-
默认哪些用户
select username from dba_users; * SYS-内置管理账号,不能登录数据库 * SYSDBA-管理员 * SYSAUDITOR-审计员 * SYSSSO-安全版特有,安全员 select * from v$version; // 查询数据库是什么版本 开发版:官网的;标准版:不能集群;安全版;企业版
-
规划用户
* 用户-字母开头,只能含有$#_三个特殊符号 * 存储位置-表空间 * 密码安全策略-尝试登陆次数、锁定时间,密码有效期 * 权限(系统,对象) 规划用户test,用户的默认表空间为tbs2,密码尝试登陆3次,失败锁定1分钟,密码有效期180天,可以创建表,可以查询dmhr.city create user test identified by "dameng123" limit failed_login_attemps 3, password_lock_time 1,password_life_time 180 default tablespace tbs2; // 创建用户 grant create table to test; // 授权 grant select on dmhr.city to test; // 授权 revoke table xx from test; // 撤销授权 revoke select on dmhr.city from test; // 撤销授权
-
规划角色
拥有的角色:public resource dba
create role r1; grant create table on r1; grant selet on dmhr.city to r1; grant r1 to test; select grantee, privilege from dba_sys_privs where grantee = 'test'; select grantee, granted_role from dba_role_privs where grantee='test'; select grantee, privilege from dba_sys_privs where grantee = 'r1';
-
维护用户和角色
* 修改密码 alter user test identified by 12345678; * 锁定和解锁 alter user test account lock; alter user test account unlock; select username, account_status from dba_users; * 删除用户 drop user test; // 删除用户,用户无创建表等数据时可删除 drop user test cascade; // cascade级联删除用户创建的表等 * 启用和禁用角色 sp_set_role('r1', 0); // 0是禁用,1是启用 * 删除角色 drop role r1; 注意:创建用户的时候会生成一个与用户名同名的模式;如果创建用户时,模式名已经存在则无法创建用户