手工轉移資料庫Step By Step

2021-03-31 08:56:29 字數 3155 閱讀 1973

手工轉移資料庫

step by step

author

:kamus

mail

:kamus@itpub.***

date

:2004-1

有時候我們會遇到這樣的情況,現有的資料庫要從乙個機器轉移到另外乙個機器上,一般我們會使用匯出,匯入。但是如果資料庫的資料非常多,資料檔案尺寸很大,那麼在匯出匯入的過程就很可能會出現問題,並且漫長的過程也是我們無法容忍的。在這種情況下,我們可以簡單地使用作業系統的

copy

命令,直接進行資料庫的轉移。

以下示例均在

redhat fedora core 1

上的oracle

9.2.0

.1

中操作,其它作業系統和

oracle

版本同樣適用。

假設我們的資料庫在伺服器a上,

$oracle_base

是/oracle

,$oracle_home

是/oracle/product/

9.2.0

。現在我們要將此資料庫轉移到伺服器

b上,並且新的

$oracle_base

是/u01/oracle

,$oracle_home

是/u01/oracle/product/9.2.0

。sid

是oralinux

。 操作步驟如下:

一.在伺服器

b上安裝

oracle

,安裝過程中不要建立資料庫。使用者的

profile

直接從伺服器a上

copy

過來即可,注意需要修改原先的

$oracle_home

到現在的位置。

二.如果伺服器a上的

oracle

使用的是

spfile

,那麼根據此

spfile

建立pfile

: create pfile from spfile

; 三.

關閉伺服器

a上的資料庫,

shutdown immediate

。如果資料庫不允許關閉,那麼可以使用聯機備份,這種情況資料庫必須處於

archivelog

模式,轉移的原理和允許關閉的情況一樣,此處不作討論。

四.備份伺服器

a上的所有資料檔案,包括以下:

a)所有的

datafile

(臨時檔案可以不

copy

,比如temp01.dbf

) b)

所有的online redo log

c)所有的

archive redo log

d)所有的

control file

e)$oracle_home/dbs/init.ora

(此檔案是在上面第二步中建立的)

f)$oracle_home/dbs/orapw

(這是password file

) g)

$oracle_home/***work/listener.ora

(這步可以省略,以後重新生成也可以)

h)$oracle_base/admin//

下的所有目錄,一般是

udump, cdump, bdump

(這步可以省略,以後手工建立目錄也可以)

五.通過

ftp或者別的工具將上述的備份檔案,全部上傳到伺服器

b的相應目錄中。比如說原來在伺服器a上

$oracle_base/oradata//system01.dbf

,現在就上傳到伺服器b上

$oracle_base/oradata//system01.dbf

,保證目錄的邏輯結構一樣,實際上物理結構已經發生了變化(a上

$oracle_base

是/oracle,而b

上是/u01/oracle

)。其它的檔案均作相同處理,如果伺服器

b上還沒有相應的目錄,那麼就手工建立。

六.編輯上傳到伺服器b上的

init.ora

檔案,將其中涉及的目錄結構全部改為

b中目前的目錄結構,比如本例中就是將

/oracle

改為/u01/oracle

。 七.

在伺服器b上,

sqlplus 「/ as sysdba」

,提示進入空閒程序。

八.根據修改過的

pfile

建立spfile

,create spfile from pfile

; 九.

啟動資料庫到

mount

狀態,startup mount

; 十.

修改control file

中所有資料檔案的位置,可以通過

spool

生成所有的

sql:

sql> alter database rename file '/oracle/oradata/oralinux/system01.dbf'

2to '/u01/oracle/oradata/oralinux/system01.dbf';

按照以上語法修改所有的資料檔案位置。

十一.此時資料庫已經可以使用了,

alter database open

; 十二.

將臨時檔案新增到

temp

表空間中:

alter tablespace temp add tempfile 『'/u01/oracle/oradata/oralinux/temp01.dbf』 size

20m

;

十三.還有一些後續工作,包括更新資料庫

b上的監聽配置檔案(其實可以不用管,因為

9i的例項已經可以自動註冊到監聽程式上了,如果是先起監聽再起資料庫,那麼立刻就會註冊,如果是先起資料庫再起監聽,那麼會稍微有些延時才註冊),修改

/etc/oratab

檔案,以能夠使用

dbstart

和dbshut

指令碼。

這樣資料庫就算完全轉移了,如果有什麼問題,可以給我發郵件。

作者blog:http://blog.csdn.***/kamus/

如何轉移資料庫MDF和LDF檔案

我們可以很輕易地使用sql server來建立乙個資料庫,建立的資料庫例項將儲存在指定的預設位置 不一定是c盤,可以手動變更預設儲存位置 假設此時資料庫例項建立在了c盤中的預設位置,亦即是與資料庫安裝位置保持一致性,對於64位的作業系統來說,儲存在c program files microsoft ...

快速轉移資料方法

如果你要把oracle裡的大量資料 80m以上 轉移到另外的使用者,另外的表空間裡。可以用下面介紹的快速轉移 資料的方法。一 建新表的方式create table target tablename tablespace target tablespace name nologging pctfree...

HashMap轉移資料的過程

確定需要擴容之後,先計算原來陣列的長度,如果已經等於最大值了那就不可能再擴容了,直接返回。如果不是,創新乙個新的新長度的陣列。然後執行轉移方法。轉移方法 for迴圈遍歷原陣列,遍歷每乙個entry,首先儲存entry中的下乙個entry。下一次需要迴圈的 判斷是否需要重新計算hash值,如果需要就重...