表空间

Oracle体系结构和用户管理

隐身守侯 提交于 2019-12-14 05:54:23
博文结构 Oracle数据库体系结构 Oracle物理结构 Oracle逻辑结构 Oracle内存结构 Oracle进程结构 创建用户并授权 一.oracle体系结构概述 Orcale体系结构 Oracle体系结构包含一系列组件。 如图显示了Oracle体系结构中的主要组件,包括实例、用户进程、服务器进程、数据文件及其他文件,如参数文件、口令文件 和归档日志文件等. 从图中可以看出,实例和数据库是Oracle数据库体系结构的核心组成部分,也是最重要的 两个概念, DBA -个很重要的工作就是维护实例和数据库本身的正常工作。 1.实例 Oracle实例是后台进程和内存结构的集合,必须启动实例才能访问数据库中的数据。Oracle 实 例启动时,将分配- -个系统全局区(SGA) 并启动一系列Oracle后台进程。Oracle 实例有两种类型: 单进程实例和多进程实例。单进程Oracle实例使用一个进程执行Oracle的全部操作,在单进程环境下 的Oracle实例仅允许- -个用户可存取。多进程Oracle实例(又称多用户Oracle)使用多个进程来执行 Oracle的不同部分,对于每个连接的用户都有一个进程。 2.数据库 数据库是数据的集合,物理上是指存储数据库信息的一组操作系统文件,每个数据库有-个逻 辑结构和一个物理结构。物理结构是指构成数据库的一组操作系统文件

MySQL InnoDB结构

旧街凉风 提交于 2019-12-13 08:29:52
逻辑存储结构 Tablespace(表空间) InnoDB把数据保存在表空间内,表空间可以看作是InnoDB存储引擎逻辑结构的最高层。本质上是一个由一个或多个磁盘文件组成的虚拟文件系统,存储表和索引,还保存了回滚段、双写缓冲区等 Segment(段) 表空间的主要组织单位,常见的段有数据段、索引段、回滚段等,是构成索引、表、回滚段的基本元素。 创建一个索引(B+树)时会同时创建两个段,分别是内节点段和叶子段,内节点段用来管理(存储)B+树非叶子(页面)的数据,叶子段用来管理(存储)B+树叶子节点的数据。 extent(区/簇) 簇是构成段的基本元素,一个段由若干个簇构成。 簇是由64个连续的页组成的,每个页大小为16KB,即每个簇的大小为1MB。 Page(页) 页是InnoDB存储引擎磁盘管理的最小单位,每个页默认16KB。常见的页类型有数据页(B-tree Node)、Undo页(Undo Log Page)、系统页(System Page)、事务数据页(Transaction system Page)等。 Row(行) 数据的存放形式,最多允许存放16KB/2-200,即7992行记录。 页结构 名称 描述 File Header(文件头信息) 如表空间中页的偏移值、上/下一页位置指针、页类型等 Page Header(页头信息) 如当前页记录的数量、页中空闲空间的起始地址

MySQL的ibdata1文件占用过大

为君一笑 提交于 2019-12-13 02:05:43
处理MySQL的ibdata1文件过大问题 本人遇到一次在安装zabbix监控的时候,yum安装的MySQL数据库,后面用了一段时间发现data目录下的ibdata1的空间特别大,反而我的zabbix数据库的空间很小,这样的情况在后面备份zabbix数据库的时候会很不方便,所以想着要怎么解决下。 ibdata1文件是什么? ibdata1是一个用来构建innodb系统表空间的文件,这个文件包含了innodb表的元数据、撤销记录、修改buffer和双写buffer。如果file-per-table选项打开的话,该文件则不一定包含所有表的数据。当innodb_file_per_table选项打开的话,新创建表的数据和索引则不会存在系统表空间中,而是存放在各自表的.ibd文件中. 显然这个文件会越来越大,innodb_autoextend_increment选项则指定了该文件每次自动增长的步进,默认是8M. 是什么原因导致ibdata1文件会越来越大? ibdata1存放数据,索引和缓存等,是MYSQL的最主要的数据。所以随着数据库越来越大,表也会越大,这个无法避免的。如果时间长了,越来越大,我们在处理日志和空间的时候就不是那么方便了,就不知从何入手了。接下来我们就要处理下这样的情况,分库存储数据。 该如何处理呢? 首先我们把数据库文件备份下来,然后直接删除ibdata文件

ORACLE-段收缩

风格不统一 提交于 2019-12-13 01:59:39
实验环境 1、oracle 11g 2、 登录用户system 基本概念 收缩段:当一个段被收缩时,段中的数据被压缩,高水线(HWM)下移,并且磁盘空间被释放给包含此段的表空间。 段收缩=数据压缩+HWM下移 稀疏填充段:即一个实际使用的空间远小于实际分配给它的空间的段。 行迁移(行移动):收缩表的操作可能会造成表中数据行的ROWID的改变,故在执行一个表的收缩操作之前必须开启这个表的行移动功能。 注:有关高水线的内容可参考另一篇博文。 作用 1、当表空间的空闲空间不足时,可通过收缩段,释放磁盘空间使得表空间的空闲空间增加。 2、当一个对象实际使用的空间比分配给它的空间小得多的时候,可能需要回收那些没有用的磁盘空间。 3、收缩稀疏填充段,有利于全表扫描和DML操作。因为在收缩段后,需要查看的数据块少了。 收缩段的步骤 实验前,查看下测试表ex的情况。 select * from scott . ex ; select blocks from dba_segments where owner = 'SCOTT' and segment_name = 'EX' ; select num_rows , blocks , empty_blocks from dba_tables where owner = 'SCOTT' and table_name = 'EX' ; 高水线=4608

