摘要:RMAN可以进行增量备份:数据库,表空间,数据文件只有使用过的block可以被备份成backup set表空间与数据文件对应关系:dba_data_files / v$datafile_header在noarchivelog模式下,可以使用RMAN备份read-only和offline的表空间ORACLE RMAN停机备份:备份RMAN连接上ORACLE,WINDOWS下在命令模式下RMANTARGET /连接本地数据库用的是本地认证模式。RMAN连接数据库必须在dedicate模式下。因此在share模式下的数据库应配置一个dedicate的连接用于RMAN连接。如果要把控制文件、参数文件也
阅读全文
随笔分类 - ORACLE
摘要:SCN号概述 SCN是当Oracle数据库更新后,由DBMS自动维护去累积递增的一个数字。Oracle数据库中一共有4种SCN分别为 系统检查点SCN: 系统检查点SCN位于控制文件中,当检查点进程启动时(ckpt),Oracle就把系统检查点的SCN存储到控制文件中。该SCN是全局范围的,当发生文件级别的SCN时,例如将表空间置于只读状态,则不会更新系统检查点SCN。 查询系统检查点SCN的命令如下 SQL> select CHECKPOINT_CHANGE# from v$database;CHECKPOINT_CHANGE#------------------ 590694 数据文
阅读全文
摘要:一.控制文件(Control Files)1.控制文件的作用控制文件在Oracle数据库中扮演着很重要的角色,没有控制文件(或者控制文件损坏了),运行着的实例立即崩溃,关闭着的死活打不开,你以为你是谁,可以说,控制文件一旦损坏,数据库必然down了。Oracle数据库实例启动过程中,当启动到unmount时,此时只是在内存中为Oracle实例分配了实例空间,然后如果继续要启动到mount状态,这个时候控制文件就闪亮登场了,因为Oracle要依据控制文件找到数据文件跟重做日志文件的路径,确定找到了再进去mount状态,至于打开数据库就是确定这些文件都一致,没有问题的话就能打开了。2.控制文件包括
阅读全文
摘要:一.简介 Oracle引入重做日志的目的:数据库的恢复。 Oracle相关进程:重做日志写进程(LGWR)。 重做日志性质:联机日志文件,oracle服务器运行时需要管理它们。 相关数据字典:v$log ; v$logfile 。 操作者权限:具有sys用户或system用户权限。 重做日志文件日志文件的数据文件类型:在线日志文件(又叫联机日志)与归档日志文件(在线日志文件的历史备份)日志运行的模式:归档模式、非归档模式(是否自动归档)日志的运行流程:写文件是依靠LGWR后台进程日志按照有序循环的方式被使用,即当一组日志文件被填满后,循环覆盖下一组日志文件,不断循环。重做日志文件的目的:1.
阅读全文
摘要:在默认情况下,数据库实在非归档日志模式下创建的,这意味着日志切换在没有先进行复制的情况下会重写联机重做日志文件。此时数据库仍然不会受损,但是如果数据文件因为介质失败被损坏,那么会丢失数据。在数据库被转换至归档模式时,如果从最近一次数据库备份开始生成的所有归档日志文件都可用,那么不会丢失数据。所以所有的生产库都应该以归档模式运行。下面是将数据库转换为归档日志模式的步骤:在操作系统上创建归档的目标位置。$mkdir /oracle/archive1$mkdir /oracle/archive2以SYSTEM权限的SYS用户身份连接SQL*Plus。SQL> conn / as sysdba设
阅读全文
摘要:一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup SVRMGR>quit b、关闭ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>shutdown SVRMGR>quit 启动oracle9i数据库命令: $ sqlplus /nolog SQL*Plus: Rel
阅读全文
摘要:数据库名(DB_NAME)、实例名(Instance_name)、以及操作系统环境变量(ORACLE_SID)在ORACLE7、8数据库中只有数据库名(db_name)和数据库实例名(instance_name)。在ORACLE8i、9i中出现了新的参数,即数据库域名(db_domain)、服务名(service_name)、以及操作系统环境变量(ORACLE_SID)。这些都存在于同一个数据库中的标识,用于区分不同数据库的参数。一、什么是数据库名(db_name)?数据库名是用于区分数据的内部标识,是以二进制方式存储于数据库控制文件中的参数,在数据安装或创建之后将不得修改。数据库安装完成后,
阅读全文
摘要:--查询表空间名称和大小 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
阅读全文
摘要:今天在虚拟机上安装ORACLE 出现了一系列的问题,现将这些记录下来最开始用sqlplus登陆后,startup 开启数据提示ORA-01078错误SQL> startup;ORA-01078: failure in processing system parametersLRM-00109: could not open parameter file '/opt/oracle/product/10g/dbs/initorc1.ora'ORACLE在启动的时候会首先去找spfile文件,如果没有则会去找pfile,但是2个文件都没有,所有报错[oracle@node1 ~
阅读全文
摘要:在Oracle RAC环境下,每个节点都会有多个IP地址,分别为Public/Private/Vip,这三个IP到底有啥区别呢?分别用在那些场合呢?来看看老外的回答。1. private IP address is used only for internal clustering processing (Cache Fusion)私有IP用于心跳同步,这个对于用户层面,可以直接忽略,简单理解,这个Ip用来保证两台服务器同步数据用的私网IP。2. VIP is used by database applications to enable fail over when one cluster
阅读全文
摘要:Oracle执行计划详解---作者:TTT BLOG本文地址:http://blog.chinaunix.net/u3/107265/showart_2192657.html---简介: 本文全面详细介绍oracle执行计划的相关的概念,访问数据的存取方法,表之间的连接等内容。 并有总结和概述,便于理解与记忆!+++目录--- 一.相关的概念 Rowid的概念 Recursive Sql概念 Predicate(谓词) DRiving Table(驱动表) Probed Table(被探查表) 组合索引(concatenated index) 可选择性(selectivity) 二.oracl
阅读全文
摘要:Explain语法EXPLAIN SELECT ……变体:1. EXPLAIN EXTENDED SELECT ……将执行计划“反编译”成SELECT语句,运行SHOW WARNINGS 可得到被MySQL优化器优化后的查询语句 2. EXPLAIN PARTITIONS SELECT ……用于分区表的EXPLAIN执行计划包含的信息id包含一组数字,表示查询中执行select子句或操作表的顺序id相同,执行顺序由上至下如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优先级越高,越先执行select_ty.
阅读全文
摘要:1、 能用基表达到目的的,尽量用基表。当然,需要用视图的,如HR模块涉及到权限控制时,必须用视图。2、 索引,这个不在赘述。3、 汇总的时候,如果是两次汇总,大汇总的字段可以由小汇总字段得出。如集团公司由它的二级部门写函数得出。所在在cursor里,可以只小汇总,如只按二级部门汇总,输出的时候才条件判断来进行大汇总。4、 如果主cursor很庞大,可以将其分解成若干个小cursor,多写一些函数,也可以提高效率,分解主cursor。5、 循环cursor时:避免重复性的基于同值的计算。避免重复性的调用同参数的同函数,可以只计算一次,把结果赋给一个变量。如果是在cursor里,当汇总的时候,也是
阅读全文
摘要:(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。假如有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的..
阅读全文
摘要:对于处理数据库海量数据的存储,也可以采用以下的方法处理;主要是针对CSV等格式的外部文件。1. csv的结构,每个字段以什么为分割2. external table的创建3. 如何实现外部表访问外部文件,并显示在数据库里面例如 有一个外部文件名字为temptes.csv文件内容如下:sunny,85,85,FALSE,nosunny,80,90,TRUE,noovercast,83,86,FALSE,yesrainy,70,96,FALSE,yesrainy,68,80,FALSE,yesrainy,65,70,TRUE,noovercast,64,65,TRUE,yessunny,72,95
阅读全文
摘要:引言:首先说明并行技术属于大数据范畴,适合OLAP系统,在任务分割、数据块分割、资源充裕的场合应用较广,本次分享主要概括并行原理、实际应用、性能对比、并行直接加载、索引属性、特点小结等六个小点去重点阐述。下面的测试是我的笔记,这些笔记也参考了《让oracle跑的更快2》作者:谭怀远 一书的引导,在此向谭总表示感谢,向帮助过我们的人表示感谢 zhixiang yangqiaojie等好友一、简单介绍OLTP和OLAP系统的特点小结答:OLTP和OLAP是我们大家在日常生产库中最常用到的2种系统,简单的说OLTP是基于多事务短时间片的系统,内存的效率决定了数据库的效率。OLAP是基于大数据集长时间
阅读全文
摘要:总结得出以下3点结论:a、非归档模式下,只需append就能大量减少redo的产生;归档模式下,只有append+nologging才能大量减少redo。b、insert /*+ append */ 时会对表加锁(排它锁),会阻塞表上的除了select以外所有DML语句;传统的DML在TM enqueue上使用模式3(row exclusive),其允许其他DML在相同的模式上获得TM enqueue。但是直接路径加载在TM enqueue使用模式6(exclusive),这使其他DML在直接路径加载期间将被阻塞。c、insert /*+ append */ 直接路径加载,速度比常规加载方式快
阅读全文
摘要:一、分区表: 随着表的不断增大,对于新纪录的增加、查找、删除等(DML)的维护也更加困难。对于数据库中的超大型表,可通过把它的数据分成若干个小表,从而简化数据库的管理活动。对于每一个简化后的小表,我们称为一个单个的分区。 对于分区的访问,我们不需要使用特殊的SQL查询语句或特定的DML语句,而且可以单独的操作单个分区,而不是整个表。同时可以将不同分区的数据放置到不同的表空间,比如将不同年份的销售数据,存放在不同的表空间,即年的销售数据存放到TBS_2001,2002年的销售数据存放到TBS_2002,依次类推,从而实现了分散存储,这将大大的简化大容量表的管理,提高查询性能及I/O并发等。 对于
阅读全文
摘要:Oracle表分区分为四种:范围分区,散列分区,列表分区和复合分区。一:范围分区 就是根据数据库表中某一字段的值的范围来划分分区,例如:Sql代码 createtablegraderecord ( snovarchar2(10), snamevarchar2(20), dormitoryvarchar2(3), gradeint) partitionbyrange(grade) ( partitionbujigevalueslessthan(60),--不及格 partitionjigevalueslessthan(85),--及格 partitionyouxiuvalueslessthan(
阅读全文
摘要:在我们的数据仓库使用oracle其中有很多超级大表,这些表的分区方式基本都是range+hash分区或list+hash分区。使用时间字段进行range或list分区,再用用户ID进行子分区。不过最近有人反映有一张表select起来很慢,进过查看发现原来这个表只进行了list分区,没有进行hash子分区。讨论后决定对该表的分区方式进行改变:从list分区改为list+hash分区。操作过称如下:1.前期准备为了确定迁移策略先看看这个表有多大。select owner, segment_name, sum(bytes) / 1024 / 1024 / 1024 size_G from dba_s
阅读全文
浙公网安备 33010602011771号