当前位置: 首页>后端>正文

达梦 数据库 设置兼容 mysql group by 达梦数据库权限配置

远程访问数据库需要关闭防火墙
 [root@localhost ~]# systemctl status firewalld
 [root@localhost ~]# systemctl stop firewalld
 [root@localhost ~]# systemctl disable firewalld一、 规划路径建立安装位置文件夹 [root@localhost /]# mkdir -p /dm8
 2.3 安装用户(建议不要使用 root)
 [root@localhost /]# groupadd dinstall
 [root@localhost /]# useradd -g dinstall dmdba
 [root@localhost /]# passwd dmdba
 [root@localhost /]# chown dmdba:dinstall /dm8 -R给权限
 [root@localhost /]# ls -ld /dm8 查看读写权限
 配置 dmdba 用户环境变量(可选项)[dmdba@localhost ~]$ source .bash_profile 环境变量生效:
 [root@localhost /]# vi /etc/security/limits.conf设置最大文件打开数
 dmdba soft nofile 4906
 dmdba hard nofile 65536临时生效:ulimit -n 65536
图形化安装
 [root@localhost home]# mount -o loop /home/dm8_setup_rh7.iso /mnt mount: /dev/loop0 写保护,将以只读方式挂载
 [root@localhost mnt]# export DISPLAY=192.168.128.1:0.0 XSHELL下调出图形化安装
 [root@localhost mnt]# xhost +
 [root@localhost mnt]# export DISPLAY=192.168.164.100:0.0
 [root@localhost mnt]# xhost +
 access control disabled, clients can connect from any host
 xhost: must be on local machine to enable or disable access control.
 [dmdba@localhost ~]$ export DISPLAY=192.168.128.1:0.0
 [dmdba@localhost ~]$ xhost +
 access control disabled, clients can connect from any host
 [dmdba@localhost mnt]$ ./DMInstall.binCLI:命令行的交互式安装
 [dmdba@localhost mnt]$ ./DMInstall.bin –i卸载数据库软件(在卸载数据库之前,需要将数据库备份,然后关闭实例、删除
 数据库及卸载数据库软件)
 [dmdba@localhost dm8]$ ./uninstall.sh -i创建数据库实例:一个数据库软件是可以安装多个实例,通过端口号来区分
 [dmdba@localhost tool]$ ./dbca.sh[root@localhost tool]# ./dmservice.sh 看服务
 [dmdba@localhost ~]$ ps -ef|grep dmserver 判断是否启动
 [dmdba@localhost ~]$ netstat -ntl|grep 5236 看端口是否被占用
 [dmdba@localhost bin]$ ./DmServiceDMSERVER status
 看数据库实例服务
 [root@localhost tool]# systemctl status DmServiceDMSERVER.service看数据库实例服务4、DM8 数据库实例管理
 4.1 数据库的状态
 Shutdown:关闭状态
 Mount:配置状态
 Open:数据库打开状态,数据库对外提供服务
 Suspend:挂起状态
 4.2 数据库状态的切换
 在bin下面用 cd 查询脚本
 select instane_name from V from V$instance; 查询状态
 alter database mount; 切换为编辑模式
 alter database open;Shutdown -mount
 Shutdown -open
 Open-shutdown
 Mount-open
 Open-mount(oracle 不支持)
 Open-suspend
 Suspend-openDm 数据库不支持 mount-suspend 状态,suspend-mount 状态Exit退出
