Oracle表空間遷移

2021-05-23 19:17:22 字數 2183 閱讀 6508

源伺服器環境:

dell r710

red hat linux 5.4 (x64)

目標伺服器環境:

辦公室台式計算機

windows2008 (32位)

資料庫都是oracle 11.2.0.1

下面是測試全過程

並不是所有的平台都可以相互遷移的。檢視平台列表命令如下:

select * from v$transportable_platform

order by endian_format asc

注意:必須是高位對高位,低位對應低位。

一下是其他限制條件:

1.source db 與target db 有相同的字符集,nls_database_parameters 中nls_characterset,nls_nchar_characterset必須一樣

2.不能有同名tablespace,不過 10g 可用alter tablespace rename解決

3.system tablespace 不能transport,sys物件在的tablespace不能transport

4.是不是自包含的(用transport_full_check可以解決 )不過匯出index tablespace 沒匯出依賴的表tablespace還是會報錯,分割槽表沒全部包含,表lob列所在tablespace沒包含 都會報錯

操作如下:

sql> create directory expdpt as '/u01';

directory created

sql> alter tablespace test read only;

tablespace altered

sql> execute dbms_tts.transport_set_check('test',true);

pl/sql procedure successfully completed

[oracle@bitest u01]$ expdp system/manager5173erp directory=expdpt dumpfile=test.dmp transport_tablespaces=test

export: release 11.2.0.1.0 - production on fri jul 9 14:41:00 2010

然後把錶空間和expdp檔案複製到目標伺服器上。

目標伺服器:

sql> create directory expdpt as 'c:/'

2  /

目錄已建立。

sql> exit;

c:/users/administrator>impdp  system/manager5173 directory=expdpt dumpfile=test.

dmp transport_datafiles=c:/test01a.dbf remap_schema=test:system

import: release 11.2.0.1.0 - production on 星期五 7月 9 15:01:18 2010

作業 "system"."sys_import_transportable_01" 因致命錯誤於 15:01:20 停止

在執行impdp的時候報錯。

發現原因是,目標表空間的db_block(8k)和原資料庫的db_block(16k)大小不一致。

解決辦法:

alter system set db_16k_cache_size=10m;

create tablespace tbs_test_16k

datafile 'c:/tbs_test_16k.dbf' size 10m

blocksize 16k;

然後建立乙個test16k的帳號,把預設表空間對映到tbs_test_16k。

再進行impdp:

c:/users/administrator>impdp  system/manager5173 directory=expdpt dumpfile=test.

dmp transport_datafiles=c:/test01a.dbf remap_schema=test:test16k

import: release 11.2.0.1.0 - production on 星期五 7月 9 15:04:15 2010

ok,搞定了

oracle遷移表空間

可遷移表空間 使用可遷移表空間 transportable tablespaces 的特性在資料庫之間移動大量資料,效能比export import和unload load要快很多,因為它遷移表空間只需要複製資料檔案和插入表空間元資料到目標資料庫中。遷移表空間對以下應用特別有用 分階段將oltp的資...

Oracle表空間遷移

1 查詢當前資料庫的表空間情況 根據下面的 查詢出當前資料庫的表空間名稱,以及路徑等相關資訊,找到要遷移的表空間。select a.tablespace name,a.file id,a.file name,round a.bytes 1024 1024 0 total space from dba...

ORACLE 表和索引遷移表空間

表做空間遷移時,使用如下語句 例1 alter table tb name move tablespace tbs name 索引表空間做遷移,使用如下語句 例2 alter index index name rebuild tablespace tbs name 對於含有lob欄位的表,在建立時,...