表空间

docker 启动 oracle

一笑奈何 提交于 2020-01-20 04:17:36
参考链接: https://github.com/jaspeen/oracle-11g 将oracle的安装包从 官网下载 到本地,解压到install_folder目录,然后执行启动 docker run --privileged --name oracle11g -p 1521:1521 -v <install_folder>:/install jaspeen/oracle-11g docker logs oracle11g 等初始化好了后,可以将当前容器保存成一个新的镜像, docker commit oracle11g oracle11g-installed 如果要使用impdp/expdp命令,增加local_dpdump路径映射(此处需要授权chown -R 440:200 local_dpdump) docker run --privileged --name oracle11g -p 1521:1521 -v <install_folder>:/install -v <local_dpdump>:/opt/oracle/dpdump jaspeen/oracle-11g 执行命令 docker exec -it oracle11g impdp .. 追加: 以上命令没有将数据目录映射出来,如果容器被误删或者启动不了了,所有的数据都会丢失,然后就开始了趟路径映射的坑。

Oracle的存储结构关系

断了今生、忘了曾经 提交于 2020-01-20 03:14:07
oracle数据库的整体结构 数据库的结构关系   其实,我前面一篇讲表空间的时候就介绍了数据库的结构,只是那个图只是简单的层次关系,这张图片看上去挺封复杂的,只要关注几个概念就行了。 Database (数据库) :数据库是按照数据结构来组织、存储和管理数据的仓库。 Tablespaces (表空间) :表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的对象是表, 所以称作表空间。 Segments (段) : 段是表空间的重要组织结构,段是指占用数据文件空间的通称,或数据库对象使用的空间的集合;段可以有表段、索引段、回滚段、临时段和高速缓存段等。 extents (盘区) :是数据库存储空间分配的一个逻辑单位,它由连续数据块所组成。第一个段是由一个或多个盘区组成。当一段中间所有空间已完全使用,oracle 为该段分配一个新的范围。 Data Block (数据块) : 是 oralce 管理数据文件中存储空间的单位,为数据库使用的 I/O 的最小单位,其大小可不同于操作系统的标准 I/O 块大小。 ( Storage Clause Precedence )存储规范优先   Oracle 在存储控制上可以分为三个方式。 oracle 缺省级别、表空间级别、段级别,可以理解中央、省级、县级。从中央到地方的法规条例

漫谈MySQL体系结构[转]

落爺英雄遲暮 提交于 2020-01-20 01:47:38
背景 了解MySQL的架构图,对MySQL有一个整体的把握,对于以后深入理解MySQL是有很大帮助的。比如:很多查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行。 MySQL从概念上分为四层,如下图: 这四层自顶向下分别是 网络连接层,服务层(核心层),存储引擎层,系统文件层 。 我们自顶向下开始讲解。 网络接入层 作用 主要负责 连接管理、授权认证、安全 等等。每个客户端连接都对应着服务器上的一个线程。服务器上维护了一个线程池,避免为每个连接都创建销毁一个线程。当客户端连接到MySQL服务器时,服务器对其进行认证。可以通过用户名与密码认证,也可以通过SSL证书进行认证。登录认证后,服务器还会验证客户端是否有执行某个查询的操作权限。这一层并不是MySQL所特有的技术。 为什么要设计成线程池? 在服务器内部,每个client都要有自己的线程。这个连接的查询都在一个单独的线程中执行。想象现实场景中数据库访问连接实在是太多了,如果每次连接都要创建一个线程,同时还要负责该线程的销毁。对于系统来说是多么大的消耗。由于线程是操作系统宝贵的资源。这时候线程池的出现就显得自然了,服务器缓存了线程,因此不需要为每个Client连接创建和销毁线程。 服务层 作用 第二层服务层是MySQL的核心,MySQL的核心服务层都在这一层, 查询解析,SQL执行计划分析

oracle表空间相关统计查询

元气小坏坏 提交于 2020-01-19 03:57:36
部分转自 https://www.cnblogs.com/xwdreamer/p/3511047.html --查询表空间使用情况 SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100, 2), '990.99') || '%' "使用比", F.TOTAL_BYTES "空闲空间(M)", F.MAX_BYTES "最大块(M)" FROM (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES, ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES FROM SYS.DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F, (SELECT DD.TABLESPACE_NAME, ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB FROM SYS

Oracle学习笔记—connect、resource和dba三种权限(转载)

Deadly 提交于 2020-01-18 09:10:08
一、Oracle数据字典   数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等。当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息。   Oracle中的数据字典有静态和动态之分。静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。以下分别就这两类数据字典来论述。   1.静态数据字典   这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*、 all_*、 dba_*。   user_*:该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)   all_*:该试图存储了当前用户能够访问的对象的信息。(与user_*相比,all_* 并不需要拥有该对象,只需要具有访问该对象的权限即可)   dba_*:该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)   从上面的描述可以看出,三者之间存储的数据肯定会有重叠,其实它们除了访问范围的不同以外

MySQL 核心技术_存储引擎

