手工轉移資料庫
step by step
author
:kamus
: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值,如果需要就重...