数据库
文章平均质量分 58
数据库技术经验分享
catoop
性格开朗外向,积极进取充满热情,为人诚恳做事用心,爱好手工实践和大自然。有较强的自学意识创新意识和进取精神。喜欢分享技术收获,虽然是一个知识的搬运工,但对技术孜孜不倦,什么都想搞什么都想做的劲头小伙,善于灵活的运用技术优雅的解决问题,善于表达乐于沟通,一切只因心中那殿力量努力向上。
展开
-
docker-compose 之 达梦数据库(dm8-v202406版)
1、达梦官方没有提供镜像直接 pull 的方式,提供的是镜像的 tar 包,所以需要先去官网下载tar包。2、然后使用如下 docker load 命令导入镜像到服务上:导入完成后,可以使用 docker images 查看导入的镜像。3、创建达梦数据文件目录:4、配置 docker-compose.yml 文件,片段如下所示:如上配置后,最后使用启动服务即可。命令 可以查看日志。(END)原创 2024-06-24 16:42:17 · 518 阅读 · 0 评论 -
使用 mysql-binlog-connector 监听处理 MySQLBinlog 文件
业务开发中经常需要根据一些数据变更实现相对应的操作。例如,一些用户注销自己的账户,系统可以给用户自动发短信确认,这时有两种解决方案,一种是耦合到业务系统中,当用户执行注销操作的时候,执行发短信的操作,既是是通过MQ也是要耦合业务代码的,第二种方案基于数据库层面的操作,通过监听binlog实现自动发短信操作,这样就可以与业务系统解耦。本示例主要基于mysql-binlog-connector实现对数据库的监听,并集成springboot的方案。原创 2024-05-23 19:00:19 · 697 阅读 · 0 评论 -
使用 Docker 容器运行 Oracle 数据库
在实际开发中,大部分时间可能都在开发、测试和验证工作,有些时候我们需要快速使用一个临时 oracle 数据库来做开发或者验证工作,而又会因为 oracle 安装麻烦而烦恼。这种快速临时性需求,我们可以选中使用 docker 容器的方式运行一个 oracle 数据库,官方也给出了对应的镜像,包括 amd64 和 arm64 架构的都有。原创 2024-05-14 17:23:48 · 1572 阅读 · 1 评论 -
docker 下载 oracle 企业版镜像(denied: requested access to the resource is denied)
oracle 镜像分为 free 版和 enterprise 版,前者是免费的,可以直接使用 docker pull 拉取,而后者的 enterprise 版,必须要在官网上接受版权协议才可以用对应账号拉取。但是也有例外,对于有授权协议,或者相关限制的私有镜像来说,他们会需要你的账户接受或者购买好对应的版权,然后才可以使用对应的账号正常拉取镜像。很多人使用免费镜像已经习惯了,找到对应的镜像地址后就是一通 docker pull,大部分来说这样就可以将镜像 pull 到本地了。请求的资源被拒绝访问。原创 2024-04-25 14:59:47 · 490 阅读 · 1 评论 -
Oralce TIMESTAMP 类型转换为 JSON 失败 | oracle.sql.TIMESTAMP 问题
通过设置属性,可以使 oracle 的 timestamp 类型字段以类型返回,不设置时默认false,返回,可能会导致序列化时类型转换失败等问题。(END)原创 2024-04-12 17:49:50 · 443 阅读 · 0 评论 -
docker-compose 之 OpenGauss
容器启动成功后,可以使用 Navicate 等可以连接 PostgreSQL 的客户端工具连接 opengauss 数据库。镜像版本可以插件 dockerhub 中发布的。原创 2024-04-08 11:26:22 · 480 阅读 · 0 评论 -
清理 Oracle Arch 目录中的日志文件
7、清理Oracle Arch目录:在服务器操作系统中,找到Oracle Arch目录,并手动清理该目录中的文件。确保只删除你确认已经不再需要的归档日志文件,以避免误删除重要数据。其中,sys/*****@orcl是目标数据库的连接信息,你需要将其替换为实际的用户名、密码和数据库实例名。1、登陆Oracle数据库服务器:确保你有权限访问Oracle数据库服务器,并且能够登录到服务器操作系统。这将删除7天前完成的归档日志文件。这将显示所有当前的归档日志文件列表,你可以检查是否已经成功删除了旧的归档日志文件。原创 2023-12-26 18:08:10 · 1558 阅读 · 0 评论 -
Oracle 删除表空间回收磁盘空间
表空间被删除后,表空间的数据文件并不会被系统回收并释放,所以还需要手工删除它。3、再次查询表空间的数据库文件对应表空间名称是否还存在。1、查询表空间和表空间数据库文件路径。4、手工删除表空间物理文件。原创 2023-01-30 10:33:41 · 4050 阅读 · 0 评论 -
Oracle 启动失败,错误 “SGA_MAX_SIZE 5368709120 cannot be set to more than MEMORY_TARGET 1593835520.”
Oracle 启动失败,错误 “SGA_MAX_SIZE 5368709120 cannot be set to more than MEMORY_TARGET 1593835520.”原创 2022-08-16 18:40:47 · 680 阅读 · 1 评论 -
Oracle 查看索引信息的 SQL 语句
查询指定表名的所有索引select * from user_indexes where table_name=upper('ACT_HI_VARINST');查询指定索引名的列信息select * from user_ind_columns where index_name=('SYS_C0026938');(END)原创 2022-05-24 14:32:53 · 2063 阅读 · 0 评论 -
Oracle 获取相邻两条记录的值 lead over 和 lag over(案例:计算相邻两条记录的差值)
有如下原始表数据,现需要根据Id列,将相邻两条记录差值小于等于4的记录查询出来。数据库:Oracle使用Oracle的分析函数 lead over 和 lag over,最终 SQL 如下:select t2.* from (select t1.id, t1.firstname, t1.lastname, (case t1.prev_val when null then原创 2022-05-19 11:02:36 · 2293 阅读 · 0 评论 -
基于组织的数据权限SQL查询方案
背景一些软件系统需要根据组织做数据查看权限限制,比如可以设置张三能查看或管理1个或多个组织的数据。在对张三进行配置后,张三这个账号查询对应的业务数据表时需要带上数据权限有关的where条件。一、主要表介绍组织表的主要字段:ID、CODE、NAME、上级CODE、CODE全路径sys_organization数据权限表的主要字段:用户ID、组织ID、是否包含下级sys_user_data_permission测试的一个业务数据表中的主要字段:主键ID、业务数据字段、产生数据的组织ID、产生数原创 2022-03-21 17:47:16 · 1059 阅读 · 0 评论 -
Oracle Docker 镜像(制作)
前言在一个裸机 Linux 上安装 Oracle 步骤很多,且对安装环境有不少要求,一不小心就容易出错。安装过 Oracle 的想必都有一定感触。在有些场合中我们对 Oralce 没有那么高的要求,比如临时测试、临时运行个项目等单数据库实例场景。这种情况使用 docker 一键启动运行 docker 会特别方便,运行时将数据挂载出来也能在很大程度上保证数据安全问题。Oracle 官方已经正式发布了应该构建 Oracle 镜像的 dockerfile,目前支持列表如下(引用自官方):Oracle Da原创 2022-02-22 18:23:36 · 4965 阅读 · 3 评论 -
MYSQL的BinLog实现主备同步
一般线上的MYSQL的数据库都会有备库, 主备库之间的同步都是使用的Bin Log日志来实现的。备库建议设置成只读备库只读的话, 它只能进行查询语句的操作 , 不会误改数据库导致主备不一致防止在备库切换成主库过程中,双写的时候出现不一致的问题可以通过数据库是否只读的状态可以判断出主库和备库bin log如何同步的备库需要设置成只读,设置主库的ip和用户名密码, 以及开始同步的bin log起点偏移量备库和主库之间维持长连接主库有一个单独的dump_thread线程, 会在后台把日志传送转载 2021-10-30 21:34:10 · 2605 阅读 · 0 评论 -
mysql8 设置binlog的保留时间
在 my.ini 文件中添加配置,设定保留时间:[mysqld]binlog_expire_logs_seconds=259200顾名思义:单位为秒,259200 = 3天(END)原创 2021-09-23 12:31:29 · 1249 阅读 · 0 评论 -
docker-compose 之 达梦数据库(dm8-v201106)
(版本对应2020年11月06日),只是推送到了docerhub中,未做任何修改,请放心使用。达梦数据库初始化安装,需要先提取容器中的数据文件,然后再使用docker方式启动。注:本文是比较旧的达梦版本 v201106,较新的版本教程详见帖子 “这一步为了将数据文件拿到挂载目录中,防止以后删除容器导致数据丢失。如上配置后,最后使用。原创 2021-07-27 17:54:19 · 1969 阅读 · 3 评论 -
Oralce 查询单表数据大小
Oracle 中查看指定表的数据空间大小的语句:select sum(bytes)/1024/1024/1024 SizeGB from user_segments where segment_name='SHANHY_INFO';原创 2021-05-08 15:26:51 · 534 阅读 · 0 评论 -
Oracle 全文索引
缘由我们经常需要对表的内容进行模糊查询,在数据量不算很大的情况下,使用起来还是没什么问题,因为不会出现明显的慢查询问题。但是当某些时候,单表数据量很大的时候,查询速度就会有明显的变慢问题。此时,我们优先应该考虑的方式是选用特长与全文搜索的技术栈,比如ElasticSearch服务。BUT,有些时候事与愿违,因为一些列因素导致你只能在数据库的现状情况下优化这样的问题。Oracle的全文索引(Oracle9i 开始支持)可能会对你有帮助。Oracle全文索引的基本知识一、历史背景Oracle数据库的转载 2021-03-21 20:24:47 · 3676 阅读 · 0 评论 -
Bitmap 索引简介及适用场景
bitmap索引就是用位图表示的索引,对列的每个键值建立一个位图。所以相对于b-tree索引,占用的存储空间非常小,创建和使用非常快。缺点是修改操作锁粒度大,不适合频繁更新。如下图,bitmap索引将每个被索引的列的值作为KEY,使用每个BIT表示一行,当这行中包含这个值时,设置为1,否则设置为0。bitmap索引适用场景建在值重复度高的列上,GP手册建议在100到100,000之间,如:职业、地市等。重复度过高则对比其他类型索引没有明显优势;重复度过低,则空间效率和性能会大大降低。特定类型的查转载 2020-12-25 16:36:22 · 4882 阅读 · 0 评论 -
mysql 8.0 各参数配置中文解释整理
############################################################################# my.cnf for MySQL 8.0.x ### 本配置参考 https://imysql.com/my-cnf-wizard.html ### 注意:原创 2020-11-05 15:17:40 · 3784 阅读 · 0 评论 -
Oracle 常用命令和导入dmp文件
常用命令无密码登录数据库(Dos命令)sqlplus / as sysdba;查询实例名select instance_name from v$instance;获取版本号 返回具体的版本号 例:11.2.0.1.0select version from product_component_version;获取端口号show parameter local_listener;判断用户是否存在select username from dba_users where u转载 2020-10-10 13:50:02 · 2099 阅读 · 0 评论 -
ArangoDB 多模型数据库概念
写在前面本文大部分是基于ArangoDB的论文的翻译,在翻译过程中加入了自己的一些理解和说明。无论是为一个新的项目或者正在开发的功能模块又或者某一次系统升级去选择技术方案的时候,我们很难做出一个从始至终都非常match的技术方案或者工具,尤其是在为项目选择合适的数据库时,我们更是难以选择,是文档型数据库?K-V数据库?RDMS?还是图数据库? 在软件领域一直存在一种理论:“one size does not always fit all”,但是该理论是否正确,业界的众多专家一直争论不休。该理论建议大型转载 2020-08-23 13:33:01 · 2373 阅读 · 0 评论 -
对MySQL的MVCC的理解
基本原理MVCC(Mutil-Version Concurrency Control),就是多版本并发控制。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问。MVCC的实现,通过保存数据在某个时间点的快照来实现的。这意味着一个事务无论运行多长时间,在同一个事务里能够看到数据一致的视图。根据事务开始的时间不同,同时也意味着在同一个时刻不同事务看到的相同表里的数据可能是不同的。基本特征每行数据都存在一个版本,每次数据更新时都更新该版本。修改时Copy出当前版本随意修改,转载 2020-06-12 14:27:08 · 601 阅读 · 0 评论 -
PLSQL长数字科学计数法显示问题
在PLSQL中,数据库中记录的NUMBER类型的数据,如果位数过多,会显示为科学计数法的样式,看起来非常不直观,解决这个问题,在PLSQL首选项中配置将数字默认使用字符串显示。如下几个截图呈现问题和问题的解决方法处理前截图首选项设置截图处理后截图(END)...原创 2020-05-13 16:26:06 · 5997 阅读 · 0 评论 -
MySQL插入性能之参数 rewriteBatchedStatements=true
提高MySQL插入性能的方法大概分为3类:1、调整MySQL相关参数2、插入的时候对事物进行控制,不要每条提交一次3、减少程序提交SQL给MySQL的频率,不要每次提交一条本文针对第三点增加对应的参数,效果立竿见影,连接数据库参数 rewriteBatchedStatements=true。例如:jdbc:mysql://127.0.0.1:3306/shanhy?rewriteBat...原创 2020-03-05 15:04:12 · 8424 阅读 · 0 评论 -
Oracle 启动服务监听、创建示例数据库
其实今天比较忙,还真没空写啥(就是为了领个1024勋章哈哈)。唯一的就是祝广大技术朋友们可以向1024一样无处不在。随便放点笔记吧,启动Oracle服务和监听以及创建一个基本的数据库:主要用于刚刚安装好Oracle后的测试工作。启动:先启服务再启监听停止:先停监听再停服务# Linux 切换 oracle 用户su - oraclesqlplus /nologconnect /...原创 2019-10-24 13:24:32 · 821 阅读 · 1 评论 -
Access数据库“操作必须使用一个可更新的查询”
今天又遇到这样一个错误“操作必须使用一个可更新的查询”这里我整理下原因及解决办法,大家以后再遇到相同的问题可以先试下类似的解决办法.网上百度了很多,都没有什么作用,大多都是说权限问题,改的也都很麻烦,最后还是没有解决,下面具体说下我的情况:表A中有字段id、roomnum、username表B中有字段id、remark、username现在表A的字段room都是空的,需要根据表A中原创 2012-09-05 17:26:57 · 12723 阅读 · 1 评论 -
oracle sum over 函数实例
实现业务场景需求代购商从外采购一批化妆品,总数量为30份。现有一个用户需求登记表,记录每个用户需要代购的数量。因为该批次采购不能完全覆盖所有登记用户的需求,现需要将已采购到货的商品尽可能发放给更多的用户。按如下登记表,请使用一个SQL语句统计出可以发放的用户名单。用户登记表(SHANHY_TEST)用户编号(snum)需求数量(icount)S0012S00...原创 2018-12-11 17:56:40 · 1454 阅读 · 0 评论 -
CentOS 7 安装 Oracle 12c 最佳实践
本例操作系统版本:CentOS 7.7、数据库版本:Oracle 12c(12.2)安装步骤如下分解:1.关闭防火墙,禁止防火墙开机自启systemctl stop firewalld.service --关闭防火墙systemctl disable firewalld.service – 禁止防火墙开机启动systemctl status firewalld.service – 查...原创 2019-09-28 23:35:02 · 11832 阅读 · 1 评论 -
安装oracle12c swap不足
安装过程中校验这步的时候出现 swap 警告,问题如下图如图,注意 Expected Value 的需求,然后进行下列操作:下面以2G为例操作:1、查看当前内存[root@oracle ~]# free -m total used free shared buff/cache availableMem: ...原创 2019-09-28 15:58:31 · 4992 阅读 · 0 评论 -
Linux上安装配置InstantClient及64位系统Pl/SQL配置
1首先到官网下载文件:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html?ssSourceSiteId=ocomen需要用到的文件(64位系统):(32位系统对应下载32位客户端)解压缩文件到同一目录2设置环境变量NLS_lANG=SIMPLIFIED CH翻译 2014-04-15 01:14:49 · 4796 阅读 · 0 评论 -
mysql 定时脚本(event),类似oracle的job
我有2张表:tb_push_data 和 tb_push_data_log现在需要每隔一段时间将tb_push_data 符合条件的数据备份到表 tb_push_data_log--------------------------------------------------------------------------一、创建存储过程DELIMITER $$USE原创 2013-01-15 16:53:32 · 5762 阅读 · 0 评论 -
Mysql replication 配置
MySQL 设定写入 Master 后, 自动 Replication 到 Slave 去, 运作基本原理是:INSERT/UPDATE/DELETE 语法, 自动写入 Master 的 binlog file.由 GRANT REPLICATION 授权的账号, 自动将 SQL 语法 repl 到 Slave 的 DB 执行.因而完成 Replication 的动作.========翻译 2013-01-06 22:15:45 · 3368 阅读 · 0 评论 -
MYSQL数据库备份与恢复
mysqldump -h主机名 -P端口 -u用户名 -p密码 (–database) 数据库名 > 文件名.sql备份MySQL数据库的命令mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据原创 2012-10-12 15:34:22 · 26787 阅读 · 1 评论 -
Oracle Job 知识
最近需要是使用Oracle Job,以前搞的现在都生疏了,还是准备整理好把知识留下来,下面是一个备份短信日志的Job的处理过程。第一部分:简单创建一个任务1、创建存储过程create or replace procedure proc_backup_sendmessagelog is backuptime date :=sysdate;begin /原创 2012-03-08 23:08:29 · 1862 阅读 · 0 评论 -
MySQL 加锁处理分析
首先声明,本文转载自:http://hedengcheng.com/?p=771#_Toc3746983201 背景 11.1 MVCC:Snapshot Read vs Current Read 21.2 Cluster Index:聚簇索引 31.3 2PL:Two-Phase Locking 31.4 Isolation Level转载 2015-12-03 15:40:23 · 1487 阅读 · 0 评论 -
Oracle的系统进程和主要作用简介
Oracle的主要进程简介数据写进程(dbwr):负责将更改的数据从数据库缓冲区高速缓存写入数据文件 日志写进程(lgwr):将重做日志缓冲区中的更改写入在线重做日志文件 系统监控(smon) :检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复 进程监控(pmon) :负责在一个Oracle 进程失败时清理资源 检查点进程(ckpt):负责在每当缓冲区高速缓存中的更改永久地记录在数据库原创 2015-11-25 16:22:05 · 7525 阅读 · 0 评论 -
关于悲观锁和乐观锁的区别(最直观理解)
悲观锁(Pessimistic Lock):每次拿数据的时候都会担心会被别人修改(疑心重很悲观),所以每次在拿数据的时候都会上锁。确保自己使用的过程中不会被别人访问,自己使用完后再解锁。期间需要访问该数据的都会等待。乐观锁(Optimistic Lock):每次拿数据的时候都完全不担心会被别人修改(心态好很乐观),所以每次在拿数据的时候都不会上锁。但是在更新数据的时候去判断该期间是否被别人修改过(原创 2015-11-23 11:59:12 · 9406 阅读 · 1 评论 -
数据库 UPDATE多条记录不同值,同时UPDATE多个字段
数据库 UPDATE多条记录不同值,同时UPDATE多个字段。原创 2015-06-28 14:31:12 · 133124 阅读 · 4 评论 -
MYSQL查看和新增表分区
MYSQL查看和新增表分区1、查看表分区SELECT partition_name part, partition_expression expr, partition_description descr, FROM_DAYS(partition_description) lessthan_sendtime, table_rows FROM INFORMATION_SCHEMA原创 2015-01-12 13:57:08 · 17542 阅读 · 2 评论