Oracle中数据库、表空间、数据文件、表、用户之间的关系

Oracle中数据库、表空间、数据文件、表、用户之间的关系
Oracle中数据库、表空间、数据文件、表、用户之间的关系

Oracle中数据库、表空间、数据文件、表、用户之间的关系

数据库的物理结构是由数据库的操作系统文件所决定,每一个Oracle数据库是由三种类型的文件组成:数据文件、日志文件和控制文件。数据库的文件为数据库信息提供真正的物理存储。每一个Oracle 数据库有一个或多个物理的数据文件(data file)。一个数据库的数据文件包含全部数据库数据。逻辑数据库结构(如表、索引等)的数据物理地存储在数据库的数据文件中。

数据文件通常为*.dbf格式,例如:userCIMS.dbf。数据文件有下列特征:

①、一个数据文件仅与一个数据库联系;

②、一旦建立,数据文件只增不减;

③、一个表空间(数据库存储的逻辑单位)由一个或多个数据文件组成。

Oracle的逻辑结构包括:表空间(tablespace),段(segment),数据块(data block)以及模式对象(schema object)。

Oracle数据库在逻辑上是由多个表空间组成的,表空间在物理上包含一个或多个数据文件。而数据文件大小是块大小的整数倍;表空间中存储的对象叫段,比如数据段,索引段和回退段。段由区组成,区是磁盘分配的最小单位。段的增大是通过增加区的个数来实现的。每个区的大小是数据块大小的整数倍,区的大小可以不相同;数据块是数据库中的最小的I/O单位,同时也是内存数据缓冲区的单位,及数据文件存储空间单位。块的大小由参数DB_BLOCK_SIZE设置,其值应设置为操作系统块大小的整数倍。

⑴、表空间(tablespace)

表空间是数据库中最大的逻辑单位,每一个表空间由一个或多个数据文件组成,一个数据文件只能与一个表空间相联系。每一个数据库都有一个SYSTEM表空间,该表空间是在数据库创建或数据库安装时自动创建的,用于存储系统的数据字典表,程序系统单元,过程函数,包和触发器等,也可用于存储用户数据表,索引对象。表空间具有在线(online)和离线(offline)属性,可以将除SYSTME以外的其他任何表空间置为离线。

⑵、段(segment)

数据库的段可以分为四类:数据段、索引段、回退段和临时段。

⑶、区

区是磁盘空间分配的最小单位。磁盘按区划分,每次至少分配一个区。区存储与段中,它由连续的数据块组成。

⑷、数据块

数据块是数据库中最小的数据组织单位与管理单位,是数据文件磁盘存储空间单位,也是数据库I/O的最小单位,数据块大小由DB_BLOCK_SIZE参数决定,不同的Oracle版本DB_BLOCK_SIZE的默认值是不同的。

⑸、模式对象

模式对象是一种应用,包括:表、聚簇、视图、索引序列生成器、同义词、哈希、程序单元、数据库链等。

Oracle的用户、表空间和数据文件的关系:一个用户可以使用一个或多个表空间,一个表空间也可以供多个用户使用。用户和表空间没有隶属关系,表空间是一个用来管理数据存储的逻辑概念,表空间只是

和数据文件发生关系,数据文件是物理的,一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。

总结一下:解释数据库、表空间、数据文件、表、数据的最好办法就是想象一个装满东西的柜子。数据库其实就是柜子,柜中的抽屉是表空间,抽屉中的文件夹是数据文件,文件夹中的纸是表,写在纸上的信息就是数据。

空间数据库的建立和维护

§2.7 空间数据库的设计、建立和维护 二、空间数据库的建立和维护 1、空间数据库的建立 在完成空间数据库的设计之后,就可以建立空间数据库。建立空间数据库包括三项工作,即建立数据库结构、装入数据和试运行。 1)建立空间数据库结构 利用DBMS提供的数据描述语言描述逻辑设计和物理设计的结果,得到概念模式和外模式,编写功能软件,经编译、运行后形成目标模式,建立起实际的空间数据库结构。 2)数据装入 一般由编写的数据装入程序或DBMS提供的应用程序来完成。在装入数据之前要做许多准备工作,如对数据进行整理、分类、编码及格式转换(如专题数据库装入数据时,采用多关系异构数据库的模式转换、查询转换和数据转换)等。装入的数据要确保其准确性和一致性。最好是把数据装入和调试运行结合起来,先装入少量数据,待调试运行基本稳定了,再大批量装入数据。 3)调试运行 装入数据后,要对地理数据库的实际应用程序进行运行,执行各功能模块的操作,对地理数据库系统的功能和性能进行全面测试,包括需要完成的各功能模块的功能、系统运行的稳定性、系统的响应时间、系统的安全性与完整性等。经调试运行,若基本满足要求,则可投入实际运行。 由以上不难看出,建立一个实际的空间数据库是一项十分复杂的系统工程。

