oracle数据库基础练习

2024-08-09

oracle数据库基础练习(精选14篇)

oracle数据库基础练习 篇1

分析:每个部门有多少员工 —— 根据部门编号进行分组

select deptno,count(*) from emp group by deptno having count(*) >= 1;

2.列出薪金比“smith”多的所有员工。

分析:先查询出smith工资 : select sal from emp where ename=’smith’;

select * from emp where sal > (select sal from emp where ename=’smith’);

3. 列出所有员工的姓名及其直接上级的姓名。

分析:表自映射,为表起别名,进行关联 t1 表模拟员工表 t2 表保存直接上级信息

select t1.ename 员工姓名, t2.ename 直接上级 from emp t1,emp t2 where t1.mgr = t2.empno;

4.列出受雇日期早于其直接上级的所有员工。

分析:原理和上题类似

select t1.*,t2.hiredate from emp t1,emp t2 where t1.mgr = t2.empno and t1.hiredate < t2.hiredate;

5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。

分析:部门没员工也要显示 — 外连接。无论怎样部门信息一定要显示,通过部门去关联员工

select * from dept left outer join emp on dept.deptno = emp.deptno ;

6.列出所有“clerk”(办事员)的姓名及其部门名称。

分析:查找job为clerk 员工姓名和部门名称

员工姓名 emp表

部门名称 dept表

select emp.ename,dept.dname,emp.job from emp,dept where emp.deptno = dept.deptno and emp.job=’clerk’;

7.列出最低薪金大于1500的各种工作。

分析:工作的最低薪金 —- 按工作分组,求最低薪金

select min(sal) from emp group by job;

大于1500 是一个分组条件 — having

select job,min(sal) from emp group by job having min(sal) > 1500;

8.列出在部门“sales”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。

分析:员工姓名位于 emp 部门名称 dept

select emp.ename from emp,dept where emp.deptno = dept.deptno and dept.dname = ‘sales’;

9.列出薪金高于公司平均薪金的所有员工。

分析:先求公司平均薪金 select avg(sal) from emp;

select * from emp where sal > (select avg(sal) from emp);

10.列出与“scott”从事相同工作的所有员工。

分析:先查询scott : select job from emp where ename =’scott’;

select * from emp where ename ‘scott’ and job = (select job from emp where ename =’scott’);

11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。

分析:查看部门30 中所有员工薪资列表 select sal from emp where deptno = 30;

select * from emp where sal in (select sal from emp where deptno = 30);

12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。

分析:

select * from emp where sal > all(select sal from emp where deptno = 30);

select * from emp where sal > (select max(sal) from emp where deptno = 30);

13.列出在每个部门工作的员工数量、平均工资。

分析:按部门分组

select deptno, count(*),avg(sal) from emp group by deptno;

14.列出所有员工的姓名、部门名称和工资。

分析:

select emp.ename,dept.dname,emp.sal from emp,dept where emp.deptno = dept.deptno;

15.列出所有部门的详细信息和部门人数。

分析:

select dept.*,count(emp.*) from emp,dept where emp.deptno = dept.deptno group by deptno ; 错误!

求各个部门编号和人数 select deptno,count(*) from emp group by deptno;

再和dept表关联 select dept.*,temp.部门人数 from dept , (select deptno,count(*) 部门人数 from emp group by deptno) temp where dept.deptno = temp.deptno ;

16.列出各种工作的最低工资。

分析:各个工作 分组 , 最低工资 min

select job,min(sal) from emp group by job;

17.列出各个部门的manager(经理)的最低薪金。

分析:where job=’manager’ 过滤所有不是经理数据

select deptno,min(sal) from emp where job =’manager’ group by deptno;

18.列出所有员工的年工资,按年薪从低到高排序。

分析: select ename, sal*12 from emp order by sal*12 asc;

19.查出emp表中薪水在3000以上(包括3000)的所有员工的员工号、姓名、薪水。

分析: select * from emp where sal >= 3000;

20.查询出所有薪水在’allen’之上的所有人员信息。

分析:select * from emp where sal > (select sal from emp where ename =’allen’);

21.查询出emp表中部门编号为20,薪水在以上(不包括)的所有员工,显示他们的员工号,姓名以及薪水,以如下列名显示:员工编号 员工名字 薪水

分析: select empno 员工编号,ename 员工姓名 ,sal 薪水 from emp where deptno = 20 and sal > ;

22.查询出emp表中所有的工作种类(无重复)

分析: select distinct job from emp;

23.查询出所有奖金(comm)字段不为空的人员的所有信息。

分析:不为空 is not null

select * from emp where comm is not null;

24.查询出薪水在800到2500之间(闭区间)所有员工的信息。(注:使用两种方式实现and以及between and)

分析:select * from emp where sal >= 800 and sal <= 2500;

select * from emp where sal between 800 and 2500;

25.查询出员工号为7521,7900,7782的所有员工的信息。(注:使用两种方式实现,or以及in)

分析:select * from emp where empno in(7521,7900,7782);

select * from emp where empno=7521 or empno = 7900 or empno = 7782;

26.查询出名字中有“a”字符,并且薪水在1000以上(不包括1000)的所有员工信息。

分析: 模糊查询

select * from emp where ename like ‘%a%’ and sal > 1000;

27.查询出名字第三个字母是“m”的所有员工信息。

分析:第三个字母 __m%

select * from emp where ename like ‘__m%’;

28.将所有员工按薪水升序排序,薪水相同的按照入职时间降序排序。

分析:select * from emp order by sal asc,hiredate desc;

29.将所有员工按照名字首字母升序排序,首字母相同的按照薪水降序排序。

分析:substring(‘字符串’,第几个字符,长度); —- 首字母 substring(ename,1,1)

oracle数据库基础练习 篇2

对于超大型系统,我们通常使用双机或多机集群系统。在本文中,我们探讨了设计超大型数据库所采用的方法,同时,以在数据库中使用ORACLE 8.0.6并行服务器作出举例。

2 ORACLE并行服务器应用划分策略

ORACLE并行服务器应用划分有如下四种方法:(1)按照功能的模块来区分,不一样的节点运行不一样的应用;(2)按照用户来区分,不一样类型的用户运行在不一样的节点之上;(3)按照数据来区分,对于不一样的数据或者索引要用不一样的节点进行访问;(4)按照时间来区分,不一样的应用要运行在不同的时间。

3 数据库物理结构的设计

3.1 表及索引数据量估算及物理存储参数的设置。表及索引的initial和next存储参数一般设为相等,pctincrease设为0。

3.2 表空间的设计。在表空间设计时一般作以下考虑:(1)一般较

大的表或索引单独分配一个表空间。(2)Read only对象或Read mostly对象分成一组,存在对应的表空间中。(3)若表空间中的对象皆是read only对象,可将表空间设置成read only模式,在备份时,只读表空间只需备份一次。(4)高频率insert的对象分成一组,存在对应的表空间中。(5)增、删、改的对象分成一组,存在对应表空间中。(6)表和索引分别存于不同的表空间。(7)存于同一个表空间中的表(或索引)的extent大小最好成倍数关系,有利于空间的重利用和减少碎片。

3.3 DB BLOCK SIZE。超大型数据库DB BLOCK SIZE一般在

4KB至64KB,而最常用的是8KB、16KB或32KB。选用较大的DB BLOCK SIZE可使INDEX的高度降低,也会提高IO效率。

