国产信创之路最扎实的一步——达梦数据库
序言,作为程序员,内容以简明,实用为本,不加修饰。
俄乌战争,美国对饿各方面进行了技术限制。前车之签,我与我所在部门开始着手信息系统的全面信创,国产化之路;不说大方向,什么硬件国产化,软件国产化,直接说痛点。
第一想到CPU,已有龙芯,飞腾,鲲鹏等;第二是操作系统,麒麟,红旗,普华等;第三是数据库,也是这篇主角,达梦数据库。第四,没了。。
经过了了解,达梦数据库已适配了信创CPU,操作系统,且兼容如Intel(x86)硬件,兼容CentOS,完美迁移Orcale/MySql,全都现成的,且已经过生产验证(扎实,很重要)。
更待何时?开学!开发不是DBA,实用的 13个要点(包含DCA认证全部知识点)学会,如有问题可留言讨论。
(以下为个人书写习惯,数据库注释是"--"不是"//"我知道)
文字用注释,代码命令不注释,小标题前加 "-",全篇可复制至txt无特殊符号、格式及图片。
目录
//---一,概述
//---二,安装
//---三,创建数据库
//---四,客户端工具
//---五,DMSQL
//---六,体系结构
//---七,表空间管理
//---八,用户管理
//---九,模式
//---十,数据字典
//---十一,备份还原
//---十二,作业
//---十三,开发
//---一,概述
//操作系统:银河麒麟 V10 | 数据库:DM8
//UP使用xshell + winscp进行连接
xrandr -s 1920x1200_60 //修改屏幕分辨率
//---二,安装
//-检查
free -m; df -h//查看内存,硬盘
rpm -qa|grep gcc;rpm -qa|grep glibc
getenforce
//用户和组
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba
//目录 文件
mkdir /dm8
chown [-R] dmdba:dinstall /dm8
ls -ld /dm8
mkdir /mnt/dm
mount /opt/dm8_20210818_x86_rh6_64_ent_8.4.2.18_pack14.iso /mnt/dm
//-图形化
xhost + 允许其他用户登陆图形化
echo $DISPLAY //查看root的当前值
su - dmdba
export DISPLAY=:0.0 //赋予以上echo出的值
//-安装建议使用命令行
su - dmdba //转换用户
./DMInstall.bin -i
/dm8 //根据需求,选择安装路径
/dm8/script/root/root_installer.sh //最后以root用户执行
//-卸载(非必须)
//DM 安装目录下执行./uninstall.sh -i卸载 DM 数据库
/dm8/script/root/root_uninstaller.sh //最后以root用户执行
//---三,创建数据库
//-创建
cd /dm8/tool
./dbca.sh //创建实例,注册数据库服务
//簇大小、页大小、字符集 等创建数据库后无法修改
//按照考试要求,统一或单独设置用户名密码
//设置SYSDBA用户的密码 9位以上 比如111111111
//创建后root执行
mv /dm8/bin/DmServiceDMSERVER.service /usr/lib/systemd/system/DmServiceDMSERVER.service
systemctl enable DmServiceDMSERVER.service
systemctl start DmServiceDMSERVER.service
ps -ef |grep dmserver //查看进程
./dmservice.sh //root用户打开图形界面,维护服务状态
//-删除 需要停止服务
systemctl stop DmServiceDMSERVER
cd /dm8/script/root/
./dm_service_uninstaller.sh -n DmServiceDMSERVER //root用户
//-连接数据库
cd /dm8/bin
./disql sysdba/Dameng123:5236
select name from v#database;
select status$ from v$instance
//-启动
./DmServiceDMTESTSVR start | stop | status [mount]
//---四,客户端工具
cd /dm8/tool/
manager //管理工具 选项-编辑器-语法检查
console //脱机 备份 还原 工具
nca //网络配置助手
dts//数据迁移工具
monitor//性能监视工具
ps -ef |grep dmserver
ps -T -p 80155 //查看对应pid的线程
//---五,DMSQL
//-SQL DML/DDL/DCL/TCL
select a.DEPARTMENT_ID, count(*) as empnum
from dmhr.employee a
group by a.DEPARTMENT_ID
having count(*) >=30;
//create table
create table t_test(id int, name VARCHAR(20)) TABLESPACE tbs;
//insert
insert into t_test(id, name) values(1, 'aaa');
insert into dmhr.DEPARTMENT(DEPARTMENT.DEPARTMENT_ID,
DEPARTMENT.DEPARTMENT_NAME)
values(888888,'Test');
commit;
update dmhr.employee set salary=(select salary from
dmhr.employee where employee_name='金纬') where
employee_name='马学铭';
commit;
//---六,体系结构
//表空间是 DM 数据库的最大存储单元,所有数据都存储在表空间中。
//DM 物理文件包含:配置文件、控制文件、数据文件、联机日志(此四个文件必不可少,缺少一个将无法正常启动)。
bin/dmctlcvt dm.ctl //控制文件
select name from v$parameter //如:COMPATGIBLE_MODE 兼容模式, SVR_LOG 开启sql跟踪, BUFFER普通缓冲区
//console 控制台工具 图形化界面方式修改,需要重启数据库才能生效。
//直接修改 dm.ini 配置文件,需要重启数据库才能生效。
cat dm.ini |grep MEMORY
//系统函数修改(可以用来修改静态和动态参数,但静态参数修改后需要重启数据库才能生效)
select * from SYS."V$PARAMETER" t WHERE name in ('BUFFER','FAST_POOL_PAGES','RECYCLE','KEEP');
alter system set 'BUFFER'= 500 spfile;//修改参数文件中的值
alter system set 'ENABLE_LOCAL_OSAUTH'=1 spfile;//设置启用操作系统认证
BUFFER、FAST_POOL_PAGES、RECYCLE、KEEP//数据缓冲区
VM_POOL_SIZE//虚拟池
RLOG_BUF_SIZE//日志缓冲区
CACHE_POOL_SIZE//SQL缓冲区
DICT_BUF_SIZE//字典缓冲区
SESS%//session pool相关
like 'MEMORY%'//主内存池(共享内存池)
like 'SORT%';like 'HJ%';//运行时的内存池
select * from v$bufferpool|v$mem_pool;//查询缓冲区情况
select * from SYS."V$DYNAMIC_TABLES";//所有动态视图
//-启动顺序
alter database mount;
select status$ from v$instance;
//---七,表空间管理
//DM默认预定义 SYSTEM、ROLL、MAIN、TEMP、HMAIN 五个表空间
select * from v$parameter t where name like 'TEMP%';//DM 中临时表空间由参数 TEMP_SIZE 指定
//表空间相关数据字典
select * from dba_tablespaces;
select * from DBA_DATA_FILES;
select * from v$tablespace;
select * from v$datafile;
select * from DBA_FREE_SPACE; --数据文件剩余空间
//-维护表空间
//DM 数据文件大小,最大值不能低于页大小的 4096 倍
create tablespace tbs DATAFILE 'TBS01.DBF' size 32;//单位是M
drop tablespace dmtbs;//DM 只能删除空的表空间
alter TABLESPACE tbs add DATAFILE 'TBS02.DBF' size 128 AUTOEXTEND on NEXT 2 MAXSIZE 20480;//表空间添加数据文件
alter tablespace tbs RESIZE DATAFILE 'TBS01.DBF' TO 128;//修改表空间数据文件大小
select * from dba_data_files;
select * from SYS."V$DATAFILE";
//-表空间文件迁移
alter tablespace tbs offline;//表空间脱机
alter TABLESPACE tbs RENAME DATAFILE 'TBS01.DBF' TO '/dm8/data/DM/TBS/TBS01.DBF';//迁移表空间数据文件
alter tablespace tbs online;
alter database RESIZE LOGFILE '/dm8/data/DM/DM01.log' TO 300;//修改联机日志文件大小
//-开启归档
disql > alter database mount;
alter database archivelog;
alter database add archivelog 'type=local,dest=/dm8/arch,file_size=64,space_limit=10240';
alter database open;
select arch_mode from v$database;
//使用DM管理工具图形界面
//自动扩展属性记得打开,自动offline
//修改联机日志 选择LOCALHOST右键管理服务器->日志文件
//归档界面开启需要mount状态,系统管理里可设置 配置(M)
//---八,用户管理
//-角色
select * from v$parameter t where t.name = 'PWD_POLICY';//口令策略
create user hrtest IDENTIFIED by Dameng123 DEFAULT TABLESPACE TBSTEST;
alter SYSTEM set 'PWD_POLICY' = 15 BOTH;
alter user hr ACCOUNT UNLOCK;//用户锁定的解锁
alter user hr DEFAULT TABLESPACE dmtbs;//修改默认表空间
drop user if EXISTS hr;//删除用户
disql hrtest/'"Dameng@123"'//密码带有特殊字符的登录处理
//-权限
grant create table to hrtest;
grant select on dmhr.employee to hrtest [with grant option];//对象权限 选项转授
revoke select on dmhr.employee from hrtest;//权限回收
//-角色
create role r1;
select * from dba_roles;
grant create table to r1;
grant select on dmhr.department to r1;
grant r1 to hrtest;
sp_set_role('R1',0);//禁用后角色权限将不在生效
//---九,模式
//用户和模式是一对多的关系
select * from SYSOBJECTS t where t."TYPE$" ='SCH'; //查看模式
select a.id scheid, a.name schename, b.id userid, b.name username
from SYS.SYSOBJECTS a, SYS.SYSOBJECTS b
where a."TYPE$" = 'SCH' and a.pid = b.id;//查询模式和用户的对应关系
//-模式维护
//模式包含很多对象,比如表
create schema hrtest01 AUTHORIZATION HRTEST;//创建模式
create table hrtest01.t_test(id int, name varchar(20)) tablespace DMTBS;
//VARCHAR(size) CHAR(size) NUMBER(p,s) DATETIME LONG CLOB BLOB
select sys_context('USERENV','CURRENT_SCHEMA');//查看当前模式和当前用户
select sys_context('USERENV','CURRENT_USER');//查看当前模式和当前用户
set SCHEMA dmhr;//切换模式
drop SCHEMA IF EXISTS HRTEST01;//删除模式
//-管理表
select * from v$parameter t where name ='LIST_TABLE';//DM 默认创建的是索引组织表
//DM 创建表时如果指定了主键,则主键为聚簇索引键
//CTAS方式创建表:
create table t_emp01 as select * from dmhr.employee;
create table t_emp02 like dmhr.employee;
create table t_emp03 as select * from dmhr.employee where 1=0;
//使用CREATE table as创建表时,默认0不会复制表的约束信息,由参数CTAB_SEL_WITH_CONS指定
select * from SYS."V$PARAMETER" t where t.name like 'CTAB_SEL_WITH_CONS%';
alter table hrtest.t_testpid add COLUMN email varchar(20);//添加字段
alter table hrtest.t_testpid modify email varchar(50);//修改字段类型
alter table hrtest.t_testpid drop logtime;//删除字段
alter table hrtest.t_testpid add COLUMN logtime datetime DEFAULT sysdate;//对字段添加默认值
select * from dba_tables t where t.owner='HRTEST';//数据字典
select * from dba_tab_columns t where t.owner='HRTEST'//数据字典
//-数据的导入
`/dm8/backup/dts/t_department.sql
commit;
//-约束
alter table hrtest.t_testpid modify pname not null;//非空约束
alter table hrtest.t_testpid add CONSTRAINT uk_testpid_email unique (email);//唯一约束
alter table hrtest.t_testpid ADD CONSTRAINT pk_testpid_pid PRIMARY KEY(pid);//主键约束
alter table hrtest.t_testpid add salary number(10,2);//检验约束
alter table hrtest.t_testpid ADD CONSTRAINT ck_testpid_salary CHECK(salary>=2100);//检验约束
alter table hrtest.t_test add CONSTRAINT fk_test_id FOREIGN KEY(id)
REFERENCES hrtest.t_testpid(pid);//外键约束(外键引用两一张表的主键或者唯一键)
//约束的禁用和启用、删除
alter table hrtest.t_test disable CONSTRAINT fk_test_id;
alter table hrtest.t_test enable CONSTRAINT fk_test_id;
alter table hrtest.t_test drop CONSTRAINT fk_test_id
select * from dba_constraints t where t.owner='HRTEST';//数据字典
select * from DBA_CONS_COLUMNS t where t.owner='HRTEST';//数据字典
//-索引
explain select * from hrtest.t_emp01 t where T.EMPLOYEE_NAME = '马学铭';//explain展示执行计划
create index ix_emp01_employeename ON HRTEST.T_EMP01(EMPLOYEE_NAME);
alter index HRTEST.IX_EMP01_EMPLOYEENAME MONITORING USAGE;//开启索引监控
drop index HRTEST.ix_emp01_employeename;//删除
select * from dba_indexes t where t.OWNER ='HRTEST';//数据字典
//-视图
create or REPLACE view hrtest.v_emp
as
select a.EMPLOYEE_ID, a.EMPLOYEE_NAME, a.EMAIL, a.PHONE_NUM, a.SALARY
from dmhr.employee a
where a.DEPARTMENT_ID = 1001;
//---十,数据字典
//-数据字典
//存储在 SYSTEM 表空间中,包含对象定义、权限、用户角色等信息。
//USER_* 用户所拥有的对象信息 ALL_* 用户能访问的对象信息 DBA_* 整个数据库中的对象信息
//-动态性能视图
select * from sys.sysobjects t where id= 1069; --查询被锁的表
sp_close_session(sess_id); --结束某个会话
//---十一,备份还原
//--物理备份
select * from v$parameter t where name in ('BAK_PATH', 'BAK_USE_AP');//默认的备份路径 备份还原策略
//-脱机备份恢复(数据库和表空间的还原需要在关闭状态下)
/dm8/bin/dmrman
show backupset '/dm8/data/DAMENG/bak/DB_'
backup database '/dm8/data/DM/dm.ini';
restore database '/dm8/data/DAMENG/dm.ini' tablespace main from
backupset '/dm8/backup/full/CONSOLEFULLBAK';//表空间的还原
recover database '/dm8/data/DAMENG/dm.ini' tablespace main;//表空间的恢复
restore database '/dm8/data/DM/dm.ini' from backupset '/dm8/backup/full/ONLINEBAK_02';//数据库还原
recover database '/dm8/data/DM/dm.ini' with archivedir '/dm8/arch';//数据库恢复
recover database '/dm8/data/DM/dm.ini' update db_magic;//更新数据库魔术,只有库级还原需要更新魔术
//脱机备份使用console工具
//指定搜索目录,添加备份路径和默认备份路径,点击获取备份
//-联机备份
ps -ef|grep dmap//需打开归档,ap进程必须存在,用于备份辅助
//归档不连续,可以开启归档,重启数据库
select * from SYS."V$BACKUPSET"//查询备份集
SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm8/backup/full/');//添加指定备份集目录才能查到
backup database; //全量备份
backup database increment; //增量备份
backup database full to ONLINEBAK_01 backupset '/dm8/backup/full/ONLINEBAK_01';
backup database increment BASE ON BACKUPSET '/dm8/backup/full/ONLINEBAK_01' to ONLINEBAKINCR_01
backupset '/dm8/backup/incr/ONLINEBAK_01' ;
backup database increment with BACKUPDIR '/dm8/backup/full/' to
ONLINEBAKINCR_02 backupset '/dm8/backup/incr/ONLINEBAK_02';
select * from v$ifun t where t.name like 'SF_BAKSET%';
backup tablespace dmtbs;//表空间备份
backup tablespace dmtbs INCREMENT with BACKUPDIR '/dm8/backup/full/' to
DMTBSINCR_01 backupset '/dm8/backup/incr/DMTBSINCR_01' ;
backup table dmhr.employee; //表的备份
backup ARCHIVELOG all; //归档备份
//库级、表空间的还原和恢复不支持联机恢复,只支持脱机还原恢复。
//联机备份使用manager工具
//右键添加指定工作目录
//--逻辑备份
//-dexp 逻辑导出、dimp 逻辑导入四个级别
//全库(full=y)按用户(owner=XXX)按模式(schemas=XXX)按表(tables=XX)
cd /dm8/bin/
dexp userid=sysdba/Dameng123:5236 directory=/dm8/backup/dexp file=full.dmp log=full.log full=y
dimp userid=sysdba/Dameng123:5238 directory=/dm8/backup/dexp file=full.dmp log=impfull.log full=y
[owner=HRTEST schemas=DMHR tables=DMHR.EMPLOYEE]
//---十二,作业
//-图形界面操作
//开启代理服务
//代理右键,创建代理环境
//管理工具创建 JOB
select * from dba_jobs;
dbms_job.run(1651096901);//测试运行job
//---十三,开发
//-ODBC 安装
//解压ODBC的tar包
./configure //默认/usr/local
make
make install
//-ODBC 配置
odbcinst -j
cd /usr/local/etc/
vi odbc.ini
[DM8]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = 111111111
TCP_PORT = 5236
vi odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.so
//-ODBC 测试
dmdba> isql dm8 -v
select * from tb
没有结束语。
国产信创之路最扎实的一步——达梦数据库相关推荐
- idc机房运维巡检_智和信通赋能国产信创 建设IT智能监控运维体系 - 蔚颖willing...
作为信创领域深耕多年的企业,北京智和信通技术有限公司始终坚持研发自主知识产权的IT智能运维监控大数据分析系统--智和网管平台SugarNMS,积极探索AIOps智能运维,通过"国产安全+监控 ...
- 国产信创Linux桌面系统比较:软件包格式及软件管理、桌面环境及桌面应用
信创产业中,操作系统开始整合,基本上集中在银河麒麟V10和UOS2,很多朋友问到各种国产信创Linux系统的区别和比较.因此结合前期写的几篇文章,对这个问题再进行了整理.以龙芯CPU为例,比较包括lo ...
- idc机房运维巡检_赋能国产信创 建设IT智能监控运维体系
原标题:赋能国产信创 建设IT智能监控运维体系 作为信创领域深耕多年的企业,北京智和信通技术有限公司始终坚持研发自主知识产权的IT智能运维监控大数据分析系统--智和网管平台SugarNMS,积极探索A ...
- 国产信创综合档案管理系统软件
一.国产信创智能档案管理系统软件 主要应用于各级档案局(馆).政府事业单位.高校.大型集团企业等,分为单机版.网络版等版本. 二.档案数字化加工服务 政府.档案馆.事业单位.大型企业单位等各类文书档案 ...
- 麒麟V10 安装信创国产达梦数据库
简介 达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM.达梦数据库管理系统的最新版本是8.0版本,简称DM8. DM8采用全新的体系架构,在保证大型通用的基础上, ...
- 信创实践之达梦数据库介绍
众所周知,自主掌控关系到一个国家和名族的未来,经过中美贸易战的洗礼,中国政府对IT信息技术自主掌控重视程度前所未有,为此专门成立相关组织进行信创推进. 从技术替换的角度,涉及信创的范围有操作系统,中间 ...
- 国信证券OA系统及质量保障体系信创建设:泰山服务器、麒麟操作系统、东方通中间件、达梦数据库、蓝凌软件、毕昇JDK
信息技术应用创新(简称"信创")是国家重点战略,其目标是建立我国自主可控的IT底层架构和标准.国信证券作为证券行业第一批试点单位于2020年6月启动办公系统(以下简称OA系统)信创 ...
- 信创迁移适配预研-达梦数据库DM8服务与客户端工具安装使用
背景 凡事预则立 听说我们的项目将来要部署到国产化平台上,数据库用的是达梦数据库,国产的这些组件也没有用过,就想着在虚拟机安装数据库服务(因为是在 CentOS7 上安装测试,所以图形化客户端无法使用 ...
- 猿创征文|国产数据库之达梦数据库安装使用
国产数据库之达梦数据库安装使用 引言 安装包下载 安装数据库 配置数据库 连接数据库 引言 现在数据安全越来越受到国家的重视,很多国有企业,学校等都要求使用国产数据库,虽然现在国产数据库的发展还是初期 ...
最新文章
- c语言中如何设计和编写一个应用系统?
- python3和Python2的区别
- Kosaraju 算法检测有向图的强连通性
- docker 时间不一致,时区设置
- 在阿里干了5年招聘,这10条建议我必须分享给你!
- spring中AOP动态代理的两种方式
- dbgrid 获取前台页面参数
- thinkphp仿百度文库网站源码
- jQuery 事件方法(交互)
- 城市风云儿的装备体系
- mysql怎么从1开始递增
- WebLogic 11g重置用户密码
- 四张照片合成一张怎么弄_教你5种照片创意手工,简单好看实用
- c语言课程设计错误总结,C语言课程设计总结总结经验
- LWM2M简介-学习记录
- 智能开关双控实现方法(附电路图)
- 有什么软件可以连接到linux系统升级,linux系统和应用程序升级方法
- Error occurred during initialization of VM 解决
- 联发科处理器真有那么不堪吗?
- Customize your Chatter Experience.