2、空间数据库的维护 建立一个空间数据库是一项耗费大量人力、物力和财力的工作,都希望能应用得好,生命周期长。而要做到这一点,就必须不断地对它进行维护,即进行调整、修改和扩充。空间数据库的重组织、重构造和系统的安全性与完整性控制等,就是重要的维护方法。 1)空间数据库的重组织 指在不改变空间数据库原来的逻辑结构和物理结构的前提下,改变数据的存储位置,将数据予以重新组织和存放。因为一个空间数据库在长期的运行过程中,经常需要对数据记录进行插入、修改和删除操作,这就会降低存储效率,浪费存储空间,从而影响空间数据库系统的性能。所以,在空间数据库运行过程中,要定期地对数据库中的数据重新进行组织。DBMS一般都提供了数据库重组的应用程序。由于空间数据库重组要占用系统资源,故重组工作不能频繁进行。 2)空间数据库的重构造 指局部改变空间数据库的逻辑结构和物理结构。这是因为系统的应用环境和用户需求的改变,需要对原来的系统进行修正和扩充,有必要部分地改变原来空间数据库的逻辑结构和物理结构,从而满足新的需要。数据库重构通过改写其概念模式(逻辑模式)的内模式(存储模式)进行。具体地说,对于关系型空间数据库系统,通过重新定义或修改表结构,或定义视图来完成重构;对非关系型空间数据库系统,改写后的逻辑模式和存储模式需重新编译,形成新的目标模式,原有数据要重新装入。空间数据库的重构,对延长应用系统的使用寿命非常重要,但只能对其逻辑结构和物理结构进行局部修改和扩充,如果修改和扩充的内容太多,那就要考虑开发新的应用系统。

Oracle查看被锁定的表和行的SQL

我们在操作数据库的时候,有时候会由于操作不当引起数据库表被锁定,这么我们经常不知所措,不知怎么给这些表解锁,在pl/sql Developer工具的的菜单“tools”里面的“sessions”可以查询现在存在的会话,但是我们很难找到那个会话被锁定了,想找到所以被锁的会话就 更难了,下面这叫查询语句可以查询出所以被锁的会话。如下: SELECT https://www.360docs.net/doc/dc15624799.html,ername, m.SID,sn.SERIAL#, m.TYPE, DECODE (m.lmode, 0, 'None', 1, 'Null', 2, 'Row Share', 3, 'Row Excl.', 4, 'Share', 5, 'S/Row Excl.', 6, 'Exclusive', lmode, LTRIM (TO_CHAR (lmode, '990')) ) lmode, DECODE (m.request, 0, 'None', 1, 'Null', 2, 'Row Share', 3, 'Row Excl.', 4, 'Share', 5, 'S/Row Excl.',

6, 'Exclusive', request, LTRIM (TO_CHAR (m.request, '990')) ) request, m.id1, m.id2 FROM v$session sn, v$lock m WHERE (sn.SID = m.SID AND m.request != 0) OR ( sn.SID = m.SID AND m.request = 0 AND lmode != 4 AND (id1, id2) IN ( SELECT s.id1, s.id2 FROM v$lock s WHERE request != 0 AND s.id1 = m.id1 AND s.id2 = m.id2) )ORDER BY id1, id2, m.request; 通过以上查询知道了sid和SERIAL#就可以开杀了 alter system kill session 'sid,SERIAL#';

Oracle tablespace创建参数

Oracle tablespace创建参数 ORACLE中,表空间是数据管理的基本方法,所有用户的对象要存放在表空间中,也就是用户有空间的使用权,才能创建用户对象.否则是不充许创建对象,因为就是想创建对象,如表,索引等,也没有地方存放,Oracle会提示:没有存储配额.因此,在创建对象之前,首先要分配存储空间. 分配存储,就要创建表空间: 创建表空间示例如下: CREATE TABLESPACE "SAMPLE" LOGGING DATAFILE 'D:\ORACLE\ORADATA\ORA92\LUNTAN.ora' SIZE 5M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO 上面的语句分以下几部分: 第一: CREATE TABLESPACE "SAMPLE" 创建一个名为 "SAMPLE" 的表空间. 对表空间的命名,遵守Oracle 的命名规范就可了. ORACLE可以创建的表空间有三种类型: (1)TEMPORARY: 临时表空间,用于临时数据的存放; 创建临时表空间的语法如下: CREATE TEMPORARY TABLESPACE "SAMPLE"...... (2)UNDO : 还原表空间. 用于存入重做日志文件. 创建还原表空间的语法如下: CREATE UNDO TABLESPACE "SAMPLE"...... (3)用户表空间: 最重要,也是用于存放用户数据表空间 可以直接写成: CREATE TABLESPACE "SAMPLE" TEMPORARY 和 UNDO 表空间是ORACLE 管理的特殊的表空间.只用于存放系统相关数据. 第二: LOGGING 有 NOLOGGING 和 LOGGING 两个选项, NOLOGGING: 创建表空间时,不创建重做日志. LOGGING 和NOLOGGING正好相反, 就是在创建表空间时生成重做日志. 用NOLOGGING时,好处在于创建时不用生成日志,这样表空间的创建较快,但是没能日志,数据丢失后,不能恢复,但是一般我们在创建表空间时,是没有数据的,按通常的做法,是建完表空间,并导入数据后,是要对数据做备份的,所以通常不需要表空间的创建日志,因此,在创建表空间时,选择NOLOGGING,以加快表空间的创建速度. 第三: DATAFILE 用于指定数据文件的具体位置和大小. 如: DATAFILE 'D:\ORACLE\ORADATA\ORA92\LUNTAN.ora' SIZE 5M

Oracle的事务及锁

1、事务的概念: 事务是一个基本的逻辑单元,它作为一个整体要么全部执行要么全部不执行。 2、事务的特性: 原子性:事务是处理的一个原子单位,每一个操作不可拆分,它要么全部执行成功,要么全部都不执行。 一致性:指事务完成时,必须使所有的数据在整体上不变。 隔离性:各事务之间相互隔离,此事务的执行不受其他并发事务执行的干扰。 持续性:指事务对数据库的改变应是持续存在的,不会因故障而发生丢失。 3、从功能是上划分,sql语言分为DDL、DML和DCL: 3.1DDL(Data Definition Language,数据定义语言): 用于定义和管理数据库中的所有对象的语言,如:create创建表空间、alter修改表空间、drop 删除表空间 3.2:DML(Data manipulation Language,数据操作语言): 处理数据等操作,如:insert插入数据、delete删除数据、update修改数据、select查询数据3.3:DCL(Data Control Language,数据控制语言): 授予或回收访问数据库的权限,控制数据库操作事务发生的时间及效果,对数据库实行监视,如:grant授权,rollback回滚,commit提交 4、事务的开始及结束: 一个事务可以由一条DDL语句单独组成或多条DML语句共同组成。一个事务从执行第一条sql语句开始,在它被提交或被回滚时结束。事务的提交可以是显式提交:用commit命令直接完成;也可以是提交隐式提交:用sql语句间接完成提交,这些语句有:alter,audit,comment,create,disconnect,drop,exit,grant,noaudit,quit,revoke,rename,会话终止等;还可以是自动提交:set autocommit on或set autocommit immediate设置为自动提交,则在插入、删除、修改语句执行后自动提交,使用set autocommit off可以取消自动提交,show autocommit可以查看自动提交是否打开。事务的回滚使用rollback;语句,可以为事务设置保存点,如:savepoint point1,然后使用rollback to [savepoint] point1回到保存点point1,若在point1后又设置了一个保存点savepoint point2,则在rollback to point1后将不能再回滚到point2,因为point2在point1的后面,point1的保存点不存在point2。 5、事务的并发性与一致性: 并发性:多个用户可以在同一时刻访问相同的数据。 一致性:保证并发性的同时,每个用户能得到一致的数据视图。 并发执行事务时,可能发生如下情况: ①脏读:某个事务读取了其他未提交事务修改过的数据。 脏读示例:提交读隔离级别可防止脏读,但不能防止不可重复读 ②不可重复读:某个事务读取一次数据后,其他事务修改了这些数据并进行了提交,这样当该事务重新读取这些数据时,就会得到与前一次读取不一致的结果。简单的说,就是同样的条件,你读取过的数据,再次读取时发现值不一样了。 不可重复读示例:可重复读隔离级别可防止脏读和不可重复读

Oracle如何创建表空间-2012年5月1日

oracle创建表空间 SYS用户在CMD下以DBA身份登陆: 打开黑窗口 在CMD中打sqlplus /no log 然后再 conn / as sysdba // 分为四步 //第1步:创建临时表空间,路径自己换 create temporary tablespace user_temp tempfile 'E:\AProgramMy\Oracle11g\tablespace\user_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; //第2步:创建数据表空间,路径自己换 create tablespace user_data logging datafile 'E:\AProgramMy\Oracle11g\tablespace\user_data.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; (删除表空间: DROP TABLESPACE user_data INCLUDING CONTENTS AND DATAFILES; )

