1.创建一个分区表,并插入一些数据,同时查询出每个分区的数据。

答:创建分区表如下

2.创建一个视图,并给出一个查询语句。

3.在当前用户下创建一个同义词,用于查询scott用户下的dept表,并给出一个查询语句。

报错了,原因是没有创建同义词的权限,使用sysdba授权test后即可创建同义词成功。

4.创建一个sequence,并给出一个获得sequence号的语句。

答:创建一个最小值为1,最大值为1000,每次增加1的序号,其中如果设置了CACHE值,ORACLE将在内存里预先放置一些sequence,以使存取速度更快。cache里面的取完后,oracle自动再取一组到cache。 但是,使用cache可能会跳号, 当遇到数据库突然异常down掉(shutdown abort),cache中的sequence就会丢失. 
因此,推荐在create sequence的时候使用 nocache 选项。


第一次nextval返回的是初始值,随后的nextval会自动增加你定义的increment by值,然后返回增加后的值。currval总是返回当前SEQUENCE的值,但是在第一次nextval初始化之后才能使用currval,否则会出错。一次nextval会增加一次sequence的值。

5.创建一个指向本地数据库的dblink,并通过dblink查询一个表中的数据。

答:本地数据库名为orcl,为本地数据库创建一个dblink,查询表scott.dept中的数据

6.创建一个表空间,并在这个表空间上创建一张表。

答:创建表空间scott_dataspace,在这个表空间上创建一个表t_t

7.将数据库设置为归档模式,并进行一次日志切换,观察归档文件的产生。

答:查看数据库当前的模式时否为归档模式

将数据库设置为归档模式

正常关闭数据库,关闭后,启动数据库实例到mount状态,将数据库设置为归档模式,打开数据库后,查看当前数据库的日志模式

进行日志切换,产生归档日志

查看归档日志存放路径,并找到日志

8.说说你是如何理解commit和checkpoint的。

答:checkpoint与commit的区别

commit:提交事务,将修改数据产生的日志写到磁盘上。为的是保护数据,通过将redo日志写到磁盘上来确保相应数据的修改。因为redo日志写入磁盘的速度相当快,而oracle认为,只要修改数据产生的redo已经安全的写到磁盘上了,那么相应的数据修改是否写到磁盘就不重要了。

checkpoint:将脏数据写到磁盘上,缩短数据的恢复时间,为databuffer提供空闲空间。

有以下几点需要注意:写到磁盘上的数据不一定是已经提交的,只要是修改过的,都会写到磁盘上;数据写到磁盘上之前,这部分数据对应的日志信息必须提前写到磁盘上;alter system checkpoint 将只把已经commit的数据写到磁盘上;安全关闭数据库时,所有commit的数据会写到磁盘上。

9.说说你是如何理解redo和undo的作用的。

答:redo(重做信息)是Oracle 在线(或归档)重做日志文件中记录的信息,万一出现失败时可以利用这些数据来“重放”(或重做)事务。undo(撤销信息)是Oracle 在undo 段中记录的信息,用于取消或回滚事务。

重做日志文件(redo log file)对Oracle 数据库来说至关重要。它们是数据库的事务日志。Oracle维护着两类重做日志文件:在线(online)重做日志文件和归档(archived)重做日志文件。这两类重做日志文件都用于恢复;其主要目的是,万一实例失败或介质失败,它们就能派上用场。
从概念上讲,undo 正好与redo 相对。你对数据执行修改时,数据库会生成undo 信息,这样万一你执行的事务或语句由于某种原因失败了,或者如果你用一条ROLLBACK 语句请求回滚,就可以利用这些undo信息将数据放回到修改前的样子。redo 用于在失败时重放事务(即恢复事务),undo 则用于取消一条语句或一组语句的作用。与redo 不同,undo 在数据库内部存储在一组特殊的段中,这称为undo段(undosegment)。

从概论上讲,redo与undo正好相对,当我们对数据进行修改时,会生成undo信息,以便回到更改前的状态。万一我们执行的事务或语句由于某种原因而导致失败,或者用一条rollback语句请求回滚,就可以利用这些undo信息将数据恢复到修改前的样子。redo用于在失败时重放事务(即事务恢复),确保数据不会丢失。undo则用于取消一条语句或一组语句的作用。

10.对于下面的操作,说一说redo和undo分别是在哪个阶段产生的

"update t set id=1 where id=2";

答:oracle获得该语句的执行计划之后,前往SGA区的database buffer cache区中查找存放id=1的数据块,如果没有,则将该数据块从数据文件中加载到buffer cache中。oracle将该数据块未被修改前的映像写入undo,此时产生一条undo记录,与此同时,undo段的数据块发生了改变会产生一条redo记录(任何数据块的改变都会redo),oracle会将buffer cache中id=1的数据块中id的值修改为2,此时数据块的改变会产生另一条redo记录。

