达梦数据库的体系架构和Oracle差不多,属于国内首家自主创研的数据库产品,更符合国人的使用习惯。由于国外的开源产品较少,商业定制化的产品对国家的安全和保密性并不友好,达梦数据解决了这些难题。达梦数据库安装方便,一些参数配置在管理助手里也有中文解释比较清晰,自带的图形化工具如Manager、Dts等都是特别方便的。
达梦数据库 | Oracle数据库 | |
---|---|---|
体系结构 | 单进程多线程,达梦分为示例与数据库两部分。<br />实例:一组正在运行在DM后台的进程/线程,以及一个大型的共享内存组成,包含监听线程、工作线程、IO线程、调度线程、日志相关线程等。<br />数据库:由一组物理文件组成,包含数据文件、日志文件、控制文件及临时件等。 | 多线程,时刻i,也是一组进程以及共享内存组成,涵盖进程更多。<br />数据库,也是一组物理文件,如数据文件、日志文件、控制文件等。<br />Oracle的控制文件可以有多组,同时在线使用。 |
用户模式 | 达梦一个用户下可以有多个模式 | Oracle的用户和模式是一一对应关系 |
表空间管理 | 达梦表空间由数据文件组成,一个表空间可以有多个数据文件,一个数据文件只能属于一个表空间;<br />仅能对表空间进行offline,不能针对某个数据文件offline;<br />数据文件迁移,通过一个命令可以直接在操作系统层移动文件完成整体迁移 | 有数据文件组成,一个表空间可以用多个数据文件,一个数据文件只能属于一个表空间;<br />能对表空间或数据文件进行offline;<br />在12c以前,需要手动在操作层进行数据文件迁移,然后在数据库层更改相关参数;12c以后可以实现一键完成数据文件迁移 |
登录 | 若忘记sysdba密码,则无法登录 | 若忘记sys的密码,则可以用操作系统验证方式登录修改密码 |
数据库状态 | shutdown,mount,open和suspend状态,在open状态可以直接切换为mount状态 | shutdown,nomount,mount和open |
创建数据文件大小单位 | 创建表空间指定数据文件的时候不能写单位不然会报错,默认单位是mb | 在创建表空间指定数据文件的时候可以指定大小的单位,kb、mb、gb |
RMAN备份 | 达梦的RMAN只能进行冷备 | Oracle的RMAN可以进行热备 |
表空间大小写 | 达梦操作时如果创建的表空间名称是小写需要用双引号引起来 | Oracle不区分大小写 |
归档 | DM需要指定归档路径,大小和上限大小 | Oracle如果不指定归档路径则会默认存放在恢复目录中 |
执行存储过程 | DM执行存储过程的明空是call存储过程名(参数) | Oracle执行存储过程的命令是exec存储名称名(参数) |
执行脚本 | DM执行脚本使用的是start | Oracle在sqlplus下执行命令脚本使用@ |
参数 | DM修改参数命令是sp_set_para_value(X,‘’,X) | Oracle中修改参数的命令是alter system set xxxx=xxx |
默认表空间名称 | 默认用户数据存放在表空间的名称是main表空间 | 默认用户数据存放的表空间user表空间 |
内核需要在2.4以上
⚠️特别是国产CPU:龙芯、飞腾
[root@kylin-template ~]# lscpu
架构: x86_64
CPU 运行模式: 32-bit, 64-bit
字节序: Little Endian
Address sizes: 45 bits physical, 48 bits virtual
CPU: 4
在线 CPU 列表: 0-3
每个核的线程数: 1
每个座的核数: 2
……
⚠️数据库内存至少要1G,Linuxswap分区一般是物理内存的1.5倍
[root@kylin-template ~]# free -m
total used free shared buff/cache available
Mem: 2888 2422 70 16 394 195
Swap: 2047 197 1850
⚠️如果开启SQL日志分析,那么/tmp分区至少要600M
[root@kylin-template ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs 1.5G 4.0K 1.5G 1% /dev/shm
tmpfs 1.5G 9.7M 1.5G 1% /run
tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup
/dev/mapper/klas-root 17G 15G 2.8G 84% /
tmpfs 4.0G 116K 4.0G 1% /tmp
/dev/sda1 1014M 211M 804M 21% /boot
tmpfs 289M 56K 289M 1% /run/user/0
/dev/sr0 4.1G 4.1G 0 100% /run/media/root/Kylin-Server-10
100M,支持TCP/IP协议,远程访问数据库需要关闭防火墙
[root@kylin-template ~]# systemctl status firewalld
[root@kylin-template ~]# systemctl stop firewalld
[root@kylin-template ~]# systemctl disable firewalld
内核要在2.6以上
[root@kylin-template ~]# uname -ra
Linux kylin-template 4.19.90-24.4.v2101.ky10.x86_64 #1 SMP Mon May 24 12:14:55 CST 2021 x86_64 x86_64 x86_64 GNU/Linux
[root@kylin-template ~]# mkdir-p/dm8
[root@kylin-template ~]# groupadd dinstall
[root@kylin-template ~]# useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
[root@kylin-template ~]# passwd dmdba
[root@kylin-template ~]# chown dmdba:dinstall -R /dm8/
[root@kylin-template ~]# vi /etc/security/limits.conf
##在文件末尾追加下面4行
dmdba hard nofile 65536
dmdba soft nofile 65536
dmdba hard stack 32768
dmdba soft stack 16384
[root@kylin-template ~]# mount -o loop /opt/dm8_setup_rh7_64_ent_8.1.1.45_20191121.iso /mnt
⚠️DMInstall.bin为图形化安装,DMInstall.bin -i为命令行安装,略有区别,结果一致。
[root@kylin-template ~]# su - dmdba
[dmdba@kylin-template ~]$ cd /mnt/
[dmdba@kylin-template mnt]$ ./DMInstall.bin
⚠️图形化注册则不需要此流程,直接点点点即可。
初始化的具体参数可使用./dminit help查看
[dmdba@kylin-template ~]$ cd /dm8/bin
[dmdba@kylin-template bin]$ ./dminit path=/dm8/data DB_NAME=DAMENG INSTANCE_NAME=PROD PORT_NUM=5237 SYSDBA_PWD=Dameng123 EXTENT_SIZE=16 PAGE_SIZE=16
⚠️图形化注册则不需要此流程,直接点点点即可。
[root@kylin-template ~]# cd /dm8/script/root/
[root@kylin-template root]# ./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DAMENG/dm.ini -p DMSERVER
#启动
[dmdba@kylin-template bin]$ ./DmServicePROD start
#关闭
[dmdba@kylin-template bin]$ ./DmServicePROD stop
#查看当前状态
[dmdba@kylin-template bin]$ ./DmServicePROD status
[root@kylin-template root]# su - dmdba
[dmdba@kylin-template ~]$ cd /dm8/bin
[dmdba@kylin-template bin]$ ./disql SYSDBA/“密码”@“IP”:“端口”
[dmdba@kylin-template ~]$ cd /dm8/
[dmdba@kylin-template dm8]$ ./uninstall.sh -i
1、查询表空间和数据文件
select tablespace_name,file_name from dba_data_files;
2、创建表空间
create tablespace test datafile ‘/dm8/data/DAMENG/TEST01.DBF’ SIZE 32;
3、表空间脱机
alter tablespace tbs offline;
4、表空间联机
alter tablespace tbs online;
5、增加数据文件
alter tablespace "TBS" add datafile '/dm8/data/DAMENG/TBS02.DBF' size 64 autoextend on next 1 maxsize 1024;
6、修改数据文件大小
alter tablespace “TBS” resize datafile ‘TBS02.DBF’ to 100;
7、更换数据文件路径
##先脱机
alter tablespace tbs offline;
##修改数据文件路径
alter tablespace tbs rename datafile ‘/dm8/data/DAMENG/TBS01.DBF’ to ‘/dm8/TBS01.DBF’;
##表空间联机
alter tablespace tbs online;
8、删除表空间
drop tablespace tbs;
1、查看用户
select username,account_status from dba_users;
2、通过函数修改参数
sp_set_para_value(1,‘PWD_POLICY’,3);
3、更改用户的默认表空间
alter user “TEST” default tablespace “MAIN”;
4、更改密码
alter user test identified by Dameng123;
5、锁定test用户
alter user test account lock;
6、解锁test用户
alter user test account unlock;
7、撤回权限
revoke create table from test;
8、删除用户
Drop user test;
1、创建表
create table test1(id char(10) not null);
2、非空约束
insert into test1 values (null);
3、唯一约束
create table test2(id int unique,name varchar(25));
4、主键约束
create table test3(id int primary key);
5、外键约束
create table test4 (id int foreign key references test3(id));
6、检查约束
create table test5(id int check(id>=5));
7、重命名表
Alter table test1 rename to test6;
8、增加列
alter table “TEST1”.“TEST6” add column(“NAME” VARCHAR(30));
9、删除列
Alter table test6 drop column name;
10、查看约束
select constraint_name,table_name,status from user_constraints;
11、启用约束
alter table test2 enable constraint CONS134218843 ;
12、禁用约束
alter table test2 disable constraint CONS134218843 ;
13、删除表
Drop table test5;
1、冷备
##不需要开启归档,但是需要停掉数据库实例。
[dmdba@kylin-template bin]$ ./DmServiceDMSERVER stop
##使用RMAN备份
[dmdba@kylin-template bin]$ ./dmrman CTLSTMT="backup database '/dm8/data/DAMENG/dm.ini' to backup_file_01 backupset '/dm8/data/DAMENG/bak/backup_file_01'"
##检查备份集
RMAN> check backupset '/dm8/data/DAMENG/bak/backup_file_01'
2、热备
##需要开启归档,数据库需要联机
##查询数据库归档状态(ARCH_MODE=Y表示已开启归档)
select name,status$,arch_mode from v$database;
##全备
BACKUP DATABASE FULL BACKUPSET '/dm8/data/DAMENG/dm_bak';
##增备
backup database increment base on backupset '基备份集目录' to "备份名" backupset '备份集目录';
##表备份
backup table "模式名"."表名" to "备份名" backupset '备份集目录'
##表空间备份
backup tablespace "表空间名" full to "备份名" backupset '备份集目录';
##归档备份
backup archivelog all to "备份名" backupset '备份集目录';
3、还原
[dmdba@kylin-template bin]$ ./dmrman CTLSTMT="RESTORE DATABASE '/dm8/data5238/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/DAMENG/dm_bak'"
[dmdba@kylin-template bin]$ ./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data5238/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/DAMENG/dm_bak'"
[dmdba@kylin-template bin]$ ./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data5238/DAMENG/dm.ini' UPDATE DB_MAGIC"
图形化工具介绍 | |
---|---|
DM管理工具(manager) | DM的图形化管理联机工具,主要功能:用户管理、角色权限管理、表空间、模式、模式下对象(表、索引、约束、函数、过程、视图等)、数据库物理联机备份、作业管理等功能。 |
DM控制台工具(console) | DM控制台工具是一个脱机工具,提供脱机备份还原、修改数据库参数(修改后重启数据库才能生效)等功能。 |
DM数据迁移工具(dts) | DM数据迁移工具支持其它多款数据库迁移到达梦,或者达梦迁移到文件等功能。 |
DM性能监视工具(monitor) | DM性能监视工具可以用来监视数据库的线程、事务会话、表空间占用等信息。 |
文章
阅读量
获赞