//第3步:创建用户并指定表空间 create user yzk identified by yzk default tablespace user_data temporary tablespace user_temp; (删除用户: drop user yzk cascade; ) //第4步:给用户授予权限,没有create sessio n权限就不能登录! grant connect,resource,create sessio n,create table to yzk; (撤销权限: revoke connect,resource,create session,create table from yzk; ) 查看已创建的表空间:select tablespace_name,status from dba_tablespaces; 这样就可以用此用户登录了,登录后是没有表的(如果管理员登录会有很多乱七八糟的表看着十分不爽,都不知道哪个是自己创建的)因为用户和表空间都是新的所以什么也没,此时就可以新建表了,终于解决了我的疑问,爽! --------------------------------------------------------------------------------- //以后以该用户登录,创建的任何数据库对象都属于user_temp 和user_data 表空间, 这就不用在每创建一个对象给其指定表空间了 查看创建的表空间的名称和状态: select tablespace_name,status from dba_tablespaces; 撤权: revoke 权限... from 用户名; 删除用户命令 drop user user_name cascade; 删除表空间 DROP TABLESPACE data01 INCLUDING CONTENTS AND

NC数据源配置和数据库表空间的配置

NC数据源配置和数据库表空间的配置 NC61数据源配置和数据 发现童鞋们在安装NC61的时候遇到的问题非常多,尤其是建立多个帐套的时候更是问题多多。 我总结了一下,问题的症结就在于对数据库的表空间、用户、UAP配置等关系没有理清楚。 如果这篇文章帮助你解决了问题,希望你能把你出现问题的截图发上来,并告诉大家用这个方法可以解决。 写了一个下午,看完好歹给个回复。 -------------------------------------------------------------------------------- 问题症状往往表现为: 1.数据源配置的时候测试通不过; 2.数据源配置的时候测试能通过,但在建库的时候通不过,比如到10%的时候

弹出错误“物理布局错误”,到30%的时候弹出错误“表或视图不存在”等等。 3.按照下面的方法,UAP配置测试通不过,出现ORA-12519错误的时候,可以尝试先关闭中间件,再测试。 小伙伴们,如果你遇到类似的问题,建议你继续往下看,一定要看到最后哟。 -------------------------------------------------------------------------------- 授人以鱼不如授人以渔 首先告诉大家一个小秘密,相信很多童鞋都还不知道呢。 在NC61安装盘的根目录下,有三个文档,你们都看过么? 还有其他的那些文件,你们都知道是干什么用的么?

既然是放到安装盘里的内容,肯定是有用的吧。 在NC61安装盘的DOC目录下,有很多的帮助文档,你们都看过了么? 还记得配置数据库的时候我们用了几段代码么? 其实就是《NC6.1数据库参考脚本及临时表要求.pdf》这篇文档里的,自己去找找看。 看完上面这些东东,小伙伴们都惊呆了!有木有! 哦。。。原来解决方案远在天边,近在眼前呢! 下次再遇到问题你还会直接就去问别人么? 也希望大家有什么好的方法都共享出来哦! 其实我还有别的小秘密,下次告诉大家吧。 下面进入正题了,本着知其然并知其所以然的精神,我重点讲讲我的理解和方法。 --------------------------------------------------------------------------------

Oracle常见死锁发生的原因以及解决方法

Oracle常见死锁发生的原因以及解决方法 Oracle常见死锁发生的原因以及解决办法 一,删除和更新之间引起的死锁 造成死锁的原因就是多个线程或进程对同一个资源的争抢或相互依赖。这里列举一个对同一个资源的争抢造成死锁的实例。 Oracle 10g, PL/SQL version 9.2 CREATE TABLE testLock( ID NUMBER, test VARCHAR(100) ) COMMIT INSERT INTO testLock VALUES(1,'test1'); INSERT INTO testLock VALUES(2,'test2'); COMMIT; SELECT * FROM testLock 1. ID TEST 2.---------- ---------------------------------- 3. 1 test1 4. 2 test2 死锁现象的重现: 1)在sql 窗口执行:SELECT * FROM testLock FOR UPDATE; -- 加行级锁并对内容进行修改, 不要提交 2)另开一个command窗口,执行:delete from testLock WHERE ID=1; 此时发生死锁(注意此时要另开一个窗口,不然会提示:POST THE CHANGE RECORD TO THE DATABASE. 点yes 后强制commit):

3)死锁查看: 1.SQL> select https://www.360docs.net/doc/dc15624799.html,ername,l.object_id, l.session_id,s.serial#, s.lockwait,s.status,s.machine, s.program from v$session s,v$locked_object l where s.sid = l.session_id; USER NAME SESSION_ID SERIAL# LOCKWAIT STATUS MACHINE PROGRAM 2.---------- ---------- ---------- -------- -------- ---------------------- ------------ 3.SYS 146 104 INACTIVE WORKGROUP\J-THINK PLSQLDev.exe 4.SYS 144 145 20834474 ACTIVE WORKGROUP\J-THINK PLSQLDev. exe 字段说明: Username:死锁语句所用的数据库用户; SID: session identifier,session 标示符,session 是通信双方从开始通信到通信结束期间的一个上下文。 SERIAL#: sid 会重用,但是同一个sid被重用时,serial#会增加,不会重复。 Lockwait:可以通过这个字段查询出当前正在等待的锁的相关信息。 Status:用来判断session状态。Active:正执行SQL语句。Inactive:等待操作。Killed:被标注为删除。 Machine:死锁语句所在的机器。 Program:产生死锁的语句主要来自哪个应用程序。 4)查看引起死锁的语句:

