oracle数据库对象使用说明
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数据库对象使用说明的更多相关文章
- Oracle 数据库对象
数据库对象是数据库的组成部分,常常用CREATE命令进行创建,可以使用ALTER命令修改,用DROP执行删除操作.前面已经接触过的数据库对象有表.用户等. 今天将学习更多的Oracle数据库对象: 同 ...
- Oracle数据库对象,同义词、序列、视图、索引
数据库对象简介 Oracle 数据库对象又称模式对象 数据库对象是逻辑结构的集合,最基本的数据库对象是表 其他数据库对象包括: 同义词是现有对象的一个别名. 简化SQL语句 隐藏对象的名称和所有者 提 ...
- Oracle数据库对象(表空间/同义词/序列/视图/索引)
数据库对象 Oracle数据库对象: 数据库对象是数据库的组成部分,常常用 CREATE 命令进行创建,可以使用 ALTER 命令修改,用 DROP 执行删除操作. 种类: (1)表空间:所有的数据对 ...
- Oracle数据库对象题库
一. 填空题 在用 create 语句创建基本表时,最初只是一个空的框架,用户可以使用insert命令把数据插入表中. 在基本表不需要时,可以使用 drop table 语句撤消.在一个基本表撤 ...
- Oracle数据库对象_同义词
同义词是一种数据库对象,它是为一个数据库对象定义的别名,使用同义词的主要目的是为了简化SQL语句的书写. 同义词的概念和类型 利用同义词可以为用户的一个对象,或者其他用户的一个对象定义别名,从而简化命 ...
- 数据库 Oracle数据库对象一
常见的数据库对象 表:基本的数据存储集合,由行和列组成 视图:从表中抽出的逻辑上相关的数据集合 序列:提供有规律的数值 索引:提高查询的效率 同义词:给对象起别名 create table语句 --c ...
- 【Oracle】实现Oracle数据库对象的一键升级
引言 公司内部的项目比较倾向于将业务逻辑放在oracle存储过程中实现,所以每次项目升级都涉及到很多的oracle表,存储过程等数据库对象的升级.然而采取的升级方式是比较"原始&qu ...
- Oracle数据库对象_视图
视图是一种非常重要的数据库对象,它的形式类似于普通表,我们可以从视图中查询数据. 实际上它是建立在表上的一种虚表,在视图中并不存储真正的数据,而是仅仅保存一条SELECT语句,对视图的访问将被转化为对 ...
- 获取oracle数据库对象定义
在oracle中,使用DBMS_METADATA包中的GET_DDL函数来获得对应对象的定义语句.GET_DDL函数的定义如下: DBMS_METADATA.GET_DDL ( object_type ...
随机推荐
- javascript 技巧
1.将arguments转化为数组函数中的预定义变量arguments并非一个真正的数组,而是一个类似数组的对象. 它具有length属性,但是没有slice, push, sort等函数,那么如何使 ...
- 安装xampp 后 发现 apache 启动不起来
这种事情很常见的.启动不起来 第一,改个端口
- apche的主配置文件)
apche的主配置文件conf/httpd.conf(根据个人主机的路径设置,以下仅供参考) 需配置的行号与方法(示列): 172 #ServerName localhost:80 173 Serv ...
- C#窗体自定义控件
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; u ...
- Windows Store App 用户库文件夹操作
上面介绍了与用户库文件有关的操作,包括创建.读写等,下面将介绍与用户库文件夹相关的操作. 与文件操作一样,想要对用户库文件夹进行操作,需要首先获取用户库的相应位置,获取的方法上面已经介绍过了,这里不再 ...
- centos7.0 64位系统安装 nginx
1 下载nginx 从nginx官网 http://nginx.org/ 下载新的稳定版本nginx 并上传到linux服务器 2 安装nginx 所需要的扩展 yum -y install pcre ...
- Svn常见问题及相关原因
1. svn: Server sent unexpected return value (500 Internal Server Error) in response to OPTIONS reque ...
- [vijos P1391] 想越狱的小杉
考前最后一题,竟然是第一次码SPFA,虽然这个算法早有耳闻,甚至在闻所未闻之前自己有过一个类似的想法,说白了就是广搜啊,但是敲起来还是第一次啊,而且这还不是真正意义上的SPFA. 完全按照自己想法来码 ...
- C语言基础--循环 递归打印乘法表
for循环打印乘法表: #include <stdio.h> // for循环打印乘法表 int main(int argc, const char * argv[]) { //矩形 ; ...
- python leetcode 日记 --Contains Duplicate II --219
题目: Given an array of integers and an integer k, find out whether there are two distinct indices i a ...