- 浏览: 494796 次
- 性别:
- 来自: OnePiece
文章分类
- 全部博客 (196)
- --------- 基础----------- (0)
- java 碎碎念 (12)
- java 并行编程 (11)
- java I/O (6)
- java Charset & Encoding (2)
- spring学习笔记 (8)
- 正则表达式 (5)
- web前端-javascript (11)
- web前端-jQuery (7)
- web前端-碎碎念 (1)
- mybatis (0)
- 数据库-通用 (8)
- 数据库-oracle (20)
- nosql-redis (11)
- nosql-mongoDB (1)
- xml (2)
- log4j (2)
- uml (3)
- web services: soap/wsdl (6)
- soa-tuscany (2)
- linux (6)
- ----------修养----------- (0)
- 深入理解java虚拟机 (7)
- java 设计模式 (9)
- 数据结构和算法 (2)
- 读书笔记--代码整洁之道 (2)
- 计算机基础 (1)
- -----------践行---------- (0)
- 重构(refactor) (7)
- jvm-诊断 (4)
- 数据库-让oracle跑得更快 (7)
- Nginx (6)
- ehcache (2)
- 短信开发 (1)
- Servlet+Filter+Listener (2)
- 运维 (6)
- 问题记录 (38)
- 杂七杂八 (12)
最新评论
-
zhanggang807:
第二种方法比较好
<spring> 定时任务每次都执行两次的问题,慎用new ClassPathXmlApplicationContext() -
assasszt:
谢谢分享,很清楚的讲明了原理。
字符集与字符编码简介 -
su0nils000:
难得的笔记
<进阶-2> 打造高效正则表达式 -
足至迹留:
mini188 写道用MD5来解决碰撞是不是也是可行的呢?个人 ...
Hash简介 -
mini188:
用MD5来解决碰撞是不是也是可行的呢?
Hash简介
与oracle实例相关的文件只有下面几种:
参数文件(parameter file):这些文件告诉oracle实例在哪里可以找到控制文件,并且指定某些初始化参数,这些参数定义了某种内存结构有多大等设置。
跟踪文件(trace file):这通常是一个服务器进程对某种异常错误条件作出响应时创建的诊断文件。
警告文件(alert file):与跟踪文件类似,但是包含“期望”事件的有关信息,并且通过一个集中式文件警告DBA.
构成数据库的文件包括下面几类:
数据文件(data file):这些文件是数据库的主要文件,其中包括数据表、索引和所有其他的段。
临时文件(temp file):这些文件用于完成基于磁盘的排序和临时存储。
控制文件(control file):这些文件能告诉你数据文件,临时文件盒重做日志文件在哪里,还会指出与文件状态有关的其他元数据。
重做日志文件(redo log file):这些就是事务日志。
密码文件(password file):这些文件用于对通过网络完成管理活动的用户进行认证。
从Oracle 10g开始,又增加了两种新的可选文件类型,可以帮助oracle实现更快的备份和更快的恢复操作。下面是这两类新文件:
修改跟踪文件(change tracking file):这个文件有利于对oracle数据建立真正的增量备份。修改跟踪文件不一定非得放在闪回恢复区(flash Recovery area),不过它只与数据库备份和恢复有关。
闪回日志文件(flashback log file):这些文件存储数据库块的“前映像”,以便完成新增加的Flashback database命令。
此外还有其他与数据库相关的文件,比如转储文件(dump file),数据泵文件(data pump file),平面文件(flat file)等。
2.1 参数文件
与oracle数据库有关的参数文件有很多,从客户工作站上的tnsnames.ora文件到服务器上的listener.ora文件,还有sqlnet.ora等文件。不过,最重要的参数文件是数据库的参数文件,如果没有这个参数文件,甚至无法启动数据库。
数据库的参数文件通常称为初始文件(init file)或init.ora文件。Oracle 9以后,对于存储数据库的参数设置引入了一个很大改进的新方法:服务器参数文件(server parameter file),简称SPFILE。这个文件的默认名为spfile<ORACLE_SID>.ora。
简单地说,可以把数据库参数想成是一个键值对。要想得到一个实例参数的当前值,可以查询V$视图V$PARAMETER。另外,还可以在Sql*Plus中使用SHOW PARAMETER命令来查看,这个命令是自动在key的前后加上‘%’模糊匹配的。
默认情况下,“正常”账户无权访问V$性能视图.要另外赋予权限(grant)
2.2 跟踪文件
跟踪文件能提供调试信息。Oracle数据库都是可以充分测量的,这种测量性反映在V$视图,审计命令,资源管理器,oracle事件,DBMS_TRACE等方面。后面还引入了自动工作存储库(awr, 这是个性能调优的很好的诊断工具)、自动诊断存储库(adr)和sql性能分析工具等选项。
2.3 警告文件
警告文件(也称为警告日志)就是数据库的日志。这是一个简单的文本文件,从数据库创建开始就会编写该文件,直到数据库完结为止。在这个文件中,可以看到数据库的“编年史”,包括日志开关,可能出现的内部错误,表空间何时创建、离线以及恢复为在线等。这是一个查看数据库历史的极其有用的文件。
2.4 数据文件
数据文件和重做日志文件是数据库中最重要的文件,数据最终就是要存储在数据文件中。每个数据库都至少有一个相关的数据文件,通常还不止一个。
2.4.1 oracle数据库中的存储层次体系
数据库由一个或多个表空间构成。表空间(tablespace)是oracle中的一个逻辑存储容器,位于存储层次体系的顶层,包括一个或多个数据文件。这些文件可能是文件系统中的cooked文件、原始分区、asm管理的数据库文件或者是集群文件系统上的文件。表空间包含段。
1. 段
段(segment)是表空间中主要的组织结构。段就是占用存储空间的数据库对象,如表,索引,回滚段等。创建表时,会创建一个表段;创建分区表时,则每个分区都会存储在一个段中,此外还有回滚段,临时段,聚簇段,索引段等。
2. 区段
段本身又由一个或多个区段(extent)组成。区段是文件中一个逻辑上连续分配的空间。传统的每个段都至少有一个区段,有些对象可能还需要至少两个区段(比如回滚段)。
3. 块
区段又进一步由块(block)组成。块是oracle中最小的空间分配单位。数据行、索引条目或临时排序结果就存储在块中。通常oracle从磁盘读写的就是块。Oracle中块的常见大小有4种:2KB,4KB,8KB或16KB。数据库中最多可以有6种不同的块大小,大小不一定非是2的幂次。
段、区段和数据块之间的关系如下:
在所有给定的表空间内部,块大小都是一致的,这说明一个表空间中的所有块大小都相同。
4. 表空间
表空间是一个容器,其中包含有段。每个段都只属于一个表空间。一个表空间中可能有多个段。一个给定段的所有区段都在与段相关联的表空间中。段绝对不会跨越表空间边界。表空间本身可以有一个或多个相关的数据文件。
表空间是oracle中的逻辑存储容器。作为开发人员,我们会在表空间中创建段,而绝对不会深入到原始的“文件级”。我们会在表空间中创建对象,余下的工作都由oracle负责。
5. 临时文件
Oracle中的临时数据文件(temporary data files)即临时文件,是一种特殊类型的数据文件。Oracle使用临时文件来存储大规模排序操作和散列操作的中间结果,如果RAM中没有足够的空间,还会用临时文件存储全局临时表数据,或结果集数据。永久数据对象(如表或索引)不会存储在临时文件中,但是临时表及其索引的内容要存储在临时文件中。所以,不可能在临时文件中创建表,但是使用临时表时完全可以在其中存储数据。
6. 控制文件
控制文件(control file)是一个相当小的文件(最多能增长到64MB左右),其中包含oracle需要的其他文件的一个目录。参数文件告知实例控制文件的位置,控制文件则告知实例数据库和在线重做日志文件的位置。
开发人员实际上可能不会接触到控制文件。
7. 重做日志文件
重做日志文件(redo log file)对于oracle数据库至关重要。他们是数据库的事务日志。通常只用于恢复,不过也可以用于以下工作。
(1) 系统崩溃后的实例恢复
(2) 通过备份恢复数据文件之后恢复介质。
(3) 备用数据库处理。
(4) 输入到流中,这是一个重做日志挖掘过程,用于实现信息共享。
重做日志文件的主要目的是,万一实例或介质失败,重做日志文件就能派上用场,或者可以作为一种维护备用数据库的方法来完成故障恢复。
你在oracle中完成的每个操作几乎都会产生一定的redo信息,并写入在线重做日志文件。向表中插入一行时,插入的最终结果会写入重做日志。删除一行时,则会在重做日志中写入你删除了这一行的事实。
有些操作可能会以尽量少生成redo的模式完成。例如,可以使用NOLOGGING属性创建一个索引。这说明,最初创建索引数据的操作不会记入日志,但是oracle完成的所有递归sql会写入日志。
8. 密码文件
密码文件是一个可选的文件,允许远程sysDBA或管理员访问数据库。
启动oracle时,还没有数据库可以用来验证密码
参数文件(parameter file):这些文件告诉oracle实例在哪里可以找到控制文件,并且指定某些初始化参数,这些参数定义了某种内存结构有多大等设置。
跟踪文件(trace file):这通常是一个服务器进程对某种异常错误条件作出响应时创建的诊断文件。
警告文件(alert file):与跟踪文件类似,但是包含“期望”事件的有关信息,并且通过一个集中式文件警告DBA.
构成数据库的文件包括下面几类:
数据文件(data file):这些文件是数据库的主要文件,其中包括数据表、索引和所有其他的段。
临时文件(temp file):这些文件用于完成基于磁盘的排序和临时存储。
控制文件(control file):这些文件能告诉你数据文件,临时文件盒重做日志文件在哪里,还会指出与文件状态有关的其他元数据。
重做日志文件(redo log file):这些就是事务日志。
密码文件(password file):这些文件用于对通过网络完成管理活动的用户进行认证。
从Oracle 10g开始,又增加了两种新的可选文件类型,可以帮助oracle实现更快的备份和更快的恢复操作。下面是这两类新文件:
修改跟踪文件(change tracking file):这个文件有利于对oracle数据建立真正的增量备份。修改跟踪文件不一定非得放在闪回恢复区(flash Recovery area),不过它只与数据库备份和恢复有关。
闪回日志文件(flashback log file):这些文件存储数据库块的“前映像”,以便完成新增加的Flashback database命令。
此外还有其他与数据库相关的文件,比如转储文件(dump file),数据泵文件(data pump file),平面文件(flat file)等。
2.1 参数文件
与oracle数据库有关的参数文件有很多,从客户工作站上的tnsnames.ora文件到服务器上的listener.ora文件,还有sqlnet.ora等文件。不过,最重要的参数文件是数据库的参数文件,如果没有这个参数文件,甚至无法启动数据库。
数据库的参数文件通常称为初始文件(init file)或init.ora文件。Oracle 9以后,对于存储数据库的参数设置引入了一个很大改进的新方法:服务器参数文件(server parameter file),简称SPFILE。这个文件的默认名为spfile<ORACLE_SID>.ora。
简单地说,可以把数据库参数想成是一个键值对。要想得到一个实例参数的当前值,可以查询V$视图V$PARAMETER。另外,还可以在Sql*Plus中使用SHOW PARAMETER命令来查看,这个命令是自动在key的前后加上‘%’模糊匹配的。
默认情况下,“正常”账户无权访问V$性能视图.要另外赋予权限(grant)
2.2 跟踪文件
跟踪文件能提供调试信息。Oracle数据库都是可以充分测量的,这种测量性反映在V$视图,审计命令,资源管理器,oracle事件,DBMS_TRACE等方面。后面还引入了自动工作存储库(awr, 这是个性能调优的很好的诊断工具)、自动诊断存储库(adr)和sql性能分析工具等选项。
2.3 警告文件
警告文件(也称为警告日志)就是数据库的日志。这是一个简单的文本文件,从数据库创建开始就会编写该文件,直到数据库完结为止。在这个文件中,可以看到数据库的“编年史”,包括日志开关,可能出现的内部错误,表空间何时创建、离线以及恢复为在线等。这是一个查看数据库历史的极其有用的文件。
2.4 数据文件
数据文件和重做日志文件是数据库中最重要的文件,数据最终就是要存储在数据文件中。每个数据库都至少有一个相关的数据文件,通常还不止一个。
2.4.1 oracle数据库中的存储层次体系
数据库由一个或多个表空间构成。表空间(tablespace)是oracle中的一个逻辑存储容器,位于存储层次体系的顶层,包括一个或多个数据文件。这些文件可能是文件系统中的cooked文件、原始分区、asm管理的数据库文件或者是集群文件系统上的文件。表空间包含段。
1. 段
段(segment)是表空间中主要的组织结构。段就是占用存储空间的数据库对象,如表,索引,回滚段等。创建表时,会创建一个表段;创建分区表时,则每个分区都会存储在一个段中,此外还有回滚段,临时段,聚簇段,索引段等。
2. 区段
段本身又由一个或多个区段(extent)组成。区段是文件中一个逻辑上连续分配的空间。传统的每个段都至少有一个区段,有些对象可能还需要至少两个区段(比如回滚段)。
3. 块
区段又进一步由块(block)组成。块是oracle中最小的空间分配单位。数据行、索引条目或临时排序结果就存储在块中。通常oracle从磁盘读写的就是块。Oracle中块的常见大小有4种:2KB,4KB,8KB或16KB。数据库中最多可以有6种不同的块大小,大小不一定非是2的幂次。
段、区段和数据块之间的关系如下:
在所有给定的表空间内部,块大小都是一致的,这说明一个表空间中的所有块大小都相同。
4. 表空间
表空间是一个容器,其中包含有段。每个段都只属于一个表空间。一个表空间中可能有多个段。一个给定段的所有区段都在与段相关联的表空间中。段绝对不会跨越表空间边界。表空间本身可以有一个或多个相关的数据文件。
表空间是oracle中的逻辑存储容器。作为开发人员,我们会在表空间中创建段,而绝对不会深入到原始的“文件级”。我们会在表空间中创建对象,余下的工作都由oracle负责。
5. 临时文件
Oracle中的临时数据文件(temporary data files)即临时文件,是一种特殊类型的数据文件。Oracle使用临时文件来存储大规模排序操作和散列操作的中间结果,如果RAM中没有足够的空间,还会用临时文件存储全局临时表数据,或结果集数据。永久数据对象(如表或索引)不会存储在临时文件中,但是临时表及其索引的内容要存储在临时文件中。所以,不可能在临时文件中创建表,但是使用临时表时完全可以在其中存储数据。
6. 控制文件
控制文件(control file)是一个相当小的文件(最多能增长到64MB左右),其中包含oracle需要的其他文件的一个目录。参数文件告知实例控制文件的位置,控制文件则告知实例数据库和在线重做日志文件的位置。
开发人员实际上可能不会接触到控制文件。
7. 重做日志文件
重做日志文件(redo log file)对于oracle数据库至关重要。他们是数据库的事务日志。通常只用于恢复,不过也可以用于以下工作。
(1) 系统崩溃后的实例恢复
(2) 通过备份恢复数据文件之后恢复介质。
(3) 备用数据库处理。
(4) 输入到流中,这是一个重做日志挖掘过程,用于实现信息共享。
重做日志文件的主要目的是,万一实例或介质失败,重做日志文件就能派上用场,或者可以作为一种维护备用数据库的方法来完成故障恢复。
你在oracle中完成的每个操作几乎都会产生一定的redo信息,并写入在线重做日志文件。向表中插入一行时,插入的最终结果会写入重做日志。删除一行时,则会在重做日志中写入你删除了这一行的事实。
有些操作可能会以尽量少生成redo的模式完成。例如,可以使用NOLOGGING属性创建一个索引。这说明,最初创建索引数据的操作不会记入日志,但是oracle完成的所有递归sql会写入日志。
8. 密码文件
密码文件是一个可选的文件,允许远程sysDBA或管理员访问数据库。
启动oracle时,还没有数据库可以用来验证密码
发表评论
-
<让oracle跑得更快-7> AWR性能报告
2015-03-01 22:45 2127AWR是oracle 10g下提供的一 ... -
<让oracle跑得更快-6> 绑定变量
2015-02-28 21:52 1245变量绑定是OLTP系统中一 ... -
<让oracle跑得更快-5> 执行计划
2015-02-28 21:48 1289如果要分析某条(不是整体性能,后面还会讲到awr报告,会再次说 ... -
<让oracle跑得更快-4> 优化器(optimizer)
2015-02-27 21:27 2052Oracle数据库中优化器(o ... -
<让oracle跑得更快-3> latch和等待
2015-02-27 21:18 1165经常有人把latch造成的 ... -
<让oracle跑得更快-2> 锁和阻塞
2015-02-26 22:24 11632.1 锁和阻塞 首先,注意区别并发(concurrency) ... -
<让oracle跑得更快-1> 引起数据库性能问题的因素
2015-02-26 22:04 1541此《让oracle跑得更快》 ... -
OLTP(联机事务处理)和OLAP(联机分析处理) 【转】
2015-02-12 14:13 1247做数据库优化时,一定要先了解数据库支撑的应用特点,不同类型的应 ... -
<oracle优化>(url收藏)
2015-02-11 22:18 8181. CBO & RBO Rule Based Opt ... -
<oracle-11> 数据类型
2015-02-08 20:06 2551选择一个正确的数据类 ... -
<oracle-10> 索引
2015-02-01 21:19 2035索引是应用设计和开发的一个重要方面。如果有太多的索引,修改(插 ... -
<oracle-9> 数据库表
2015-01-30 15:44 13179.1 表类型 Oracle主要有 ... -
<oracle-8> redo和undo
2015-01-26 22:23 1649本章介绍oracle数据库中 ... -
<oracle-7> 事务
2015-01-26 11:07 1547事务(transaction)是数 ... -
<oracle-6> 并发多版本控制
2015-01-12 21:17 14636.1 什么是并发控制 并 ... -
<oracle-5> 锁(lock)和闩(latch)
2015-01-07 21:11 2761开发多用户、数据库驱动的应用时,最大的难点之一是:一方面要力争 ... -
<oracle-4> oracle进程
2015-01-06 23:02 1397Oracle中的各个进程要完成某个特定的任务或一组任务,每个进 ... -
<oracle-3> 内存结构
2015-01-05 22:20 1551这一篇主要讨论oracle的3 ... -
<Oracle-1> oracle体系结构概述
2014-12-21 22:02 1218本系列主要参考《Oracle ...
相关推荐
1)rpm格式包安装配置 1.1 下载以rpm后缀名的包,以11.2.0.4.0 版本为例...oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm --包含头文件和示例文件,为开发Oracle应用程序的即时客户端; 1.2 使用rpm -ivh
<idle-timeout-minutes>2</idle-timeout-minutes> <new-connection-sql>SELECT COUNT(*) FROM dual</new-connection-sql> <check-valid-connection-sql>SELECT COUNT(*) FROM dual</check-valid-connection-sql> ...
<artifactId>dbunit-database-oracle</artifactId> </dependency> <!-- mysql jdbc driver --> <!-- <dependency> --> <!-- <groupId>mysql</groupId> --> <!-- <artifactId>mysql-connector-java</artifactId> ...
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class> <driver>oracle-jdbc</driver> <pool> <min-pool-size>5</min-pool-size> <max-pool-size>20</max-pool-size> </pool> <security> <user-...
<description>Oracle DB Connection Pool</description> <res-ref-name>jdbc/OracleDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>...
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class> <driver>oracle</driver> <pool> <min-pool-size>5</min-pool-size> <max-pool-size>20</max-pool-size> <prefill>true</prefill> </pool> ...
<description>Oracle Datasource example</description> <res-ref-name>jdbc/OracleDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>...
<prop key="hibernate.hbm2ddl.auto">update</prop> <!-- 显示Hibernate执行的SQL语句 --> <prop key="hibernate.show_sql">true</prop> <!-- SQL格式化 --> <prop key="hibernate.format_sql">true</prop> </...
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class> <driver>oracle</driver> <security> <user-name>your_username</user-name> <password>your_password</password> </security> <!-- 可选的...
List<User> users = new ArrayList<>(); ResultHandler<User> resultHandler = new ResultHandler<User>() { @Override public void handleResult(ResultContext<? extends User> context) { users.add(context...
文件列表: oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-basiclite-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm oracle-instantclient...
你需要在`<Context>`标签内添加以下代码来定义一个名为`jdbc/myoracle`的数据源,使用`thin`驱动连接到本地的Oracle数据库,用户为`scott`,密码为`tiger`,数据库服务标识符(SID)为`mysid`: ```xml <Resource...
- 修改 `<jndi-name>`、`<connection-url>`、`<driver-class>`、`<user-name>` 和 `<password>` 等元素。 **步骤三**: 放置修改后的文件。 - 将修改后的 `sqlserver-ds.xml` 文件放置到 `tobeyou**\server\default...
Oracle Database 19c 是最新的长期版本,支持期限...oracle-database-ee-19c文件分割成 三个 压缩包,必须集齐 三个 文件后才能一起解压一起使用: Oracle Database 19c (oracle-database-ee-19c.x86_64.part3.rar) ...
2. **Oracle JDBC驱动**: - Oracle提供了多种JDBC驱动,包括 Thin Driver、JDBC-ODBC Bridge等。最常用的是Thin Driver,其JAR文件通常名为`ojdbcXX.jar`(XX表示版本号)。使用方式类似MySQL,但驱动类名不同: ...
Oracle 系统的结构可以描述为:客户端应用程序 <--(1)--> Oracle 客户端软件 <---(2)---> 系统 TCP/IP 模块 <---(3)---> 网络 <--> 系统的 TCP/IP 模块 <---> Oracle 数据库。在这个结构中,用户名和密码在网络上...
2. **文件内容**:该文件用于定义Oracle数据源的相关属性。 - `<local-tx-datasource>`:指定本地事务数据源。 - `<jndi-name>`:设置JNDI名称,本例中为`jdbc/oracle`。 - `<connection-url>`:配置数据库连接...
<param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> ...