3.4 Redo Log Files ORACLE使用专用的进程redo log writer(LGWR)将日志写入日志文件。

3.5 数据文件大小。我们应该采用标准的文件,这样能够缩减空间维护的时间。

3.6 回滚段。回滚段一般建在专用的表空间中。每一个INSTANCE实例拥有各自的回滚段。

3.7 临时表空间。临时表空间一般建在专用的表空间中。

4 系统硬盘的划分及分配

考虑以下情况:主机1上有DRD服务1,该服务对应的数据文件有1、2、13、35、67等,这时如果主机2上的INSTANCE2需要读取数据文件13,通过DRD服务调度,主机1通过DRD服务访问磁盘阵列上的数据文件13,把INSTANCE2需要的数据读到内存,然后通过MEMORY IO把数据传到主机2的INSTANCE2。写操作是读操作的逆过程。

5 备份及恢复策略的考虑

5.1 ORACLE备份方法:(1)物理备份(用于磁盘介质损坏或数

据文件损坏)。1)物理冷备份(offline backup)。2)物理热备份(online backup)。3)归档日志文件备份(archived log file backup)。(2)逻辑备份(用于数据库中的某些对象被破坏或用户误操作)。备份策略的考虑主要在以下三个方面:1)存储的空间方面;2)针对于影响运行系统方面;3)影响恢复的时间方面。

5.2 ORACLE的恢复方法

采用物理备份恢复。以下三方面的恢复方法是由ORACLE提供:(1)数据库级的恢复;(2)表空间的恢复;(3)数据文件的恢复。数据库级的恢复要在以下条件中运行:关闭数据库但Mount的状态。然而,对于恢复表空间和数据文件时,可以运行数据库。

5.3 采用逻辑备份恢复其适用条件是:其一,用户的操作失误导致数据的破坏;其二,在数据库中,破坏了某一个对象。

6 优化设计

6.1 数据库优化自由结构OFA(Optimal flexible Architecture)

优化自由结构是在数据库中能够任意的分布逻辑数据对象。所以,应该把数据库中的逻辑对象按照它们的使用方法以及数据库受到物理结构的影响来对逻辑对象进行分类。

6.2 充分利用系统全局区域SGA(SYSTEM GLOBAL AREA)

SGA有以下3方面的内容:(1)字典缓冲区。(2)数据块缓冲区。(3)SQL共享池。(4)重做日志缓冲区。

6.3 规范与反规范设计数据库

规范的原则是在数据依赖中逐渐的解决不适宜的部分,将模式中每一个关系模式达到一定程度上的“一事一地”的模式。但是,有时为了能提高一些查询或者应用的性能,从而故意破坏规范规则,保留非范化限制,也就是反规范。

6.4 索引Index的优化设计

第一,使用聚簇。聚簇按照共同的码值把许多表中的数据都存储在一个Oracle块里,这样,Oracle块在同一时间就获得了两个表当中的数据。第二,管理组织索引,针对于查询大型表的时候,索引数据或许将数据块缓存空间用完,ORACL必须经常地通过磁盘读写来得到数据,所以,对大型表分区后,我们要按照有关的分区去建立分区索引。

6.5 使用最优的数据库连接和SQL优化方案

第一,采用直接的OLE DB数据库连接方式。通过ADO,我们可以采用传统的ODBC以及OLE DB两种方式对数据库进行连接。第二,采用Connection Pool机制。其原理是在IIS+ASP体系中维持了一个连接缓冲池,基于此,下一个用户在访问的时候,能够直接在其中获得一个数据库的连接,同时避免了重新对数据库的连接。第三,高效率的对SQL语句进行设计。其一,可以使数据库的查询次数(系统资源的请求)减少;其二,在进行查询时,应尽可能的采用十分类似的SQL语句;其三,对动态SQL的使用可以进行约束。

参考文献

[1]周渝斌.基于ORACLE8i的大型数据库技术讲座之一数据库优化篇[J].电脑编程技巧与维护,2002.

Oracle数据库备份技巧 篇3

每周一次备份主数据库。如果你创建、修改或者停止一个数据库,添加新的sql server消息,添加或者停止连接服务器,或者添加记录设备,那就进行手工备份。

每天备份一次msdb数据库。它一般非常小,但很重要,因为它包含了所有的sql server工作、操作和计划任务。

只有当你修改它时,才有必要备份模型数据库。

用sql server agent来安排你的备份工作的时间表。

如果在你的生产(production)环境中有现成资源,备份生产数据库到本地磁盘或者网络服务器(用同一个开关)。然后,把备份文件/设备拷贝到磁带上。在存在许多硬件故障(特别是在raid系统中)的情况下,磁盘常常是完好的(inact)。如果备份文件是在磁盘上,那么恢复时的速度会提高很多。

备份开发和测试数据库至少要用到simple恢复模型。

除了有计划的定时备份外,在进行未记录的(nonlogged)批操作(如,批拷贝)、创建索引、或者改变恢复模型后要备份用户数据库。

如果你使用的是simple恢复模型,记住在截短(truncate)交易记录之后备份你的数据库。

用文档记录你的恢复步骤。至少要大概记录这些步骤,注意所有的重要文件的位置。

--------------------------------------------------------------------------------

在截短记录之前,也就是所有的已提交(committed)交易从记录中清空之前,所有的这些信息都保存在交易记录中。在simple恢复模型中,记录在一个checkpoint期间内截短(在sql server内存缓冲写道磁盘时),它是自动发生的,但也可以手动执行。这也就是simple恢复模型不支持时间点(point-in-time)恢复的原因。在full和bulk_logged恢复模型下,当交易记录被备份时,交易记录被截短,除非你明确指出不进行截短。

为了备份交易记录,使用backup log命令。其基本语法与backup命令非常相似:

backup log { database } to

下面是如何把交易记录备份到一个名为logbackupdevice的逻辑设备上的例子:

backup transaction northwind to logbackupdevice

如果你不希望截短交易记录,使用no_truncate选项,如下所示:

backup transaction northwind to logbackupdevice with no_truncate

只是基本知识。

ORACLE数据库的部分试题 篇4

1怎样查看数据库引擎的报错

解答:alert log.

2比较truncate和delete 命令

解答:两者都可以用来删除表中所有的记录,区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长时间.

3使用索引的理由

解答:快速访问表中的data block

4. 给出在STAR SCHEMA中的两种表及它们分别含有的数据

解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而 dimension tables 存放对fact table 某些属性描述的信息

10. FACT Table上需要建立何种索引?

oracle数据库基础练习 篇5

这门课主要是为我们在以前学过的数据库的基础上让我们更深入的加强对Oracle数据库的理解,让我们从它的结构,它的功能,它的对象以及多种方面去感受它。

老师每节课都说了不同的内容,然而我个人最关心的还是关于Oracle数据库的安全性。安全是现如今人人都在关注的问题,特别是计算机安全。如今每家每户的生活都离不开电脑,其中的安全问题更是大家在乎的重点。我们使用的软件,各种网络数据库的安全性我们尤为关心。

Oracle数据库经过30多年的发展,现如今已经为各个领域所使用,已经在数据库市场中占据了主导地位。在当今世界500强企业中,70%企业使用的是Oracle数据库,世界十大B2C公司全部使用Oracle数据库,世界十大B2B公司中有9家使用的是Oracle数据库。