Oracle 11g表空间——创建和扩展(永久)表空间

Oracle 11g表空间——创建和扩展(永久)表空间 本文内容 创建(永久)表空间 查看表空间 扩展表空间 创建(永久)表空间 Oracle 按照区和段空间进行管理表空间。 区管理方式 - 针对区的分配方式的不同,有两种方式:字典管理方式 (dictionary-managed tablespace,DMT)和本地管理方式(local-managed tablespace,LMT)。Oracle 10g 开始强烈建议使用 LMT 方式。从 Oracle 9i 开始,创建表空间时默认使用 LMT。 其中,LMT 区的分配方式: 统一(UNIFORM)- 统一分配。指定表空间中所有区的大小都相同。默认值是 1MB。自动(AUTOALLOCATE 或 SYSTEM)- 自动分配。指定有 Oracle 系统来自动管理区的大小。这是默认设置。 段管理方式– LMT 方式,除了可以指定区的分配方式外,还可以指定段的管理方式。段空间管理方式主要是指 Oracle 用来管理段中已用数据块和空闲数据块的机制。分为两种: 手动(MANUAL)- Oracle 将使用空闲列表(free list)管理段的已用数据块和空闲数据块。这是传统的段空间管理方式,为了与以前的版本兼容。 自动(AUTO)- Oracle 将使用位图(bitmap)来管理段的已用数据块和空闲数据块。通过位图中单元的取值判断段中的数据块是否可用。 字典管理方式没有段管理。 下面示例演示用本地管理方式创建表空间。这是 Oracle 推荐的方式。 示例 1:使用 AUTOALLOCATE 区分配方式。创建表空间 mytbs01,数据文件是 D:\oracledata\mytbs01_1.dbf,大小为 2M,并指定区分配方式为 AUTOALLOCATE。create tablespace mytbs01 datafile 'D:\oracledata\mytbs01_1.dbf' size 2M

1如何判断数据库表空间使用情况

如何判断数据库表空间使用情况 经常会有一些同事反映数据库表空间不足,使用率达到90%以上,我远程后发现,其实表空间还有很大的可扩展空间,之所有查出使用率95%以上,是与数据文件的扩展属性与查询语句有关,本文档介绍如何查看表空间最大可扩展空间。 1,数据文件与表空间介绍 表空间是一个逻辑概念,数据文件是物理概念,数据文件是实实在在存在于磁盘上的文件。一个表空间可以1022个数据文件,公司项目中的一个数据文件如果开启了自动扩展属性,那最大可以扩展到32G。 2,查看数据文件信息 公司的绝大部分RAC环境是使用ASM方式管理数据文件的,可以通过数据文件名称直观的辨别数据文件是的存储方式,一般ASM磁盘名都是以加号"+"开头,例如"+DATA"、"+FRA"之类。如果是单机环境,那数据文件会存放在本地文件系统上,例如D盘或E盘的某个目录下,使用select * from dba_data_files;命令查看当前数据库的数据文件信息,如下图: 建议按tablespace_name排序,图中DLMIS表空间有12个数据文件,而且12个数据文件都开启的自动扩展属性(AUTOEXTENSIBLE=YES),都存储在+DATA 磁盘组上,最大可扩展到12*32G=384G。目前DLMIS表空间有4个文件扩展到了32G(图中红框标示)。另外8个数据文件还有很大的可扩展空间,目测估计还有约130G左右的可扩展空间,所以DLMIS表空间当前是足够的。其他表空间也是这样查看。 3,增加数据文件 如果某个表空间的所有数据文件都快扩展到了32G,那就需要手动增加数据文件,以DLMIS表空间为例,向DLMIS表空间增加一个数据文件:

实验一空间数据库的创建与数据导入

实验一空间数据库的创建与数据导入 一、实验目的 1.利用ArcCatalog管理地理空间数据库,熟悉ArcCatalog的操作。 2、理解Geodatabse空间数据库模型的相关概念,掌握创建个人地理数据库 的方法。 二、实验内容 1、拷贝实验数据 2、启动ArcCatalog,点击按钮(连接到文件夹). 建立到data 的连接 3、打开coverage、shapefile文件夹,查看下的要素及属性,理解两种数据模型。 4、打开montgomery.gdb 空间数据库查看并理解montgomery.gdb数据库中包含 的要素集、要素类等信息,在预览窗口预览要素类等几何特性。 4、查看属性信息 在此预览窗口的下方,“预览”下拉列表中,选择“表格”。可以看到属性表,查看它的属性字段信息。

