经常会有人问我数据库是干啥的,其实一开始我是拒绝回答的,因为我也不能做到通俗易懂的表达出来,毕竟我接触这个概念也没有多长时间,但随着问的人多了,我觉得是时候脑补一下我的第一堂课了,万一哪天冒出来个货跟你掰扯这事儿,你没分分钟给他说清,最后弄个丢里儿丢面儿,好尴尬呀。
数据库,说白了就是按照数据结构来组织、存储和管理数据的仓库,这些数据是结构化的,并可为多种应用服务。也就是说,数据库是使用计算机服务器来存储数据的,专门用来提供各种数据服务。可以这样想像,过去一个公司的所有财务数据都是放在保险柜里面,而现在我们就可以针对这些财务数据搭建一个数据库放在某台计算机或服务器上面;再比如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。最常见的数据库有:银行储蓄系统、手机话费系统、美容美发会员系统、超市会员积分系统、水电费系统、机票或火车票系统等,这些都需要后台数据库基础设施的支撑。举了这么多例子,应该是把数据库说明白了,至少能在大脑里面有个概念,知道这个东西是干啥的。
现在大数据被炒的红得发紫,而大数据的基础也是数据,由此可见,数据是一个企业的核心资源,说它是企业的立身之本、发展之基都不为过,因此,维护数据库的数据库管理员(DBA)是企业不可或缺的。
目前市面上的数据库产品有很多,单从规模上分可分为大型、中型、小型几种,典型的数据库产品如下:
大型数据库:Oracle、DB2、Sybase;
中型数据库:MySQL、SQLServer、Infomix;
小型数据库:Access、VisualFoxpro。在众多的数据库产品中,Oracle数据库一直处于行业领导先地位,也是当今最流行的关系型数据库。Oracle可翻译成"甲骨文",它是一家以数据库为主业的全球化公司,是全球第二大软件公司(第一名是微软公司),目前Oracle在数据库软件市场已经排名第一,数据库软件市场份额达到486%,遥遥领先于第二名占有率仅为207%的IBM公司的DB2。在中国市场上的计算机专业系统后台所使用的数据库尤以Oracle数据库居多。但是购买Oracle数据库需要很大一笔费用,一般的大型企业使用,需要有专业人员进行管理和维护,中小企业承担不起。中小企业为了节省成本,一般使用MySQL、PostgreSQL这类免费开源的数据库,所以Oracle数据库相关的工作岗位一般是在大型企业中。
对于为什么选择Oracle数据库,而不是其他的数据库
第一,是因为Oracle数据库占据最大的市场份额,并且越来越大,市场需要很多Oracle数据库方面的人才,中国有句老话说"做对事,选对人",是同样的道理;第二,是很多非Oracle数据库的老系统正往Oracle数据库迁移,其他数据库市场占有率在减少,其他数据库工作者有面临失业的风险;第三,Oracle有大量的官方学习文档,还有部分中文文档,可以有效地进行学习;第四,Oracle有大量的从业人员,有共同方向的朋友可以互相帮助,不再是孤胆英雄;第五,是可以很容易地从Oracle官方网站下载功能齐全的数据库最新版本进行学习,可以让你了解数据库方面的最新发展趋势等。
在此说明,以后的所有内容都是基于Oracle11g数据库产品的,下面我们就简单介绍一下Oracle11g的系列产品:
企业版(EnterpriseEdition)此版本包含了数据库的所有组件,并且能够通过购买选项和程序包来进一步对其增强。
能支持例如大业务量的在线事务处理OLTP(On-LineTransactionProcessing联机事务处理系统)环境、查询密集的数据仓库和要求苛刻的互联网应用程序。
标准版1(StandardEditionOne)此版本为工作组、部门级和互联网、内联网应用程序提供了前所未有的易用性和性价比。从针对小型商务的单服务器环境到大型的分布式部门环境,该版本包含了构建重要商务应用程序所必需的全部工具。它仅许可在最高容量为2个处理器的服务器上使用,支持Windows/Linux/UNIX *** 作系统,并支持64位平台 *** 作系统。
标准版(StandardEdition)此版本提供了StandardEditionOne所不具有的易用性、能力和性能,并且利用真正的应用集群(RAC)提供了对更大型计算机和服务集群的支持。它可以在最高容量为4个处理器的单台服务器上、或者在一个支持最多4个处理器的集群上使用,可支持Windows、Linux和UNIX *** 作系统,并支持64位平台 *** 作系统。
简化版此版本支持与标准版1、标准版和企业版完全兼容的单用户开发和部署。通过将Oracle数据库获奖的功能引入到个人工作站中,该版本提供了结合世界上最流行的数据库功能的数据库,并且该数据库具有桌面产品通常具有的易用性和简单性,可支持Linux和Windows *** 作系统。
从存储结构上来说,目前流行的数据库主要包含以下两种:
RDBMS:关系型数据库,是指采用了关系模型来组织数据的数据库;
NoSQL数据库,是指那些非关系型的、分布式的数据库。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
关系型数据库优点:
1、容易理解
二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解。
2、使用方便
通用的SQL语言使得 *** 作关系型数据库非常方便。
3、易于维护
丰富的完整性大大减低了数据冗余和数据部移植的概率。
4、事务安全
所有关系型数据库都不同程度的遵守事物的四个基本属性,因此对于银行、电信、证券等交易型业务是不可或缺的。
关系型数据库的瓶颈:
1、高并发读写需求
网站的用户并发性非常高,往往达到每秒上万次读写请求,对于传统型数据库来说,硬盘I/O是一个很大的瓶颈。
2、海量数据的高效率读写
互联网上每天产生的数据量是巨大的,对于关系型数据库来说,在一张包含海量数据的表中查询,效率是非常低的。
3、高扩展性和可用性
在基于WEB的结构中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库却没有办法像WEBServer和APPLICATIONServer那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移。
NoSQL数据库
NoSQL一词首先是CarloStrozzi在1998年提出的。2009年再次提出了NoSQL一词,用于指那些非关系型的、分布式的,且一般不保证遵循ACID原则的数据存储系统。
NoSQL具有以下特点:
1、可以弥补关系型数据库的不足
2、针对某些特定的需求而设计,可以具有极高的性能
3、大部分都是开源的,由于成熟度不够,存在潜在的稳定性和维护性问题。
关系型数据库适用于结构化数据,而非关系型数据库适用于非结构化数据,二者优势互补,相得益彰。
Oracle数据库未来的发展方向是提供结构化、非结构化、半结构化的解决方案,实现关系型数据库和NoSQL共存互补。值得强调的是,目前关系型数据库仍是主流数据库。
虽然NoSQL数据库打破了关系型数据库存储的观念,可以很好地满足WEB20时代数据的存储要求,但NoSQL数据库也有自己的缺陷。在现阶段的情况下,可以将关系型数据库和NoSQL数据库结合使用,相互弥补各自的不足。
关于数据库及其代表产品Oracle今天就介绍这么多,有兴趣的可以继续深挖,希望我的介绍能让你对数据库有一个更深入的认识。如果有志于在这方面发展的话,就让我们一起跟往事干杯从头再来。
ETLETL即数据抽取(Extract)、转换(Transform)、装载(Load)的过程
它是构建数据仓库的重要环节
数据仓库是面向主题的、集成的、稳定的且随时间不断变化的数据集合,用以支持经营管理中的决策制定过程
数据仓库系统中有可能存在着大量的噪声数据,引起的主要原因有:滥用缩写词、惯用语、数据输入错误、重复记录、丢失值、拼写变化等
即便是一个设计和规划良好的数据库系统,如果其中存在着大量的噪声数据,那么这个系统也是没有任何意义的,因为“垃圾进,垃圾出”(garbagein,garbageout),系统根本就不可能为决策分析系统提供任何支持
为了清除噪声数据,必须在数据库系统中进行数据清洗
目前有不少数据清洗研究和ETL研究,但是如何在ETL过程中进行有效的数据清洗并使这个过程可视化,此方面研究不多
联机事务处理OLTP联机分析处理(OLAP)的概念最早是由关系数据库之父E
F
Codd于1993年提出的,他同时提出了关于OLAP的12条准则
OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理(OLTP)明显区分开来
当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-linetransactionprocessing)、联机分析处理OLAP(On-LineAnalyticalProcessing)
OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易
OLAP是数据仓库系统的主要应用,支持复杂的分析 *** 作,侧重决策支持,并且提供直观易懂的查询结果
OLAP是使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术
一、备份还原简介
数据库备份是 DBA 日常最重要的工作内容。备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态。
下面主要讲一下以联机执行SQL 语句进行备份还原和脱机工具 DMRMAN 进行备份还原的方式。
二、归档配置
备份与恢复过程都依赖归档日志,归档日志是保证数据一致性和完整性的重要保障。配有归档日志的数据库系统在出现故障时丢失数据的可能性更小,这是因为一旦出现介质故障如磁盘损坏时,利用归档日志,系统可被恢复至故障发生的前一刻,也可以还原到指定的时间点。
使用如下语句检查DM归档是否开启:
select arch_mode from v$database
1
1
ARCH_MODE字段查询结果为“Y”表示已开启,如果为“N”,则DM数据库归档未开启。
或者查看配置文件dmini,参数ARCH_INI的值:1表示已开启归档,0表示未开启归档
可以使用如下系列命令开启归档模式。开启归档模式,需要确定归档类型、归档路径、归档文件大小、归档空间大小限制参数,根据实际情况进行设置。
alter database mount;
alter database add archivelog 'dest=/dmdata/dmarch/arch,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=102400';
alter database archivelog;
alter database open;
1
2
3
4
1
2
3
4
或者修改配置文件dmini中的参数ARCH_INI=1,在dmini所在目录中,创建dmarchini文件并添加以下内容后,重启数据库实例。
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/dmarch/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 102400
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1
1
2
3
4
5
6
7
1
2
3
4
5
6
7
三、使用disql进行联机备份还原
使用 DIsql 工具备份数据库、用户表空间、用户表和归档,系统必须处于归档模式下时,才允许进行数据库联机备份且保证数据库处于 OPEN 状态。
1 备份数据库
11 完全备份
执行数据库备份,数据库必须处于 OPEN 状态,MOUNT 和 SUSPEND 状态下不允许执行数据库备份。
在disql 中输入备份数据库语句,最简单的不设置其他参数的完全备份语句如下:
指定备份集路径为“/home/dm_bak/db_full_bak_01”
BACKUP DATABASE FULL BACKUPSET ‘/home/dm_bak/db_full_bak_01’;
这是最简单的数据库备份语句,如果要设置其他的备份选项需了解联机备份数据库的语法。 详细请参考《DM8备份与还原pdf》中的32211 概述。
12 设置备份名
系统为每个备份指定一个备份名,它可作为识别备份的一种方式。备份时用户可以采用系统生成的备份名也可以指定属于自己的备份名。
创建备份集,备份名设置为“WEEKLY_FULL_BAK”。
13 增量备份
增量备份指基于指定的库(或者表空间)的某个备份(完全备份或者增量备份),备份 自该备份以来所有发生修改的数据页。执行增量备份的主要目的是快速备份数据库中的修改, 减少备份时间和避免重复的备份。
在disql 中输入备份数据库语句,最简单的不设置其他参数的增量备份语句如下:
BACKUP DATABASE INCREMENT WITH BACKUPDIR ‘/home/dm_bak’ BACKUPSET ‘/home/dm_bak/db_increment_bak_02’;
2 表空间备份
21 完全备份
表空间备份就是拷贝表空间内所有数据文件中的有效数据的过程。DM 仅支持表空间联机备份,完全备份一个表空间步骤如下:
在 disql 中输入备份表空间语句,最简单的不设置其他参数的完全备份表空间语句:
BACKUP TABLESPACE MAIN FULL BACKUPSET ‘/home/dm_bak/ts_full_bak_01’;
22 增量备份
执行表空间增量备份的主要目的同数据库增量备份一样是为了快速备份数据库中的修改,减少备份时间和避免重复的备份。
在disql 中输入备份表空间语句,最简单的不设置其他参数的增量备份语句如下:
BACKUP TABLESPACE MAIN
INCREMENT WITH BACKUPDIR ‘/home/dm_bak’
BACKUPSET ‘/home/dm_bak/ts_increment_bak_02’;
3 表备份
表备份拷贝指定表所使用的所有数据页到备份集中,并记录各个数据页之间的逻辑关系用来恢复表数据结构。表备份均为联机完全备份,不需要备份归档日志,不存在增量备份之说。当数据库中某张表比较重要而又没必要备份整个数据库或表空间时就可以选择表备份。完整的备份表步骤如下:
1如有需要,可创建待备份的表 TAB1: SQL>CREATE TABLE TAB1(C1 INT);
2在disql 中输入备份表语句,简单的备份语句如下:
BACKUP TABLE TAB1 BACKUPSET ‘/home/dm_bak/tab_bak_01’;
4 归档备份
归档备份拷贝指定归档目录下的所有的归档文件到备份集中,并记录各个归档文件的属性、文件大小以及 LSN 区间等。归档备份不存在增量备份之说。当需要保存库的归档时,可以使用归档备份。
在disql 中输入备份数据库语句。
通过 LSN BETWEEN … AND …来指定起始和截至 LSN。
首先,确定 LSN 范围。:
select ARCH_LSN, CLSN, PATH from V$ARCH_FILE;
通过查询结果选出备份的起始 LSN 和截至 LSN。比如 36766 38135
其次,备份归档:
BACKUP ARCHIVELOG LSN BETWEEN 36766 AND 38135 BACKUPSET ‘/home/dm_bak/arch_bak_time_36766-38135’;
5 数据还原
DM 仅支持表的联机还原,数据库、表空间和归档日志的还原必须通过脱机工具 DMRMAN执行。
51 表还原
执行表还原,数据库必须处于 OPEN 状态,MOUNT 和 SUSPEND 状态下不允许执行表还原。表还原不需要配置归档,因为表还原是联机完全备份还原,所以不需要借助本地归档日志进行恢复。
表结构还原:
表备份和目标表中都包含索引,如果直接执行表数据还原会报错:还原表中存在二级索引或冗余约束。
创建待备份的表;
create table tab1 (a int, b varchar);
备份表数据;
BACKUP TABLE tab1 BACKUPSET ‘/home/dm_bak/tab1_bak_01’;
表结构还原:
RESTORE TABLE tab1 STRUCT FROM BACKUPSET
‘/home/dm_bak/tab1_bak_01’;
表数据还原:
RESTORE TABLE tab1 FROM BACKUPSET
‘/home/dm_bak/tab1_bak_01’
还原表数据,但不重建索引:
RESTORE TABLE tab1 WITHOUT INDEX
FROM BACKUPSET ‘/home/dm_bak/tab1_bak_01’;
还原表数据,但不还原约束:
RESTORE TABLE tab1 WITHOUT CONSTRAINT
FROM BACKUPSET ‘/home/dm_bak/tab1_bak_01’;
四、使用 DMRMAN工具进行脱机备份还原
1 备份数据库
11 完全备份
执行数据库备份要求数据库处于脱机状态。若是正常退出的数据库,则脱机备份前不需
要配置归档;若是故障退出的数据库,则备份前,需先进行归档修复。
备份到默认目录:
RMAN>BACKUP DATABASE '/dmdata/dmdb/DAMENG/dmini';
--命令执行完后会在默认的备份路径下生成备份集目录,默认的备份路径为 dmini 中BAK_PATH 的配置值,若未配置,则使用 SYSTEM_PATH 下的 bak 目录。
1
2
1
2
备份到指定目录:
RMAN>BACKUP DATABASE '/dmdata/dmdb/DAMENG/dmini' FULL BACKUPSET '/home/dm_bak/db_full_bak_01';
1
1
12 增量备份
增量备份指基于指定的库的某个备份(完全备份或者增量备份),备份自该备份以来所有发生修改了的数据页。脱机增量备份要求两次备份之间数据库必须有 *** 作,否则备份会报
错。
RMAN>BACKUP DATABASE '/dmdata/dmdb/DAMENG/dmini' INCREMENT WITH BACKUPDIR '/home/dm_bak'BACKUPSET '/home/dm_bak/db_increment_bak_02';
--命令中的 INCREMENT 参数表示执行的备份为增量备份,增量备份时该参数不可省略。如果增量备份的基备份不在默认备份目录中,则必须指定 WITH BACKUPDIR 参数用于搜索基备份集。
1
2
1
2
2 备份归档
21 创建归档备份
使用 DMRMAN 备份归档需要设置归档,否则会报错。关闭数据库实例。
备份到默认目录:
RMAN>BACKUP ARCHIVE LOG DATABASE '/dmdata/dmdb/DAMENG/dmini';
--命令执行完后会在默认的备份路径下生成备份集目录,默认的备份路径为 dmini 中BAK_PATH 的配置值,若未配置,则使用 SYSTEM_PATH 下的 bak 目录。
1
2
1
2
备份到指定目录:
RMAN>BACKUP ARCHIVE LOG ALL DATABASE '/dmdata/dmdb/DAMENG/dmini' BACKUPSET
'/home/dm_bak/arch_all_bak_01';
--命令中的 ALL 参数表示执行的备份为备份所有的归档,也可以不指定该参数,DMRMAN默认执行的备份类型为 ALL 类型归档备份。
1
2
3
1
2
3
22 创建设置条件的归档备份
设置条件的归档备份指通过设置 LSN 或者时间点,控制需要备份归档的范围。
RMAN>BACKUP ARCHIVE LOG LSN BETWEEN 50000 AND 120000 DATABASE '/dmdata/DAMENG/dmini' BACKUPSET '/home/dm_bak/arch_lsn_bak_02';
1
1
3 数据库还原和恢复
使用 RESTORE 命令完成脱机还原 *** 作,在还原语句中指定库级备份集,可以是脱机库级备份集,也可以是联机库级备份集。
31 还原数据库
RMAN>RESTORE DATABASE '/dmdata/dmdb/DAMENG_FOR_RESTORE/dmini' FROM BACKUPSET '/home/dm_bak/db_full_bak_for_restore';
1
1
32数据库恢复
RMAN>RECOVER DATABASE '/dmdata/dmdb/DAMENG_FOR_RESTORE/dmini' FROM BACKUPSET '/home/dm_arch/arch';
--使用 RECOVER DATABASEUNTIL TIME 命令恢复到指定的时间:
RMAN>RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dmini' WITH ARCHIVEDIR'/home/dm_arch/arch' UNTIL TIME'2018-11-16 10:56:40';
--使用 RECOVER DATABASEUNTIL LSN 命令恢复到指定的 LSN
RMAN>RECOVER DATABASE '/opt
以上就是关于数据库是什么Oracle又是啥玩意全部的内容,包括:数据库是什么Oracle又是啥玩意、数据库:什么是BI,ETL和OLAP(数据仓库和etl的区别)、发布后脱机再联机数据库不存在等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)