为何Oracle会有如此的成就,能在众多数据库中脱颖而出?安全当然是第一原因。从一开始,Oracle就提供了业界最先进的技术来保护存储在数据库中的数据。Oracle提供了全面的安全性解决方案组合来保护数据隐私,防范内部威胁,并确保遵守法规。借助Oracle强大的数据库活动监控和分块、授权用户和多要素访问控制、数据分类、透明的数据加密、统一的审计和报表编制、安全的配置管理和数据屏蔽等强大功能,用户无需对现有应用程序做任何改变即可部署可靠的数据安全性解决方案,从而节省时间和金钱。

与此同时,Oracle公司也推出了许多安全性产品,例如数据防火墙,数据屏蔽,全面回忆等。

然而,随着时代的发展和Oracle被不断的应用,导致其中信息量逐渐增加,数据库的安全性越来越重要。防止数据丢失等事件的措施也越来越重要。对数据的管理也越来越严谨。

首先就是用户管理。用户和Oracle呈现一对一的关系,即一个口令对应一个用户,使每个用户的信息相对独立。还有很重要的权限系统,可以区分普通用户和管理员,方便信息管理和保存,同时也可以是用户的信息得到更安全的保存,不致使信息泄露等问题的发生。其次是系统权限。它可以选择用户给予相应的权限,确保信息不会被除管理开发人员意外的人盗用。

最后就是数据的备份。每个系统都不会是完美的,总会出现损坏的现象。数据备份就是防止各种损坏中数据的丢失和遗漏,也为数据库管理员解决了一个大麻烦。

浅谈Oracle数据库性能优化 篇6

Oracle数据库是现在使用最广泛的大型数据库之一, 选用Oracle作为数据库的应用系统一般规模比较大, 需要处理的用户数目较多, 对于这样的数据库系统来说, 效率是最重要的指标之一, 在实际应用中, 随着系统数据库中数据的增加, 访问量的加大, 数据库系统性能将会下降, 数据库的优化逐渐突显出其重要作用。

二、优化策略

Oracle数据库的性能优化, 可以从数据库的体系结构、软件结构、模式对象以及具体的业务和技术实现出发, 进行统筹考虑。优化是有目的地更改系统的一个或多个组件, 使其满足一个或多个目标的过程。下面从几个不同方面介绍Oracle数据库优化设计方案。

1 oracle内存优化

内存是Oracle数据库体系结构中最为重要的部分之一, 也是影响数据库性能的第一个因素。Oracle的内存可以按照共享和私有的角度分为系统全局区和进程全局区, 也就是SGA和PGA, 优化内存结构通常是对系统全局区 (SGA) 进行调整, SGA是Oracle数据库的心脏, 用户的进程对这个内存区发送事务, 并且以这里作为高速缓存读取命中的数据, 以实现加速的目的。正确的SGA大小对数据库的性能至关重要, 对于PGA我们通常采用PGA的自动调整。内存优化主要包括以下几个部分:

(1) 优化SQL共享池

设置共享池的目的为了缓存已经被解析过的SQL, 而使其能被重用, 不再解析。通过确保大多数语句能够在共享池中查找到它们自己的一个已分析版本, 就可以提高语句分析和执行的效率, 降低资源消耗。共享池中存放的信息是应用程序需要经常访问的, 因此需要保持这些信息的高命中率。共享池大小是否合适, 主要体现在库缓冲区和数据字典高速缓冲区的命中率上。

(2) 优化缓冲区高速缓存

缓冲区高速缓存的命中率, 对性能至关重要。缓冲区高速缓存越大, Oracle可装入内存的数据就越多, 磁盘的I/O就越少, 系统性能就越好。

(3) 调整重做日志缓冲区

重做日志缓冲区如果分配太小, 会导致没有足够的空间来放重做条目而等待, LGWR进程会频繁将LOG_BUFFER中的数据写入磁盘增加I/O的次数, 影响系统性能。

(4) PGA的自动调整

为实现自动的PGA管理, Oracle要修改的初始化参数:

(1) PGA_AGGREGATE_TARGET, 此参数用来指定所有SESSION总计可以使用最大PGA内存。

(2) WORKAREA_SIZE_POLICY, 此参数用于开关PGA内存自动管理功能, 该参数有两个选项:AUTO和MANU-AL, 当设置为AUTO时, 数据库使用Oracle提供的自动PGA管理功能, 当设置为MANUAL时, 则仍然使用以前手工管理的方式。

通过使用Oracle所提供的自动管理PGA的特性, Oracle会自动忽略*_AREA_SIZE等初始化参数, 自动调整SQL内存区, 每个查询被分配的内存都基于它的具体要求。因此, 在启动工作区自动管理, 并对PGA_AGGRE-GATE_TARGET参数进行适当的设置后, 不需要对HASH_AREA_SIZE, SORT_AREA_SIZE等参数进行设置。

另外, 内存调整还包括对大池、JA-VA池等的优化, 在这里没有论述, 经常需要调整的是上面几种内存结构。

2 优化磁盘I/O

对于数据库系统来说, 磁盘I/O操作是数据库性能最重要的方面, 影响磁盘I/O性能的主要原因有磁盘竞争、I/O次数过多和数据块空间的分配管理。减少磁盘I/O操作的最根本的方法就是利用高速缓存存放频繁使用的数据信息, 最小化磁盘I/O, 降低Oracle服务器查找和返回行所花费时间的最有效的方法之一就是利用索引、分区。

(1) 索引Index的优化设计

索引是数据库中重要的数据结构, 是优化的基础, 索引把表中的逻辑值映射到Row ID, 因此索引能进行快速定位数据的物理地址。索引必须充分利用才能加快数据库访问速度, 建立索引根本目的是提高查询效率, 利用索引行记录定位, 减少磁盘的读写次数, 从而达到提高查询速度的目的。一个建有合理索引的数据库应用系统可能比一个没有建立索引的数据库应用系统效率高几十倍, 但并不是索引越多越好, 在那些经常需要修改的数据列上建立索引, 将导致索引B*树的不断重组, 造成系统性能的下降和存储空间的浪费, 对于索引的使用, 要注意以下原则:

(1) 该字段是否为关键词, 表的主键和外键必须有索引;

(2) 该字段是否为连接操作字段, 对经常与其他表进行连接的表的连接字段应该建立索引;

(3) 该字段出现在where子句的频率, 经常出现在where子句中的字段应该建立索引;

(4) 选择性高的字段应该建立索引。索引的选择性是指索引列里不同值的数目与表中记录数的比;

(5) 对查询型的表, 建立多个索引会大大提高查询速度, 对更新型的表, 如果索引过多, 会增大开销, 对数据库的插入、删除操作频繁, 不要建立过多索引;

(6) 应对经常出现在检索条件中的数据域建立索引, 如果某些数据域经常一起出现在检索条件中, 那么建立复合索引, 对于复合索引, 索引中的数据域的顺序要和实际应用的检索和连接顺序保持一致。

(2) 使用Oracle分区技术

分区将数据在物理上分隔开, 不同分区的数据可以制定保存在处于不同磁盘上的数据文件里。这样, 当对这个表进行查询时, 只需要在表分区中进行扫描, 而不必进行FTS (Full Table Scan, 全表扫描) , 明显缩短了查询时间, 另外处于不同磁盘的分区也将对这个表的数据传输分散在不同的磁盘I/O, 一个精心设置的分区可以将数据传输对磁盘I/O竞争均匀地分散开。

3 CPU性能调整