5、向Geodatabase导入coverage数据 (1)在ArcCatalog中右击Water 数据集,指向Import,点击Feature Class(multiple) (2)单击Browse 按钮,定位到laterals coverage中的弧段要素类, 单击Add. (3)单击OK,此时laterals_arc 要素类加入到Water 数据集. (4)在arccatalog中将laterals_arc要素类重命名为laterals (5)右击Laterals 并单击Properties,为该要素类输入别名“Water laterals”(6)单击Fields 标签,单击OBJECTID 字段并为该字段输入别名“Feature identifier”. (7)单击Preview 标签察看其特征.

Oracle数据库死锁的一些通用操作

经常碰到Oracle数据库死锁,原因很多,大部分情况下都需要用到的操作主要有以下几个方面:1、查找死锁。当发现死锁时,必须要知道死锁的情况和发生死锁的根源。 1)查看是否有死锁: select object_id,session_id,locked_mode from v$locked_object; 2)查看死锁的用户和进程: select https://www.360docs.net/doc/dc15624799.html,ername,t2.sid,t2.serial#,t2.logon_timefrom v$locked_object t1,v$session t2where t1.session_id=t2.sidorder by t2.logon_time; 3)查看死锁的对象: select t1.object_name,t2.session_id,t2.locked_modefrom dba_objects t1,v$locked_object t2where t1.object_id=t2.object_id; 或者 select t3.object_name,T3.object_type,https://www.360docs.net/doc/dc15624799.html,ername,t2.sid,t2.serial#,t2.logon_timefrom dba_objects t3,v$locked_object t1,v$session t2where t1.session_id=t2.sidand t3.object_id=t1.object_id order by t2.logon_time; 4)查看死锁发生的sql语句: select sql_text from v$sql where hash_value in (select sql_hash_value from v$session where sid in (select session_id from v$locked_object)); 2、删除死锁: (1).先杀Oracle进程: ALTER SYSTEM KILL SESSION '查出的SID,查出的SERIAL#'; (2).再杀操作系统进程: KILL -9 刚才查出的SPID 3、ORACLE里锁有以下几种模式: 0:none 1:null 空 2:Row-S 行共享(RS):共享表锁 3:Row-X 行专用(RX):用于行的修改 4:Share 共享锁(S):阻止其他DML操作 5:S/Row-X 共享行专用(SRX):阻止其他事务操作 6:exclusive 专用(X):独立访问使用 数字越大锁级别越高, 影响的操作越多。 4、一些基础判断 ?一般的查询语句如select ... from ... ;是小于2的锁, 有时会在v$locked_object出现。 select ... from ... for update; 是2的锁。 ?当对话使用for update子串打开一个游标时,所有返回集中的数据行都将处于行级(Row-X)独占式锁定,其他对象只能查询这些数据行,不能进行update、delete或 select...for update操作。

oracle10g数据库的表空间查看和修改

oracle数据库表空间大小的查看、修改 1、通过oracle客户端连接到oracle数据库 a)安装好oracle客户端后,通过net manager工具配置本地net服务名, 依次点击开始,程序,Oracle - OraClient10g_home1,配置和移植工具,Net Manager。 b)进入Net Manager配置窗口。

c)依次点击本地,服务命名。 d)可以看到左侧的号变成绿色,此时可以点击该,弹出net服务名的 配置窗口

e)这里的网络服务名是指的oracle客户端所在机器的本地服务名,随便设 置个名字,例如sbzw,点击下一步。 f)默认设置,点击下一步。 g)在主机名后的输入框中输入oracle数据库所在的服务器的ip地址,例 如:192.168.1.236.,点击下一步。

h)在服务名后的输入框中输入oracle数据库的全局服务名,例如tjsb, 点击下一步。 i)此处不要点击完成,先点击测试查看连接是否正常。

j)在连接测试窗口中显示的应该是测试没有成功,此时请点击更改登录。 k)修改了用户名和密码后,点击确定,然后再次点击“测试”,提示连接成功后,关闭连接测试窗口,点击完成,至此本地net服务名配置完成。 2、通过oracle客户端的企业管理器修改数据库的表空间大小

a)依次点击开始,程序,Oracle - OraClient10g_home1,Enterprise Manager Console(企业管理器)。 b)进入了oracle的企业管理器 c)依次点击数据库,sbzw,弹出登录窗口,

实验三 空间数据库的建立

《地理信息系统》实验报告 试验( 二 ) 题目:空间数据库的建立、运行 姓名: 班级:测绘工程10-2班 专业:测绘工程 时间:2013.10.9

实验内容: 建立数据库及要素集和要素类 实验要求: 根据ArcGIS参考教材,熟悉基本功能及操作,要求自主构建数据库,熟悉流程。实验过程及图示: 一:创建新 Shapefile (1)在 ArcCatalog 目录树中,右键单击需要创建 Shapefile 的文件夹,单击 New,再单击 Shapefile (2)打开 Create New Shapefile 对话框,设置文件名称和要素类型。要素类型可以通过下拉菜单选择 Polyline、 Polygon、 MultiPoint、 MultiPatch 等要素类型。 (3)单击编辑按钮,定义 Shapefile 的坐标系统,打开 Spatial Reference 对话框(4)单击 Select 按钮,可以选择一种预定义的坐标系统;单击 Import 按钮,可以选择想要复制其坐标系统的数据源;单击 New 按钮,可以定义一个新的、自定义的坐标系统。

(5)如果 Shapefile 要存储表示路线的折线,那么要复选 Coordinates will contain M Values,如果Shapefile 将存储三维要素,那么要复选Coordinates will contain Z Values。(6)单击 OK 按钮,新的 Shapefile 在文件夹中出现。 二、 Geodatabase 数据库创建 1、建立persornal database 在ArcCatalog的目录树中,定位到要创建数据库在磁盘上的位置,鼠标右键,选择-<文件夹>,文件夹名称改为 myGeoDB 。右键选中这个文件夹,在出现的菜单中,点击<新建>-<个人Geodatabase>,这时会创建一个名称为“新建个人Geodatabase.mdb”的数据库文件,将之改名为:“Yunnan”。 2、建立要素集 右键点击数据库文件“Yunan.mdb”,在出现的菜单中,选择- 在出现的对话框中输入要素集的名称Kunming、点击下一步,为其指定一个坐标系Geographic Coordinate System->World->WGS 1984.prj

oracle的TM锁T锁知识完全普及