4.4 数据库和关闭
 .
 [dmdba@localhost bin]$ ./DmServiceDMSERVER stop
 [dmdba@localhost bin]$ ./DmServiceDMSERVER start
 exit在前端启停数据库
 [dmdba@localhost bin]$ ./dmserver /dm8/data/DAMENG/dm.ini5、数据库工具
 5.1 disql
 [dmdba@localhost bin]$ ./disql SYSDBA/dameng123:5239[dmdba@localhost bin]$ cd /dm8/tool/
 [dmdba@localhost tool]$ ./disql
 disql V8
 SQL> conn SYSDBA/SYSDBA:5239在tool下面用需要使用连接数据库5.2 管理工具 manager
 ./manager
 5.3 性能监控工具 monitor
 ./monitor
 5.4 迁移工具 dts
 ./dts
 5.5console 工具
 查看和调整参数
 6、DMSQL
 结构化查询语言,提供了应用程序到数据库的一个接口。
 6.1DMSQL 分类
 DML(数据操作语言):insert update delete select
 DDL(数据定义语言):create table,drop table,alter table ,truncate
 DCL(数据控制语言):权限的授予或撤回,grant,revoke
 TCL(事务控制语言):commit, rollback ,save moint6.2SQL 语句规范
 SQL 不区分大小写,除了’’ “”除外
 关键字是不能被拆分,不能缩写
 可以换行,可以缩进,提高阅读性6.3 简单查询
 语法:
 Select () from ();
 单列查询
 select employee_id from dmhr.employee;
 查询多列
 select * from dmhr.employee;
 表达式:select
 employee_id,employee_name,salary,salary+500 from dmhr.employee;
 起别名:(方便识别,计算)
 select
 employee_id,employee_name,salary,salary+500 tol from dmhr.employee;
 去重复:(隐含排序 升序)
 select distinct department_id from dmhr.department;
 连接||
 “xxx 的工资是:xxx”
 select employee_name || ‘的工资是:’ || salary from dmhr.employee;6.4 过滤查询
 语法:
 Select () from () where ()
 比较运算符、逻辑运算符、
 in、between*** and、is null/is not null、like
 比较运算符:> >= < <= <> != =
 select employee_name,salary from dmhr.employee where salary>=30000;
 逻辑运算符:and or not
 And 同时满足:
 select employee_name,department_id,salary from dmhr.employee
 where department_id=101 and salary>15000;or 满足一个条件即可:
 select employee_name,department_id,salary from dmhr.employee
 where department_id=101 or salary>15000;
 Is null/is not null null 为空但是不等于 0
 select employee_name,job_id from dmhr.employee where job_id is null;
 select employee_name,job_id from dmhr.employee where job_id is not
 null;
 IN
 select employee_name,department_id from dmhr.employee where department_id in (101,104);
 Between*** and
 select employee_name,department_id,salary from dmhr.employee where salary between 20000 and 30000;
 模糊查询:like % _
 %匹配 0 个或多个字符