服务器的CPU使用情况对数据库的性能影响很大, 调整CPU可以更有效地利用服务器的各种资源, 提高数据库的运行速度和效率。

(1) 尽量利用多个CPU处理器来执行事务处理和查询

CPU的快速发展使得Oracle越来越重视对多CPU的并行技术的应用, 只要可能, 应该将数据库服务器和应用程序的CPU请求分开, 或将CPU请求从一个服务器移到另一个服务器。

(2) 使用PQO方式进行数据查询

PQO方式不仅可以在多个CPU间分配SQL语句的请求处理, 当所查询的数据处于不同的磁盘时, 一个个独立的进程可以同时进行数据读取。

4 SQL语句优化

对数据库进行的各种操作 (包括添加、删除、查询等等) 最终都是通过数据库的SQL语句来执行, 因此SQL语句的执行效率最终决定了Oracle数据库的性能高低, SQL语句的书写, 通常应该遵循以下原则:

(1) 尽量避免对全表扫描, 对经常查询的表创建合理索引, 对大表的查询应在索引上进行。

(2) 使用相同绑定变量对数据库进行查询, 这样可以充分利用SQL共享池中的已经分析的语法树。

(3) 限制动态SQL的使用, 虽然动态SQL很好用, 但是即使在SQL共享池中有一个完全相同的查询值, 动态SQL也会重新进行语法分析。

(4) 避免不带任何条件的SQL语句的执行。

(5) 如果对有些表中的数据有约束, 最好在建表的SQL语句用描述完整性来实现, 而不是用SQL程序中实现。

(6) 在字符串查询中尽可能少用通配符。

(7) 连接查询时, 要有充分的连接条件

(8) 尽量使用exists替代in, not exists替代not in这样的操作

(9) 用union all替换union, union在进行表链接后会筛选掉重复的记录, 所以在表连接后会对所产生的结果集进行排序运算, 删除重复的记录再返回结果。大部分应用中是不会产生重复记录的, 最常见的是过程表与历史表union。因此, 采用union all操作符替代union, 因为union all操作只是简单的将两个结果合并后就返回。

oracle数据库基础练习 篇7

一、oralce的启动顺序:

1、先启动监听程序(对应端口1521) :

[]#lsnrctl start

2、启动oracle实例:

[]#sqlplus / as sysdba(回车)

SQL>startup

--启动的是环境变量中的默认数据库实例 $ORACLE_SID

--如果启动多个实例:export ORACLE_SID=ctaudit

[]#sqlplus / as sysdba(回车)

SQL>startup

3、启动em(对应端口1158),isqlplus(对应端口5560):

[]#emctl start dbconsole

[]#isqlplusctl start

二、oracle的关闭顺序

1、先关闭em,isqlplus:

[]#emctl stop dbconsole

[]#isqlplusctl stop

2、关闭监听:

[]#lsnrctl stop

3、关闭oracle实例:

[]#sqlplus / as sysdba(回车)

SQL>shutdown immediate

以上所述是小编给大家介绍的Oracle数据库的启动和关闭顺序实例讲解,如果大家有任何疑问请给我们留言,小编会及时回复大家的。在此也非常感谢大家对的支持!

oracle数据库基础练习 篇8

学习完oracle数据库后,我们进行了一次大实习,实习是分组进行的,我们组根据老师的安排,采用Oracle数据库技术建立员工工资及其个人所得税管理系统。小组成员主要是xx,xx和xxx。xx:整体设计,数据展现层操作,代码整合;xxx:数据库概念结构、逻辑结构、物理结构设计,增删改查sql语句的编写;xx:税值计算函数编写,系统测试,调试,相关文档的整理及编写。

通过对需要完成任务的整体分析,我得出需要做的工作包括这么几条:

1.根据需要创建自己的用户(注意起名规范,参见下述要求:对象含义_姓名首字母_学号后三位)和相关数据库表(比如类似在Hr Schema中的employees及departments表等)

2.编写一个函数(函数名需带姓名首字母及学号后三位),查出给定员工号的员工工资及佣金的每月应纳税额:注:个人所得税算法如下:扣除标准:工薪所得扣除标准提高到3500元,计算个人所得税税率表 :工资、薪金所得适用。

3.用Java作一个界面C/S,通过JDBC/ODAC/ADO调用oracle数据库对象,采用友好易用的用户界面:

 实现员工基本信息(含工资、奖金等)的增删改查;要求员工表主键是自增

长字段,使用sequence和触发器或存储过程实现自增长。

 实现员工工资及奖金和需缴纳的个人所得税等员工工资条信息的查询与(可

选的)Excel输出;

 通过调用存储过程实现各部门员工工资及其年收入的分析报表(具体分析需

求自定,如分析一下各部门员工中比本部门员工平均年收入高出30%的员工(可简称“高薪员工”)姓名、所在部门名和年收入金额、个人所得税等;)。接着我们的工作开始了。在开始的时候我们各做各的去了,很多意见和想法没有去及时沟通,所以各自盲目地做着,有些时候做不下去了也不知道去沟通,而是一个人呆着苦闷或是干脆不做了。所以在开始的时候大家对于怎么合作完成一个实习任务是不清楚的。因为每一个环节都不可能是孤立的,我们在每一步都需要去了解互相的进展和需要,比如李杨负责数据库的与平台的链接,我负责数据库的操作和结构设计,如果不去及时沟通,总不能知道我做成什么样让他能更好地操作,甚至我做好了数据库,他还不清楚,这时候其实是可以提前拿过去测试一下的。正如这种例子经常在我们前期工作的时候出现。经过我们前两天的工作,我们后来一起讨论了下下一步怎么配合。所以在后期我们都能很好地合作,顺利地完成了任务。

本学期oracle数据库的学习对于我了解数据库又有了进一步的理解和进一步加强了数据库的操作能力。对数据的更删改查更熟悉了,对用户的创建和管理有了进步。Oracle的学习,开始是在自己电脑上安装了软件,然后对软件的操作有了了解。在老师的讲解和学习中,学会了数据库的各种操作,创建了自己的永华和数据表,使用了oracle内置函数、调用存储过程和函数。学会使用PL/SQL的顺序、循环和分值结构。前面学习过数据库原理,通过这学期Oracle的课程觉得Oracle在用户的划分上要比SQL Server好很多,划分了多种用户级别,数据库也是以用户划分,这对于管理员和用户都是很有用的。Oracle的学习对于以后各种数据处理工作有很大的帮助,相信以后的学习中也会经常运用到oracle,我也将会不断加深对oracle的理解。

Oracle数据库安全策略研究 篇9

1 Oracle数据库安全问题分析

作为全球最大的数据库系统之一, Oracle数据库有着较为稳定的安全性能。一般来说, 互联网的数据库系统安全主要是基于五个层次, 即物理层安全、操作系统层安全、网络层安全、数据库系统层安全和应用系统层安全等。在这五个层次中, 任何一个安全环节出现状况, 都有可能导致整个系统的破坏和崩溃。这里, 我们着重于分析两个方面的安全问题。一方面就是数据库系统安全问题, 另外一个方面就是数据库数据安全问题。

1.1 Oracle数据库系统安全问题的分析