o r a c l e的T M锁、T X锁知识完全普及锁概念基础 数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。 在数据库中有两种基本的锁类型:排它锁(ExclusiveLocks,即X锁)和共享锁(ShareLocks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两种基本的锁类型来对数据库的事务进行并发控制。 Oracle数据库的锁类型 根据保护的对象不同,Oracle数据库锁可以分为以下几大类:DML锁(datalocks,数据锁),用于保护数据的完整性;DDL锁(dictionarylocks,字典锁),用于保护数据库对象的结构,如表、索引等的结构定义;内部锁和闩(internallocksandlatches),保护数据库的内部结构。 DML锁的目的在于保证并发情况下的数据完整性,。在Oracle数据库中,DML锁主要包括TM锁和TX锁,其中TM锁称为表级锁,TX锁称为事务锁或行级锁。 当Oracle执行DML语句时,系统自动在所要操作的表上申请TM类型的锁。当TM锁获得后,系统再自动申请TX类型的锁,并将实际锁定的数据行的锁标志位进行置位。这样在事务加锁前检查TX 锁相容性时就不用再逐行检查锁标志,而只需检查TM锁模式的相容性即可,大大提高了系统的效率。TM锁包括了SS、SX、S、X等多种模式,在数据库中用0-6来表示。不同的SQL操作产生不同类型的TM锁。 在数据行上只有X锁(排他锁)。在Oracle数据库中,当一个事务首次发起一个DML语句时就获得一个TX锁,该锁保持到事务被提交或回滚。当两个或多个会话在表的同一条记录上执行DML语句时,第一个会话在该条记录上加锁,其他的会话处于等待状态。当第一个会话提交后,TX锁被释放,其他会话才可以加锁。 当Oracle数据库发生TX锁等待时,如果不及时处理常常会引起Oracle数据库挂起,或导致死锁的发生,产生ORA-60的错误。这些现象都会对实际应用产生极大的危害,如长时间未响应,大量事务失败等。 悲观封锁和乐观封锁 一、悲观封锁 锁在用户修改之前就发挥作用: Select..forupdate(nowait)

oracle数据库简答题

简述表空间和数据文件之间的关系。 答:每一个数据文件都必须隶属于某个表空间,但一个表空间可以由多个数据文件组合而成。tablespace是逻辑上的概念,datafile则在物理上储存了数据库的种种对象。 概述Oracle数据库体系的物理结构。 答:Oracle数据库体系的物理结构是指数据库上实际的、可以从操作系统看到的文件,可以利用操作系统指令进行管理作业,物理存储结构组成文件如下所列:数据文件(Data File):实际存储数据的地方;在线重做日志文件(Online Redo Log File):记录曾经发生过的动作,当数据库受损时,可利用在线重做日志文件进行必要的恢复动作;控制文件(Control File):记录数据库必要的信息,以验证及维护数据库的完整性的信息;初始化参数文件(Parameter File):当数据库开启时,用来架构出Oracle内存结构的文件;密码文件(Password File):验证哪些帐号能开启、关闭Oracle数据库。 简要介绍表空间、段、区和数据块之间的关系。 答:Oracle的逻辑存储单元从小到大依次为:数据块、区、段和表空间。表空间又由许多段组成,段由多个区组成,区又由多个数据块组成。 简述Oracle实例系统中各后台进程的作用。 答:(1)DBWRn(Database Writer)的主要工作是将数据缓冲区中被改过的数据写回到数据文件里。(2)LGWR(Log Writer)主要的工作是将Redo Log Buffer里的记录写到在线重做日志文件中。(3)SMON(System Monitor)有两个主要的功能。<1>执行Instance Recovery:当数据库不正常中断后再度开启时,SMON会自动执行Instance Recovery,也就是会将在线重做日志里面的数据回写到数据文件里面。<2>收集空间:将表空间内相邻的空间进行合并的动作。 (4)PMON(Process Monitor):监视数据库的用户进程。若用户的进程不当而被中断,PMON会负责清理任何遗留下来的资源,并释放失效的进程所保留的锁,然后从Process List中移除,以终止Process ID。(5)CKPT(Checkpoint)主要负责更新数据库的最新状态,CKPT当Checkpoint完成时,会更新控制文件和数据库文件的文件头。(6)ARCn(Archiver).当Oracle 数据库设定为ARCHIVELOG Mode时,ARCn 会在Log Switch时自动将Redo Log File复制一份到指定的目录下称为归档日志文件(Archivedredologs)。 共享和专用操作模式的工作过程有什么区别? 在专用服务器操作模式中,Oracle为每个连接到数据库实例的用户进程启动一个专门的服务进程,其用户进程数与服务器进程数的比例为1:1因为在用户进程空闲期间,对应的服务器进程始终存在,数据库的效率比较低。共享服务器操作模式可以实现只运行少量的服务器进程,由少量的服务器进程为大量用户提供服务。在此模式下,数据库实例启动的同时也将启动一定数量的服务进程,在调度进程Dnnn的调度下位任意数量的用户进程提供服务。 简述oracle的初始化参数文件? 答:在传统上,Oracle在启动实例时将读取本地的一个文本文件,并利用从中获取初始化参数对实例和数据库进行设置,这个文本文件称为初始化参数文件(简称为PFILE)。 简述如何修改初始化参数文件? 答:如果要对初始化参数进行修改,必须先关闭数据库,然后在初始化参数文件中进行编辑,再重新启动数据库使修改生效。 简述启动数据库时的状态。 答:开启数据库分成4种状态。SHUTDOWN状态:数据库是关闭的。NOMOUNT状态:Instance被开启的状态,会去读取初始化参数文件。MOUNT状态:会去读取控制文件。数据库被装载。OPEN状态:读取数据文件、在线重做日志文件等,数据库开启。 简述数据库的各种关闭方式。 答:(1)正常关闭(SHUTDOWN NORMAL):不允许新的USER连进来。(2)事务关闭

oracle数据库建表空间语句汇总

建立表空间和用户的步骤: 用户 建立:create user 用户名identified by "密码"; 授权:grant create session to 用户名; grant create table to 用户名; grant create tablespace to 用户名; grant create view to 用户名; 表空间 建立表空间(一般建N个存数据的表空间和一个索引空间): create tablespace 表空间名 datafile ' 路径(要先建好路径)\***.dbf ' size *M tempfile ' 路径\***.dbf ' size *M autoextend on --自动增长 --还有一些定义大小的命令,看需要 default storage( initial 100K, next 100k, ); 用户权限 授予用户使用表空间的权限: alter user 用户名quota unlimited on 表空间; 或alter user 用户名quota *M on 表空间; --表空间 CREATE TABLESPACE deej DA TAFILE 'E:\database\deej.dbf' size 2G EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; --索引表空间 CREATE TABLESPACE sdt_Index DA TAFILE 'F:\tablespace\demo' size 512M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; --2.建用户 create user deej identified by deej default tablespace deej; --3.赋权

oracle创建表空间命令

eclipse+webservice开发实例 spring mvc数据绑定 oracle11g 创建表空间和用户授权 2013-01-27 10:54:18| 分类:默认分类| 标签:|举报|字号大中小订阅 *分为四步*/ /*第1步:创建临时表空间*/ create temporary tablespace user_temp tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; /*第2步:创建数据表空间*/ create tablespace AKJY_DATA logging datafile 'E:\oracleDATA\akjy_data.dbf' size 50m autoextend on next 50m maxsize 2048m extent management local; eclipse+webservice开发实例 spring mvc数据绑定 create tablespace DATA datafile 'D:\Program Files\oracle11g\DATA.dbf’size 1G autoextend on next 50m maxsize 20480m oracle11g 创建表空间和用户授权 2013-01-27 10:54:18| 分类:默认分类| 标签:|举报|字号大中小订阅 *分为四步*/ /*第1步:创建临时表空间*/ create temporary tablespace user_temp tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; /*第2步:创建数据表空间*/

相关文档
最新文档