数据库运维
-
无法作为数据库主体执行,因为主体 “dbo“ 不存在、无法模拟这种类型的主体,或您没有所需的权限
问题描述: 最近正在测试数据库复制,想删除发布服务器的发布数据库时,突然提示这个:无法作为数据库主体执行,因为主体 “dbo” 不存在、无法模拟这种类型的主体,或您没有所需的权限。已将数据库上下文更改为 “AdventureWorks2008R2”。 (Microsoft SQL Server,错误: 15517) 原因分析: 用附件文件和组的方法的还原数据…
-
SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程
一、复制的功能概述 SQL Server 复制功能实现了主从库的读写分离,从而将主库的压力分解掉,主库就主要负责数据的增删改等,而从库主要负责查询。另外有了主、从库,也给生产数据增加了一层安全性,即备份。万一主库出了什么问题,从库却还在。 …
-
构建SQL自动审核系统
Inception Inception是一个开源的Mysql自动化工具,具有SQL审核、执行、回滚等实用的功能,由国内大神基于mysql源码开发,可以很明确的,详细的,准确的审核Mysql的SQL语句,工作模式与Mysql完全相同,可以直接使用mysql客户端来连接。但遗憾的是2年前已停止更新,不过兼容大部分的mysql版本,仍然是开源SQL审核工具的翘楚。…
-
count(1)、count(*)与count(列名)的执行区别
在工作中遇到count(*)、count(1)、count(col) ,可能会让你分不清楚,都是计数,干嘛这么搞这么多东西。 count 作用 COUNT(expression):返回查询的记录总数,expression 参数是一个字段或者 * 号。 测试 MySQL版本:5.7.29 创建一张用户表,并插入一百万条数据,其中gender字段有五十万行是为n…
-
Linux在线yum方式安装mysql5.7(适用于mysql8.0)
Linux下软件常见部署方式有三种:yum安装、rpm安装以及编译安装。由于离线、编译需要先下载多个文件再安装,步骤较多,所以整理了一下在线安装mysql的方法,文中系统为CentOS7.9版本。 1.配置好yum源,包括epel源 使用官方yum仓库,官方下载链接 2. 生成yum源缓存并查看mysql版本 从enable状态来看,默认启用的是最新8.0版…
-
MySQL 用户管理 – 添加用户、授权、删除用户
不要直接使用 root 用户管理应用数据 添加用户 以root用户登录数据库,运行以下命令: 上面的命令创建了用户 zhangsan, 密码是 zhangsan. 在 mysql.user 表里可以查看到新增用户的信息: 授权 命令格式: grant privilegesCode on dbName.tableName to username@host id…
-
Sql Server2005 如何导出数据库数据
Sql Server2005数据库数据导出两种方式 第一种,数据库数据直接备份,右键点击需要备份的库,打开任务,打开备份,然后记一下数据库备份文件位置,直接点击确定即可成功,注意修改文件路径可能会提示文件无权限 第二种方式 打开本地服务,停止Sql server服务,然后去复制需要的ldf与mdf文件
-
Centos7下配置mysql8.0.20
mysql8.0.20安装完毕后使用默认密码登陆是无法进行操作的,需要修改默认密码才可以。 我们根据提示,使用ALTER USER修改密码,修改完成后,使用flush privileges; 命令刷新。 ALTER USER root@’localhost’ IDENTIFIED BY ‘Zhangsan@123’; 配置远程登录 mysql安装完成后,默认…
-
使用数据库工具储存文件报错1558解决方法
现象:在用navicat连接时发生了一个错误:1558 column count of mysql.proc is wrong.Expected20,found 16.created with mysql 50091,now running 50528.please use mysql_upgrade to fix this error。 分析过程:这个是由…
-
Navicat161 数据库文件修复
错误分析 此错误一般为表损坏,修复即可。可能造成原因为服务器突然断电,而有程序还在往表里写数据或者表的数据很大或者数据搬迁的时候编码格式有误,避免浪费时间去修表,可采用Navicat去快速修复表!!! 登录Navicat数据库,找到报错的数据表,右键维护->修复表->拓展或者快速
-
Redis 缓存雪崩、缓存穿透、缓存击穿、缓存预热
缓存雪崩 定义 缓存雪崩是指在短时间内,有大量缓存同时过期,导致大量的请求直接查询数据库,从而对数据库造成了巨大的压力,严重情况下可能会导致数据库宕机的情况叫做缓存雪崩。 正常情况下执行过程: 缓存雪崩下执行过程: 可以看到,当缓存失效时,大量请求直接绕过 Redis 去请求数据库,导致会对数据库造成很大压力。 解决 加锁排队 加锁排队可以起到缓冲的作用,防…
-
MYSQL中的COLLATE是什么?
在mysql中执行show create table <tablename>指令,可以看到一张表的建表语句,example如下: 大部分字段我们都能看懂,但是今天要讨论的是COLLATE关键字。这个值后面对应的utf8_unicode_ci是什么意思呢?面试的时候用这个题目考一考DBA,应该可以难倒一大部分人。 COLLATE是用来做什么的? 使用ph…
-
Mysql5.5中文乱码问题
查看MySQL的字符集 发现有部分不是utf-8 一(推荐,本人实验有用) 修改MySQL配置文件,来到mysql安装目录,找到my.ini文件(可能没有此文件,没有就自己建一个,本人就是没有该文件) 若有my.ini文件 进去之后,在三个地方增加配置 第一个 第二个 第三个 若没有my.ini文件,则添加一个,内容为: 注意!!! 记得重启mysql服务 …
-
如何解决生产环境MySQL的死锁问题
生产问题 在生产环境中发现我们数据库出现了一个异常,异常堆栈信息如下: 从堆栈信息可以很容易知道死锁问题。但是这个更新语句为什么会出现死锁呢? 问题原因 死锁产生的原因有四个分别是: 互斥 循环等待 不可剥夺 请求与保持 只要产生死锁以上四个条件比然满足,因此考虑这个SQL语句是否产生了这四个死锁条件。 分析: 由于我们使用的是云数据库,因此可以通过云数据库…
-
解决Redis、MySQL缓存双写不一致问题
redis、mysql双写缓存不一致: 但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析。 正文 给缓存数据设置过期时间 先做一个说明,从理论上来说,给缓存设置过期时间,是保证最终一致性的解决方案。这种方案下,我们可以对存入缓存的数据设置过…
-
索引–加快MySQL查询
1.索引的描述 索引在MySQL中也叫做”键”,保存着数据位置的信息; 其作用是为了加快数据库的查询速度; 实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。 2.索引的使用 添加索引 #案例 主键会自动创建索引,外键约束也会自动创建索引 删除索引 #案例 添加联合索引 语法 联合索引又叫复合索引,是MySQL的I…
-
MySQL配置文件参数详解
设定MySQL事务是否自动提交,1表示立即提交,0表示需要显式提交。作用范围为全局或会话,可用于配置文件中(但在5.5.8之前的版本中不可用于配置文件),属于动态变量。 设定MySQL服务器是否为存储例程的创建赋予其创建存储例程上的EXECUTE和ALTER ROUTINE权限,默认为1(赋予此两个权限给其创建者)。作用范围为全局。 当MySQL的主线程在短…
-
Mysql备份策略(Linux版)
1.创建保存备份文件的文件夹 或者挂载一块网络共享硬盘到lunix系统中用于备份,挂载方式: 2.编写脚本 SH脚本内容: 给脚本赋权限 3.制定定时任务 插入这一行,完成定时任务,这里可以设置定时时间:
-
Mysql备份策略(windows版Mysql)图文详解
1.建立备份BAT文件脚本 脚本保存未bat文件,放在备份文件夹中。 2.设置定时任务进入定时任务界面,创建任务: 设置触发器,凌晨为比较合适备份时间,系统负载小 操作设置执行刚刚编写的BAT处理脚本 条件设置 最后设置选项 3.灾备编写COPY脚本将备份的文件复制到备份储存盘中BAT脚本内容: 设置定时任务
-
windows server 2012上安装sql server 2008图文详解
1.下载sql server 2008镜像文件 2.关闭防火墙 sql server 2008安装过程,检测安装进程会有报错,避免安装失败,这里先关闭防火墙 3.运行并安装程序 选择管理员身份运行 选择运行程序二不获取帮助 进入安装中心后选择 安装,再选择 全新安装 继续选择运行程序而不获取帮助 选择后如图,系统会自动检测系统,没警告说明可以定确定 输入密钥…