APP下载

浅谈生产管理系统数据库库表还原解决方案

2020-07-04李金泉张伟杨利江刘银莲

科学导报·学术 2020年1期
关键词:Oracle数据库

李金泉 张伟 杨利江 刘银莲

摘  要:生产管理系统数据库是此系统存储各类及关联各类型数据之处,数据库异常将导致整个系统瘫痪,所以如何保证数据库数据的正常备份及数据出现异常后将数据恢复对系统而言将是一件十分重要的事情。此处仅针对目前大部分系统所使用的Oracle数据库的备份还原进行简要描述。

关键词:生产管理系统;Oracle数据库;数据字典;数据库表

1.引言

oracle数据库是生产管理系统各类数据存储的基础,系统中各项增删改查的操作最总都会在数据库中体现并存储。但是处于各种意外情况及人为操作的原因,导致数据库数据的丢失或误删的情况发生。同时出于数据安全性的角度出发,对于系统中的基础数据我们都需要有一套可靠的备份还原方案。

本文将通过自身平日对Oracle数据库的操作及理解,抛出并分析问题,不到之处敬请指正。

2.名词解释

生产管理系统:生产管理软件针对中小型制造企业的生产应用而开发,能够帮助企业建立一个规范准确即时的生产数据库,同时实现轻松、规范、细致的生产业务、库存业务一体化管理工作。提高管理效率、掌握及时、准确、全面的生产动态,有效控制生产过程。适用于所有从事产品制造及有库存管理的企业。

Oracle数据库:Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。到目前仍在数据库市场上占有主要份额。作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。

数据字典:数据字典它存放有数据库所用的有关信息,对用户来说是一组只读的表。数据字典内容包括:数据库中所有模式对象的信息,如表、视图、簇、及索引等。数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序源数据的目录。主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以有DBMS自动更新的数据字典。被动数据字典是指修改时必须手工更新其内容的数据字典。数据库数据字典不仅是每个数据库的中心,而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。

数据库表:在关系数据库中,数据库表是一系列二维数组的集合,用来代表和存儲数据对象之间的关系。

3.环境及要因分析

目前国内大型化工企业都逐渐的新上了生产管理系统,一些较早应用生产管理系统的化工企业随着应用的深入,会出现一些应用过程中产生的问题,这些问题有大有小,影响范围有重有轻。本文提到的问题是大家平时在系统维护中或多或少会遇到,下面对于还原过程中对于从数据还原规模的角度进行分析,分析如下:

(1)删除一条数据的情况:在删除一条数据的情况下,恢复整库数据将显得费事费力,所以此处将采用oracle数据库的闪回方法,下面将具体描述。

(2)删除一个数据库库表的情况:一个数据库库表被删除将导致系统的某些功能无法被正常使用,此时可以通过将“回收站”中的库表数据恢复出来,具体将在下面描述。

(3)需还原整库数据的情况:整库数据备份的情况发生的概率较小,建议非必要请谨慎操作,操作前备份原数据库。

4.解决方案

对照以上三种情况,根据数据恢复规模,给出三种数据库还原方案,此种综合方案将覆盖大部分我们可能遇到的数据恢复情景,具体如下:

(1)恢复数据库表中的一条数据:利用oracle提供的闪回方法,如果在删除数据后还没做大量的操作,就可以利用闪回的方式直接找回删除的数据,具体步骤如下:

<1>确定删除数据的时间(在删除数据之前的时间就行,不过最好是删除数据的时间点)。

<2>找出删除的数据,具体如下:

select * from 表名 as of timestamp to_timestamp(‘删除时间点,yyyy-MM-dd hh24:mi:ss))。

<3>把删除的数据重新插入原表,具体如下:

insert into 表名(select * from 表名 as of timestamp to_timestamp(‘删除时间点,yyyy-MM-dd hh24:mi:ss));注意要保证主键不重复。

(2)恢复数据库表:由于oracle在删除表时,没有直接清空表所占的块,oracle把这些已删除的表的信息放到了一个虚拟容器“回收站”中,而只是对该表的数据块做了可以被覆写的标志,所以在块未被重新使用前还可以恢复。具体如下:

<1>查询这个“回收站”或者查询user_table视图来查找已被删除的表:

select table_name,dropped from user_tables,select object_name,original_name,type,droptime from user_recyclebin 在以上信息中,表名都是被重命名过的,字段table_name或者object_name就是删除后在回收站中的存放表名。

<2>如果还能记住表名,则可以用下面语句直接恢复:flashback table 原表名 to before drop,如果记不住了,也可以直接使用回收站的表名进行恢复,然后再重命名,具体如下:

flashback table “回收站中的表名” to before drop rename to 新表名。

(3)整库数据恢复:找到之前备份的数据库,将备份文件还原到数据库中,具体如下:

imp 表名/密码@ORADB file=D:\名称.dmp FULL=Y

5.结束语

本文讲述的生产管理系统数据库库表还原解决方案是在一定的实践基础上给出的,根据恢复的数据规模总结出的一套简单实用的解决方案。同时也为鼓励大家在平时的工作中对所遇到的问题进行归纳总结,将解决问题的方案系统化、步骤化,以便今后在遇到相同问题时可以提高解决问题的效率。

猜你喜欢

Oracle数据库
Oracle数据库安全管理策略的优化
Oracle数据库应用问题与解决方案分析
一种Oracle数据库表空间监控方法
《Oracle数据库》课程教学模式探究 
基于ORACLE数据库应用系统的优化途径研究
虚拟机技术在Oracle数据库中的探讨与应用研究
Oracle数据库备份与恢复的理论基础
Oracle数据库性能调整与优化分析
Oracle数据库查询语句的优化研究
微课教学模式在Oracle数据库课程中的应用