混合框架中Oracle数据库的还原处理操作

在较早期的随笔《Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作》粗略介绍了Oracle数据库的备份还原操作,本文想从开发框架的基础上介绍Oracle数据库的脚本或者还原操作。

我们在Winform开发框架、混合式开发框架、Web开发框架等各种开发框架,底层都是支持多种数据库的,如MS SQLServer、Oracle、MySQL、SQLite、PostgreSQL等等,如下图所示。

其中SQLServer支持最为常用,而且也是最为方便备份还原的操作,而Oracle数据库这是次之,也是较为常用的数据库,不过相对SQLServer来说,Oracle的数据库处理起来并不是那么方便,因此本文着重介绍一下,基于框架层面的数据库,如何实现数据库脚本的处理或者基于备份文件的还原操作。

1、框架中的数据库脚本处理

如果使用数据库脚本的方式,Oracle可以按照前面《Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作》的方式构建一个表空间,然后创建对应的数据库信息,如下所示。

create tablespace win_tbs datafile 'C:\app\Administrator\oradata\whcdb\win.dbf' size 100M;
create user win identified by win default tablespace win_tbs;

grant connect,resource to win;
grant dba to win;

上面代码就是创建表空间文件,然后创建一个win用户,并附加在表空间里面。

有了这些信息,我们就可以通过用户win,密码为win的方式登录Oracle数据库了。

然后我们就可以利用这个用户,在PLSQL上进行表的创建和数据操作处理了。

如我们创建表的脚本如下所示。

/*==============================================================*/
/* Table: TB_CITY                                               */
/*==============================================================*/
create table TB_CITY  (
   ID                   number                          not null,
   CITYNAME             NVARCHAR2(50),
   ZIPCODE              NVARCHAR2(50),
   PROVINCEID           number,
   constraint PK_TB_CITY primary key (ID)
);

comment on table TB_CITY is'全国城市表';
comment on column TB_CITY.CITYNAME is'城市名称';
comment on column TB_CITY.ZIPCODE is'邮政编码';
comment on column TB_CITY.PROVINCEID is'省份ID';

例如我们创建各类不同的数据库脚本,那么只需要按照顺序加入或者选择加入执行数据库脚本即可。

那么执行这些SQL,该如何操作呢,是不是直接拖动到PL-SQL上就可以了?

当然不是,否则长一点的数据库脚本,就可能导致非常迟缓的执行效率。

一般可以通过两种方式,一种是使用命令行的方式。

这种方式执行速度非常快,比起直接在PL-SQL的SQL窗口上执行更有效率。

另外一种方式,就是可以利用PL-SQL里面的另外一个地方进行执行数据库脚本,如下所示。

在【 工具】【导入表】的操作里面,弹出一个对话框,也是执行脚本高效的操作之一。

上面介绍的这些方式,就是在数据库没有的情况下,根据数据库脚本构建对应的数据对象和数据的。

2、使用imp和exp进行数据的导入和导出

另外一个种还原已有备份文件或者备份已有数据库的操作就是使用Oracle的命令imp和exp了。

imp使用的基本格式:imp[username[/password[@service]]]

一般也可以使用imp,然后一步步的操作即可。

我们先来了解下这两个命令的格式:

基本语法和实例: 
    1、EXP: 
      有三种主要的方式(完全、用户、表) 
      1、完全: 
          EXP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y 
          如果要执行完全导出,必须具有特殊的权限 
      2、用户模式: 
          EXP SONIC/SONIC    BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC 
          这样用户SONIC的所有对象被输出到文件中。 
      3、表模式:
          EXP SONIC/SONIC    BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC) 
          这样用户SONIC的表SONIC就被导出 
    2、IMP: 
      具有三种模式(完全、用户、表) 
      1、完全: 
          IMP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y 
      2、用户模式: 
          IMP SONIC/SONIC    BUFFER=64000 FILE=C:\SONIC.DMP FROMUSER=SONIC TOUSER=SONIC 
          这样用户SONIC的所有对象被导入到文件中。必须指定FROMUSER、TOUSER参数,这样才能导入数据。 
      3、表模式: 
          EXP SONIC/SONIC    BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC) 
          这样用户SONIC的表SONIC就被导入。

 

将一个用户所属的数据导入还有一个用户格式:

imp win/win file=c:\win.dmp fromuser=win touser=win

如果有的表已经存在,执行的话它就报错,对该表就不进行导入。那么在后面加上 ignore=y 就可以了。

在框架的数据库目录里面,我们一般附带有对应的Oracle备份文件(.dmp文件)这样,用户可以在开发使用Oracle的时候,可以直接还原数据库即可,不过如果要详细化做好各个数据库脚本,使用Oracle脚本处理也是一种很好的选择之一。

本文转自博客园伍华聪的博客,原文链接:混合框架中Oracle数据库的还原处理操作,如需转载请自行联系原博主。

时间: 2024-10-19 06:29:13

混合框架中Oracle数据库的还原处理操作的相关文章

Web API应用架构在Winform混合框架中的应用(1)

