达梦数据库在中标麒麟系统下的安装与使用

时间:2024-03-30 09:37:25

本文档用于学习交流,如有纰漏,欢迎指正。

一、达梦数据库简介

达梦数据库在中标麒麟系统下的安装与使用

武汉达梦数据库有限公司成立于2000年,为中国电子信息产业集团(CEC)旗下基础软件企业,专业从事数据库管理系统的研发、销售与服务,同时可为用户提供大数据平台架构咨询、数据技术方案规划、产品部署与实施等服务。多年来,达梦公司始终坚持原始创新、独立研发,目前已掌握数据管理与数据分析领域的核心前沿技术,拥有全部源代码,具有完全自主知识产权。达梦公司是国家规划布局内重点软件企业,同时也是获得国家“双软”认证和国家自主原创产品认证的高新技术企业,拥有国内数据库研发精英团队,多次与国际数据库巨头同台竞技并夺标。

二、安装环境

2.1 安装环境

名称 数据库 操作系统 CPU 虚拟机
版本 达梦8 中标麒麟7(64位) X86(64位) vmware 15.5

2.2 检查数据库依赖包

rpm -aq|grep glibc

达梦数据库在中标麒麟系统下的安装与使用

如果未安装依赖包则执行以下命令

yum install glibc -y 

2.2   连接工具

Vnc Viewer、Xmanager 6、Xftp 6

三、开始安装

3.1   安装前准备

3.1.1 操作系统参数调优

操作系统参数将影响数据库的最优运行,需要提前进行调优:

ulimit -a检查open file 最大打开数,默认是1024

需要扩充,在root账户执行以下命令:

vi /etc/security/limits.conf(重启后生效)

*  soft  nofile  102400

*  hard  nofile  102400

达梦数据库在中标麒麟系统下的安装与使用

3.1.2 vnc的安装

检查是否安装vncserver

达梦数据库在中标麒麟系统下的安装与使用

如未安装则执行以下命令:

达梦数据库在中标麒麟系统下的安装与使用

[[email protected] ~]# rpm -q vnc-server

[[email protected] ~]# yum install tigervnc-server -y

[[email protected] ~]#vncserver

达梦数据库在中标麒麟系统下的安装与使用

关闭防火墙systemctl stop firewalld.service

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

3.1.3上传数据库文件

达梦数据库在中标麒麟系统下的安装与使用

[[email protected] /]# cd /opt

[[email protected] opt]# ls

dm8_setup.iso

3.1.4 挂载ISO镜像

[[email protected] opt]# mount -o loop /opt/dm8_setup.iso /mnt

达梦数据库在中标麒麟系统下的安装与使用

3.2安装数据库程序

3.2.1 创建数据库用户、分组信息,环境变量等配置

[[email protected] ~]# groupadd dinstall

[[email protected] ~]# useradd -g dinstall dmdba

[[email protected] ~]# passwd dmdba       (设置dmdba密码)

创建数据库安装路径:

mkdir /dm8

chown -R dmdba:dinstall /dm8

达梦数据库在中标麒麟系统下的安装与使用

配置dmdba用户环境变量

[[email protected] mnt]# su - dmdba

[[email protected] ~]$ vi .bash_profile

最底部增加:

export DM_HOME=/dm8

export PAHT=$PATH:$HOME/.local/bin:$HOME/bin:$DM_HOME/bin:$DM_HOME/tool

3.2.2图形化安装数据库

图形化设置

达梦数据库在中标麒麟系统下的安装与使用

开始安装

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

 

达梦数据库相关资料介绍

4.1   工具命令

进入工具目录 cd /dm8/tool

下面有很多日常数据库管理工具,可以方便进行数据库管理维护,下面是各功能的介绍:

./manager 数据库管理工具,可视化数据库管理

./dts数据库迁移工具,导入数据文件或将数据库迁移到达梦

./dbca.sh 数据库配置助手,用于数据库实例的可视化增删,以及数据库服务注册(开机启停数据库)

./console 控制台工具,服务器实例参数管理/备份还原/数据库许可证等

./monitor 性能监控工具,监控系统运行情况

./analyzer审计分析程序,针对审计日志文件进行分析的工具

./dmservice.sh 达梦服务器查看器,用于监控各服务启停情况

./disql  类似oracle的sqlplus 用于连接达梦数据库

4.2  达梦数据库手册