oracle数据库对象使用说明的更多相关文章

  1. Oracle 数据库对象

    数据库对象是数据库的组成部分,常常用CREATE命令进行创建,可以使用ALTER命令修改,用DROP执行删除操作.前面已经接触过的数据库对象有表.用户等. 今天将学习更多的Oracle数据库对象: 同 ...

  2. Oracle数据库对象,同义词、序列、视图、索引

    数据库对象简介 Oracle 数据库对象又称模式对象 数据库对象是逻辑结构的集合,最基本的数据库对象是表 其他数据库对象包括: 同义词是现有对象的一个别名. 简化SQL语句 隐藏对象的名称和所有者 提 ...

  3. Oracle数据库对象(表空间/同义词/序列/视图/索引)

    数据库对象 Oracle数据库对象: 数据库对象是数据库的组成部分,常常用 CREATE 命令进行创建,可以使用 ALTER 命令修改,用 DROP 执行删除操作. 种类: (1)表空间:所有的数据对 ...

  4. Oracle数据库对象题库

    一.    填空题 在用 create 语句创建基本表时,最初只是一个空的框架,用户可以使用insert命令把数据插入表中. 在基本表不需要时,可以使用 drop table 语句撤消.在一个基本表撤 ...

  5. Oracle数据库对象_同义词

    同义词是一种数据库对象,它是为一个数据库对象定义的别名,使用同义词的主要目的是为了简化SQL语句的书写. 同义词的概念和类型 利用同义词可以为用户的一个对象,或者其他用户的一个对象定义别名,从而简化命 ...

  6. 数据库 Oracle数据库对象一

    常见的数据库对象 表:基本的数据存储集合,由行和列组成 视图:从表中抽出的逻辑上相关的数据集合 序列:提供有规律的数值 索引:提高查询的效率 同义词:给对象起别名 create table语句 --c ...

  7. 【Oracle】实现Oracle数据库对象的一键升级

    引言     公司内部的项目比较倾向于将业务逻辑放在oracle存储过程中实现,所以每次项目升级都涉及到很多的oracle表,存储过程等数据库对象的升级.然而采取的升级方式是比较"原始&qu ...

  8. Oracle数据库对象_视图

    视图是一种非常重要的数据库对象,它的形式类似于普通表,我们可以从视图中查询数据. 实际上它是建立在表上的一种虚表,在视图中并不存储真正的数据,而是仅仅保存一条SELECT语句,对视图的访问将被转化为对 ...

  9. 获取oracle数据库对象定义

    在oracle中,使用DBMS_METADATA包中的GET_DDL函数来获得对应对象的定义语句.GET_DDL函数的定义如下: DBMS_METADATA.GET_DDL ( object_type ...

随机推荐

  1. windows下上传文件到VWware的centos

    1.使用Xsell 连接到centos虚拟机,可以在虚拟机使用终端查看ip地址,命令:ifconfig -a 2.远程Linux系统上需要安装lrzsz工具包  Xsell命令:yum install ...

  2. MVN使用随笔

    001 创建项目 mvn archetype:generate -DgroupId=com.company.push.monitor -DartifactId=push-monitor -Darche ...

  3. 【BZOJ】2719 银河之星

    可以将棋子分为9种类型.且可以通过合并使得两个不同种类棋子转换为另一种棋子(不过要注意棋盘大小,有的时候硬要合并会到棋盘外面,可以先把棋盘全部转换,然后枚举每一个棋子的转换).然后把状态压成一个十位的 ...

  4. debug实战:Unmanaged High Memory非托管高内存

    最近又监控到一个高内存的问题,周五下班把系统打开,周末2天没关,周一来看已经涨到5.2G,这次与以往不同,不是.net的内存泄漏,而是非托管引起的. 1. 抓dump,确定高内存的类型 //dump有 ...

  5. Node.js 路由

    我们要为路由提供请求的URL和其他需要的GET及POST参数,随后路由需要根据这些数据来执行相应的代码. 因此,我们需要查看HTTP请求,从中提取出请求的URL以及GET/POST参数.这一功能应当属 ...

  6. IDE启动报错

    启动IDE的时候报出org.eclipse.swt.SWTException: Invalid thread access解决方法:退出再次启动IDE的时候加上-clean选项,如图中所示,前面是我的 ...

  7. redhat6.4上build storm 0.9.0.1

    1.安装mvn 2.下载源代码 3.build mvn package 过程中出现问题,clojars.org 访问不了.通过私服映射clojars.org并在pom.xml中将dependency的 ...

  8. iOS系统消息

    一.键盘1.UIKeyboardWillShowNotification-将要弹出键盘2.UIKeyboardDidShowNotification-显示键盘3.UIKeyboardWillHideN ...

  9. ViewHolder简洁写法

    ViewHolder holder = null;         if(convertView == null){                 convertView = mInflater.i ...

  10. HDU 3622 Bomb Game(二分+2SAT)

    题意:有一个游戏,有n个回合,每回合可以在指定的2个区域之一放炸弹,炸弹范围是一个圈,要求每回合的炸弹范围没有重合.得分是炸弹半径最小的值.求可以得到的最大分数. 思路:二分+2SAT. 二分炸弹范围 ...