数据的世界无奇不有,常常会遇到一些超出常识之外的故障的发生。这就要求广大的DBA要深入了解数据库的内部机制,面对一些奇葩的故障或者问题能够拨开迷雾找到真相。今天我们一起来盘点一下Oracle数据库中,
chown -R oracle:oinstall /soft/database/oracle/ chown -R 755 /soft/database/oracle/
条件:1、误强制删除linux下的数据文件(rm -rf)。2、未重启数据库或操作系统。3、数据库是归档模式
在操作系统层面,Oracle 数据库将数据存储在数据文件中。Oracle 数据库必须至少有一个数据文件。数据文件是数据库中所有数据的实际存储空间,所有数据文件大小的和构成了数据库的大小。根据数据信息类型不同,数据文件分为永久性数据文件和临时数据文件两种。
Oracle 临时表空间是Oracle数据库的重要组成部分,尽管该部分并没有cont体系结构上得以展现,但其重要地位也是不容忽视的。尤其是 对于大型的频繁操作,如创建索引,排序等等都需要在临时表空间完成来减少内存的开销。当然对于查询性能要求较高的应尽可能的避免在磁盘 上完成这些操作。本文主要描述的是临时表空间的管理与受损恢复。
编辑手记:对于资深的老DBA们,他们在漫长的职业生涯中养成了很多稀奇古怪的守则,以在复杂多变的环境中“幸存”,这源于无数血泪的教训,我曾经在《数据安全警示录》一书收录了大量现实案例,现在整理分享给大家,共为警示。 案例分享 ---- 误删除Oracle软件 硬件维护人员删除归档日志的时候,把节点2的整个ORACLE_HOME都删除了。在删除的时候没有注意到目录改变了,还键盘做了一个向上的动作,刚好就是刚刚使用的 rm -rf *,然后一个下意识的动作回车就这么按下去了。 空格
有一个环境是10gR2,一主两备,因为10g的备库还不是active,所以有一些查询的需求的时候,我们还是会打开相应的窗口时间。 开发的同学需要做一个大查询,数据只能全表,而且还有order by,势必会消耗大量的temp空间,这个时候充分利用备库就是好一些,有一个备库平时也没有用过,今天就用这个备库来完成查询需求。 但是过了一会,开发同事说,查询失败了。让我看看什么原因。 开发同学提供的日志为: 2015-11-20 10:48:05,---exception: ---- StatementCallbac
数据块是Oracle存储和数据操作的最小单位,但不一定和操作系统的os块相同,一个数据块可能有多个os块构成。
我们的软件设计数据库里的表一般都会挺多的,特别是用户想要到新的报表格式时,相关的查询可能会关联多个数据表,如果全部用select的表进行关联查询除了写语句会非常的长,测试时如果出现问题也不容易修改,所以我们就会引入一个临时表的概念,分步把要组合的数据插入到临时表中,再用select查询临时表输出数据。这样做的好处可以分部进行处理,调试的时候也可以看到临时表中每步的数据变化,方便找到问题。
前言 本贴内容纪录Oracle课程中的学习笔记,和Oracle的课后作业,以及数据库相关课程的学习笔记,笔记部分使用实例代码记录,不记详细语法。 用户管理 1.如果新安装数据库后,忘了oracle用户的密码,可以用哪些方法重新设置密码?(从系统用户sys和普通用户scoot两个方面去考虑),针对两种不同类型的用户,给出解决问题的具体思路和代码。 分两种情况考虑: 一种是忘记普通用户(如scoot) 用SYS (或SYSTEM)用户登录: CONN SYS/PASS_WORD AS SYSDBA;
原文链接 http://www.oracle.com/technetwork/database/bi-datawarehousing/twp-bp-for-stats-gather-12c-1967354.pdf 译者 胡红伟 虽然优化器需要准确的统计信息来选择最优的执行计划,但是有些场景下,收集统计信息比较困难,或消耗资源较高,或收集统计信息不能及时完成,那么就需要另一种备选策略。 不稳定的表 不稳定的表即随着时间的变化,数据会发生巨大变化的表。例如,一个订单队列表,一天的开始它是空的,随着时间推移,订
实例是指在内存中分配的一块共享内存区域(SGA)和一组后台进程(或线程),它们用于访问和控制数据库。3实例是Oracle数据库的运行时环境,它是数据库的动态部分,它可以启动和关闭,也可以有多个实例同时运行。
这种临时表不占用表空间,而且不同的SESSION之间互相看不到对方的数据 在会话结束后表中的数据自动清空,如果选了DELETE ROWS,则在提交的时候即清空数据,PRESERVE则一直到会话结束
,但到底怎么设计和优化根据业务的事情这点也和数据库有关,不同类型的数据库的特点不同,所以表设计的方式也不同,大部分开发都不大懂,把ORACLE的表直接照搬到MYSQL(第三方或有些说支持多种数据库的软件公司) ,结果也可想而知。知识的扩展如果懂得数据库种类数量算是横向扩展,那根据业务逻辑来进行表的设计就是纵向发展的一部分,所以希望大家可以帮助,拽人或者加入扩展自己,互相帮助。也十分欢迎开发的同学,we are friend ,help each other.
在Oracle中,临时表分为会话级别(session)和事务级别(transaction)两种。
ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,这里介绍一个ETL工具Kettle,这个工具很强大,支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现。
PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。
Oracle中逻辑结构包括表空间(TABLESPACE)、段(SEGMENT)、区(EXTENT)和块(BLOCK)。数据库由表空间构成,而表空间又是由段构成,而段又是由区构成,而区又是由Oracle块构成,即块→区→段→表空间→数据库。
作者简介 苏星开 云和恩墨南区交付技术顾问,曾服务过通信、能源生产、金融等行业客户,擅长 SQL 审核和优化,DataGuard 容灾等。 1 概述 在 Oracle 12.2 版本和新发布的18.0
** 1.无ORDER BY排序的写法。(效率最高) (经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!) SELECT *
Linux同平台数据库整体物理迁移 需求:A机器不再使用,要将A机器的Oracle迁移到B机器。 之前写过类似需求的文章:http://www.cnblogs.com/jyzhao/p/3968504.html 本文这次旨在更多用到自动化通用的整合脚本去实现同平台的数据库整体迁移。
目前所有使用Oracle作为数据库支撑平台的应用,大部分是数据量比较庞大的系统,即表的数据量级一般情况下都是在百万级以上。当然,在Oracle中创建分区是一种不错的选择,但是当发现应用有多张表关联的时候,并且这些表大部分都比较庞大,而关联的时候发现其中的某一张或者某几张表关联之后得到的结果集非常小,并且查询得到这个结果集的速度非常快,那么这个时候考虑在Oracle中创建“临时表”。
11g 官方文档:https://docs.oracle.com/cd/E11882_01/server.112/e25494/tables.htm#ADMIN11668
5、支持多种OS,提供多种API接口,支持多种开发语言,对流行的PHP,Java很好的支持
MEMORY_TARGET参数在Oracle 11g被引进,主要是用于控制Oracle对于系统内存的使用,首次将SGA与PGA整合到一起实现自动管理。一旦设置了MEMORY_TARGET参数值,Oracle会根据需要自动调整SGA与PGA以合理的分配及使用内存。但如果MEMORY_TARGET设置不当,就容易引起ORA-00845,因为MEMORY_TARGET与/dev/shm(tempfs)息息相关,本文即是对由此引发问题的描述。
作者 | 罗贵林: 云和恩墨技术工程师,具有8年以上的 Oracle 数据库工作经验,曾任职于大型的国家电信、省级财政、省级公安的维护,性能调优等。精通 Oracle 数据库管理,调优,问题诊断。擅长 SQL 调优,Oracle Rac 等维护,管理。
技术社群的这篇文章《技术分享 | 如何校验 MySQL&Oracle 时间字段合规性》,介绍了对MySQL和Oracle数据库插入时间规范校验方面的问题,这种操作很少见,但校验的场景,还是很常见的。
数据库的作用就是实现对数据的管理和查询。任何一个数据库系统,必然存在对数据的大量读或者写或者两种操作都大量存在。I/O 问题也往往是导致数据库性能问题的重要原因。
临时表空间是Oracle数据库的重要组成部分,尤其是对于大型的频繁操作,如创建索引、排序等等都需要在临时表空间完成来减少内存的开销。当然对于查询性能要求较高的操作应尽可能的避免在磁盘上完成这些操作。
上一章我们介绍了Oracle的临时表的使用方法《Oracle的临时表的使用》,就像我前面说的,多表关联查询的时候会用到临时表插入数据,然后再用select查行查询,在往临时表里插入数据的时候,我们经常会用到判断如果临时表里有了这部分数据我们就要更新数据,如果临时表里没有这部分数据我们就要插入,这个时候就到用了Merge into语句了。
在墨天轮平台有个[数据库每日一题]栏目,均是由各行各业的各位专家亲自出题,墨天轮审核后发布的一系列数据库知识点集合,本次只是收集了 20 天的题目以及给出了尽可能详细的答案解析,以供大家多次阅读。
作者 周天鹏 出品 沃趣技术 上月中旬,Oracle 正式宣布 Oracle Database 18c,配套的官方文档已可以在官网查看。但按照惯例,依然是Oracle Exadata抢得首发,
由于本次迁移为历史库迁移,且数据库未开启归档模式,所以选择较为便捷第二种方式进行迁移。
好久没有给大家发面试题了,最近收集了一套Oracle的面试题,特地整理出来分享给大家,希望对你有帮助。
携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第15天,点击查看活动详情 >>
Oracle数据库是业界的翘楚,各行各业拥有大量的Oracle DB的DBA,本文尝试通过将Oracle与MySQL数据库的架构、安全、模式对象、数据类型及数据存储进行对比,以方便熟悉Oracle数据库的人可以快速了解MySQL。
以上是Oracle数据库的物理存储结构及各个重要文件的作用。通过正确配置和管理这些文件,可以确保数据库的安全性和可靠性。
在oracle中,使用in方法查询记录的时候,如果in后面的参数个数超过1000个,那么会发生错误,JDBC会抛出“java.sql.SQLException: ORA-01795: 列表中的最大表达式数为 1000”这个异常。
linux常见的文件系统有以下几类: 1、文件系统 Linux是通过文件系统在存储设备上存储文件和目录的。Linux的文件系统为我们在硬盘中存储的0和1和应用中使用的文件与目录之间搭建起了一座桥梁。
在Oracle 23c中提供了一个非常有价值增强功能。在没有 FROM 子句的情况下运行 SELECT 表达式查询可以帮助开发人员执行计算、检索系统函数或生成临时结果,而无需引用任何特定的表。
安装完成后重启mysql服务,查看状态是 Active: active (running) ,说明启动成功
java面试(3)SQL优化
触发器是指存放在数据库中,并被隐藏执行的存储过程。在Oracle8i之前,只允许基于表或视图的DML操作(insert,update,delete)建立触发器,在oracle8i之后,不仅支持DML操作,也允许基于系统事件(启动数据库,关闭数据库,登录)和DDL操作建立触发器。
MySQL5.7版本没有提供类似Oracle的分析函数,比如开窗函数over(…),oracle开窗函数over(…)使用的话一般是和order、partition by、row_number()、rank()、dense_rank()几个函数一起使用,具体的用法可以参考我之前的博客oracle开窗函数用法简介
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
1 在MYSQL 5.7 临时表包含了一个 "converting HEAP to on disk", 意思当临时表达到最大的内存使用的限制(一个表一个)16MB,则系统就要将这个临时表放到磁盘上了,但MYSQL 8.0 将这个默认的临时表的设置变成1GB
建库(一般习惯配置gdbname与sid名一样,sys密码与system密码一样,以方便记忆)
(1)oracle11g建库(一般习惯配置gdbname与sid名一样,sys密码与system密码一样,以方便记忆)
领取专属 10元无门槛券
手把手带您无忧上云