一、 安装DM8(Linux(glibc 2 以上,内核 2.6,kde/gnome 桌面环境,预先安装unixodbc组件 gcc 包))
(注:图形化使用方法如下:
第一步:查询端口号。使用root账号登录考试机器,执行echo $DISPLAY
[root@localhost 桌面]# echo $DISPLAY
查询结果示例
:2.0
第二步:root账号执行命令 xhost +
[root@localhost 桌面]# xhost +
access control disabled, clients can connect from any host
第三步:由root账号切换为dmdba账号
[root@localhost 桌面]# su - dmdba
第四步:设置端口号为第一步查询出来的端口号,即可使用图形化界面
[dmdba@localhost ~]$ export DISPLAY=:2.0
)
Uname -ra 系统版本
cat /proc/cpuinfo 查看 cpu、
free -m 查看内存
fdisk -l
df -h 查看磁盘
2. 关闭防火墙 和iptables 策略
systemctl status firewalld 查看防火墙状态
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld 永久关闭
iptables -L
iptables -F 查看默认策略
vi /etc/sysconfig/selinux 修改状态为disabled
3. 确认是否有gcc包(glibc)
rpm -ap|grep glibc* 查看相应rpm包
4. 建立安装目录文件夹
mkdir * 新建文件夹
5. 建立数据库和使用用户
groupadd 用户组 建立用户组
useradd -g 用户组 用户名 建立用户在用户组
chown 用户名:用户组 -R 新建文件夹 修改文件夹权限(给新建的用户)
6. 配置新建用户的环境变量 (新建用户中修改)
[lch@localhost ~]$ vi .bash_profile 修改
export DM_HOME=/DM8
export PATH=$PATH_HOME/bin:$DM_HOME/tool 添加两行
source .bash_profile 生效命令
7. 挂载iso文件,安装(新建用户中安装)
mount -o loop /opt/dm8_setup_rh7_64_ent_8.1.1.88_20200629.iso /mnt 挂载(root)
cd /mnt
./DMInstall.bin ./DMInstall.bin -I 执行安装文件
mount -o remount,size=4G /tmp(如果提示tmp空间不足报错,在root下执行命令,再安装)
8. 初始化实例(新建用户中)
./dbca.sh 执行数据库配置助手
9. 连接数据库
cd /MD8/bin
./disql 实例用户/实例密码 命令行连接数据库
二、 表空间管理
select tablespace_name,status from user_tablespaces; 查询表空间的相关信息
create tablespace "名称" datafile '路径.DBF' size 文件大小 autoextendonnext 1,
'路径.DBF ' size 文件大小 autoextend on next 1CACHE = NORMAL;
--创建表空间(可图形化操作)
alter tablespace "名称" add datafile'路径DBF' size 文件大小 autoextend on; -增加表空间
11. 更换存储位置
1)表空间 offline;
alter tablespace test02 offline;
2)修改表空间存储位置
alter tablespace test02 rename datafile'/dm8/data/DAMENG/TEST02_01.DBF' TO '/dm8/TEST02_01.DBF';
3)表空间 online;
alter tablespace test02 online;
3、修改表空间的缓冲区类型
alter tablespace "TEST02" cache = "KEEP";
12. 临时表空间
Select para_name,para_value from v$dm_ini where para_name like ‘%TEMP%’; -查看临时表空间
临时表空间不足修改 temp_size 的值:
sp_set_para_value(2,'TEMP_SIZE',大小MB);
[dmdba@localhost bin]$ ./DmService实例名 restart -重启服务生效
/dm8/data/DAMENG/TEMP.DBF 文件的大小会一起改变。
(1:动态参数
2:静态参数
DM 的参数类型:
SYS/SESSIOIN:动态参数,同时修改内存和配置文件Read only:在数据库运行时,不能修改
In file:静态参数,修改配置文件,重启实例服务生效。)
13. Roll表空间不足
alter tablespace ROLL resize datafile '/dm8/data/DAMENG/ROLL.DBF' TO 256;
14. 删除表空间,
不能删除已经使用的表空间,即使是该表空间处于脱机状态)
Drop tablespace 表名称; -删除表空间
三、 用户管理
15. 创建用户(图形化操作)
create user "TEST" identified by "dameng123"
limit session_per_user 1000, failed_login_attemps 3, password_life_time90, password_lock_time 30, password_grace_time 10
allow_ip "192.168.1.2" default tablespace "TEST" default index tablespace "TEST";
grant "PUBLIC","RESOURCE","SOI","VTI" to "TEST";
grant CREATE TABLE,CREATE VIEW,REFERENCES TABLE,GRANTANYTABLE,CREATE ANY VIEW to "TEST";
grant SELECT,INSERT,DELETE,UPDATE,REFERENCES,SELECT FOR DUMPon"DMHR"."EMPLOYEE" to "TEST";
Select * from dcca_sys_privs where grantee=’用户名’ 查看系统权限
Select * from DBA_TAB_PRIVS where grantee=’用户名’ 查看对象权限
创建角色(图形化操作)
create role "KFROLE"; grant "PUBLIC","SOI","SVI","VTI" to "KFROLE"; grant CREATE TABLE,CREATE VIEW to "KFROLE"; grant SELECT("EMPLOYEE_ID"),INSERT("EMPLOYEE_ID"),UPDATE("EMPLOYEE_I D"),REFERENCES("EMPLOYEE_ID") on "DMHR"."EMPLOYEE" to "KFROLE"; grant SELECT("HIRE_DATE"),INSERT("HIRE_DATE"),UPDATE("HIRE_DATE"),REFERENCES("HIRE_DATE") on "DMHR"."EMPLOYEE" to "KFROLE"; grant SELECT("EMPLOYEE_NAME"),INSERT("EMPLOYEE_NAME"),UPDATE("EMPLOYEE_NAME"),REFERENCES("EMPLOYEE_NAME") on"DMHR"."EMPLOYEE" to "KFROLE";
删除用户和角色
Drop user 用户名;
Drop user 用户名 cascade;-----慎重,最好先备份
Drop role 角色名; --删除角色
SP_SET_ROLE(‘ROLE1’,1) --角色的禁用和启用 1:启用 0 禁用
四、 Sql语句(达梦)
Sql 语句的分类
DQL:数据查询语句 select ... from ...where 组成的查询块
DDL:数据定义语句 create table create view create index 等等
DML:数据操作语句 insert update delete
DCL:数据控制语句 用于授予或回收访问数据库的权限,控制数据库操作纵事务,对数据库进行监视等。
简单查询sql语句
Select * form
Select 列 from 表的路径
Select 列 as 别名 from 表的路径
Select distinct 列 from 表的路径
Select 列 from 表的路径 where 筛选条件
Select 列 from 表的路径 where 筛选条件 like 模糊查询
Select 列 from 表的路径 order by 升序或者降序(desc asc)
Select * from 表的路径; --查询表的所有列
select employee_name,salary,salary+1000 from dmhr.employee; --查询表的名字,工资列,,加上工资的换算。
select employee_name,salary,salary+1000 as lu from dmhr.employee; --查询表的名字,工资列,,加上工资的换算,,设置工资换算别名为lu。
select distinct department_id from dmhr.employee; --查询表的所有部门编号,并去重多出来的。
select department_id,employee_name||'的工资是'||salary as 工资 from dmhr.employee; --查询表的部门,名字,工资列,,连接名字和工资的列,,设置新列的别名为‘工资’。
select * from dmhr.employee where department_id='101'; --查询表中所有列,只筛选 部门为101 的;
select department_id,employee_name,salary from dmhr.employee where salary>=10000
and salary<=20000; --查询表的部门,名字,工资列,筛选工资大于10000小于20000的;
select department_id,employee_name,salary from dmhr.employee where salary=10000
or salary=20000; --查询表的部门,名字,工资列,筛选工资10000或者20000的;
select department_id,employee_name,salary from dmhr.employee where
not salary=30000; --查询表的部门,名字,工资列,筛选工资不是30000的;
select department_id,employee_name,salary from dmhr.employee where salary
in (10000,20000); --查询表的部门,名字,工资列,筛选工资10000或者20000的;
select department_id,employee_name,salary from dmhr.employee where employee_name
like '马_';
select department_id,employee_name,salary from dmhr.employee where employee name
like '马%'; --查询表的部门,名字,工资列,筛选姓名为 马% 或者 马_ 的;
select employee_id,employee_name,salary from dmhr.employee
order by salary desc,employee_id asc; --查询员工编号,名字,工资列,工资降序排列,员工编号升序
字符函数
数值函数
日期函数
转换函数
分组函数
AVG—平均
COUNT—计数
MAX—最大
MIN—最小
SUM—总和
select department_id,max(salary) as maxsal,min(salary)as minsal,avg(salary) as avgsal
from dmhr.employee group by department_id;
----查询并求出表中每个部门id的最高工资,最低工资,平均工资。
select department_id,max(salary) as maxsal,min(salary)as minsal,avg(salary) as avgsal
from dmhr.employee group by department_id having avg(salary)>10000;
----查询并求出表中每个部门id的最高工资,最低工资,平均工资,,并增加过滤条件平均工资大于10000………………………. 分组统计中,不能使用 where 进行过滤,只能使用having 来进行过滤.
select city_name,street_address from dmhr.location as l join dmhr.city as u
on l.city_id=u.city_id;
select city_name,street_address from dmhr.location as l left join dmhr.city as u
on l.city_id=u.city_id; 左外连接,显示jion 左边表的不满足条件
select city_name,street_address from dmhr.location as l right join dmhr.city as u
on l.city_id=u.city_id; 右外连接,显示jion 右边表的不满足条件
select city_name,street_address from dmhr.location as l full join dmhr.city as u
on l.city_id=u.city_id; 全外连接,显示jion 左右两边表的不满足条件
select employee_name, salary from dmhr.employee where salary >all
(select salary from dmhr.employee where department_id=103) order by salary desc;
--(IN 等于列表中的任意一个
ANY 将值与子查询返回的任意一个值进行比较
ALL 将值与子查询返回的每个值进行比较>ALL :大于最大值
<all: 小于最小值
any: 大于最小值
<any: 小于最大值)
insert into test.t1 values( 2,'t1_2');
insert into test.t1 values( 3,'t1_3');
insert into test.t2 values( 2,'t2_2');
insert into test.t2 values( 4,'t2_4');
merge into test.t1 using test.t2 on (test.t1.c1=test.t2.c3) --按照t2往t1插入数据
when MATCHED THEN update set test.t1.c2=test.t2.C4 --如果条件满足,就更新写入
when not MATCHED then INSERT(c1,c2) values (test.t2.c3,test.t2.c4); --如果条件不满足,那就直接写入。
五、 模式对象管理
28. 新建表空间(图形化操作)
例:
表名:STU
学号:ID char(10)
姓名:sname varchar(20) not null
性别: sex char(1)
年龄:age int
电话:tel varchar(15) not null
家庭住址:address varchar(50)
表空间:STU
约束:主键列----学号,非空----姓名和电话表备注:studentinfo
insert into 表名([列名],[列名],......)values (列值,列值,....));
Insert into t1( id,name) values(1,’sssss);
-----插入数据
2.脚本 使用disql工具导入后缀为sql的文件(注:需包含表路径名称,还需要commit)
SQL> Start /dm8/a.sql
3.DTS迁移工具(图形化操作)
创建非空约束
create table 表名(id int);
alter table表名 alter column id set not null;
create table "TEST"."T5"
( "ID" INT not null
)
创建唯一约束
create table 表名(id int, name varchar(20)
创建主键约束
create table 表名(id int primary key);
create table表名(id int);
alter table表名 add CONSTRAINT t9_pri primary key(id);
主键有且只有一个,唯一约束可以有多列。
主键列不允许有空值,唯一约束可以有多个null
主键列可以作为外键,唯一约束不能
创建主键约束时,可以创建聚集索引和非聚集索引,而唯一约束产生聚集索引。
创建外键约束
create table表名 (sid int PRIMARY key ,pid int);
create table 表名(id int PRIMARY key , sid int FOREIGNkeyREFERENCES 表名(sid));
对列加备注
Comment on column 表名.id is ‘注释’
查看表的列信息和约束
select table_name,column_name,comments fromdba_col_commentswhere table_name='T12';
select constraint_name, constraint_type, table_name fromSYS.DBA_CONSTRAINTS where table_name='T12';
启用/禁用/删除约束
alter table test.t12 disable constraint CONS134218854;
alter table test.t12 enable constraint CONS134218854;
alter table test.t12 drop constraint CONS134218854;
删除表
drop table test.t12;
DELETE
TRUNCATE
复杂视图(关联两张表以上的或是包含集函数的sql)
Create view test v2 as
Select department_name,a.avg1 from
(select department_id,avg(e.salary) as avg1 from dmhr.employee e
Group by department_id having avg(salary)>10000) a join dmhr. Department d
on a.department_id=d. department_id
六、 备份还原
33. 物理备份
冷备(脱机备份):dmap 服务是打开的,数据库实例是关闭的。
注:选择新目录
2) 增量备份(图形化操作)
注:选择新目录,选择最近一次全量备份
达梦归档介绍:
106
本地归档(单机):
远程归档:DMDSC 集群
实时归档:实时数据守护
3) 如何使用归档:(图形化操作)
新建归档:管理工具-服务器管理—系统管理变为配置模式-转换-归档配置-归档模式-+-归档目标-路径,文件夹--系统管理变为打开模式-转换。
删除归档:右键-删除
4) 管理工具热备份(图形化操作)
直接右键新建即可
右键删除即可
逻辑备份(逻辑导入导出)
右键(表、模式、用户)导入导出即可
作业(定时任务)
8.测试连接
文章
阅读量
获赞