匹配 1 个字符
 select employee_name,salary from dmhr.employee where employee_name like ‘李%’;
 select employee_name,salary from dmhr.employee where employee_name like '李’;6.5 排序
 升序 asc
 select employee_name,salary from dmhr.employee order by salary asc;
 降序 desc
 select employee_name,salary from dmhr.employee order by 2 desc;
 分组函数
 Count max min avg sum
 语法:
 Select () from () group by () having ();
 除了聚合函数不用跟在 group by 后面,其他 select 列必须在 group by 后面,having 是对 group by 进一步过滤,having 不能单独使用。
 求部门工资和小于 8 万的部门
 select department_id,sum(salary) from dmhr.employee group by department_id having sum(salary) <80000;6.7 多表连接
 内连接
 结果集只显示满足条件的记录
 交叉连接(迪卡集)
 两个表记录数的乘积
 select count() from dmhr.employee cross join
 dmhr.department;–39376
 select count() from dmhr.employee;
 select count(*) from dmhr.department;
 自然连接
 根据列名自己过滤,两个表连接的列名和数据类型要一致
 select employee_name,department_name from dmhr.employee natural
 join dmhr.department;
 USING
 在满足多个连接列时,可以指定某一个列做连接,一般是和NATURAL
 JOIN 使用,连接的列前面不能加表名或者是前缀。
 select employee_name,department_name from dmhr.employee join dmhr.department using (department_id);
 ON 子句
 select c.city_name,l.street_address from dmhr.city c join dmhr.location
 l on c.city_id=l.city_id;
 HASH JOIN
 优化器CBO 根据小表连接列做运算生成hash 值,根据hash 值去连接
 大表,扫描大表
 select e.employee_name,d.department_name from dmhr.employee einner hash join dmhr.department d
 on e.department_id=d.department_id;
 外连接
 结果集除了显示满足条件的记录,不满足的用null 代替
 左外连接
 把left join 左边的全部显示出来,右边只显示满足条件的,不满足条
 件的用null 补齐
 select a.employee_name,b.department_name from dmhr.employee a
 left join dmhr.department b
 on a.department_id=b.department_id;
 右外连接
 把right join 右边的全部显示出来,左边只显示满足条件的,不满足
 条件的用null 补齐
 select a.employee_name,b.department_name from dmhr.employee a
 right join dmhr.department b
 on a.department_id=b.department_id;
 全外连接
 左外连接+右外连接
 select a.employee_name,b.department_name from dmhr.employee a
 full join dmhr.department b
 on a.department_id=b.department_id;
 6.8 子查询
 当一个查询是另一个查询条件时,就叫子查询。子查询先运行,子查
 询的结果是外部查询(主查询)的条件
 单行子查询
 = > >= < <= <>
 找出和金纬在一个部门的员工
 select employee_name,department_id from dmhr.employee where department_id=
 (select department_id from dmhr.employee where employee_name=‘金纬’)
 多行子查询
 In any all
 查询比104 部门工资都高的人
 select department_id,employee_name,salary from dmhr.employee where salary > all
 (select salary from dmhr.employee where department_id=104);
 Exists
 一旦有记录满足条件,就立马返回值SELECT E.EMPLOYEE_ID , E.EMPLOYEE_NAME FROM DMHR.EMPLOYEE
 E
 WHERE EXISTS
 ( SELECT * FROM DMHR.JOB_HISTORY J
 WHERE E.EMPLOYEE_ID = J.EMPLOYEE_ID );7、DM8 体系结构
 DMSERVER:C/S 架构,客户端+服务器构成
 DMSERVER=数据库文件+实例
 实例=共享内存+后台进程/线程
 非DSC 架构是一个实例对应一个数据库,DSC 架构是一个数据库可以对应多个实例7.1DM8 存储结构
 物理结构
 配置文件
 以.ini 结尾的文件
 查询视图:
 select para_name,para_value from v$dm_ini where para_name like
 ‘COMPAT%’;
 SYS 系统级:影响全局
 Session 会话级:针对当前会话有效
 Infile:静态参数,实例重启才能生效
 sp_set_para_value(2,‘COMPATIBLE_MODE’,2);
 1 等于both,会改变内存和参数文件中的值。
 2 等于infile,会改变参数文件中的值,重启才能生效。
 数据文件
 以.DBF 结尾的文件控制文件
 以.ctl 结尾的文件
 select para_name,para_value from v ./dmctlcvt TYPE=1
 SRC=/dm8/data/DAMENG/dm.ctl DEST=/tmp/dmctl.txt
 注意:不要随便修改控制文件
 重做日志文件
 查询重做日志文件:
 重做日志文件记录的是数据库发生变更信息。重做日志文件的特点是
 可覆盖,循环写。重做日志文件频繁切换会对数据库产生较大的性能
 影响。
 resize 重做日志文件
 alter database resize logfile ‘/dm8/data/DAMENG/DAMENG01.log’ TO
 300;
 alter database resize logfile ‘/dm8/data/DAMENG/DAMENG02.log’ TO
 300;
 新增重做日志文件:
 alter database add logfile ‘/dm8/data/DAMENG/DAMENG03.log’ size
 300;
 注意:重做日志文件不能被删除,所有日志文件大小需要一致。
 归档日志文件
 就是重做日志文件的副本,用来做数据库恢复。
 开启归档:
 开启归档:
 co命令行开归档
 SQL> alter database mount;
 SQL> alter database add archivelog ‘type=local,dest=/dm8/arch,file_size=100,space_limit=0’;
 SQL> alter database archivelog;
 SQL> alter database open;
 SQL> select name,arch_mode from v$database;
 行号NAME ARCH_MODE1 DAMENG Y
图形化归档
备份文件
 以.bak 为扩展名的文件,备份文件就是数据库在某一个时间点的副
 本。.meta 元数据文件(备份集的信息),.bak 数据备份文件(真实
 的数据)
 跟踪日志文件
 跟踪日志文件记录的是系统各会话执行的sql 语句的信息,主要是错
 误的信息、性能问题。跟踪日志文件默认是关闭的。SVR_LOG事件日志文件
 记录的是数据库运行期间产生的关键性事件:数据库的启动、关闭、
 IO 错误、内存申请失败。
 逻辑结构
 页(块):默认为8k(8192 字节),支持4k、8k、16k、32k。数据
 页是数据库最小的分配单元。包含了页头信息,数据,空闲空间,行
 偏移数组。Filefactor
 簇:簇是一组连续的数据页组成,默认为16 个页,支持16、32 个页,
 总是在一个数据文件中。
 段:是簇的上级逻辑单元,段是可以跨多个数据文件的。段分为数据
 段(表段、索引段),临时段,回滚段。
 select * from user_segments;
 表空间:可以拥有一个或多个数据文件,一个数据文件只能属于一个
 表空间。
 8.1 查看表空间脱机状态
 联机或脱机用户管理分为三块:用户、权限、角色