cd /dm8/doc 里面有详细的使用介绍

4.3  连接数据库

su – dmdba

进入tool目录

执行./disql

连接数据库conn sysdba/[email protected]:5236

达梦数据库在中标麒麟系统下的安装与使用

5 数据库使用

可通过:

/dm/tool/manager 图形化来管理

5.1   表空间管理

5.1.1 查询表空间

执行./manager工具

创建表空间

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

 

5.1.2 表空间状态

一般表空间出现问题需要做恢复时,需要先脱机。

脱机状态

alter tablespace TEST offline;

在线状态

alter tablespace TEST online;

达梦数据库在中标麒麟系统下的安装与使用

5.1.3 表空间维护

扩容表空间文件

先查看表空间有多少文件,可以图形化或者命令查看

select FILE_NAME,STATUS,TABLESPACE_NAME from dba_data_files;

达梦数据库在中标麒麟系统下的安装与使用

扩容表空间

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

增加数据文件

达梦数据库在中标麒麟系统下的安装与使用

更换存储的位置

注意:system,roll,temp 不能offline

alter tablespace TEST offline;

select tablespace_name,status from dba_tablespaces;

alter tablespace TEST rename datafile

'/dm8/data/DAMENG/TBS02.DBF' to '/dm8/tbs02.dbf';

alter tablespace TEST rename datafile

'/dm8/data/DAMENG/TBS02.DBF' to '/dm8/tbs01.dbf';

alter tablespace TEST online;

5.1.4 临时表空间

select para_name,para_value from v$dm_ini where para_name like

'TEMP%';

5.1.5 Roll表空间

Roll时回滚表空间,如果不够就需要扩充

参数undo_retention

Roll 表空间不足:

Alter tablespace roll resize datafile ‘/dm8/data/DAMENG/ROLL.DBF’

to 256;

5.1.6 删除表空间

drop tablespace test;  后续还要使用先不要删;

5.2   用户管理

5.2.1 用户体系介绍

在DM 数据库中用户管理主要涉及到三块,用户,权限,角色权限:执行特定类型sql 或是访问其他模式对象的权利系统权限:数据库对象的创建,删除,修改等等。

对象权限:对数据对象的数据的操作权限。

数据库预定义用户Sysdba

Sys:不能用于用户登录,是系统内置用户

Syssso

Sysauditor

sysdbo

三权分立(企业版)

Sysdba:数据库系统管理员

Syssso:数据安全员

Sysauditor:数据库审计员

四权分立(安全版)

Sysdba

Syssso

Sysauditor

Sysdbo :数据库对象操作员

5.2.2 用户规则

名字:字母开头,a_z,0-9,$#_

位置:对应的表空间

密码:口令策略

0:无策略

1:禁止与用户名相同

2:口令长度不小于9

4:至少包含一个大写字母

8:至少包含一个数字

16:至少包含一个标点符号(英文状态下输入除空格和“”)

口令可以单独使用,也可以组合使用。比如:要求口令策略禁止用户

名相同,并且口令长度不小于9)

则设置口令策略为1+2=3

Faild_login_attemps:密码尝试登录次数

Password_lock_time:密码失败后锁定时间

Password_life_time 密码过期时间。

策略配置地方在:

/dm8/tool/console

新建用户

达梦数据库在中标麒麟系统下的安装与使用

5.2.2 删除用户

drop user test cascade;  级联删除,关联的schema都会被删除

drop user test;只删除用户账号

5.2.3 删除角色

drop role testrole;

5.2.4 案例1

案例1:建立用户test,用户可以创建自己的表,有属于自己的表空间,用户密码要求每60 天变更一次。

create user "TEST" identified by "dameng123"

limit password_life_time 60

default tablespace "TEST";

grant "PUBLIC","VTI" to "TEST";

grant CREATE TABLE to "TEST"

这里就使用上面那个test表空间

查看test拥有哪些权限了

select grantee,granted_role from SYS.DBA_ROLE_PRIVS where grantee='TEST';

查看public角色有哪些权限

SELECT GRANTEE,PRIVILEGE FROM SYS.DBA_SYS_PRIVS WHERE GRANTEE='PUBLIC';

5.2.5   模式对象管理

模式(scema)是一个特定的对象集合,在概念上可将其看作是包含表、视图、索引等若干对象的对象集模式对象:表、视图、约束、索引、序列、触发器、存储过程/函数、包、同义词、类、域Dm 创建用户的时候,会默认去创建一个同名的式,如果你创建的用户,模式名已存在,用户无法创建一个用户可以拥有多个模式。

5.3 表操作

5.3.1 建立表空间STU

建立表TEST

create table STU.TEST

(

"ID" CHAR(10) not null ,

"SNAME" VARCHAR(20) not null ,

"SEX" CHAR(1),

"AGE" INT,

"TEL" VARCHAR(15) not null ,

"ADDRESS" VARCHAR(50),

primary key("ID")

)

storage(initial 1, next 1, minextents 1, fillfactor 0, on "STU");

comment on table "TEST"."STU" is 'STUDENT INFO';

增加列

alter table DMHR.TEST add column(AGE INT);

删除列

alter table DMHR.TEST drop column AGE;

5.3.2 创建表指定约束

1、非空约束

SQL> create table test.t1(id int);

SQL> alter table test.t1 modify id int not null;

2、唯一约束(唯一约束遇到null,忽略,可录入多个null 值)

SQL> create table test.t3(id int, name varchar(20) unique);

SQL>insert into test.t3 values(1,'ssss');

SQL> insert into test.t3 values(2,null);

SQL> insert into test.t3 values(3,null);

SQL> insert into test.t3 values(4,null);

commit;

3、主键约束(一张表只能有一个主键约束)

SQL> create table test.t4(id int primary key, name varchar(20));

SQL> create table test.t5(id int);

SQL> alter table test.t5 add constraint t5_pri primary key(id);

4、检查约束

SQL> create table test.t6(id int check(id>=5));

5、外健约束

SQL> create table test.t8(sid int primary key ,pid int);

SQL> create table test.t9(id int primary key,sid int foreign key references

test.t8(sid));

外键一定是其他表的主键。

6、对列加备注;

SQL> comment on column test.t8.sid is '测试';

5.3.3 导入数据

create table test.t10(sid int);

制造数据

vi test.sql

insert into test.t10(sid) values(1);

insert into test.t10(sid) values(2);

insert into test.t10(sid) values(3);

insert into test.t10(sid) values(4);

insert into test.t10(sid) values(5);

insert into test.t10(sid) values(6);

连接数据库并导入

达梦数据库在中标麒麟系统下的安装与使用

查看数据

达梦数据库在中标麒麟系统下的安装与使用

图形化导入:

/dm8/tool/dts

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

完成后执行:

select * from test.t10

5.3.4 表维护

1、重命名:

SQL> alter table test.t1 rename to tt;

启用和禁用约束

SQL>select

CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS from

dba_constraints where TABLE_NAME='T3';

alter table test.t3 disable constraint CONS134218845;

alter table test.t3 enable constraint CONS134218845;

删除表:

SQL> drop table test.tt;

5.3.5 视图

视图分类:简单视图,复杂视图,物化视图

1、简单视图

创建语法:create view() as select() from() where ()

修改语法:craete or replace view() as select () from () where ()

SQL> create view test.v1 as select * from dmhr.employee;

SQL> create or replace view test.v1 as select employee_name from

dmhr.employee limit 5;

删除视图

SQL> drop view test.v1;

查询视图

DBA_VIEWS;


5.3.6 索引

索引的作用:加快表的查询,增加数据库的查询性能,对数据库做DML 操作的时候,数据库会自动维护索引,索引占空间。

达梦支持的索引:二级索引,位图索引,唯一索引,复合索引,函数索引,分区索引等。

建立索引的规则:

适合建索引的情况:

1、经常查询的列

2、连接条件列

3、谓词经常出现的列(where)

4、查询是返回表的一小部分数据。

不适合建索引的情况

1、列上有大量的null

2、列上的数据是有限的(性别)

查看表的索引

select table_name,index_name from dba_indexes where

table_name='STU';

创建索引:

规划索引表空间,表的数据无序的,索引的数据是有序的

创建索引表空间

SQL> create tablespace index1 datafile '/dm8/data/DAMENG/index1_01.dbf' size 32;

建索引

SQL> create table test.emp as select * from dmhr.employee;

SQL> create table test.dept as select * from dmhr.department;

SQL> create index ind_emp on test.emp(employee_id) tablespace index1;

查看表的执行计划

SQL> explain select * from test.emp where employee_id<20;

1   #NSET2: [0, 42, 280]

2     #PRJT2: [0, 42, 280]; exp_num(12), is_atom(FALSE)

3       #SLCT2: [0, 42, 280]; EMP.EMPLOYEE_ID < 20

4         #CSCN2: [0, 856, 280]; INDEX33555551(EMP)

没有走我们自己建的索引,统计信息是旧的,需要得新收集统计信息;

收集统计信息

SQL> begin

dbms_stats.gather_table_stats('TEST','EMP');

END;

DMSQL 过程已成功完成

SQL>  explain select * from test.emp where employee_id<20;

1   #NSET2: [0, 1, 280]

2     #PRJT2: [0, 1, 280]; exp_num(12), is_atom(FALSE)

3       #BLKUP2: [0, 1, 280]; IND_EMP(EMP)

4         #SSEK2: [0, 1, 280]; scan_type(ASC), IND_EMP(EMP), scan_range(null2,20)

注意:创建索引,删除索引,重建索引和收集统计信息,不要在业务

高峰去做。在业务低谷的时候去操作。

维护索引:

重建索引:

SQL> alter index test.ind_emp rebuild;

SQL> alter index test.ind_emp rebuild online; ---慎用

删除索引:

SQL> drop index test.ind_emp;

注意:达梦默认不会自动收集统计信息,需要手动收集,可以利用作

业来定时的自动收集。

5.4   备份还原
5.5.1 介绍

数据库备份就是制作数据库的“副本”防止数据库丢失数据,在数据丢失后重建数据库.

完全备份是指一个备份包含指定数据库或表空间的所有数据

增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。

备份的方式:物理备份和逻辑备份

备份的介质:磁盘,磁带,光盘

集群:数据守护,dsc (rac)

也支持第三方的备份软件:爱数,鼎甲

5.5.2  热备管理工具方式

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

达梦数据库在中标麒麟系统下的安装与使用

命令行方式下全备,增量备

全备

SQL> backup database full backupset '/dm8/backup/fullbak2';

增量备

SQL> backup database increment backupset '/dm8/backup/incr_bak';

表空间还原:

表空间只能脱机还原,使用Dmrman

模拟表空间test 损坏:

[[email protected] DAMENG]$ mv TEST01.DBF TEST01.DBF.BAK

重启实例服务,实例处于mount 状态。关闭实例服务

使用dmrman 进行还原

1、校验备份集

RMAN> check backupset '/dm8/backup/fullbak2';

2、还原表空间

RMAN> restore database '/dm8/data/DAMENG/dm.ini' tablespace test

from backupset '/dm8/backup/fullbak2';

2、恢复表空间

RMAN> recover database '/dm8/data/DAMENG/dm.ini' tablespace test;

重启实例服务

5.6   DM8 ODBC配置

达梦支持的语言:c c++ java python php perl .net

15.1 Linux 环境中配置ODBC(以root 配置)

检查gcc 包

[[email protected] ~]# rpm -aq|grep gcc

[[email protected] unixODBC-2.3.0]# yum install gcc -y

解压安装包

[[email protected] opt]# tar -xzvf unixODBC-2.3.0.tar.gz

配置odbc

[[email protected] unixODBC-2.3.0]# ./configure --enable-gui=no

(注意如果抱错,就是因为gcc没装)

编译安装ODBC

[[email protected] unixODBC-2.3.0]# make && make install

查看odbc 的版本

[[email protected] unixODBC-2.3.0]# odbc_config --version

2.3.0

查看ODBC 配置文件的路径

[[email protected] unixODBC-2.3.0]# odbcinst -j

unixODBC 2.3.0

DRIVERS............: /usr/local/etc/odbcinst.ini

SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini

FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources

USER DATA SOURCES..: /root/.odbc.ini

SQLULEN Size.......: 8

SQLLEN Size........: 8

SQLSETPOSIROW Size.: 8

配置odbc.ini 和odbcinst.ini

vi /usr/local/etc/odbc.ini

[dm8]

Description = DM ODBC DSND

Driver = DM8 ODBC DRIVER

SERVER = localhost

UID = SYSDBA

PWD = dameng123

TCP_PORT = 5236

vi /usr/local/etc/odbcinst.ini

[DM8 ODBC DRIVER]

Description = ODBC DRIVER FOR DM8

DRIVER = /dm8/bin/libdodbc.so

本次学习总结就到这里了,后续会有更多知识更新,请多交流执教。