数据库文件

【异常】常见异常

不羁的心 提交于 2019-11-29 11:24:05
ArithmeticException 算数异常 是指整数被0除产生的异常 ArrayIndexOutOfBoundsException 数组索引越界异常 当访问的数组元素的索引值大于数组的最大索引值时发生 NullPointerException 空指针异常 当应用程序试图在需要对象的地方使用null时,将抛出该异常 ClassNotFoundException 类未发现异常 类没有找到 IllegalAccessException 非法访问异常 当不允许访问某类时发生 FileNotFoundException 文件未发现异常 当要访问的文件找不到时发生 SQLException 数据库操作异常 发生在出现数据库访问错误时 NumberFormatException 例如字符串到 float 型数字的转换无效 FileNotFoundException 找不到文件 EOFException 文件结束 InterruptedException 线程中断 来源: https://blog.csdn.net/hutuyaoniexi/article/details/100798722

数据库概述

喜你入骨 提交于 2019-11-29 10:09:08
数据库概述 一、数据库软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上。如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运行在一台机器上,那么用文件存取数据,并没有问题。很不幸,这些假设都是你自己意淫出来的,上述假设存在以下几个问题。。。。。。 1、程序所有的组件就不可能运行在一台机器上 因为这台机器一旦挂掉则意味着整个软件的崩溃,并且程序的执行效率依赖于承载它的硬件,而一台机器机器的性能总归是有限的,受限于目前的硬件水平,就一台机器的性能垂直进行扩展是有极限的。于是我们只能通过水平扩展来增强我们系统的整体性能,这就需要我们将程序的各个组件分布于多台机器去执行。 2、数据安全问题 根据1的描述,我们将程序的各个组件分布到各台机器,但需知各组件仍然是一个整体,言外之意,所有组件的数据还是要共享的。但每台机器上的组件都只能操作本机的文件,这就导致了数据必然不一致。于是我们想到了将数据与应用程序分离:把文件存放于一台机器,然后将多台机器通过网络去访问这台机器上的文件(用socket实现),即共享这台机器上的文件,共享则意味着竞争,会发生数据不安全,需要加锁处理。 3、并发 根据2的描述,我们必须写一个socket服务端来管理这台机器(数据库服务器)上的文件,然后写一个socket客户端,完成如下功能:

MySQL安装及基础命令

北战南征 提交于 2019-11-29 08:15:33
MySQL安装及基础命令 介绍数据库安装基础命令 linux的下载和安装 mac的下载和安装 windows的下载和安装 介绍: 数据库在开发中占据的位置? 数据库能更简单的使用存储在文件中的数据能更好的解决并发问题,数据统一问题; 数据data:一行内容就是一条数据; 数据库(DataBase---DB):存储数据的地方,存储数据的地方就是数据库; 数据库管理系统(DBMS):帮助我们更好的管理和使用存储在硬盘上的数据,能狗完成数据的增删改查; 数据库服务器:     什么是服务器,本质就是一台计算机,当一台计算机安装了某个软件能够对外提供服务的时候,这台计算机就成为服务器;     数据库服务器:当这台计算机上安装的服务是一个数据库的server端的时候,我们就得到了一台数据库服务器; 数据库管理员(DBA):专门帮助我们管理数据库并且优化数据库的工作人员; MySQL就是一个DBMS(一个能够管理硬盘上数据文件的一个软件),通过一些简单的指令,帮助我们完成从文件中查找对应数据的软件; 数据库的种类:     关系型数据库:MySQL、oracle、sql server、sql lite;     非关系型数据库:redis、mongodb; MySQL server端:net stop mysql(关闭服务),net start mysql(开启服务) 简单的sql语句

MySQL初识数据库

こ雲淡風輕ζ 提交于 2019-11-29 08:15:23
MySQL初识数据库 为什要用数据库 第一,将文件和程序存在一台机器上是很不合理的。 第二,操作文件是一件很麻烦的事 你可以理解为 数据库 是一个可以在一台机器上独立工作的,并且可以给我们提供高效、便捷的方式对数据进行增删改查的一种工具。 如此就帮助我们解决了上面出现的问题,如果将所有的数据都存储在一个独立的机器上,而对用户提供服务的机器只是存放你写的代码。 数据库的优势 1.程序稳定性 :这样任意一台服务所在的机器崩溃了都不会影响数据和另外的服务。   2.数据一致性 :所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致的现象   3.并发 :数据库可以良好的支持并发,所有的程序操作数据库都是通过网络,而数据库本身支持并发的网络操作,不需要我们自己写socket   4.效率 :使用数据库对数据进行增删改查的效率要高出我们自己处理文件很多 认识数据库 什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机 在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如: 1 henry,不详,83,1935,山东,oldboy 单纯的一条记录并没有任何意义,如果我们按逗号作为分隔,依次定义各个字段的意思

oracle数据库备份(整理笔记)

六眼飞鱼酱① 提交于 2019-11-29 08:06:48
快到新一年了 ,复习一下oracle为以后做多准备 一、Oracle备份方式分类: Oracle有两类备份方式: (1)物理备份:将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,就是冷备份、热备份; (2)逻辑备份:是利用SQL语言从数据库中抽取数据并存于二进制文件的过程,逻辑备份需要使用导入导出工具: EXPDP/IMPDP或EXP/IMP; 两种方式有什么优缺点: oracle备份 概述 优点 缺点 冷备份 数据库可以暂时处于关闭状态时,我们需要将它在这一稳定时刻的数据相关文件转移到安全的区域,当数据库遭到破坏,再从安全区域将备份的数据库相关文件拷贝回原来的位置,这样,就完成了一次快捷安全等数据转移。由于是在数据库不提供服务的关闭状态,所以称为冷备份。 备份安全迅速,容易维护 必须关闭数据库,不能随意在任意时间点上备份数据库 热备份 热备份可以非常精确的备份表空间级和用户级的数据,由于它是根据归档日志的时间轴来备份恢复的,理论上可以恢复到前一个操作,甚至就是前一秒的操作 不需要关闭数据库 ,时间点精确. 过程复杂,操作不可恢复,数据量较小的时候 逻辑备份 是利用SQL语言从数据库中抽取数据并存于二进制文件的过程。 逻辑备份使用导入导出工具:EXPDP/IMPDP或EXP/IMP; 不可关闭,跨平台操作和迁移数据 下面来详细冷热备份的简单操作,逻辑备份需要使用工具

Window环境下配置MySQL 5.6的主从复制

有些话、适合烂在心里 提交于 2019-11-29 07:26:18
原文: Window环境下配置MySQL 5.6的主从复制 1、环境准备 Windows 7 64位 MySQL 5.6 主库:192.168.103.207 从库:192.168.103.208 2、配置新数据库的主从复制 2.1、修改主库配置文件 先在主数据库中创建新数据库rep_test。 然后编辑主数据库的 my.ini 文件 在 [mysqld] 节点中增加或修改如下内容: server-id=1 #指定唯一的ID,1至32,必须的 log-bin=mysql-log-bin #指定二进制日志存放路径,必须的 binlog-do-db=rep_test #指定要同步的数据库,必须的 #binlog-ignore-db=mysql #指定不要同步的数据库,如果指定了binlog-do-db就不用再指定该项 2.2、配置主库备份账户 重启主数据库,然后在主数据库中建立一个备份账户 mysql>grant replication slave on *.* to slave@192.168.103.208 identified by 'slave123' ; mysql>flush privileges; PS:identified by 指定的slave是账号slave@192.168.1.128 的密码 2.3、查看主服务器状态 显示主服务器的状态信息,并且找到File 和

Mysql主从复制配置

落爺英雄遲暮 提交于 2019-11-29 07:16:10
Mysql 主从复制是一台服务器充当主服务器,另一台或多台服务器充当从服务器,主机自动复制到从机。对于多级复制,数据服务器即可充当主机,也可充当从机。 Mysql 复制的基础是主服务器对数据库修改记录二进制日志 binlog ,从服务器通过主服务器的 binlog 自动执行更新。 下面以 InnoDB 引擎为例,说明配置主从复制的方法。 1 配置 /etc/my.cnf 修改主服务器 my.cnf ,在 [mysqld] 中增加如下内容: ## 打开 binlog log-bin=mysql-bin ## 服务器 ID 。服务器之间不能有重复 ID ,一般主是 1 server-id = 1 ## 指定不写 binlog 的数据库,不同步系统库 binlog-ignore-db = mysql binlog-ignore-db = information_schema binlog-ignore-db = cluster ## 指定写二进制的数据库,多个要多行 replicate-do-db = DB_Test ## 指定跨库更新也同步的数据库。和 replicate-do-db 相同多行 replicate-wild-do-table=DB\_Test.% 修改从服务器 my.cnf ,设置 server-id=2 。 另外,主从服务器的 ip 和端口信息配置不在 my.cnf

解密Redis持久化【翻译】

依然范特西╮ 提交于 2019-11-29 05:38:45
本文来自Redis的作者,他在论坛看到大家对Redis持久化误解较大,所以写此文章论述持久化 写操作的流程 首先我们来看一下数据库在进行写操作时到底做了哪些事,主要有下面五个过程。 客户端向服务端发送写操作(数据在客户端的内存中) 数据库服务端接收到写请求的数据(数据在服务端的内存中) 服务端调用write(2) 这个系统调用,将数据往磁盘上写(数据在系统内存的缓冲区中) 操作系统将缓冲区中的数据转移到磁盘控制器上(数据在磁盘缓存中) 磁盘控制器将数据写到磁盘的物理介质中(数据真正落到磁盘上) 写操作大致有上面5个流程,下面我们结合上面的5个流程看一下各种级别的故障。 当数据库系统故障时,这时候系统内核还是OK的,那么此时只要我们执行完了第3步,那么数据就是安全的,因为后续操作系统会来完成后面几步,保证数据最终会落到磁盘上。 当系统断电,这时候上面5项中提到的所有缓存都会失效,并且数据库和操作系统都会停止工作。所以只有当数据在完成第5步后,机器断电才能保证数据不丢失,在上述四步中的数据都会丢失。 通过上面5步的了解,可能我们会希望搞清下面一些问题: 数据库多长时间调用一次write(2),将数据写到内核缓冲区 内核多长时间会将系统缓冲区中的数据写到磁盘控制器 磁盘控制器又在什么时候把缓存中的数据写到物理介质上 对于第一个问题,通常数据库层面会进行全面控制。而对第二个问题

django项目模型字段

随声附和 提交于 2019-11-29 05:05:10
一个模型(model)就是一个单独的、确定的数据的信息源,包含了数据的字段和操作方法。通常,每个模型映射为一张数据库中的表。 基本的原则如下: 每个模型在Django中的存在形式为一个Python类 每个模型都是django.db.models.Model的子类 模型的每个字段(属性)代表数据表的某一列 Django将自动为你生成数据库访问API 简单实例 class Blog(models.Model): """ 博客信息 """ nid = models.AutoField(primary_key=True) title = models.CharField(verbose_name='个人博客标题', max_length=64) site_name = models.CharField(verbose_name='站点名称', max_length=64) theme = models.CharField(verbose_name='博客主题', max_length=32) def __str__(self): return self.title 每一个字段都是一个类属性,每个类属性表示数据表中的一个列。 上面的代码,相当于下面的原生SQL语句: CREATE TABLE `blog_blog` ( `nid` int(11) NOT NULL AUTO

sqlserver 创建分区表

空扰寡人 提交于 2019-11-29 04:50:10
我们知道很多事情都存在一个分治的思想,同样的道理我们也可以用到数据表上,当一个表很大很大的时候,我们就会想到将表拆 分成很多小表,查询的时候就到各个小表去查,最后进行汇总返回给调用方来加速我们的查询速度,当然切分可以使用横向切分,纵向 切分,比如我们最熟悉的订单表,通常会将三个月以外的订单放到历史订单表中,这里的三个月就是将订单表进行切分的依据。 1 需求说明 将数据库Demo中的表按照日期字段进行水平分区分表。要求数据文件按一年一个文件存储,且分区的分割点会根据时间的增长自动添加(例如现在是2017年1月1日,将其作为一个分割点,即将2017年1月1日之前的数据存储到数据文件A中,将2017年1月1日的之后的数据存储到数据文件B中;当时间到2018年1月1日时,自动将2018年1月1日添加为一个新的分区分割点,并将2017年1月1日至2018年1月1日的数据存储在数据文件B中,将2018年1月1日之后的数据存储在一个新的数据文件C中,以此类推)。 2 实现思路 2.1 分区原理 要实现这一功能,首先要了解数据库对水平分区表进行分区存储的原理。 所谓水平分区分表,就是把逻辑上的一个表,在物理上按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在不同的磁盘下。这样把一个大的文件拆分成多个小文件,便于我们对数据的管理。 2.2 水平分区优点 l