select username,account_status from dba_users;
 9.3.1 命名原则字符开头,a-z,0-9,$#_ ;长度为 128 个字符 ;权限分配:系统权限、对象权限、角色 ;存储位置:表空间(默认main) ;密码策略:
 PWD_POLICY 设置系统默认口令策略。PWD_POLICY: 设置系统默认口令策略。0: 无策略;1: 禁止与用户名相同;2: 口令长度不小于9;4: 至少包含一个大写字母(A-Z);8 :至少包含一个数字(0-9);16:至少包含一个标点符号(英文输入法状态下,除“和空格外的所有符号;若为其他数字,则表示配置值的和,如3=1+2,表示同时启用第1项和第2项策略。当COMPATIBLE_MODE=1时,PWD_POLICY的实际值均为0
 3=1+2 7=4+2+1
 PWD_POLICY 值数据库重启生效图形console 工具更改
COMPATIBLE_MODE 是否兼容其他数据库模式(静态参数)
 。0:不兼容,1:兼容SQL92标准,2:兼容ORACLE,3:兼容MS SQL SERVER,4:兼容MYSQL。9.4创建 test 表空间
注意:表空间名要用大写(建用户一样)
 路径 /dm8/data/DAMENG/TESST01.DBF 大小默认 自动扩展开启 扩展尺寸(MB)1 上限(MB )5009.5.1 图形建用户
密码不小于9位,表空间选择TEST表空间,可以修改。更改用户的默认表空间、更改密码、查看用户的状态 、锁定 test 用户、解锁 test 用户、撤回权限、删除用户。
创建用户会自动创建一个与用户名同名的模式,一个用户可以对应多
 个模式。大写
DM 数据库执行 sql 脚本:
 先建test1表; exit
 授权start /home/dmdba/test1.sql
 start /home/dmdba/test1.sql清空表
主键约束:非空+唯一,一个表只能有一个主键,设计主键尽量的避
 开业务逻辑的列
 外键约束:
 SQL> create table test4 (id int foreign key references test3(id));
 SQL> drop table test3;
 检查约束
 SQL> create table test5(id int check(id>=5));查看约束:
启用约束 禁用
创建简单的视图:
create view test5.emp_v as
 select
 employee_id,employee_name,salary,department_id
 from
 dmhr.employee where department_id=1005;查询视图
 通过 manager 工具
 也可以查看视图 all_views创建索引
查看索引信息:
 select * from user_indexes;查看 sql 执行计划
备份主要有:物理备份和逻辑备份 ,物理备份:分为联机备份和脱机备份;完全备份和增量备份。
物理备份:冷备:不需要开启归档,针对整库做备份
 需要开启 dmap 服务,需要关闭数据库实例1、 console 工具备份
2、 用 dmrman 工具备份 只支持冷备
RMAN> backup database ‘/dm8/data/DAMENG/dm.ini’ backupset
 ‘/dm8/bakcup’;检查备份集
RMAN> check backupset ‘/dm8/backup’;
 热备:需要开启归档,数据库需要联机
 可以备份数据库、表空间、表、归档日志文件
 查看数据库归档模式:SQL> select arch_mode from v$database;行号 归档模式
 ARCH_MODE1
 Y
 利用 manager 工具做热备增量备份:Disql 工具:
 整库备份:
 backup database full to “full02” backupset ‘/dm8/backup/rb’;增量备份:
手动指定工作目录就能看的到了
表空间备份:
表备份:
归档日志备份:
物理还原:
新建作业 1,每周三,每周日 22:00 做全备call
增备
选目录基于哪一个全备做的
Linux 环境配置 odbc
解压缩
用 root 配置
 [root@localhost home]# tar -xvf unixODBC-2.3.0.tar.gz解压缩
 [root@localhost home]# cd unixODBC-2.3.0/
 [root@localhost unixODBC-2.3.0]# ./configure
 [root@localhost unixODBC-2.3.0]# make 编译
 [root@localhost unixODBC-2.3.0]# make install 安装
 [root@localhost unixODBC-2.3.0]# odbcinst -j 看版本Cat
配置/usr/local/etc/odbcinst.ini /usr/local/etc/odbc.ini测试连接
[dm8]
 description = DM ODBC DSND
 Driver = DM8 ODBC DRIVER
 SERVER = localhost
 UID = SYSDBA
 PWD = dameng123
 TCP_PORT = 5236[DM8 ODBC DRIVER]
 Description = ODBC DRIVER FOR DM8
 DRIVER = /dm8/bin/libdodbc.so
 用 dmdba 账户isql dm8

https://www.xamrdz.com/backend/3m21951459.html

相关文章: