混合框架中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数据库的还原处理操作的更多相关文章
- ABP框架使用Oracle数据库,并实现从SQLServer中进行数据迁移的处理
ABP框架的数据访问底层是基于EFCore(Entity Framework Core)的,是微软标志性且成熟的ORM,因此它本身是支持多种主流数据库MySQL,SqlServer,Oracle,SQ ...
- Laravel框架中的数据库CURD操作、连贯操作、链式操作的用法
Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来:它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁.富于 ...
- Web API应用架构在Winform混合框架中的应用(4)--利用代码生成工具快速开发整套应用
前面几篇介绍了Web API的基础信息,以及如何基于混合框架的方式在WInform界面里面整合了Web API的接入方式,虽然我们看似调用过程比较复杂,但是基于整个框架的支持和考虑,我们提供了代码生成 ...
- Web API应用架构在Winform混合框架中的应用(1)
在<Web API应用架构设计分析(1)>和<Web API应用架构设计分析(2)>中对WebAPI的架构进行了一定的剖析,在当今移动优先的口号下,传统平台都纷纷开发了属于自己 ...
- Web API应用架构在Winform混合框架中的应用(3)--Winfrom界面调用WebAPI的过程分解
最近一直在整合WebAPI.Winform界面.手机短信.微信公众号.企业号等功能,希望把它构建成一个大的应用平台,把我所有的产品线完美连接起来,同时也在探索.攻克更多的技术问题,并抽空写写博客,把相 ...
- Web API应用架构在Winform混合框架中的应用(2)--自定义异常结果的处理
在上篇随笔<Web API应用架构在Winform混合框架中的应用(1)>中我介绍了关于如何在Winfrom里面整合WebAPI,作为一个新型数据源的接入方式,从而形成了三种不同的数据提供 ...
- Oracle数据库安装图文操作步骤1
Oracle数据库安装图文操作步骤 一.Oracle 下载 注意Oracle分成两个文件,下载完后,将两个文件解压到同一目录下即可. 路径名称中,最好不要出现中文,也不要出现空格等不规则字符. 官 ...
- C#中oracle数据库的连接方法
C#中oracle数据库的连接方法 一.关于数据库的操作 1.数据库连接 有2种: 第一种:古老的方法(较为死板,不利于灵活操作),即用OracleConnection的类来连接 ...
- Web API应用架构在Winform混合框架中的应用(5)--系统级别字典和公司级别字典并存的处理方式
在我这个系列中,我主要以我正在开发的云会员管理系统为例进行介绍Web API的应用,由于云会员的数据设计是支持多个商家公司,而每个公司又可以包含多个店铺的,因此一些字典型的数据需要考虑这方面的不同.如 ...
随机推荐
- SQL Server-聚焦在视图和UDF中使用SCHEMABINDING(二十六)
前言 上一节我们讨论了视图中的一些限制以及建议等,这节我们讲讲关于在UDF和视图中使用SCHEMABINDING的问题,简短的内容,深入的理解,Always to review the basics. ...
- Openfiler配置RAC共享存储
将 Openfiler 用作 iSCSI 存储服务器,主要操作步骤如下: 1.设置 iSCSI 服务 2.配置网络访问 3.指定物理存储器并对其分区 4.创建新的卷组 5.创建所有逻辑卷 6.为每个逻 ...
- WINDOWS系统下MYSQL安装过程中的注意事项
1.首先MySQL的安装方式有两种:一种是MSI安装方式,很简单就像安装Windows软件一样.另外一种就是ZIP安装方式.这种相对而言比较麻烦.新手推荐MSI安装方式. 安装方式有以下两种: MSI ...
- Oracle创建表空间
1.创建表空间 导出Oracle数据的指令:/orcl file=C:\jds.dmp owner=jds 导入Oracle数据的指令:imp zcl:/orcl file=C:\jds.dmp fu ...
- SQLServer如何添加try catch
在.net中我们经常用到try catch.不过在sqlserver中我们也可以使用try catch捕捉错误,在这里把语法记录下来和大家分享一下, --构建存储过程CREATE PROCEDURE ...
- AutoMapper(七)
返回总目录 Null值替换 如果源类型的成员链上的属性值为Null,Null值替换允许提供一个可替换的值.下面有两个类Person和PersonInfo类,都有一个属性Title(头衔),从Perso ...
- 从零开始,DIY一个jQuery(3)
在前两章,为了方便调试,我们写了一个非常简单的 jQuery.fn.init 方法: jQuery.fn.init = function (selector, context, root) { if ...
- 微信硬件H5面板开发(一) ---- 调用openApi
微信硬件平台是微信推出连接物与人,物与物的IOT解决方案.也就是说可以通过微信控制各种智能设备.比如一些蓝牙设备.空调.电视等等. 我本身不懂硬件(虽然是电子信息专业),硬件是北航的两个研究生在弄,小 ...
- 到爱尔兰敲代码 / Come, Coding in Ireland
这是我在都柏林的第四个月,该办的证也都办完了,该安定下来的也安定下来了,所以也简单介绍下到爱尔兰做IT的相关过程和政策. 如果有兴趣在英语环境工作的话,我也可以帮忙推荐或者找找. 去年15年1月正好开 ...
- Azure File Storage 基本用法 -- Azure Storage 之 File
Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在<Azure Blob Storage 基 ...