- 博客(240)
- 问答 (1)
- 收藏
- 关注
原创 oracle表分区--范围分区
分区,就类似于我们将图书分类放到了不同的区间中,这个时候,我们就可以只针对其中的某一类图书进行操作,比如进行该类书籍的查询、上架、下架、甚至将该类图书付之一炬,这带来了两个特别大的优势,第一,我们无视其他分区的数据;节约维护的成本,传统的维护操作,例如重建索引等,因为有锁机制的存在,是会影响到其他人的读取和更新删除操作的,但是由于有了分区,我们在维护IT类书籍的时候,就不会对其他分类的数据造成影响,这个时候,可以降低因为维护数据而对其他系统数据产生的各种影响。3)在最高的分区中,MAXVALUE被定义。
2025-02-12 14:58:30
1639
1
原创 oracle闪回表
#### 1、删除关于表的所有数据(表数据,索引,主键等对象),闪回恢复的时候同时恢复。#### 2、未清理回收的情况下,成功闪回表,清理回收站的情况下,闪回表失败### 3、闪回表的同时对原有的表进行重新命名后,所有的数据将恢复到新表中
2025-01-10 12:14:43
457
原创 oracle闪回版本查询
闪回版本查询(Flashback Versions Query)是Oracle数据库提供的一种功能,允许用户查看某个表在特定时间范围内的所有版本。这对于审计和调试数据修改问题非常有用。通过闪回版本查询,你可以了解表中的数据在某个时间段内的变化历史。
2025-01-08 18:54:34
388
原创 oracle闪回恢复数据:(闪回查询,闪回表,闪回库,回收站恢复)
oracle的闪回查询,可以查询提交在表空间的闪回数据,并可以还原所查询的数据,用于恢复短时间内的delele 或者 update 误操作,非常方便,缺点是只能恢复大概几小时内的数据。
2025-01-07 18:16:54
2587
原创 oracle 数据库回收站恢复误删除表
在Oracle 12c及更高版本中,被删除的表一旦进入回收站,就会被立即清除,所以从技术角度来看,“回收站中的记录保留时间”是不适用的。执行后,被误删的表和表中的索引会一起恢复到原来的状态和删除前的状态保持一致,同时表恢复后,oracle回收站中的记录也消失。1、通过回收站来恢复删除的表的前提为“回收站”的功能是打开的情况下,则能使用回收站来恢复;TYPE:删除的类型(表、视图、索引),表中添加的索引,表和索引一起被删除。回收站已经有刚才被误删除的表信息,接下来利用命令恢复就行。的回收站功能,如果是。
2025-01-06 18:47:47
808
原创 性能优化一:oracle 锁的原则
根据上面两个视图中查到的sid可以在dba_objects通过事务的查询到具体那个事务的阻塞情况和具体那个表。,导致session2进行事务操作的时候被阻塞需要等待session1,通过这个视图可以看到一个用户所有拥有的所有对象,方便dba进行检测。8、当一行被修改后 , Oracle通过回滚段提供给数据的一致性读。,STATISTIC#就是统计量的编号(用来唯一确定统计量的名称)当会话seesion1进行事务操作的情况下,未对相关的事务进行。3、当某行被修改时 ,它将阻塞别人对它的修改。
2024-09-13 12:27:27
1185
1
原创 oracle执行计划分析
索引全扫描是指扫描目标索引所有叶子块的索引行,但不意思着需要扫描所有的分支块,索引全扫描时只需要访问必要的分支块,然后定位到位于该索引最左边的叶子块的第一行索引行,就可以利用该索引叶子块之间的双向指针链表,从左往右依次顺序扫描所有的叶子块的索引行。类似一个嵌套的循环。全表扫描是采用多数据块一起扫的,并不是一个个数据库扫的,然后我们经常说全表扫描慢是针对数据量很多的情况,数据量少的话,全表扫描并不慢的,不过随着数据量越多,高水位线也就越高,也就是说需要扫描的数据库越多,自然扫描所需要的IO越多,时间也越多。
2024-09-11 18:29:30
1299
1
原创 oracle锁的机制
1. 避免应用不运行长事务。2. 经常提交以避免长时间锁定行。3. 避免使用LOCK命令锁定表。4. 在非高峰期间执行DDL操作,在非高峰期间执行长时间运行的查询或事务。另外需注意,需监测系统中死锁,调查为什么这些锁正被保持,频率;当死锁发生通过回滚事务rollback或者终止会话来解决它。持续更此篇章--------->2024年9月6日!!!!!
2024-09-06 19:25:56
1430
原创 oracle事务隔离级别
事务T1更新了一行记录,还未提交所做的修改,这个T2读取了更新后的数据,然后T1执行回滚操作,取消刚才的修改,所以T2所读取的行就无效,也就是脏数据。事务T1读取一行记录,紧接着事务T2修改了T1刚刚读取的记录并commit,然后T1再次查询,发现与第一次读取的记录不同,这称为不可重复读。3. Isolation(隔离性):多个并发事务可以独立运行,而不能相互干扰,一个事务修改数据未提交前,其他事务看不到它所做的更改。4. Durability(持久性):事务提交后,数据的修改是永久的。
2024-09-06 19:10:00
920
原创 字节、字符、字符集、字符编码
使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对。而以计算机为基础的信息处理系统则是利用元件(硬件)不同状态的组合来存储和处理信息的。元件不同状态的组合能代表数字系统的数字,因此字符编码就是将符号转换为计算机可以接受的数字系统的数,称为数字代码。随着时代的发展,程序员们希望在计算机中显示字符,但计算机只能识别0和1的二进制数。,在GBK编码中一个汉字占2个字节,在UTF-8编码中一个汉字占3个字节。是一个系统支持的所有抽象字符的集合。
2024-09-05 18:35:19
293
原创 oracle数据块内部结构详解
操作系统块是操作系统读写的最小操作单元,也是操作系统文件的属性之一。当创建一个Oracle数据库时,选择一个基于操作系统块的整数倍大小作为Oracle数据库块的大小。Oracle数据库读写操作则是以Oracle块为最小单位,而非操作系统块。数据库块也称逻辑块或Oracle块,它对应磁盘上一个或多个物理块,它的大小由初始化参数DB_BLOCK_SIZE决定,可以定义数据块为2K、4K、8K、16K、32K甚至更大,默认Oracle块大小是8K。
2024-09-04 17:59:48
1257
原创 Oracle---PAG程序全局区的组成:堆栈区、会话区、游标区、排序区
系统会会从硬盘中获取一个空间,来保存需要排序的数据,此时排序的效率会降低很多,如果日常工作中排序的操作较多的情况下,应该为PGA的排序区设置较大的空间,从而提示访问数据库的效率。答:首先数据库系统将需要排序的数据保存到PGA程序缓存区中的一个排序区中,然后排序区对这些数据进行排序,如果排序的数据为2m,那么排序区至少要有2m的空间来容纳排序数据量,排序过程中又需要2m的空间来保存排序后的数据,,那么至少本次排序过程中,排序区空间大小应该至少为4m,相当于。简单的说,就是SQL语句可以接受用户传入的变量。
2024-09-03 18:32:50
1359
1
原创 oracle----undo表空间
SMON进程会去查看 undo segment头部(头部即 undo segment的第一个数据块)记录的事务表(每个事务在使用undo块时,因为其他用户读到的数据是undo segment中原数据块中的数据,若undo块中存放的被修改的数据被其他事务覆盖,则无法找到被修改前的数据,就会抛出ORA-1555 snapshot too old 错误。若将undo_tablespace 参数设置为另一个undo表空间,被称为undo表空间的切换;undo_tablespace系统的默认的UNDO表空间。
2024-09-03 14:41:05
1200
原创 oracle11g常用基本字典和动态性能字典
(相关的动态性能视图保存了数据库真实的运行情况,方便运维人员发现问题、预测问题,从而进行性能的优化和提升)。,可以帮助数据库管理员和开发人员。在Oracle 11g中,
2024-09-01 00:30:53
552
1
原创 oracle物理存储结构文件详解
包含维护和验证数据库完整性的必要信息,其中记录了数据库的物理结构。例如,控制文件用于识别数据文件和Redo日志文件。每个Oracle数据库都有相应的控制文件,一个数据库至少需要一个控制文件,控制文件属于二进制文件。控制文件的命名格式通常为ctr*.ctl。,一个数据库至少需要两组联机Redo日志文件。联机Redo日志文件也叫在线重做日志文件或联机重做日志文件。定义Oracle实例的特性,分为SPFILE和PFILE两种类型的参数文件。认证哪些用户有权限启动和关闭Oracle实例。数据库所做的更改记录。
2024-08-29 14:32:29
943
原创 oracle内存结构--PGA(进程全局区)私有的
设置PGA_AGGREGATE_TARGET为非0,则启用PGA自动管理,并忽略所有*_area_size的设置。用于实例中各活动工作区(work area)的PGA总量,为PGA_AGGREGATE_TARGET减去其他组件分配的PGA内存。默认为启用PGA的自动管理,Oracle根据SGA的20%来动态调整PGA中专用与Work Area部分的内存大小,最小为10MB。b.运行典型的负载,通过oracle收集的pga统计信息来调整PGA_AGGREGATE_TARGET的值。
2024-08-28 14:40:04
1244
原创 oracle 重做日志(Redo LogBuffer)
重做日志文件用于记录事务操作所引起的数据的变化,包括回滚段事务表、回滚块、数据块上的事务槽、数据行的变化等,当执行DDL、DML操作时,有LGWR进程将日志缓冲区中与事务相关的重做记录写入到重做日志文件中。当丢失或损坏数据库中的数据时,Oracle会根据redo文件中的记录 恢复丢失的数据。
2024-08-27 19:00:35
1924
1
原创 Buffer Cache基础
Oracle数据库还会运用预读取策略,即在读取当前请求的数据块时,预测性地读取相邻的数据块放入Buffer Cache,以减少后续可能的I/O操作。对于大对象(LOB)数据类型,考虑使用直接路径读取(Direct Reads),避免大量LOB数据填充Buffer Cache,影响常规数据块的缓存。减少不必要的锁定冲突,优化并发访问,防止因过度竞争而导致的频繁BUFFER PIN(固定缓冲区)情况,从而提升Buffer Cache的利用率。然而,在现代Oracle数据库版本中,脏缓冲区写回磁盘通常由数据库。
2024-08-26 13:41:44
455
1
原创 Oracle----shared poll共享池详解
有可能会发生该对象的句柄存在,但是句柄所指向的对象已经被交换出内存的情况出现。, 比如表明、表的列、用户权限等信息,如果dictionary cache中没有这些信息,将system表空间里的数据字典信息调入buffer cache内存,读取内存数据块的数据字典内容,然后将这些读取出来的数据字典内容按照行的形式加入dictionary cache里,从而构造出dc_tables之类的对象,然后从dictionary cache中的行数据中读取有关的列信息放入library cache中。
2024-08-21 17:13:02
1310
1
原创 shared pool组成部分:free、library cache、row cache内存块工作模式
需要说明的是,shared pool共享池的大小空间可以通过修改参数进行扩容的,而 library cache、row cache等无法直接进行大小空间的扩容,oracle会根据实际的使用情况,自动设置这两个的大小。剩下了一个1K的空闲内存块,把它挂在free空间的1K的链上。8K链上的内存块大小就大于等于8K而小于12K。4K链上的内存块大小就大于等于4K而小于8K。把sql语句和执行计划写到这个10K的块中,就把11K的分成两个 一个10K、一个1K。这些chunk和free的chunk不一样。
2024-08-20 17:36:46
991
原创 oracle共享池(shared pool):一、工作原理、组成部分 二、软硬解析过程
1、硬解析( hard parse ) : 当一条 SQL 语句进入共享池后,没有解析成执行计划的缓存,就需要进行硬解析—2、软解析( soft parse ) : 当一条 SQL 语句进入共享池后,共享池中有执行计划的缓存,就进行软解析—在 shard pool 中,前台进程会将 SQL 语句解析成执行计划,这部分中解析方式有两种:硬解析和软解析。解析====》执行===》返回,此处涉及到“解析”,下文将详细分析和总结,3、解析总数=硬解析总数+软解析总数,1、 将 sql 语句解析成执行计划。
2024-08-20 12:47:56
1272
原创 oracle数据库缓存区高速缓存区
这些高速缓存通过不同的初始化参数(如DB_16K_CACHE_SIZE)来配置,确保每种大小的数据块都能高效缓存。进行的,即使用户只查询一个字节的数据,Oracle也会将包含该字节的整个数据块读入高速缓存中。这种配置确保了不同大小的数据块都能被分别缓存,优化了不同类型数据的访问速度。DB_16K_CACHE_SIZE=56MB(16KB数据块的高速缓存)DB_CACHE_SIZE=24MB(8KB数据块的高速缓存),数据块的大小由DB_BLOCK_SIZE参数决定。,比如8KB、16KB、32KB等。
2024-08-19 19:55:28
890
原创 RAID磁盘阵列
独立硬盘冗余阵列,旧称廉价磁盘冗余阵列,简称磁盘阵列。利用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵列组,目的为提升性能或数据冗余,或是两者同时提升。RAID把多个硬盘组合成为一个逻辑硬盘,因此,操作系统只会把它当作一个实体硬盘。RAID功能的实现:提高IO能力,提高耐用性,磁盘冗余备份磁盘阵列分为软raid和硬raid软raid依靠软件来实现,硬raid依靠硬件实现。
2024-08-19 17:12:52
328
1
原创 oracle数据库目录及文件
其中的子目录,基本上 Oracle每个组件都有了自己 单独的目录,在 Oracle10g 中我们一直诟病的 log 文件散放在四处的问题终于得到解决,无 论是 asm 还是 crs 还是 rdbms,所有组件需要被用来诊断的 log 文件都存放在了这个新的目录下。1、admin 目录 里边有不同文件夹,代表一个实例,记录 Oracle 实例的配置,运行日志等文件。Oracle RDBMS 的软件存放目录。闪回区:分配一个特定的目录位置来存放一些特定的恢复文件,用于集中和简化管理数据库恢复工作。
2024-08-17 21:45:47
515
1
原创 oracle执行计划方式一:Autotrace自动跟踪功能
4、physical reads 物理读:物理读从磁盘中读取数据块得数量,主要发生得原因:1、数据库高速缓存中不存在这些块。这个值越高说明从磁盘请求大量的数据到buffer cache总,通常意味着存在大量的全表扫描sql语句,会影响数据库的性能,尽量避免全表扫描,全表扫描的sql应添加相应索引,来优化sql;1、recursive calls:用户和系统级别生成得递归调用数,简而言之就是sql中得sql。3、consistent gets 逻辑读:逻辑读从内存中读取数据块的数量,,
2024-08-01 14:10:47
634
1
原创 oracle表、表空间使用空间
1、可以查看到数据库所有表空间的名称、容量大小、表空间剩余大小、表空间使用百分比等信息。可以查询到表空间的名称、
2024-07-30 17:57:48
2673
原创 Oracle常用数据字典表
说明:可以根据视图的text_length值设定set long 的大小。查看序列号,last_number是当前值。## 查看索引的大小。
2024-07-29 12:32:44
1326
1
原创 oracle数据库常用数据字典查询详细信息总结
其中很多的数据字典都必须以 system 或者是 sysdba 用户登录才能够使用的。通过 Oracle Sql Developer 进行过测试的,全部通过。
2024-07-29 12:11:46
643
原创 oracle数据字典详解
select privilege from dba_SYS_privs where grantee=‘USERNAME’
2024-07-17 22:33:38
341
原创 oracle备份和恢复exp/imp-----从全库备份中恢复用户库解题思路
其中fromuser=gk为.dmp文件里的对象的原先的owner,full方式可以备份所有用户的数据库对象,包括表空间、用户信息等,第一步:使用系统管理员账号将oracle整个导出备份----touser=gk123为作为导入的对象的新的Owner。owner=XX只能备份指定用户的对象。第二步:删除全库中的用户库(
2024-07-17 19:02:32
549
原创 Oracle用户、授权、角色管理
预定义角色是在数据库安装后,系统自动创建的一些常用的角色。下介简单的介绍一下这些预定角色。角色所包含的权限可以用以下语句查询:sql>select * from role_sys_privs where role=‘角色名’;
2024-07-16 14:52:32
4960
原创 oracle重做日志
对应第一种情况,oracle会使用实例恢复,使用重做日志自动恢复数据,不需要用户干预。没错,实例恢复,它是自动的。每个数据库至少有两个日志文件组,每组至少包含1个或者多个日志文件成员,v$log 记录数据库中有多少个重做日志组,每个组中有多少个成员、日志大小及状态。对应第二种情况,便需要DBA使用备份,重做日志,归档日志来恢复数据了。一是,因为停电或死机,脏块未写入磁盘,造成该数据丢失。当前显示有3组重做日志,每组重做日志只有一个成员日志,查看数据库目前重做日志的组、组成员等信息,
2024-07-15 16:25:50
478
原创 oracle控制文件详解以及新增控制文件
控制文件在数据库创建时被自动创建,并在数据库发生物理变数时更新。控制文件被不断更新,控制文件是一个很小的二进制文件(10MB左右),含有数据库结构信息,包括。3、复制一个命名control03.ctl的控制文件。第一步:看control_file路径。2、切换到上面路劲的控制文件的目录下。第三步、修改spfile。第二步:复制控制文件。第四步、确认增加成功。
2024-07-12 18:08:57
1029
原创 Oracle数据库模式对象
2、 模式对象包括:聚簇、约束、数据库链接、触发器、维、外部过程库、索引和索引类型、JAVA类及JAVA资源、物化视图、物化视图日志、对象表、对象类型、对象视图、操作符、序列、函数、存储过程和包、同义词、表、索引组织表、视图。1、模式(schema)是一个数据库对象的集合。模式为一个数据库用户所有,与用户名字相同。通俗来说,模式对象就是一个用户。
2024-07-11 18:55:19
223
原创 Oracle数据库自带的内置表和视图、常用内部视图
实现视图 user_mviews 物化视图user_mview_logs 物化视图日志user_mview_comments 物化视图注释user_mview_refresh_times 物化视图刷新时间user_mview_analysis 物化视图的附加信息user_mview_detail_relations 物化视图FROM列表的详细关系user_mview_keys 物化视图列(或者 GROUP BY子句中的列)
2024-07-09 19:35:51
1862
原创 oracle逻辑层级详解(表空间、段、区、数据块)
oracle数据库内的每个表空间由一个或者多个称为数据文件的文件组成。·每个oracle数据库的标准数据块大小是在创建数据库时由初始化参数DB_BLOCK_SIZE指定的。oracle服务器通过表空间和逻辑存储结构(包括段、区和数据块),能够实现磁盘空间使用的小粒度控制。除了SYSTEM表空间或者有活动还原段的表空间,可将其它表空间置于脱机状态而不会影响数据库运行。·oracle数据库内的数据存储在数据块内,数据块为最精细的粒度等级。oracle数据库可以从逻辑上分组到称为表空间的更小的逻辑空间区。
2024-07-09 17:22:14
816
1
原创 oracle表空间管理(手动扩容/自动扩容)方法
表空间是数据库中最大的逻辑单元,oracle数据库采用表空间将相关的逻辑组件组合在一起,方法二:增加数据文件个数(手动在原有得表空间文件基础上继续增加表空间文件数量),即系统表空间,该表空间是在创建数据库或者数据库安装时候自动创建的,1、永久表空间:一般保存表、视图、过程、索引等数据。方法一:(手动增加在原有表空间上增加表空间容量)2、临时表空间:只用于保存系统中短期活动的数据。方法三:设置表空间自动扩展。3、撤销表空间:用于帮助回退未提交的数据。对于oracle数据库的表空间,除了用。
2024-07-04 19:36:25
9349
1
原创 oracle存储结构-----逻辑存储结构(表空间、段、区、块)
当表中数据量增大时,数据段的大小自然也随着变大,数据段的增大过程是通过向其添加新的数据区来实现的。查询等操作时,Oracle可能会使用一些临时存储空间,用于暂时性地保存解析过的查询语句以及在排序过程中产生的临时数据,Oracle系统将在专门用于存储临时数据的表空间中为操作分配临时段。3、··段(多个段组成表空间):数据段(保存表记录)、索引段(保存索引数目)、临时段(临时数据)、回滚段(回滚数据)一个段只属于一个特定的数据对象,每当创建一个具有独立段的数据对象时,Oracle将为它创建一个段。
2024-07-04 15:54:21
1283
TA创建的收藏夹 TA关注的收藏夹
TA关注的人