目录
一、概述
达梦数据库是武汉达梦数据库股份有限公司推出的具有完全自主知识产权的高性能数据库管理系统。它在我国的数据库领域占据重要地位,能够满足多种业务场景的数据存储和管理需求。
二、特点
1、高性能
(1)采用先进的存储引擎和索引技术,能够快速地处理大量的数据读写操作。例如,在处理海量的交易数据时,其事务处理速度可以满足高并发的业务场景,像金融交易系统中每秒数千笔的交易数据插入和查询。支持多种存储模式,包括行存储和列存储。
(2)列存储对于数据分析场景下的复杂查询性能提升显著,比如在大数据量的报表统计和数据挖掘任务中,能够快速地对特定列的数据进行聚合和分析。
2.高可用性
(1)提供了数据备份和恢复机制。可以定时进行全量备份和增量备份,当出现数据损坏或者误操作等情况时,能够快速地从备份中恢复数据,最大限度地减少数据丢失。
(2)支持主备复制功能,主库和备库之间可以实时同步数据。在主库出现故障时,备库可以快速切换为主库,保障业务的连续性,这种方式在企业级的关键业务系统中应用广泛,如电信计费系统等。
3.安全性
(1)具备完善的用户认证和授权体系。可以对不同的用户分配不同的权限,如对数据库对象(表、视图、存储过程等)的读、写、执行等权限,防止非法用户访问和恶意操作。
(2)支持数据加密技术,对敏感数据(如用户密码、财务数据等)在存储和传输过程中进行加密,保证数据的安全性和隐私性。
三、应用场景
1.事务处理系统
在银行的核心业务系统中,用于处理客户的存款、取款、转账等交易。达梦数据库能够保证这些交易的原子性、一致性、隔离性和持久性(ACID)特性,确保金融交易的准确性和稳定性。
2.企业资源规划(ERP)系统
存储和管理企业的生产、采购、销售、库存等各个环节的数据。例如,在制造企业中,它可以记录原材料的采购信息、产品的生产进度和销售订单情况等,帮助企业实现高效的资源配置和业务流程管理。
3.数据分析与决策支持系统
作为数据仓库的底层存储,支持企业对历史数据进行挖掘和分析。比如,电商企业可以利用达梦数据库存储的销售数据、用户行为数据等进行数据挖掘,分析用户的购买偏好,为企业的营销策略提供数据支持。
四、安装前准备
1.硬件要求
服务器硬件应满足达梦数据库的最低配置要求。例如,处理器需要足够的性能来处理数据库操作,内存大小应根据预计的数据量和并发访问量来确定。对于小型应用,建议至少有 2GB 内存,对于大型企业级应用,可能需要数十 GB 甚至更多的内存。磁盘空间也要足够,要考虑数据文件、日志文件以及可能的备份文件的存储空间。
2.软件要求
操作系统支持多种,如 Linux(包括 CentOS、Ubuntu 等主流发行版)和 Windows Server 等。在 Linux 系统中,需要确保系统已经安装了必要的库文件,如 glibc 等。同时,要检查操作系统的内核参数设置是否合适,例如,在 Linux 下,需要调整共享内存(shmmax、shmall 等参数)的相关设置,以满足数据库对内存共享的需求。
3.下载安装包
从达梦官方网站(https://www.dameng.com/)下载适合你操作系统和版本的达梦数据库安装包。确保下载的安装包是完整且最新的,以获得最佳的性能和功能支持。
五、安装过程(以 Linux 为例)
1.解压安装包
使用命令行工具将下载的安装包解压到指定的目录。例如,如果安装包是dm8_20210818_x86_rh6_64_ent.zip
,可以使用命令unzip dm8_20210818_x86_rh6_64_ent.zip
进行解压。
2.运行安装程序
(1)进入解压后的目录,找到安装脚本(通常是DMInstall.bin
),并在命令行中赋予其执行权限(chmod +x DMInstall.bin
),然后执行安装程序(./DMInstall.bin
)。
(2)安装程序会启动图形化安装向导或命令行安装向导。在图形化安装向导中,按照提示逐步进行操作,如选择安装语言、接受许可协议等。
3.选择安装路径和组件
可以指定达梦数据库的安装目录。默认安装路径可能会因版本和操作系统而异,你可以根据实际需求进行修改。同时,选择要安装的组件,例如数据库服务器、客户端工具等。如果只是用于简单的应用开发测试,可能只需要安装数据库服务器和基本的管理工具;如果用于完整的企业级应用环境,可能需要安装所有的可选组件,如数据迁移工具、性能监控工具等
4.安装完成
安装程序会将达梦数据库文件复制到指定的安装目录,并进行必要的系统配置。安装完成后,会提示安装成功,并可能会显示一些后续操作的提示信息,如初始数据库的创建等。
六、配置过程
1.初始化数据库
在安装完成后,需要初始化数据库。可以使用达梦数据库提供的dminit
工具。通过命令行指定参数,如数据库名称、实例名、数据文件路径、日志文件路径等。例如,dminit PATH=/dm8/data DB_NAME=testDB INSTANCE_NAME=test INSTANCE_PORT=5236
,这个命令会在/dm8/data
路径下初始化一个名为testDB
的数据库,实例名为test
,端口为 5236
2.注册服务(在 Linux 下)
为了方便启动和停止数据库服务,可以将数据库实例注册为系统服务。使用dm_service_installer.sh
工具,例如,./dm_service_installer.sh -t dmserver -p test -dm_ini /dm8/data/testDB/dm.ini
,这里-t
表示服务类型为数据库服务器,-p
是服务名,-dm_ini
指定了数据库配置文件的位置。
3.配置参数文件(dm.ini)
达梦数据库的核心配置文件是dm.ini
,位于数据库实例的目录下。可以通过文本编辑器修改这个文件来调整数据库的各种参数。例如,调整缓存大小(BUFFER
参数)来优化数据库的性能,根据服务器的内存大小适当增加缓存可以提高数据读写效率;修改日志文件相关参数(如LOG_FILE_SIZE
)来控制日志文件的大小和数量,确保日志记录的完整性和可管理性。
4.用户和权限配置
启动数据库服务后,可以使用数据库管理工具(如达梦的管理控制台)或命令行工具(如disql
)登录数据库。通过 SQL 语句创建用户,例如CREATE USER user_name IDENTIFIED BY password
,并授予用户相应的权限,如GRANT SELECT, INSERT, UPDATE ON table_name TO user_name
,这里授予用户对指定表的查询、插入和更新权限。
在整个安装和配置过程中,要仔细阅读官方文档,并且在测试环境中进行充分的测试,确保数据库安装和配置正确,能够满足实际应用的需求。如果在安装或配置过程中遇到问题,可以参考达梦官方的技术支持文档或者联系达梦的技术支持人员。
七、数据库连接命令(使用 disql)
1.基本连接
语法:disql [USER[/PASSWORD]@][IP:PORT][/DATABASE]
示例:如果数据库在本地,默认端口为 5236,要以用户SYSDBA
(密码为SYSDBA
)连接到数据库DMHR
,可以使用命令disql SYSDBA/SYSDBA@localhost:5236/DMHR
。
说明:在连接命令中,USER
是用户名,PASSWORD
是用户密码,IP
是数据库服务器的 IP 地址,PORT
是数据库服务端口,DATABASE
是要连接的数据库名称。如果是本地连接且使用默认端口等情况,部分参数可以省略。
八、数据库对象操作命令
-
创建表
-
语法:
CREATE TABLE table_name (column1 datatype [constraint], column2 datatype [constraint],...);
- 示例:创建一个名为
employees
的表,包含id
(整数类型,为主键)、name
(字符类型)和salary
(数字类型)三个列。CREATE TABLE employees (id INT PRIMARY KEY, name VARCHAR(50), salary NUMERIC(10,2));
CREATE TABLE employees (id INT PRIMARY KEY, name VARCHAR(50), salary NUMERIC(10,2));
-
说明:
table_name
是要创建的表的名称,column
是列名,datatype
是列的数据类型,constraint
可以是列的约束条件,如主键(PRIMARY KEY
)、非空(NOT NULL
)等。
-
-
插入数据
-
语法:
INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,...);
- 示例:向
employees
表中插入一条记录,id
为 1,name
为John
,salary
为 5000.00。INSERT INTO employees (id, name, salary) VALUES (1, 'John', 5000.00);
INSERT INTO employees (id, name, salary) VALUES (1, 'John', 5000.00);
- 说明:
table_name
是目标表,column
是要插入数据的列,value
是对应列要插入的值。如果要插入所有列的数据,列名部分可以省略,如INSERT INTO employees VALUES (2, 'Alice', 6000.00);
。INSERT INTO employees VALUES (2, 'Alice', 6000.00);
-
-
查询数据
-
语法:
SELECT column1, column2,... FROM table_name [WHERE condition];
- 示例:查询
employees
表中salary
大于 5000 的员工姓名。SELECT name FROM employees WHERE salary > 5000;
SELECT name FROM employees WHERE salary > 5000;
-
说明:
column
是要查询的列,table_name
是要查询的表,WHERE
子句用于筛选满足条件的记录,condition
可以是比较条件(如大于、小于)、逻辑条件(如AND
、OR
)等。
-
-
更新数据
-
语法:
UPDATE table_name SET column1 = value1, column2 = value2,... [WHERE condition];
- 示例:将
employees
表中name
为John
的员工工资增加 1000。UPDATE employees SET salary = salary + 1000 WHERE name = 'John';
UPDATE employees SET salary = salary + 1000 WHERE name = 'John';
-
说明:
table_name
是要更新的表,SET
子句用于指定要更新的列和新的值,WHERE
子句用于限制更新的范围。
-
5.删除数据
-
语法:
DELETE FROM table_name [WHERE condition];
-
示例:
- 删除
employees
表中id
为 1 的记录。DELETE FROM employees WHERE id = 1;
DELETE FROM employees WHERE id = 1;
- 删除
-
说明:
table_name
是要删除数据的表,WHERE
子句用于指定要删除的记录范围,若省略WHERE
子句,则会删除表中的所有数据。
九、数据库管理命令
1.创建用户
-
语法:
CREATE USER user_name IDENTIFIED BY password;
-
示例:
- 创建一个名为
test_user
的用户,密码为test123
。CREATE USER test_user IDENTIFIED BY 'test123';
CREATE USER test_user IDENTIFIED BY 'test123';
- 创建一个名为
-
说明:
user_name
是要创建的用户名称,password
是用户的密码。
2.授予权限
-
语法:
GRANT privilege_type ON object_name TO user_name;
-
示例:
- 授予
test_user
用户对employees
表的查询权限。GRANT SELECT ON employees TO test_user;
GRANT SELECT ON employees TO test_user;
- 授予
-
说明:
privilege_type
是权限类型,如SELECT
(查询)、INSERT
(插入)、UPDATE
(更新)、DELETE
(删除)等,object_name是数据库对象名称(如表、视图等),user_name是被授予权限的用户。