数据库系统

数据库分库分表思路

穿精又带淫゛_ 提交于 2019-12-06 05:47:38
出处: 数据库分库分表思路 一. 数据切分   关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。   数据库分布式核心内容无非就是数据切分(Sharding) ,以及切分后对数据的定位、整合。数据切分就是将数据分散存储到多个数据库中,使得单一数据库中的数据量变小,通过扩充主机的数量缓解单一数据库的性能问题,从而达到提升数据库操作性能的目的。   数据切分根据其切分类型,可以分为两种方式:垂直(纵向)切分和水平(横向)切分 1、垂直(纵向)切分   垂直切分常见有垂直分库和垂直分表两种。   垂直分库 就是根据业务耦合性,将关联度低的不同表存储在不同的数据库。做法与大系统拆分为多个小系统类似,按业务分类进行独立划分。与"微服务治理"的做法相似,每个微服务使用单独的一个数据库。如图:    垂直分表 是基于数据库中的"列"进行,某个表字段较多,可以新建一张扩展表,将不经常用或字段长度较大的字段拆分出去到扩展表中。在字段很多的情况下(例如一个大表有100多个字段),通过"大表拆小表",更便于开发与维护,也能避免跨页问题,MySQL底层是通过数据页存储的

mysql 排除系统库的全部备份

[亡魂溺海] 提交于 2019-12-06 04:53:58
前言: 有些时候,我们要对数据库进行备份的时候,由于GTID的缘故,导出系统库后,再次导入其他环境的数据库时,就会出问题。所以,我们需要排掉一些系统库,排除GTID对于数据库迁移的影响。 方法: 其实很简单,将下列库排出去就好: mysql Information_schema database performance_schema sys 可以使用以下脚本: #!/bin/bash user=root password=123456 data_path=/test/db_without_sys mysql -e "show databases;" -u $user -p $password| grep -Ev "Database|information_schema|performance_schema|mysql|sys"|xargs mysqldump -uroot -p$password --set-gtid-purged=OFF --triggers --routines --events --databases > $data_path/all`date +\%Y\%m\%d\%H\%M`.sql 即可。 来源: https://www.cnblogs.com/young233/p/11962798.html

redis——集群

谁说我不能喝 提交于 2019-12-06 02:37:04
现实中redis需要若干台redis服务器的支持: (1)从结构上,单个Redis服务器会产生单点故障,同时一台服务器需要承受所有的请求负载。这就需要为数据生成多个副本并分配在不同的服务器上。 (2)从容量上,单个Redis服务器的内存非常容易成为存储瓶颈,所以需要进行数据分片。 同时拥有多个Redis服务器后就会面临如何管理集群的问题,包括如何增加节点,故障恢复等操作。 1. 复制 通过持久化功能,Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据。 但是由于数据是存储在一台服务器上的,如果这台服务器出现硬盘故障等问题,也会导致数据丢失。为了避免单点故障,通常的做法是将数据库复制多个副本部署在不同的服务器上,这样即使有一台服务器出现故障,其他服务器依然可以继续提供服务。为此, Redis提供了复制(replication)功能,可以实现当一台服务器中的数据更新后,自动更新的数据同步到其他数据库上 。 2. 哨兵 在一个典型的一主多从的Redis系统中,从数据库在整个系统中起到了数据冗余备份和读写分离的作用。当主数据库遇到异常中断服务后,开发者可以通过手动的方式选择一个从数据库升级为主数据库,以使得系统能够继续提供服务。然而整个过程相对麻烦且需要人工介入,难以实现自动化。为此, Redis2.8中提供了哨兵工具来实现自动的系统监控和故障恢复功能 。 3. 集群:

ETL讲解

别说谁变了你拦得住时间么 提交于 2019-12-06 02:02:39
ETL讲解 ETL讲解(很详细!!!) ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。 ETL是BI项目重要的一个环节。 通常情况下,在BI项目中ETL会花掉整个项目至少1/3的时间,ETL设计的好坏直接关接到BI项目的成败。   ETL的设计分三部分:数据抽取、数据的清洗转换、数据的加载。在设计ETL的时候我们也是从这三部分出发。数据的抽取是从各个不同的数据源抽取到ODS(Operational Data Store,操作型数据存储)中——这个过程也可以做一些数据的清洗和转换),在抽取的过程中需要挑选不同的抽取方法,尽可能的提高ETL的运行效率。ETL三个部分中,花费时间最长的是“T”(Transform,清洗、转换)的部分,一般情况下这部分工作量是整个ETL的2/3。数据的加载一般在数据清洗完了之后直接写入DW(Data Warehousing,数据仓库)中去。   ETL的实现有多种方法,常用的有三种。一种是借助ETL工具(如Oracle的OWB、SQL Server 2000的DTS、SQL Server2005的SSIS服务、Informatic等)实现,一种是SQL方式实现,另外一种是ETL工具和SQL相结合。前两种方法各有各的优缺点

SqlServer性能检测和优化工具使用详细

妖精的绣舞 提交于 2019-12-06 00:27:07
原文: SqlServer性能检测和优化工具使用详细 工具概要 如果你的数据库应用系统中,存在有大量表,视图,索引,触发器,函数,存储过程,sql语句等等,又性能低下,而苦逼的你又要对其优化,那么你该怎么办?哥教你,首先你要知道问题出在哪里?如果想知道问题出在哪里,并且找到他,咱们可以借助本文中要讲述的性能检测工具--sql server profiler(处在sql安装文件--性能工具--sql server profiler) 如果知道啦问题出现在哪里,如果你又是绝世高手,当然可以直中要害,写段代码给处理解决掉,但是如果你不行,你做不到,那么也无所谓,可以借助哥的力量给你解决问题。哥给你的武功的秘诀心法是---数据库引擎优化顾问(处在sql安装文件--性能工具--数据库引擎优化顾问) sql server profiler功能 此工具比柯南还柯南,因为他能检测到数据库中的一举一动,即便你不动他,他也在监视你,他很贱的。他不但监视,还监视的很详细,有多详细一会再说,还把监视的内容记录到数据库或者是文件中,给你媳妇告状说你把数据库哪里的性能搞的多么不好,不过他也会把好的给你记录下来,好与不好这当然需要你来分析,其实他也是个很2的柯南。 数据库引擎优化顾问功能 此武功,乃上乘武功。像张无忌的乾坤大挪移,先是接受sql server profiler检测出来的sql,视图,存储过程

Datafactory 实际使用案例

旧城冷巷雨未停 提交于 2019-12-05 20:25:32
Datafactory 实际使用案例 一、 简介 QuestDataFactory 是一种快速的、易于产生测试数据工具,它能建模复杂数据关系,且有带有GUI界面。DataFactory是一个功能强大的数据产生器,它允许开发人员和QA毫不费力地产生百万行有意义的测试数据。 二、 原理说明 通过和数据库进行连接后,首先读取数据库中表的schema(概要),即表的定义之类的内容,以列表的形式显示;然后由用户定制要产生数据的具体内容,如数字范围、字符串长度、要产生数据记录的个数等等,最后运行工程,批量生成数据,Datafactory支持各种主流数据库(oracle、DB2、MS SQL),甚至excel、access等。下面以以主流的oracle为例进行说明。 三、 安装说明 第一步:解压Quest DataFactory v5.6 英文正式版.zip,执行setup.exe文件,按向导安装。 第二步:运行Keygen.exe,在Site Message中设置名称,下拉框中选择DataFactory生成 key。 第三步:安装成功后,使用key在bin文件中的工具(dfactory.exe)进行注册,选择DataFactory,点击Edit key,输入第二步中生成的key以及Site message中设置的名称即可。 四、 数据库环境说明 图表 1 数据库中有3个表,一个是FW

MySQL权限管理

荒凉一梦 提交于 2019-12-05 19:50:50
目录 设置用户与权限 用户管理 MySQL权限系统介绍 最少权限原则 创建用户:GRANT命令 权限的类型和级别 REVOKE命令 权限立即生效 使用GRANT和REVOKE的例子 设置用户与权限 一个MySQL系统可能有许多用户。 为了安全起见,root用户通常只用管理目的 。对于每个需要使用该系统的用户,应该为他们创建一个账号和密码。这些用户名和密码不必与MySQL之外的用户名称和密码(例如,Linux或NT用户名和密码)相同。同样的原则也适合于root用户。对于系统用户和MySQL用户最好使用不同的密码,这一点对root用户尤其应该这样。 为用户设置密码不是必须的,但是强烈建议为所有创建的用户设定密码。要建立一个Web数据库,最好为每个网站应用程序建立一个用户。你可能会问,“为什么要这么做呢?”----答案在于权限。 用户管理 我们的MySQL的用户,都被记录在了mysql数据库的user表中,如下图: 在MySQL数据库中,一个完整的用户账号应该包含 用户名 和 登录主机 ,也就是说 用户名@主机名 才是一个完整的用户账号。 创建用户基本语法: CREATE USER 用户名@主机名 IDENTIFIED BY '密码'; 删除用户基本语法: DROP USER 用户名@主机名; 修改用户密码: - 修改自己的密码 set password = password('新密码'

MySQL学习笔记之DDL(Data Definition Languages)语句

馋奶兔 提交于 2019-12-05 12:17:25
1. DDL概念 DDL:数据定义语言,定义了不同的数据段、数据库、表、列、索引等数据库对象。就是对数据库内部的对象进行创建、删除、修改等操作的语言。常用的语句关键字主要包括create、drop、alter。 2. 登录数据库系统 1)启动MySQL服务器后,输入以下命令连接MySQL服务器 -h:host(主机名) -u:username(用户名) -p:password(密码) 2)连接MySQL后的界面 3. 查看现有的数据库 1)`show databases` 刚安装好的MySQL中都有4个数据库,都是安装MySQL时系统自动创建的,其各自功能如下: information_scheme:主要存储了系统中的一些数据库对象信息,比如用户表信息、列信息、权限信息、字符集信息、分区信息等。 cluster:存储了系统的集群信息。 mysql:存储了系统的用户权限信息。 test:系统自动创建的测试数据库,任何用户都可以使用。 4. 创建数据库 1)CREATE DATABASE dbname 注:如果存在的话就会报错。 避免报错的话可以: create database if not exists testdb 2)结果 show databases 5. 删除数据库 `drop database dbname;` ![在这里插入图片描述](https://img-blog

Oracle数据库密码过期修改

大兔子大兔子 提交于 2019-12-05 07:03:50
1.打开 SQL Plus 用系统账号登入(我的是 system/orcl) 2.查看用户密码默认管理方式 select profile from dba_users where username = 'envir' (我的某个用户是envir,本机数据库用户名envir) 3.查看数据库默认的密码管理方式有效期 SELECT * FROM dba_profiles WHERE profile = 'DEFAULT' AND resource_name = 'PASSWORD_LIFE_TIME' ; 4.将密码有效期由默认的180天修改成“无限制”,修改之后不需要重启动数据库,会立即生效 ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED ; 5、帐户再改一次密码 alter user envir identified by 1 ; ( envir / 1 ) 用修改过的账号密码在sql plus中登入查询出来 SELECT * FROM dba_profiles WHERE profile = 'DEFAULT' AND resource_name = 'PASSWORD_LIFE_TIME' ; 可以看出密码管理方式变为UNLIMITED,即永久有效了 6、如果 使用修改后的用户登录,如果报“ORA-28000

Windows系统安装Oracle 11g 数据库

可紊 提交于 2019-12-05 04:00:45
转: Windows系统安装Oracle 11g 数据库 一.下载 http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 以下两网址来源此官方下载页网。 win 32位操作系统 下载地址: http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_database_1of2.zip http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_database_2of2.zip win 64位操作系统 下载地址: http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_1of2.zip http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_2of2.zip (oracle账号/密码:1603869780@qq.com/qwe123QWE ) 二.安装 1. 解压文件,将两个压缩包一起选择, 鼠标右击 -> 解压到当前文件夹 如图 2.两者解压到相同的路径中,如图: 3