在<Web API应用架构设计分析(1)>和<Web API应用架构设计分析(2)>中对WebAPI的架构进行了一定的剖析,在当今移动优先的口号下,传统平台都纷纷开发了属于自己的Web API平台,方便各种终端系统的接入,很多企业的需求都是以Web API优先的理念来设计整个企业应用体系的.Web API作为整个纽带的核心,在整个核心层需要考虑到统一性.稳定性.以及安全性等方面因素.本文主要介绍,Web API应用架构,在Winform整合中的角色,以及如何实现在Winform混合

代码-dreamweaver cs6 怎么在框架中显示数据库中的某一条记录?

问题描述 dreamweaver cs6 怎么在框架中显示数据库中的某一条记录? 我在制作网页的时候陷入了瓶颈,现在希望能在dreamweaver中实现这个功能:点开一个链接,直接显示出数据库中的某一条记录,并且在下面的"推荐项目"后随机显示出其他的条目. 如果要实现这个功能,代码应该怎么写 解决方案 通过javascript等来访问数据库,获取数据,然后再显示到html页面 http://www.jb51.net/article/42178.htm 解决方案二: Dreamweave

配置-tomcat启动,spring框架连接Oracle数据库,listener报错

问题描述 tomcat启动,spring框架连接Oracle数据库,listener报错 2.并且我的oracle数据库实例是orcl,到这里变成了orcllyq 3.我尝试改过listener.ora文件,也不好使 4.这是我的listener.ora文件的配置,我都要崩溃了 解决方案 这里貌似配置全错了 你的listener配置的sid是CLRExtProc,然后你的程序的sid是ORCLLYQ 解决方案二: 没有正确 配置数据库 ,没有正常连接,你自己的数据库登陆密码要与 项目中设置的 p

Yii框架实现多数据库配置和操作的方法

本文实例讲述了Yii框架实现多数据库配置和操作的方法.分享给大家供大家参考,具体如下: Yii的默认配置为一个数据库,不过可以很容易的支持多个数据库的操作, 这为按业务分割数据库提供了基础设施.如下所示: //cms DB connection 'db' => (defined('DB_CONNECTION') ? array( 'connectionString' => DB_CONNECTION, 'username' => DB_USER, 'password' => DB_

Web API应用架构在Winform混合框架中的应用(2)--自定义异常结果的处理

在上篇随笔<Web API应用架构在Winform混合框架中的应用(1)>中我介绍了关于如何在Winfrom里面整合WebAPI,作为一个新型数据源的接入方式,从而形成了三种不同的数据提供来源,前文在介绍整体性框架方面,着笔较多,注重整合的统一性,但是在Web API方面还不算很具体,本系列将继续这个主题,介绍Web API开发中常见到的一些问题,对其中各个技术要点进行总结,本文主要介绍Web API自定义异常结果的处理. 1.常规的异常处理 统一的异常处理,把正确的信息返回给调用者很重要,可

hibernate3-shh框架连接Oracle数据库报流已被关闭什么原因啊

问题描述 shh框架连接Oracle数据库报流已被关闭什么原因啊 我连接MySql数据库是工作流正常的,改成Oracle数据库后第一次初始化时没报错的,再启动就出现以下问题了!哪位大侠帮帮看看的!谢谢的! Hibernate: select resources0_.DEPLOYMENT_ as DEPLOYMENT4_12_1_, resources0_.DBID_ as DBID1_1_, resources0_.NAME_ as NAME5_1_, resources0_.DBID_ as

《Metasploit渗透测试手册》—第1章1.8节在Metasploit框架中建立数据库

1.8 在Metasploit框架中建立数据库 Metasploit渗透测试手册 Metasploit的重要特点是包括用于存储渗透测试结果的数据库.渗透测试涉及大量信息,并且持续数天,因此存储中间结果是必要的.因此,好的渗透测试工具应该正确地整合数据库,以便快速高效地存储结果. 准备 默认情况下,Metasploit将自带的PostgreSQL作为基础数据库.在BackTrack上,还有另外一种选择,也就是MySQL数据库.用户可以使用这两种数据库中的任一种.我们先来看一下PostgreSQL数

通过exp命令对Oracle数据库进行备份操作(提供两种情况的备份:备份本地,备份远程的数据库)

通过exp命令可以对Oracle数据库进行备份操作,其命令含义是:exp 用户名/密码@数据库所在ip地址:数据库端口号/数据库的service-name file=存储到的位置 exp MISPS/MISPS@orcl file=d:\MISPS.dmp 远程导出的方法 exp MISPS/MISPS@10.12.10.111:1521/cipaspd.css.com file=d:\MISPS.dmp BUFFER=5000 FULL=Y 其中FULL=Y表示备份所有(包括数据库结构,用户等

Web API应用架构在Winform混合框架中的应用(5)--系统级别字典和公司级别字典并存的处理方式

在我这个系列中,我主要以我正在开发的云会员管理系统为例进行介绍Web API的应用,由于云会员的数据设计是支持多个商家公司,而每个公司又可以包含多个店铺的,因此一些字典型的数据需要考虑这方面的不同.如对于证件类型,收费处理状态,民族,职称等这些固定化的内容,我们可以放到全局字典里面,但是对于一些如会员相关的字典数据,如产品单位.产品类型等内容,如果也全部规定为全局的系统字典,那么就缺乏灵活性,这些数据应该可以由各自进行差异化处理. 1.云会员系统的字典数据模型 我们先来了解下基于Web API接