MySQL和Oracle的区别

痞子三分冷 提交于 2019-12-13 00:00:52
由于SQL Server不常用,所以这里只针对MySQL数据库和Oracle数据库的区别 (1) 对事务的提交 MySQL默认是自动提交,而Oracle默认不自动提交,需要用户手动提交,需要在写commit;指令或者点击commit按钮 (2) 分页查询 MySQL是直接在SQL语句中写"select... from ...where...limit x, y",有limit就可以实现分页;而Oracle则是需要用到伪列ROWNUM和嵌套查询 (3) 事务隔离级别 MySQL是read commited的隔离级别,而Oracle是repeatable read的隔离级别,同时二者都支持serializable串行化事务隔离级别,可以实现最高级别的 读一致性。每个session提交后其他session才能看到提交的更改。Oracle通过在undo表空间中构造多版本数据块来实现读一致性,每个session 查询时,如果对应的数据块发生变化,Oracle会在undo表空间中为这个session构造它查询时的旧的数据块 MySQL没有类似Oracle的构造多版本数据块的机制,只支持read commited的隔离级别。一个session读取数据时,其他session不能更改数据,但 可以在表最后插入数据。session更新数据时,要加上排它锁,其他session无法访问数据 (4)

DB2安装过程(CentOS)

拜拜、爱过 提交于 2019-12-12 18:23:15
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 安装 ./install 创建实例: groupadd database useradd prod -g database useradd prodfenc -g database cd /opt/ibm/db2/V9.7/instance ./db2icrt -a server -u prodfenc prod 配置实例参数: cd ~prod vi .bashrc #在最后加入 ./sqllib/db2profile 设置实例在每次登录时自启动 su prod db2iauto -on prod 启动实例 db2start #必须用实例拥有者登录后执行此命令 列出所有实例 db2ilist 查看当前实例 db2 get instance 查看当前实例配置参数 db2 get dbm cfg 创建/查看/连接数据库 db2 create database LEON db2 list database directory db2 connect to LEON 查看表空间(明细) db2 list tablespaces show detail 创建一个8k页面大写的缓冲池 db2 "CREATE BUFFERPOOL LEON_BU_8K IMMEDIATE SIZE 2000 PAGESIZE 8k"

Oracle 常规ArcSDE操作

天大地大妈咪最大 提交于 2019-12-12 11:04:08
ArcSDE需要安装Oracle64位服务器端,32位客户端。使用PLSQL也需要32位客户端,要不然登录不上!!! 用户名:sys 密码:12345678 用户名:scott 密码:tiger 问题: exp与expdb区别? 在10之前,传统的导出和导入分别使用EXP工具和IMP工具,从10开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP。使用EXPDP和IMPDP时应该注意的事项: 1)EXP和IMP是客户端工具程序,它们既可以在可以客户端使用,也可以在服务端使用。 2)EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。 3)IMP只适用于EXP生成文件,不能用于EXPDP导出文件; IMPDP只适用于EXPDP生成文件,而不适用于EXP生成文件。 问题: cmd命令行无法登陆oracle,报错ORA-12560。SQLPlus可以登陆。 https://www.cnblogs.com/Insein/p/6370573.html 记录: cmd命令行操作: sqlplus后输入用户名密码执行。 sqlplus scott/tiger 可直接登录scott用户。 sqlplus sys/12345678 可直接登录sys用户。 exit可以退出用户登录和退出cmd命令。 问题: sqlplus

ORA-01950: 对表空间 'CDSME_DATASPACE' 无权限 报错解决

坚强是说给别人听的谎言 提交于 2019-12-12 10:34:19
记录一个很简单又很容易忽略的问题,挺烦人的,因为看报错信息根本很难往那个方向想的,所以记录一下以防万一。 报错信息: 1. ORA-01950: 对表空间 'CDSME_DATASPACE' 无权限 2. Could not synchronize database state with session 3.Could not execute JDBC batch update; SQL [insert into table( 别的字段,id) values (值,?)]; nested exception is org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update 上网查了相关解决办法不是我这里出现的问题。我的问题是数据库表的id字段值重复了,建表序列的时候没有选中order(排序)这个按钮,导致报了这样的错,很难受。 解决办法就是去表的序列里选中order这个按钮,就解决了。 来源: CSDN 作者: 哈根的 链接: https://blog.csdn.net/l_s_r/article/details/103497778

达梦数据库的表空间简单介绍

蓝咒 提交于 2019-12-11 23:07:38
一、达梦数据库表空间的管理 1、达梦数据库表空间介绍 Select tablespace_name from dba_tablespace; 1)SYSTEM表空间–> 系统表空间有很多的数据字典等 2)ROLL表空间–>回滚表空间 MVCC(事务多版本机制),消除行锁,回滚段,保 留时长(undo_retention 支持毫秒) 3)TEMP 临时表空间 ,临时段,创建的临时表 4)MAIN表空间,这是数据库默认的白哦空间,在创建表和数据对象的死后,不指定 存储位置,默认存放在该表空间 5)HMAIN 存放huge表的表空间 7)删除表空间 SQL> drop tablespace tbs3; drop tablespace tbs3; [-3412]:试图删除已经使用的表空间. SQL> drop tablespace tbs; 删除表空间为空的表空间 2、规划表空间 创建一个表空间,初始大小50M,最大100M 达梦数据库没有库的概念,从上往下,依次为:实例-用户-表 表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表, 所以称作表空间。 来源: CSDN 作者: anjingruwo 链接: https://blog.csdn.net/anjingruwo/article/details/103497355