所谓Oracle数据库的系统安全, 指的就是该数据库系统在进行数据库的控制、存取和使用方面而涉及到的安全机制。该种数据库的系统安全性主要来自于对用户进行访问权限的限制, 仅仅给予用户特定的访问权限, 并不是无所制约的使用权限, 从而能够确保数据库系统的自身安全。当前, Oracle数据库系统有六种安全机制, 即数据库用户和模式机制、权限分配机制、角色分配机制、存储设置和空间份额机制、资源限制机制以及审计机制。这些安全机制主要是为了防止非授权的数据库存取, 防止非授权的对模式对象的存取, 控制磁盘使用, 控制系统资源使用以及审计用户动作。这些安全机制做到越好, 其系统安全性能就越高。

1.2 Oracle数据库数据安全问题的分析

这种数据库数据安全主要是指数据库内部数据在遭受安全侵害时, 数据库能够对相关数据进行保护并有相关的恢复机制进行配套使用。目前来说, Oracle数据库的数据安全问题主要有:地震、水灾等非人力所能控制的意外事故灾害, 由授权用户造成的人为疏忽或无意损害, 存心不良的编程人员、技术支持人员等的恶意破坏等。这三种类型的数据安全隐患都是必须及时防范的。

2 Oracle数据库安全策略分析

现代计算机技术和网络技术的不断进步与发展, 很多企业都不得不使用先进的网络技术, 各大企业必须顺应时代发展的潮流, 建立并不断完善基于计算机网络技术的企业网, 其中最为重要的就是信息系统数据库, 它是很多企业进行日常运营的重要生产平台。由于企业的很多生产数据都集中在信息系统的后台数据库中进行统一存储和处理, 这就使得数据库在整个企业的运营中具有十分重要和关键的作用。然而, 在现实操作过程中, 并不是所有企业都非常重视数据库系统安全的, 很多时候都会遭受攻击和威胁, 有时候一个数据库安全漏洞有可能引发整个系统的崩溃, 从而给企业造成巨额损失。也有些数据库安全问题是由自身设计问题引起的, 但是更多的则是由企业应有人员工作失职而造成的。因此, 我们应该选择一个好的数据库产品, 并制定出相关的数据库安全策略, 在执行的过程中严格遵照这些策略来进行, 主要可以从这么四个方面来进行数据库安全维护策略的实施。

2.1 数据安全策略

这里的数据安全策略主要是指对数据库中数据的修改权限控制以及数据加密。就前者来说, 当前主要是通过角色控制和视图等方法来实现, 而后者则是还没有得到应有的重视。事实上, 我们认为只要数据库中的数据是可读的, 就有可能遭受一定的攻击和危险。我们只能说把这种危险降低到最小值, 这就需要我们对这些数据库中的数据进行加密处理。一旦这些数据库中的数据按照一定的规则变为密文数据, 用户就可以通过相关密钥来使用, 同时, 还可以使得这些数据库中的数据保持较高的安全特性。当前, 我们对于数据库中的数据进行加密的技术主要有两种, 即DBMS内核层加密和DBMS外围层加密。所谓DBMS内核层加密就是指可以实现加密与数据库管理系统的无缝耦合, 但是, 其加密功能强而易降低数据库运行性能。DBMS外围层加密则有多样性选择, 但是却会增大整个系统的通信压力。因此, 这两种加密技术各有利弊。我们对这些数据库进行保护, 其实现的主要手段是备份数据库, 一旦发生障碍的时候, 就可以对这些文件进行恢复。应该来说, 数据库的备份就是数据库数据的一个副本, 其中包含了数据库所有重要的组成部分, 比如说控制文件、数据文件等。我们对数据库中的数据进行备份的方式主要有物理备份和逻辑备份两种。其中, 物理备份也称文件系统备份, 是不管数据文件的逻辑内容如何进行的全盘拷贝, 它又分为冷备份和热备份两种。而逻辑备份则是利用SQL语言从数据库中抽取数据并存为二进制文件的过程, 支持全部、累计、增量三种方式。而且, 在逻辑备份的时候, 数据库应该处于打开的状态。对于数据库安全恢复来说, 主要有物理恢复和逻辑恢复。其中, 物理恢复又可分为非归档模式和归档模式。逻辑恢复则是利用import命令来实现数据恢复, 其必须是在数据库联机状态下进行。

2.2 用户安全策略

对于Oracle数据库来说, 其用户经常会由于使用不当而造成一定的危险, 这是因为数据库用户是连接数据库、存取表和记录的重要通道, 一旦他们发生问题和障碍, 就会直接影响到Oracle数据库的安全问题。因此, 我们应该加强对于数据库用户账户的有效管理, 从而切实达到对于这种数据库系统安全的最终目的。具体来讲, 由于Oracle数据库的用户非常多, 一般用户到数据库管理员都是这种数据库的直接用户。因此, 我们应该尽快建立一个可靠有效的口令安全策略, 加强对数据库用户的账号管理工作, 防止敏感数据的泄露或破坏, 使用profile文件来限制用户使用系统和数据库资源, 防止无关人员对数据库进行的任何干扰, 让每一个合法用户能够创建相应的用户账号及口令。除了防止未授权用户使用数据库系统, 还要防止一些合法用户对未授权的子系统进行使用。我们可以进行基于角色的用户权限管理, 这是Oracle提供的一种数据库权限管理机制, 用户被赋予角色, 是保护数据库系统安全的重要策略之一, 它可以根据不同的职能岗位划分角色, 提供了一种灵活的方法, 实现了最基本的安全原则, 即最小特权原则和职责分离原则, 进一步加大了数据库的安全性能。Oracle数据库安全管理的核心内容就是有关权限的管理, 就是根据不同的授予权限来进行分类, 对一般用户和指定用户进行管理。

2.3 系统安全策略

所谓系统安全策略主要是指数据库系统自身的安全问题, 就是对数据库的备份与恢复工作。应该来说, Oracle的备份和恢复工具是当前最为先进的企业级数据库系统, 它能够简化、自动化及改善备份与恢复操作, 最大的特性就是增量备份方式, 是数据库系统为达到安全目标和相应的安全级别所定义的安全技术、方法、机制的总和。数据库系统的安全性在很大程度上依赖于数据库的管理, 操作系统的稳定对数据库来说十分重要。维护管理数据库用户的安全性是保护数据库系统安全的重要手段之一。数据库安全性管理者可能只是拥有create、alter或drop数据库用户的一个特殊用户。对于一般用户权限, 数据库管理员可以决定用户组分类。数据库应用程序开发者是一类需要特殊权限组完成自己工作的数据库用户。此外, 数据加密是Oracle数据库系统的最后一道防线, 操作系统 (OS) 层加密, 数据库管理系统 (DBMS) 内核层加密, 数据库管理系统 (DBMS) 外层实现加密, 通过这些层层加密, 使得数据库具有更高的安全性能。

2.4 审计策略

这里的Oracle数据库审计安全策略主要是指监视和记录用户的数据活动, 它主要是要记录关于数据库操作的信息, 如操作时间、执行用户等。这是因为任何网络系统都不可能是完美无瑕的, 都或多或少的存在安全漏洞, 并没有一个绝对可靠的安全性措施。因此, 我们应该做好数据库的审计策略, 尤其要针对一些高度敏感的保密数据, Oracle数据库就要以审计作为主要的预防手段, 让窃密者不能有办法打破数据库的控制。这就是说要让Oracle数据库管理人员能够有效的审计用户, 主要是对用户的实际操作情况进行有效的监控和记录, 随时跟踪并记录他们的数据的访问活动, 其中监控的内容有:数据被非授权用户删除、用户越权操作、权限管理不正确、用户获得不应有的系统权限等, 一旦发生任何数据库破坏, 就可以及时排除不安全因素, 及时挽救或恢复相关数据。这里的审计方法主要有:权限审计、语句审计和方案对象审计, 应该有选择地使用审计。

