- 安装
1.1 创建安装用户组
#groupadd dinstall
1.2 创建安装用户
#useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
#useradd -g dinstall dmdba
1.3 初始化用户密码
#passwd dmdba
1.4 修改系统限制
#vi /etc/security/limits.conf
dmdba soft nofile 4096
dmdba hard nofile 65536
1.5 挂载镜像文件
#mkdir /dmdb
#mount -t iso9660 -o loop /root/dm7_setup_rh6_64_ent_7.6.0.197_20190917.iso /dmdb
1.6 更改权限
#chown dmdba.dinstall -R /dmdb
#chmod 755 -R /dmdb
1.7 修改环境变量
#su - dmdba
#vi .bashrc
export DM_HOME=/home/dmdba/dmdbms
export PATH=
D
M
H
O
M
E
/
b
i
n
:
DM_HOME/bin:
DMHOME/bin:DM_HOME/tool:$PATH
1.8 采用命令行模式安装
#su - dmdba
#cd /dmdb
#./DMInstall.bin -i
1)Please select the installer’s language (E/e:English C/c:Chinese) [E/e]:e
2)Whether to input the path of Key File? (Y/y:Yes N/n:No) [Y/y]:n
3)Whether to Set The TimeZone? (Y/y:Yes N/n:No) [Y/y]:y
4)Please Select the TimeZone [21]:21
5)Installation Type:
1 Typical
2 Server
3 Client
4 Custom
Please Input the number of the Installation Type [1 Typical]:1
6)Please Input the install path [/home/dmdba/dmdbms]:
7)Please Confirm the install path(/home/dmdba/dmdbms)? (Y/y:Yes N/n:No) [Y/y]:y
8)Confirm to Install? (Y/y:Yes N/n:No):y
9)Please execute the commands by root:
/home/dmdba/dmdbms/script/root/root_installer.sh
1.9 初始化数据
#/home/dmdba/dmdbms/bin
#./dminit
input system dir: /home/dmdba/dmdbms
input db name: dmdb01
input port num: 5236
input page size(4, 8, 16, 32): 8
input extent size(16, 32): 16
input sec priv mode(0, 1): 0
input time zone(-12:59,+14:00): +08:00
string case sensitive? ([Y]es, [N]o): n
which charset to use? (0[GB18030], 1[UTF-8], 2[EUC-KR]): 1
length in char? ([Y]es, [N]o): y
enable database encrypt? ([Y]es, [N]o): n
page check mode? (0/1/2): 0
input elog path: /home/dmdba/dmdbms/log
auto_overwrite mode? (0/1/2): 2
1.10 启动数据库服务
#cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmserver -p dmdb01 -i /home/dmdba/dmdbms/dmdb01/dm.ini
提示信息:
Move the service script file(/home/dmdba/dmdbms/bin/DmServicedmdb01 to /etc/init.d/DmServicedmdb01)
insserv: warning: current stop runlevel(s) (empty) of script `DmServicedmdb01’ overwrites defaults (2 3 4 5).
insserv: Service network is missed in the runlevels 4 to use service mysql
DmServicedmdb01 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Finished to create the service (DmServicedmdb01)
#service DmServicedmdb01 start
1.11 连接验证(默认密码)
#/home/dmdba/dmdbms/bin/disql
username:sysdba
password:SYSDBA
2.通过vnc调出管理工具
#xhost +
#su - dmdba
#export DISPLAY=127.0.0.1:1.0
#/home/dmdba/dmdbms/tool/manager
3.修改参数(v$parameter)
3.1 参数类型
0 Sys/session 动态参数,同时修改内存和配置文件
1 Read only 在数据库运行状态时,不能修改。
2 In file 静态参数,修改后,重启服务生效。
示例:
SQL> Select para_name,para_value from v$dm_ini where para_name=‘BUFFER_POOLS’;
LINEID para_name para_value
1 BUFFER_POOLS 3
3.2 命令
SP_PARA_SET_VALUE(SCOPE,PARA_NAME,PARA_VALUE);
SCOPE值:
1: 修改配置文件和内存
2:只修改配置文件
示例:
SQL> SP_SET_PARA_VALUE(2,’BUFFER’,1000);
4.重做日志
4.1 视图
v
r
l
o
g
f
i
l
e
v
rlogfile v
rlogfilevrlog
SQL> select * from v$rlogfile;
说明:这里查出来的rlog_size大小单位是bit,因此再下面添加日志大小的时候需要除以两次1024转成M
4.2 添加日志文件
SQL> alter database add logfile ‘/home/dmdba/dmdbms/dmdb01/dmdb0103.log’ size 256;
说明:默认单位是M,不需要加单位。并且需要和原来的日志文件大小一致
4.3 修改日志文件大小
SQL> alter database resize logfile ‘/home/dmdba/dmdbms/dmdb01/dmdb0103.log’ to 300;
说明:所有的日志文件要大小一致
5.表空间
5.1视图
dba_tablespaces
v
t
a
b
l
e
s
p
a
c
e
v
tablespace v
tablespacevhuge_tablespace
5.2 表空间说明
SQL> select TABLESPACE_NAME,STATUS from dba_tablespaces;
System表空间: 数据字典和全局的系统数据。
ROLL表空间:存放了数据库运行过程中产生的回滚记录。
TEMP表空间:临时表空间。
MAIN表空间:数据库默认的表空间,创建数据对象时,如果不指定存储位置,默认存放到该表空间。
HMAIN表空间:huge 表空间
5.3 查询所有表空间信息
SQL> Select name from v
t
a
b
l
e
s
p
a
c
e
u
n
i
o
n
s
e
l
e
c
t
n
a
m
e
f
r
o
m
v
tablespace union select name from v
tablespaceunionselectnamefromvhuge_tablespace;
5.4 创建表空间
表空间初始文件大小是页大小的4096倍
示例1:表空间初始大小50M,每次扩展1M,最大100M
SQL> create tablespace tbs1 datafile ‘/dm7/data/dm01/tbs01.dbf’ size 50 autoextend on next 1 maxsize 100;
示例2:表空间初始50M,表空间由2个数据文件组成,分别存储到不同的磁盘上,每次扩展1m,每个数据文件最大100M.
SQL> create tablespace tbs2 datafile ‘/dm7/data/dm01/tbs02_1.dbf’ size 50 autoextend on next 1 maxsize 100,‘/dm7/data/tbs02_2.dbf’ size 50 autoextend on next 1 maxsize 100;
5.5 维护表空间
最常用的方式就是增加数据文件
SQL> alter tablespace tbs2 add datafile ‘/dm7/data/dm01/tbs02_3.dbf’ size 50 autoextend on next 1 maxsize 100;
5.6 更换文件存储位置
注意:SYSTEM,ROLL, TEMP 不能offline;
SQL> alter tablespace tbs2 offline;
SQL> alter tablespace tbs2 rename datafile ‘/dm7/data/tbs02_2.dbf’ to ‘/dm7/data/dm01/tbs02_2.dbf’;
SQL> alter tablespace tbs2 online;
5.7 删除表空间
SQL> drop tablespace tbs2;
如果表空间存有数据,不允许直接删除!
6.用户管理
6.1 视图
dba_users
6.2 内置用户
sys — 达梦数据库的内置管理用户,不能登录数据库,数据库使用的大部分的数据字典和动态性能视图
Sysdba — 数据库的管理员
Sysauditor — 审计用户
Syssso — 安全用户
sysdbo — 数据操作员(安全版有,四权分立)
6.3 命名规则
字母开头,a-z,0-9,$#_
6.4 口令策略
用户密码最长为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
6.5 用户权限
系统权限: create drop alter 能够对数据库做什么操作。
对象权限(表,视图,过程等等): select delete update insert
角色: dba、public等
6.6 查看用户权限:
SQL> select grantee,granted_role from dba_role_privs where grantee=‘USER1’;
行号 GRANTEE GRANTED_ROLE
1 USER1 PUBLIC
6.7 查看角色拥有的权限
SQL> select grantee,privilege from dba_sys_privs where grantee=‘PUBLIC’;
行号 GRANTEE PRIVILEGE
1 PUBLIC INSERT TABLE
2 PUBLIC UPDATE TABLE
3 PUBLIC DELETE TABLE
4 PUBLIC SELECT TABLE
5 PUBLIC REFERENCES TABLE
6 PUBLIC GRANT TABLE
…
6.8 示例
示例1:为数据库设置一个用户,该用户可以创建自己的表,有属于自己的独立表空间,用户密码要求每60天变更一次。
SQL> create tablespace tbs3 datafile ‘/dm7/data/dm01/tbs03.dbf’ size 32;
SQL> create user user1 identified by user1user1 limit password_life_time 60 default tablespace tbs3;
示例2:创建一个用户,该用户每60天变更一次密码,密码尝试连接2次失败,账户锁定5分钟,用户还可以查询dmhr.employee表
SQL> create user user2 identified by user2user2 limit password_life_time 60, FAILED_LOGIN_ATTEMPS 2 ,PASSWORD_LOCK_TIME 5 default tablespace tbs3;
SQL> grant select on dmhr.employee to user2;
示例3:企业招聘一批录入人员,权限是固定的,只有录入CITY表的权限
角色:一类权限的集合
SQL> create role role1;
SQL> grant insert on dmhr.city to role1;
SQL> grant references any table to role1;
SQL> grant role1 to user2;
6.9 用户维护
1)撤销权限
SQL> revoke select on dmhr.employee from user2;
2)解锁用户
SQL> alter user user2 account unlock;
3)修改密码
SQL> alter user user2 identified by user3user3;
4)删除用户
SQL> drop user user2;
5)删除用户(级联删除)
SQL> drop user user2 cascade;