数据库
文章平均质量分 54
数据库技术经验分享
catoop
性格开朗外向,积极进取充满热情,为人诚恳做事用心,爱好手工实践和大自然。有较强的自学意识创新意识和进取精神。喜欢分享技术收获,虽然是一个知识的搬运工,但对技术孜孜不倦,什么都想搞什么都想做的劲头小伙,善于灵活的运用技术优雅的解决问题,善于表达乐于沟通,一切只因心中那殿力量努力向上。
展开
-
清理 Oracle Arch 目录中的日志文件
7、清理Oracle Arch目录:在服务器操作系统中,找到Oracle Arch目录,并手动清理该目录中的文件。确保只删除你确认已经不再需要的归档日志文件,以避免误删除重要数据。其中,sys/*****@orcl是目标数据库的连接信息,你需要将其替换为实际的用户名、密码和数据库实例名。1、登陆Oracle数据库服务器:确保你有权限访问Oracle数据库服务器,并且能够登录到服务器操作系统。这将删除7天前完成的归档日志文件。这将显示所有当前的归档日志文件列表,你可以检查是否已经成功删除了旧的归档日志文件。原创 2023-12-26 18:08:10 · 963 阅读 · 0 评论 -
Oracle 删除表空间回收磁盘空间
表空间被删除后,表空间的数据文件并不会被系统回收并释放,所以还需要手工删除它。3、再次查询表空间的数据库文件对应表空间名称是否还存在。1、查询表空间和表空间数据库文件路径。4、手工删除表空间物理文件。原创 2023-01-30 10:33:41 · 3509 阅读 · 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 · 593 阅读 · 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 · 1572 阅读 · 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 · 2069 阅读 · 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 · 969 阅读 · 0 评论 -
Oracle Docker 镜像(制作)
前言在一个裸机 Linux 上安装 Oracle 步骤很多,且对安装环境有不少要求,一不小心就容易出错。安装过 Oracle 的想必都有一定感触。在有些场合中我们对 Oralce 没有那么高的要求,比如临时测试、临时运行个项目等单数据库实例场景。这种情况使用 docker 一键启动运行 docker 会特别方便,运行时将数据挂载出来也能在很大程度上保证数据安全问题。Oracle 官方已经正式发布了应该构建 Oracle 镜像的 dockerfile,目前支持列表如下(引用自官方):Oracle Da原创 2022-02-22 18:23:36 · 4485 阅读 · 3 评论 -
MYSQL的BinLog实现主备同步
一般线上的MYSQL的数据库都会有备库, 主备库之间的同步都是使用的Bin Log日志来实现的。备库建议设置成只读备库只读的话, 它只能进行查询语句的操作 , 不会误改数据库导致主备不一致防止在备库切换成主库过程中,双写的时候出现不一致的问题可以通过数据库是否只读的状态可以判断出主库和备库bin log如何同步的备库需要设置成只读,设置主库的ip和用户名密码, 以及开始同步的bin log起点偏移量备库和主库之间维持长连接主库有一个单独的dump_thread线程, 会在后台把日志传送转载 2021-10-30 21:34:10 · 2485 阅读 · 0 评论 -
mysql8 设置binlog的保留时间
在 my.ini 文件中添加配置,设定保留时间:[mysqld]binlog_expire_logs_seconds=259200顾名思义:单位为秒,259200 = 3天(END)原创 2021-09-23 12:31:29 · 1125 阅读 · 0 评论 -
docker-compose 之 达梦数据库(dm8)
达梦数据库初始化安装,需要先提取容器中的数据文件,然后再使用docker方式启动。创建达梦数据文件目录:mkdir -p /opt/soft/dm8/data在服务器上执行命令初始化数据文件:docker run --rm -v /opt/soft/dm8/data:/dm8/data_init harbor.goodcol.com:843/dockerhub_proxy/xzxiaoshan/dm8:v201106 mv /dm8/data/DAMENG /dm8/data_init/这一原创 2021-07-27 17:54:19 · 1749 阅读 · 3 评论 -
Oralce 查询单表数据大小
Oracle 中查看指定表的数据空间大小的语句:select sum(bytes)/1024/1024/1024 SizeGB from user_segments where segment_name='SHANHY_INFO';原创 2021-05-08 15:26:51 · 478 阅读 · 0 评论 -
Oracle 全文索引
缘由我们经常需要对表的内容进行模糊查询,在数据量不算很大的情况下,使用起来还是没什么问题,因为不会出现明显的慢查询问题。但是当某些时候,单表数据量很大的时候,查询速度就会有明显的变慢问题。此时,我们优先应该考虑的方式是选用特长与全文搜索的技术栈,比如ElasticSearch服务。BUT,有些时候事与愿违,因为一些列因素导致你只能在数据库的现状情况下优化这样的问题。Oracle的全文索引(Oracle9i 开始支持)可能会对你有帮助。Oracle全文索引的基本知识一、历史背景Oracle数据库的转载 2021-03-21 20:24:47 · 3111 阅读 · 0 评论 -
Bitmap 索引简介及适用场景
bitmap索引就是用位图表示的索引,对列的每个键值建立一个位图。所以相对于b-tree索引,占用的存储空间非常小,创建和使用非常快。缺点是修改操作锁粒度大,不适合频繁更新。如下图,bitmap索引将每个被索引的列的值作为KEY,使用每个BIT表示一行,当这行中包含这个值时,设置为1,否则设置为0。bitmap索引适用场景建在值重复度高的列上,GP手册建议在100到100,000之间,如:职业、地市等。重复度过高则对比其他类型索引没有明显优势;重复度过低,则空间效率和性能会大大降低。特定类型的查转载 2020-12-25 16:36:22 · 4415 阅读 · 0 评论 -
mysql 8.0 各参数配置中文解释整理
############################################################################# my.cnf for MySQL 8.0.x ### 本配置参考 https://imysql.com/my-cnf-wizard.html ### 注意:原创 2020-11-05 15:17:40 · 3467 阅读 · 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 · 1928 阅读 · 0 评论 -
ArangoDB 多模型数据库概念
写在前面本文大部分是基于ArangoDB的论文的翻译,在翻译过程中加入了自己的一些理解和说明。无论是为一个新的项目或者正在开发的功能模块又或者某一次系统升级去选择技术方案的时候,我们很难做出一个从始至终都非常match的技术方案或者工具,尤其是在为项目选择合适的数据库时,我们更是难以选择,是文档型数据库?K-V数据库?RDMS?还是图数据库? 在软件领域一直存在一种理论:“one size does not always fit all”,但是该理论是否正确,业界的众多专家一直争论不休。该理论建议大型转载 2020-08-23 13:33:01 · 2283 阅读 · 0 评论 -
对MySQL的MVCC的理解
基本原理MVCC(Mutil-Version Concurrency Control),就是多版本并发控制。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问。MVCC的实现,通过保存数据在某个时间点的快照来实现的。这意味着一个事务无论运行多长时间,在同一个事务里能够看到数据一致的视图。根据事务开始的时间不同,同时也意味着在同一个时刻不同事务看到的相同表里的数据可能是不同的。基本特征每行数据都存在一个版本,每次数据更新时都更新该版本。修改时Copy出当前版本随意修改,转载 2020-06-12 14:27:08 · 565 阅读 · 0 评论 -
PLSQL长数字科学计数法显示问题
在PLSQL中,数据库中记录的NUMBER类型的数据,如果位数过多,会显示为科学计数法的样式,看起来非常不直观,解决这个问题,在PLSQL首选项中配置将数字默认使用字符串显示。如下几个截图呈现问题和问题的解决方法处理前截图首选项设置截图处理后截图(END)...原创 2020-05-13 16:26:06 · 5652 阅读 · 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 · 8334 阅读 · 0 评论 -
Oracle 启动服务监听、创建示例数据库
其实今天比较忙,还真没空写啥(就是为了领个1024勋章哈哈)。唯一的就是祝广大技术朋友们可以向1024一样无处不在。随便放点笔记吧,启动Oracle服务和监听以及创建一个基本的数据库:主要用于刚刚安装好Oracle后的测试工作。启动:先启服务再启监听停止:先停监听再停服务# Linux 切换 oracle 用户su - oraclesqlplus /nologconnect /...原创 2019-10-24 13:24:32 · 782 阅读 · 1 评论 -
MySql Sharding分表、分库、分片和分区知识讲解
一、ShardingSharding是把数据库横向扩展(Scale Out)到多个物理节点上的一种有效的方式,其主要目的是为突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题。Shard这个词的意思是“碎片”。如果将一个数据库当作一块大玻璃,将这块玻璃打碎,那么每一小块都称为数据库的碎片(DatabaseShard)。将整个数据库打碎的过程就叫做sharding,可以翻译为分片。...转载 2019-09-07 11:41:37 · 1802 阅读 · 0 评论 -
安装oracle12c swap不足
安装过程中校验这步的时候出现 swap 警告,问题如下图如图,注意 Expected Value 的需求,然后进行下列操作:下面以2G为例操作:1、查看当前内存[root@oracle ~]# free -m total used free shared buff/cache availableMem: ...原创 2019-09-28 15:58:31 · 4755 阅读 · 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 · 11484 阅读 · 1 评论 -
MYSQL 5.7 压缩包安装
版本:mysql-5.7.12-winx64安装步骤: 1. 官网下载 mysql-5.7.12-winx64.zip 解压缩到 D:\Program Files\mysql-5.7.12-winx64 (当然你可以使用自己的目录)配置环境变量PATH=D:\Program Files\mysql-5.7.12-winx64\bin;......后面的省略号是指环境变量中原来的值,我们要做原创 2016-04-28 10:39:30 · 8004 阅读 · 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 · 1469 阅读 · 0 评论 -
MySQL索引key_len
在查看MYSQL执行计划的时候,有一列 key_len ,我们可以用它来判断使用了几个索引,我们使用最常用的utf-8编码按如下几点可以进行判断:1、字段类型 int为4个,date为3,datetime为4,char(n)为3n,varchar(n)为3n+22、对于字段 int char date datetime 如果可为 null,则需要额外再加1,varchar 则不需要按如上方法...原创 2019-08-03 19:36:51 · 4004 阅读 · 0 评论 -
SpringBoot mybatis批量插入数据库(去重场景)
本文记录一个实例:1、用户邀请码表,里面存邀请码和关联的用户编号,每次有用户注册,就领取(关联)一个邀请码。邀请码都是系统提前生成空挡在表里待分配的(不要问为什么,目前业务就是这样设计的)。2、系统初始化的时候,或者空闲的邀请码快不够用的时候,会需要追加生成一批邀请码入库。一般系统上线的时候直接入库几十万或者几百万妥妥了。代码实现步骤:1、在 Controller 请求,调用Service...原创 2019-07-05 09:12:02 · 10345 阅读 · 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 · 5746 阅读 · 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 · 3357 阅读 · 0 评论 -
MYSQL数据库备份与恢复
mysqldump -h主机名 -P端口 -u用户名 -p密码 (–database) 数据库名 > 文件名.sql备份MySQL数据库的命令mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据原创 2012-10-12 15:34:22 · 26761 阅读 · 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 · 1853 阅读 · 0 评论 -
Access数据库“操作必须使用一个可更新的查询”
今天又遇到这样一个错误“操作必须使用一个可更新的查询”这里我整理下原因及解决办法,大家以后再遇到相同的问题可以先试下类似的解决办法.网上百度了很多,都没有什么作用,大多都是说权限问题,改的也都很麻烦,最后还是没有解决,下面具体说下我的情况:表A中有字段id、roomnum、username表B中有字段id、remark、username现在表A的字段room都是空的,需要根据表A中原创 2012-09-05 17:26:57 · 12407 阅读 · 1 评论 -
Oracle的系统进程和主要作用简介
Oracle的主要进程简介数据写进程(dbwr):负责将更改的数据从数据库缓冲区高速缓存写入数据文件 日志写进程(lgwr):将重做日志缓冲区中的更改写入在线重做日志文件 系统监控(smon) :检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复 进程监控(pmon) :负责在一个Oracle 进程失败时清理资源 检查点进程(ckpt):负责在每当缓冲区高速缓存中的更改永久地记录在数据库原创 2015-11-25 16:22:05 · 7445 阅读 · 0 评论 -
关于悲观锁和乐观锁的区别(最直观理解)
悲观锁(Pessimistic Lock):每次拿数据的时候都会担心会被别人修改(疑心重很悲观),所以每次在拿数据的时候都会上锁。确保自己使用的过程中不会被别人访问,自己使用完后再解锁。期间需要访问该数据的都会等待。乐观锁(Optimistic Lock):每次拿数据的时候都完全不担心会被别人修改(心态好很乐观),所以每次在拿数据的时候都不会上锁。但是在更新数据的时候去判断该期间是否被别人修改过(原创 2015-11-23 11:59:12 · 9350 阅读 · 1 评论 -
数据库 UPDATE多条记录不同值,同时UPDATE多个字段
数据库 UPDATE多条记录不同值,同时UPDATE多个字段。原创 2015-06-28 14:31:12 · 132508 阅读 · 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 · 17498 阅读 · 2 评论 -
MYSQL禁用生成日志文件mysql-bin.000001
在MySQL数据库中,mysql-bin.000001、mysql- bin.000002等文件是数据库的操作日志,例如UPDATE一个表,或者DELETE一些数据,即使该语句没有匹配的数据,这个命令也会存储到日志文件中,还包括每个语句执行的时间,也会记录进去的。原创 2014-10-09 15:13:10 · 5098 阅读 · 1 评论 -
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 · 4771 阅读 · 0 评论 -
CentOS-6.3安装Mysql-5.5.29
安装方式分为rpm和源码编译安装两种,本文是采用mysql源码编译方式,编译器使用Cmake。软件需要mysql-5.5.29.tar.gz和cmake-2.8.10.2.tar.gz,请自行下载。下载地址:http://mysql.mirror.kangaroot.net/Downloads/http://www.cmake.org/files/v2.8/cmake-2.8.10.2转载 2014-05-15 02:33:49 · 1556 阅读 · 0 评论 -
com.mysql.cj.exceptions.DataReadException: Zero date value prohibited
异常内容:com.mysql.cj.exceptions.DataReadException: Zero date value prohibited at com.mysql.cj.result.SqlTimestampValueFactory.localCreateFromTimestamp(SqlTimestampValueFactory.java:99) ~[mysql-connecto...原创 2019-07-09 10:58:11 · 10560 阅读 · 1 评论