淺唱寂寞╮ 提交于 2020-01-18 04:58:10
存储引擎 1. 存储引擎介绍 相当于Linux 文件系统.组织存储表数据. 2. 存储引擎的种类 show engines; InnoDB MyISAM CSV Memory 其他的存储引擎: MariaDB : InnoDB,TokuDB ,Myrocks percona : xtradb ,TokuDB ,Myrocks TokuDB ,Myrocks : 比较适合于在写入操作较多的场景,数据量级大的场景. 原因是: 插入性能很高, 压缩比较高. 监控类的业务. 学员案例: 环境: zabbix 3.x mariaDB 5.5 centos 7.3 现象 : zabbix卡的要死 , 每隔3-4个月,都要重新搭建一遍zabbix,存储空间经常爆满. 问题 :zabbix 版本 数据库版本 —> 5.5 ----> ibdata1 ----> 5.7 ,8.0 zabbix数据库500G,存在一个文件里 优化建议: 1.数据库版本升级到Mairia 10.x版本,zabbix升级更高版本 2.存储引擎改为tokudb 3.监控数据按月份进行切割(二次开发:zabbix 数据保留机制功能重写,数据库分表) 4.关闭binlog和双1 等安全参数需要关闭 5.参数调整… 优化结果: 监控状态良好 select concat(“alter table zabbix.”,table

吴裕雄--天生自然ORACLE数据库学习笔记:Oracle数据备份与恢复

情到浓时终转凉″ 提交于 2020-01-17 18:27:56
run{ allocate channel ch_1 device type disk format = 'd:\oraclebf\%u_%c.bak'; backup tablespace system,users,tbsp_1,ts_1 channel ch_1; } --在SQL*Plus环境下 connect system/1qaz2wsx create tablespace rman_tbsp datafile 'D:\OracleFiles\Recover\rman_tbsp.dbf' size 2G; create user rman_user identified by mrsoft default tablespace rman_tbsp temporary tablespace temp; grant connect,recovery_catalog_owner,resource to rman_user; //在cmd命令行环境下 rman catalog rman_user/mrsoft target orcl; //在rman模式下 create catalog tablespace rman_tbsp; register database; //--在cmd模式下 rman target system/1qaz2wsx catalog rman_user

记一次Oracle 19c redo误删除的故障恢复 [ORA-00742 ORA-00312 没有归档]

半城伤御伤魂 提交于 2020-01-17 02:18:35
现场工程师晚上处理磁盘空间满的问题时,误删除了redo日志文件,又自己进行了一些尝试性操作,具体不可表。我接到 CASE 时告警信息 ORA-00742 ORA-00312。 该数据库没有开归档,没有备份,尝试把数据库拉起来吧。 做操作之前备份数据库相关文件 (数据文件,控制文件,参数文件等) 首先尝试 resetlogs 开库,如果数据库状态一致是有可能直接起来的。 recover database until cancel ; recover database using backup controlfile until cancel ; alter database open resetlogs ; 无法实例恢复,报了一堆错误,大体如下: ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: ‘/oradata/ora19c/system01.dbf’ ORA-00279: change 3721457 generated at 01/16/2020 10:22:39 needed for thread 1 ORA

Day03_Oracle

一个人想着一个人 提交于 2020-01-17 01:14:11
文章目录 使用DDL语句管理表 Oracle体系结构 表空间 用户 创建用户 给用户赋予权限 Oracle中存在三个重要角色 角色授权 创建表 修改表 列的约束 删除表 在建立外键的情况下删除 插入数据&删除数据&更新数据 事务 保存点:savepoint 视图 同义词 序列 索引 SQL分类 汇总 使用DDL语句管理表 Oracle体系结构 表空间 创建表空间 逻辑单位:通常情况下,我们创建一个新的项目就会创建一个表空间,在表空间中创建表 创建表空间的语句 create tablespce [ 表空间名称 ] detafile '文件的路径(在服务器上)' size ( 大小 / m ) autoextend on --自动扩展 next ( 每次自动扩展的大小 / m ) 练习:在D:盘下创建一个100m的表空间,表空间名为ycxy,设置每次扩展大小为10m create namespace ycxy datafile 'D:\ycxy.dbf' size 100 m autoextend on next 10 m ; 删除表空间 先在数据库中删除联系,再到硬盘中删除文件 删除语句 drop tablespace 表空间名称 ; 练习:删除名为ycxy的表空间 drop tablespace ycxy ; 用户 创建用户 create user 用户名 identified

如何将备份的oracle数据库还原到指定用户下。

浪子不回头ぞ 提交于 2020-01-16 15:35:40
上一文章 oracle11g数据库--创建表空间,创建用户,用户授权并指定表空间。 我们已经建好了指定的新用户pdmis。 接下来我们需要将备份好的数据库,还原至新用户pdmis下。 想要还原,我们需要将备份好的dmp文件。拷贝至目标服务器下(此处为D:\oraclebf\PDMIS\PDMIS.DMP) 出现上面问题是因为要传的文件太大造成的,我可以将本分文件通过压缩文件压缩后再传压缩文件(5.15g的备份文件被压缩为515m) 传到目标服务器后,再进行文件解压缩。保存至对应的路径下(此处为D:\oraclebf\PDMIS\PDMIS.DMP) 这些准备工作完成后,我们可以通过IMP命令进行数据库还原工作。 cmd(管理员模式)--输入一下命令(备份、还原无需进入sqlplus命令,注意!!!) imp/exp 用户名/密码@service_name或oracle_sid file=D:\导如(出)文件名称.dmp full=y ignore=y full=y ( 全库导出): 导出除ORDSYS,MDSYS,CTXSYS,ORDPLUGINS,LBACSYS 这些系统用户之外的所有用户的数据 ignore=y 表示忽略创建错误(比如有重复的表,就不再导入),继续后面的操作 根据实际需求,我们的还原命令如下: imp pdmis/pdmis@orcl file=d: