数据库
文章平均质量分 64
七星程序员
夜空中的七星指引我前进的方向。
展开
-
Mysql架构演变之分表分库
究竟怎么分库分表?究竟怎么分库分表,首先要有个概念,就是当业务发展到一定量级之后,一般是需要先垂直分库的,再垂直分表,再进行水平分库,如果首先进行了水平分库,数据就被分散到了各个库中,后续再分就非常麻烦;所以需要对系统的实际场景进行调研,看能达到一个什么量级,再确定分库分表方式。为什么要进行分库?增大写负载能力,当写负载达到瓶颈时,只能进行分库,是垂直分库还是水平分库,这取决于你系统中的是多业务使系统达到瓶颈,还是单一业务就使系统达到瓶颈分库有什么方式?垂直分库以表来划分,按照业务场景的不同,原创 2020-10-26 20:47:03 · 168 阅读 · 2 评论 -
Oracle动态SQL,拆分字符串,并加工拼接为所需SQL
具体场景:在动态SQL中,我们需要把一段字符加工为我们所需要的SQL,这里举个例子,当前台传入字符为 ‘a,b,c,d’ ,需要把该字符加工为 (‘a’,‘b’,‘c’,‘d’) ,作为in语句的条件才能使用。知道了怎么拆分和拼接,就有了思路,其他场景的分割和拼接也就好做了。拆分并加工拼接SQL:--输入 'a,b,c,d'--输出 ('a','b','c','d')FUNCTION splitAndHandleStr( piStr IN varchar2, --需要加工的字符串.原创 2020-09-25 11:46:20 · 858 阅读 · 0 评论 -
Oracle错误:试图创建,变更或删除正在使用的临时表中的索引
当我们要修改或删除临时表时,如果有其他的session使用该临时表,就会报这个错,如果想暴力破解,解决方法如下:根据临时表TMP_ImpGoodsDtl,查询object_idselect object_id from dba_objects where object_name=upper('TMP_ImpGoodsDtl'); 根据object_id查询sidselect * from v$lock where id1=object_id; 根据sid查询serial#se原创 2020-09-01 10:35:35 · 1480 阅读 · 0 评论 -
删库不跑路之Mysql数据恢复
数据恢复前言:既然要恢复,肯定要先备份,如何备份看这篇MySQL数据库备份全库恢复先找到需要恢复的数据,解压出来gunzip miaosha-202008061026.sql.gz使用解压出来的文件,将数据恢复到指定的新数据库中方式一,linux命令行下:mysql -uroot -p db2 < miaosha-202008061026.sql方式二,mysql命令行下:source miaosha-202008061026.sql单表恢复方式一,使用MySQL原创 2020-08-06 17:58:08 · 193 阅读 · 0 评论 -
删库不跑路之Myql自动化备份脚本
自动化备份脚本手动备份肯定是不现实的,所以我们需要写一个备份脚本,然后写个定时任务去定时执行这个脚本,这样就可实现自动化备份备份脚本代码:#!/bin/bashbackup_user="backupUser" #备份用户backup_pwd="Mysql896881831+-*" #备份用户密码mysql_host="localhost" #主机地址mysql_port="3306" #端口号mysql_charset="utf8" #编码方式backup_dbs=("miaosha")原创 2020-08-06 10:52:46 · 140 阅读 · 0 评论 -
删库不跑路之MySQL数据库备份
备份分为逻辑备份和物理备份逻辑备份:是备份sql,耗时较长为什么要进行备份?简单点说,硬盘损坏,人为误操作都会造成数据的丢失,这种后果往往是极为严重的,所以要通过备份减少风险。备份分为什么方式?备份分为全量备份和增量备份全量备份:对整个数据库进行备份,数据是完整的。增量备份:对某一个节点之后的数据进行备份,只备份该节点后的少量数据。如何进行全量备份?全量备份可使用mysqldump进行备份,mysqldump不仅可以备份整个库,也可以对某个表进行备份。在备份之前,我们先了解下mysql原创 2020-08-06 17:48:38 · 366 阅读 · 1 评论 -
Mycat在Linux下的安装和配置
前言:Mycat依赖jdk1.7及以上的版本,如果你没有安装jdk或jdk版本小于1.7,需安装1.7以上的jdk,如何安装看这篇:Linux环境Java的安装和配置安装下载打开网址http://dl.mycat.org.cn/,选择自己需要的版本鼠标右键复制链接,我这里以1.6.5为例进入linux窗口,输入命令进行下载wget http://dl.mycat.org.cn/1.6.5/Mycat-server-1.6.5-release-20180122220033-linux.ta原创 2020-07-07 10:04:10 · 524 阅读 · 0 评论 -
oracle查询某列值只有一条的数据
1.查询某列值只有一条的数据select t1.* from table1 t1 where t1.所要查询列 in (select t2.所要查询列 from table1 t2 group by t2.所要查询列 having count(1)=1);原创 2020-03-13 18:34:19 · 3947 阅读 · 0 评论 -
外网连接腾讯云mysql
1.打开腾讯云msql实例列表,进入实例2.开启外网地址,开启后会生成外网访问地址,如下:3.点击一键连接检查,添加外网ip,然后点击开始检查。4.命令行连接:输入 mysql -h xxx.com -p 端口号 -u 用户名 -p 密码注意:mysql内网访问端口号是3306,外网访问端口不是3306,如上面第2张图片中有外网端口是10081,每个人的可能是不一样的。5.Nav...原创 2020-03-13 16:20:27 · 2076 阅读 · 0 评论 -
Navicat无法连接mysql8.0
今天买了个腾讯云mysql ,但是Navicat一直连接不上,看版本是MySQL8.0,想起是MySQL8.0版本的加密方式和MySQL5.0的不一样,连接会报错,下面给出解决方法给大家参考。1.更改加密方式:alter user 'root'@'localhost' identified by 'root密码' password expire never;2.更改密码:alter u...原创 2020-03-13 11:05:27 · 270 阅读 · 0 评论 -
Mysql操作日志Genelog的使用
什么是Genelog:Genelog可以记录所有操作数据时的SQL语句,即我们操作数据库时的所有增删改查语句。设置存放日志的位置:set global general_log_file="/tmp/general.log";开启全局global模式:set global general_log=on;关闭全局global模式:set global general_log=off;...原创 2019-11-26 15:06:14 · 238 阅读 · 0 评论 -
Mysql80创建新用户并赋予权限
选择mysql数据库:mysql -uroot -puse mysql;如果想修改为简单密码,需要修改下面两个全局参数:set global validate_password.policy=0;set global validate_password.length=1;创建用户:语法:create user '用户名'@'ip' identified by '密码';# @'...原创 2019-11-26 14:38:11 · 741 阅读 · 0 评论 -
Linux环境MySql的安装和配置
安装MySql删除mariadb数据库,CentOS7默认安装了mariadb数据库(mysql分支数据库),需要先删除 yum remove mariadb-libs.x86_64下载MySql源,打开mysql源地址(https://dev.mysql.com/downloads/repo/yum/),选择自己系统对应的版本进行下载,我的是linux7,所以下载Red Hat ...原创 2019-11-01 17:47:05 · 211 阅读 · 0 评论 -
oracle视图中char转varchar2
create or replace view testview asselect cast('-' as varchar2(20)) code , '未知' name from DUAL;原创 2019-10-14 10:13:37 · 1390 阅读 · 0 评论 -
oracle中的||是什么意思?
||在oracle中用于拼接关联字段SQL>select'ABC'||'EFG'fromtab;'ABC'||'EFG'------------ABCEFG另外也可以用concat()函数进行连接selectconcat('A','B')fromtab;...原创 2018-09-19 10:09:58 · 8942 阅读 · 2 评论 -
Oracle触发器(trigger)的启用和禁用
禁用或启用触发器的状态:有效状态:把触发器设置为ENABLE,当触发事件发生时,处于有效状态的触发器TRIGGER 将被触发。无效状态:把触发器设置为DISABLE,当触发事件发生时,处于无效状态的触发器TRIGGER 将不会被触发,有些业务场景需要关闭触发器,这时就要用到DISABLE了。开启触发器:ALTER TIGGER trigger_name ENABLE ;关闭触发器...原创 2018-09-19 10:18:39 · 11648 阅读 · 1 评论 -
如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的项就必须出现在选择列表中。(解决方法及原因分析)
解决办法:sqlserver中如果同时用order by和distinct,那order by后面的字段就必须出现在selcet的字段中。这个问题只有在sqlserver中才会有,mysql中是不会有这个问题的。如果这样写会提示错误:select distinct name from user order by id应该这样写:select distinct id,name from us...原创 2018-04-10 11:50:07 · 16906 阅读 · 0 评论 -
oracle表解锁
查询出被锁表的信息SQL:select * from v$session a, v$locked_object b where a.sid = b.SESSION_ID; 执行sql查出信息: 主要是使用SID和SERIAL#(下面已标出),你还可以看到操作人和操作电脑等信息。然后执行SQL:参数就是上面标出的SID和SERIAL#alter system kill se...原创 2018-10-18 16:13:51 · 326 阅读 · 0 评论 -
Oracle去重函数distinct
distinct用于返回唯一不同的值。表table1:id value 1 a 1 a 2 b 3 b 4 c 5 c 表table2:username password tom s123456 toms 123456 表table3:username phone t...原创 2018-11-07 11:33:26 · 20587 阅读 · 0 评论