混合架構中Oracle資料庫的還原處理操作

來源:互聯網
上載者:User

標籤:color   匯入   建立   使用者   password   ace   資料庫   html   建表   

在較早期的隨筆《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資料庫的還原處理操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.