3 结束语

总之, 我们应该在网络信息时代, 针对网络安全隐患采取必要的Oracle数据库安全策略, 主要是针对数据库安全体系结构进行保护, 对数据文件进行加密, 增加数据库数据的破解难度, 也增加加密文件的可扩展性, 让外部入侵者在防护屏障外得以阻止, 还要从内部采取安全策略, 这就是说我们应该做好尽量采用安全性较高的网络操作系统并进行必要的安全配置, 使用适合数据库的文件系统, 及时给Windows和Oracle安装补丁, 还要实施诸如用户口令策略, 设置用户权限策略, 数据备份与存储策略, 视图策略, 连接监控策略等数据库系统安全策略, 从而真正从内外部切实保障数据库的安全。

参考文献

[1]陈从锦, 杨昱.Oracle数据库的安全防护概述[J].中山大学学报论丛, 2003 (4) .

[2]李卓玲, 费雅洁, 孙宪丽.Oracle大型数据库及应用[M].北京:高等教育出版社, 2004.

[3]萨师煊, 王珊.数据库系统概论[M].北京:高等教育出版社, 2000.

[4]谈竹奎, 况志军.Oracle数据库管理员高级技术指南[M].北京:中国铁道出版社, 2003.

[5]滕永昌.Oracle数据库管理员使用大全[M].北京:清华大学出版社, 2004.

oracle数据库基础练习 篇10

数据库安全问题一直是人们关注的焦点之一,我们知道一个企业或者机构的数据库如果遭到 的攻击,而这些数据库又保存着非常重要的数据,象银行、通信等数据库,后果将不堪设想。Oracle数据库使用了多种手段来保证数据库的安全性,如密码,角色,权限等等。

作为Oracle的数据库管理员都知道,数据库系统典型安装后,一般sys和system以及internal这三个用户具有默认的口令,数据库安装成功后,系统管理员作的第一件工作就是修改这些用户的口令,保证数据库的安全性。然而,众多管理员往往忽视了其中的一个安全问题,下面我们就将详细讨论这个问题。

Oracle数据库系统如果采用典型安装后,除了创建前面介绍的几个用户外,另外还自动创建了一个叫做DBSNMP的用户,该用户负责运行Oracle系统的智能代理(Intelligent Agent),该用户的缺省密码也是“DBSNMP”。如果忘记修改该用户的口令,任何人都可以通过该用户存取数据库系统。现在我们来看一下该用户具有哪些权限和角色,然后来分析一下该用户对数据库系统可能造成的损失。

启动SQL/PLUS程序,使用该用户登录进入:

SQL>select * from session_privs;CREATE SESSIONALTER SESSIONUNLIMITED TABLESPACECREATE TABLECREATE CLUSTERCREATE SYNONYMCREATE PUBLIC SYNONYMCREATE VIEWCREATE SEQUENCECREATE DATABASE LINKCREATE PROCEDURECREATE TRIGGERANALYZE ANYCREATE TYPECREATE OPERATORCREATE INDEXTYPE

可以看到该用户不是SYS或SYSTEM管理用户,然而,它却具有两个系统级权限:UNLIMITED TABLESPACE和CREATE PUBLIC SYNONYM,

看到这两个权限你应该马上想到,这些都是安全隐患,尤其是UNLIMITED TABLESPACE,它是破坏数据库系统的攻击点之一。如果这时候你还依然认为,即使有人利用这个没有修改的口令登录进数据库也造成不了什么损失的话,我就不得不提醒你:该用户具有UNLIMITED TABLESPACE的系统权限,它可以写一个小的脚本,然后恶意将系统用垃圾数据填满,这样数据库系统也就无法运行,并将直接导致最终的瘫痪。目前很多数据库系统都要求7X24的工作,如果出现了系统用垃圾数据填满的情况,那么,等数据库系统恢复时,恐怕不可挽回的损失已经造成了。

为了保证Oracle数据库系统运行的绝对安全,强烈建议数据库管理员修改该用户的默认口令,不要为不怀好意的人留下“方便之门”。

oracle数据库基础练习 篇11

论文摘要:数据库是一种实用性很强且功能非常强大的数据库技术,本文提出高职院校开设Oracle数据库课的必要性结论,并对高职院校Oracle数据库课程的教学方法进行探讨。

论文关键词:数据库,项目驱动教学法

随着数据库技术的发展,Oracle数据库脱颖而出,它具有很多的优良性,提供了多种开发工具,能极大的方便用户进行进一步的开发;Oracle良好的兼容性、可移植性和高生产率使OracleRDBMS具有良好的开放性。

除此以外,Oracle数据库还可以和多种语言连接,如VisualBasic,VisualC++,JSP,ASP,Delphi等,在开发管理系统的过程中,还可以和比较流行的几种语言结合使用,如XML,UML等。

一、高职院校开设数据库课程的情况分析

目前高等职业教育的发展趋势非常好,学校的教学目标就是把学生培养成技能型、应用型人才,所以在绝大部分专业的教学过程中都要努力培养学生的实践能力、动手能力。而高职院校学生起点相对低,基础相对差,在教学过程中就会存在一定的困难;目前宁夏的几所高职学校开设的数据库课程多数为VisualFoxPro,Access等小型数据库系统,而开设大型数据库如SQLServer的极少、开设Oracle的几乎没有。

二、高职院校开设Oracle数据库课的必要性

Oracle数据库技术因其具有强大的数据和信息管理功能成为管理信息系统、管理工程、办公自动化系统、地理信息系统、决策支持系统、计算机及其它相关专业的一门必修课,作为一门数据库课程,它不仅是学生学习后续专业课必备的工具,而且,在实际管理工作中,还具有广泛的用途,例如:土地资源管理信息系统、情报检索、专家系统等都是以数据库为基础开发的,因而在高职院校相关专业数据库也成为不可或缺的课程。所以,对Oracle数据库课程的教学探讨,一方面,对于学生进一步学习和掌握相关专业知识,特别在毕业后的工作中更好的开发和应用有关软件将起到很重要的作用,另一方面,对于其他语言课的教学改革,也有一定的借鉴作用。

三、高职计算机专业学生就业需求情况分析

随着企业信息技术的发展,很多企业都希望招收到的员工具有一定的编程知识,数据库知识,但企业和相当一部分毕业生对目前高职院校计算机专业的课程设置有些看法,同时认为教材普遍偏旧,而且学生也没有学得很扎实。计算机的.技术变化很快,课程也需要跟上发展的步伐,应该不断吸收新东西,把理论与当前的最新技术结合起来。对于数据库技术而言,如果一直都只开设小型数据库系统的课程,而不开设大型数据库,学生的知识面就太狭窄,见识太少,就不适应于现代企业的需求。

Oracle作为一种比较常用的大型数据库,经常应用于企业的大型应用软件中。Oracle数据库因为它的稳定和高效,已经牢牢占据数据库领域很高的市场份额,如果想成为一名真正的数据库管理员,没有使用和维护大型数据库的经验是不行的,Oracle则是现今最有代表性的大型数据库软件,当前有必要在高职院校开设Oracle数据库课程,以使学生掌握Oracle这个优秀的数据库技术,更好地适应现代企业对数据库的需求。

四、Oracle数据库教学探讨

1.在Oracle数据库的教学中使用“项目驱动教学法”。

在课程的教学组织上根据建构主义的学习理论,用项目驱动建立“同化和顺应”的学习条件,用第一重循环建立“情景”,第二重循环建立“协作”,第三重循环建立“会话”产生“意义建构”的教学效果。

在Oracle数据库课程的教学中,根据高职教育的培养目标和学生特点,可以这样进行教学设计,教学始终贯穿一个核心实例图书管理信息系统的开发,项目驱动教学法通常都和案例教学法结合使用。选择这样一个系统的原因是学生比较熟悉这个系统的业务,可以把主要精力集中在数据库课程内容的学习上,而不必花大量的时间进行业务分析。

第一重循环,教师演示已开发好的图书管理系统,告诉学生,通过本课程的学习,大家要开发这样的应用系统,在使学生明确任务的同时,激发其学习的热情和求知的欲望。教师制作这个系统时,要把大部分的Oracle知识都融化在这些系统(任务)中,每一次课,演示并讲授几个知识点。系统开发完成了,知识点也全部讲授完成了,因高职院校大多开设VB程序设计,所以教师可以使用VB语言来开发前台。

第二重循环,以学生为主体,让他们通过上机练习,自己动手,练习知识点,同时也是完成了图书管理系统的一部分,知识点全部练习了,图书系统也开发成功了。在练习时,同学之间可以相互讨论,也可以向老师提问。

第三重循环,安排另外几个管理信息系统,例如:学生档案管理系统,学生宿舍管理系统等,让学生从头到尾独立完成,教师不再集中讲授,学生有问题时,单独答疑,对课程的所有知识点进行独立的综合练习,综合练习时,可以参考和模仿前两重循环中的有些内容,同学之间可以相互讨论,也可以和老师交换意见,最后提交可运行的应用系统和课程设计报告。

2.在Oracle数据库教学中采用“错误分析法”

错误分析法是了解学生学习情况、检查教学效果的有效方法。随着语言学、心理学及其相关学科的发展,人们对错误的态度也发生了巨大的变化。上个世纪五六十年代以行为主义心理学和结构主义语言学为基础的对比分析被广泛用于对学习者错误的分析,六十年代末七十年代初出现了以认知心理学为理论基础的错误分析,它将错误看成是学习进步的一种表现。

在Oracle数据库的教学中可以适当使用错误分析法。SQL是结构化查询语句,用于对数据库以及数据库中的各种对象进行创建、删除、修改,用于操纵数据库中各种对象、检索和修改数据等。在讲授SQL语句时,可以先讲基本的SQL语句的语法结构,讲解完以后,就可以采用错误分析法让学生辨别SQL语句中的错误,通过错误分析,学生就能更好的掌握正确的SQL语句了。

3.在Oracle数据库教学中采用“比较教学法”

在Oracle数据库的教学中,还可以使用“比较教学法”。在Oracle中,可以使用界面创建数据库和数据表,也可以使用命令方式创建数据库和数据表,在讲解这一部分时,我们可以分别演示这两种方法,由老师来分析两种方法的优缺点,并让学生进行比较看哪种方法更容易理解掌握。可以使用界面操作表数据,也可以使用命令操作表数据,同样可以使用比较的方法来辅助教学。在综合实训的时候,教师可以给学生展示两个都使用Oracle数据库,但使用不同编程语言的管理信息系统,并使用“比较法”分析两个系统的界面,实现难易程度,与数据库的连接方法等,最终让学生掌握更多的知识。在Oracle数据库的教学中,我们适当的使用“比较教学法”,也是必不可少的。

参考文献

1 焦永杰.学生学习问题的探讨.中国科技信息,(8):286-287

2 顾明.三重循环任务驱动的课程教学设计.职教论坛,(16):36

3 任务驱动式教学法在数据库教学中的应用.www.lunwenduo.com/n25059c227.shtml

4 王子芳.数据库及应用课程教学探讨.西南农业大学学报(社会科学版),,3(3)

5 孟程.谈计算机数据库教学方法和手段.黑龙江农业工程职业学院学报,2005(1):48-50

6 宁红梅.高职院校教学方法探寻.高教研究,2006(4):22-23

7 计算机课程实践教学模式探索. kbs.cnki.net/Forums/10949/ShowPost.aspx

Oracle数据库备份和恢复 篇12

1 Oracle数据库认识

甲骨文公司推出的关系数据库管理系统Oracle数据库具有良好的硬件兼容性, 具有对大数据量、多用户事务的处理能力, 同时还支持不同类型的操作系统, 并且能遵守包括通用数据存取语言、操作系统 (操作系统漏洞、操作系统补丁和操作系统用户等) 、用户接口和网络通信协议等方面的工业标准。Oracle数据库具备强大的数据库管理功能与分布式处理能力, 如支持大量的多媒体数据, 包括多维数据结构、图像、声音和动画等方面的数据, 可以有效保障数据的安全性及稳定性。基于此, 使得Oracle数据库在政府、金融、教育等部门中应用广泛。

2 Oracle数据库备份

数据库备份是非常重要的一个环节, 可以说能够进行怎样的数据恢复依赖于怎样的数据备份, 因此它也是数据库恢复非常重要的一步。备份的好坏对数据库恢复的精确性和及时性有非常重要的影响, 可以说备份和恢复是互相联系的概念。Oracle数据导入和导出imp/exp就相当于oracle数据还原和备份。Oracle数据库备份可分为物理备份和逻辑备份, 其中物理备份是为了实现数据库的完整恢复, 而将组成数据库的实际操作系统文件加以拷贝的过程, 一般是从磁盘到磁带进行备份。进行物理备份的数据库需在归档模式下运行, 且外部存储设备需满足备份的需要。物理备份又有冷备份与热备份之分, 其中冷备份是极为快速的备份方法, 主要是在数据库正常关闭之时提供一个完整的数据库, 能和归档方法相结合, 做到数据库“最佳状态”的恢复。但是, 冷备份存在的问题是不能按表或按用户恢复, 单独使用时只能提供“某一时间点上”的恢复, 并且在冷备份过程中数据库要处于关闭状态。

借用第三方软件所进行的冷备份主要分三个步骤, 首先是关闭运行中的oracle数据库, 使其内外部运行模块处于停止状态, 采用命令符:sqlplus / as sysdba;shutdown immediate开展这一步骤。其次, 进行数据库的备份, 通过命令符:host copy d: oracle oradata *.* e: backup 20151231, 将整个数据库文件存储到别的存储介质或是存储位置当中, 也可以只备份部分数据库文件, 诸如配置文件、控制文件等。最后是启动Oracle数据库, 具体通过命令符startup开展这一步骤。

与冷备份相反, 热备份则需要在数据库运行的情况下进行数据库的备份, 又称为联机备份, 其备份方法是archivelog mode。热备份可对几乎所有数据库实体达到秒级恢复, 并且能在表空间或者是数据库文件中进行备份, 所用时间短。热备份与冷备份相辅相成, 互为补充, 一旦出现问题, 可以借由两种备份资料帮助信息恢复。开展热备份, 需要数据库运行于archivelog的状态之下, 并且需要大量的档案空间, 也需要分三个步骤进行备份。一是先检查数据库是否处于归档模式。命令符:sqlplus / as sysdba;archive log list。二是切换为归档模式。命令符:alter system set log_archive_dir='location=d: backup Arclog'。三是对文件进行热备份。命令符:alter database backup controlfile to 'd: backup ctl.bkp' (备份控制文件) ;alter system archive log current (备份当前联机重做日志文件) 。

而Oracle数据库的逻辑备份则需要借助EXP工具及SQL语言, 从数据库中抽取数据并存于二进制文件当中。逻辑备份操作简单, 且无需特定的外部存储设备, 无需数据库运行于归档模式下, 其一般分为用户备份、表备份和完全备份三种形式, 主要用于业务数据库的备份。

3 Oracle数据库恢复

数据库恢复是把数据库由存在故障的状态转变为无故障状态的过程。数据库故障是指数据库运行状态下影响数据库正常使用的特殊事件。数据库故障有许多类型:语句失败;用户进程失败;用户或应用错误操作;实例失败等。通常根据故障的类型不同分为实例恢复和介质恢复。其中实例恢复主要是Oracle在其实例产生故障之后, 自行进行恢复的形式。而介质恢复则是在存放数据库中的介质产生故障时进行的恢复。基于Oracle数据库不同形式的备份, 其恢复有物理备份恢复和逻辑备份恢复之分。物理备份恢复主要分为四个步骤, 首先是在原位置上拷贝数据文件进行备份, 将该文件设置成为离线状态, 其命令符为:alter database datafile 4offline drop。其次是打开数据库, 其命令符为:alter database open。 再次是恢复数据库中的数据文件, 其命令符为:recover datafile。最后是将数据文件设为联机状态, 其命令符为:alter database datafile 4 online。

4 结语

随着现代科技的不断发展, Oracle数据库备份和恢复方法也层出不穷, 工作人员需要在实际工作当中, 不断完善Oracle备份和恢复方法, 做到具体问题具体分析, 以提高备份数据的可用性。

参考文献

[1]刘钰.浅谈ORACLE数据库的管理与维护[J].计算机光盘软件与应用, 2014 (13) .

oracle数据库基础练习 篇13

程序猿都知道mysql等其他的数据库都有随着记录的插入而表ID会自动增长的功能,反而oracle却没有这一功能,下面通过两种方式来解决字段增长的功能,具体内容情况下文,

因为两种方式都需要通过创建序列来实现,这里先给出序列的创建方式。

代码如下:

CREATE SEQUENCE 序列名

[INCREMENT BY n]

[START WITH n]

[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]

[{CYCLE|NOCYCLE}]

[{CACHE n|NOCACHE}];

解析:

1)INCREMENT BY用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表Oracle序列的值是按照此步长递减的。

2)START WITH 定义序列的初始值(即产生的第一个值),默认为1。

3)MAXVALUE 定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增Oracle序列,系统能够产生的最大值是10的27次方;对于递减序列,最大值是-1。

4)MINVALUE定义序列生成器能产生的最小值。选项NOMAXVALUE是默认选项,代表没有最小值定义,这时对于递减序列,系统能够产生的最小值是?10的26次方;对于递增序列,最小值是1。

5)CYCLE和NOCYCLE 表示当序列生成器的值达到限制值后是否循环。CYCLE代表循环,NOCYCLE代表不循环。如果循环,则当递增序列达到最大值时,循环到最小值;对于递减序列达到最小值时,循环到最大值。如果不循环,达到限制值后,继续产生新值就会发生错误。

6)CACHE(缓冲)定义存放序列的内存块的大小,默认为20。NOCACHE表示不对序列进行内存缓冲。对序列进行内存缓冲,可以改善序列的性能。

解决方式一、序列+触发器

具体实现方式如下:

第一步,创建sequence

代码如下:

-- Create sequence

create sequence SEQ_T_RECV

minvalue 1

maxvalue 9999999

start with 1

increment by 1

cache 50;

第二步,创建表

代码如下:

-- Create table

create table RECV_MSG

(

idNUMBER,

messageidVARCHAR2(32),

contentsVARCHAR2,

app_flgVARCHAR2(100),

phonenumber VARCHAR2(2000),

updatetimeDATE default sysdate

);

第三步,建立触发器

代码如下:

CREATE OR REPLACE TRIGGER “recv_trig”

BEFORE INSERT ON recv_msg

REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW

DECLARE

BEGIN

SELECT SEQ_T_RECV.NEXTVAL INTO :NEW.ID FROM DUAL;

END recv_trig;

第四步,测试并确认

向表中插入一条数据,查看id字段是否自动增长了,

解决方式二、序列+显示调用序列

一、创建sequence

代码如下:

create sequence seq_on_test

increment by 1

start with 1

nomaxvalue

nocycle

nocache;

二、建表

代码如下:

--建表

drop table test;

create table test(

ID integer

,stu_name nvarchar2(4)

,stu_age number

);

三、插入数据(显示调用序列的下一个值插入)

代码如下:

--插入数据

insert into test values(seq_on_test.nextval,‘Mary‘,15);

insert into test values(seq_on_test.nextval,‘Tom‘,16);

四、查看

代码如下:

select * from test;

--结果

/*

1 Mary 15

2 Tom 16

*/

附带:查看序列当前值和下一个值的查看方式

代码如下:

--seq的两个方法

select seq_on_test.currval from dual;

select seq_on_test.nextval from dual;

--结果

/*

2

3

oracle数据库基础练习 篇14

以下的文章主要是介绍在Oracle数据库学习中的六条经验总结,其实想学好Oracle数据库并不是一件很困难的事情,很多人都认为Oracle数据库的体系过于庞大,在学习的过程中摸不到头绪,以下的文章就会给你提供相关的解答方法。

1、如果有一定的数据库基础知道SQL是怎么回事,即使写不出来简单的SQL,但可以看动它们,你就可以跳到2。否则请先看一下数据库基础和SQL语言,不需要很深,更不需要去记忆那些复杂的SQL命令,这些可以留在以后边应用边学习、记忆。

2、要想学好Oracle数据库,首先要学习ORACLE的体系结构,现在你不需要深入理解它们,但要分清几个关键的概念:instance&database, memory structure,process&those files,such as data file, control file,init parameter file etc以及database ,tablespace,data file和tablespace,segmnet,extent & block它们之间的关系。

当然还要分清undo tablespace & redo log file等,对于很多初学者来说,能够对这些概念有个较为清晰的认识并不是一件容易的事,而这些并非Oracle的全部。

3、是有关ORACLE的一些基本概念,下面要学习的是一些简单的的实际操作,就是如何去管理ORACLE数据库,当然不是管理全部的ORACLE。在此过程中你将对SQL和ORACLE体系结构有个更深入的了解。

4、到了这一步你基本上算是初步掌握了ORACLE,下面将要根据你的方向来具体学习其它的ORACLE知识了。如果你是开发人员,则需要更多地去学习PL/SQL以及DEVELOPER,而这将是一门新的课程。如果你是一名DBA,请继续。

5、现在你可以根据自己的实际情况,进行有选择的学习,也就是说下面的内容没有特别顺序要求。可以选择深入学习ORACLE数据库的管理、备份与恢复、性能调整、网络等。当然在学习这些知识的过程中,如果有实际的工作更好,这样你可以在实际中成长,学会TROUBLE SHOOTING。

上一篇:从人物描写角度分析概括小说人物形象教案下一篇:童话剧对孩子的教育作用