程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 混合框架中Oracle數據庫的還原處理操作,框架oracle

混合框架中Oracle數據庫的還原處理操作,框架oracle

編輯:關於.NET

混合框架中Oracle數據庫的還原處理操作,框架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腳本處理也是一種很好的選擇之一。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved