日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ORACLE 迁移

發(fā)布時間:2025/3/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ORACLE 迁移 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

對象:表空間,數(shù)據(jù)庫

作用:將表空間,數(shù)據(jù)庫通過復制的方法盡快傳輸?shù)牧硪慌_機器,可以跨平臺移動

system表空間遷移:

1. 關(guān)閉數(shù)據(jù)庫

SQL> shutdown immediate
數(shù)據(jù)庫已經(jīng)關(guān)閉。
已經(jīng)卸載數(shù)據(jù)庫。
ORACLE 例程已經(jīng)關(guān)閉。

2. 復制system表空間對應(yīng)數(shù)據(jù)文件去新路徑

3. 以mount啟動數(shù)據(jù)庫

SQL> startup mount
ORACLE 例程已經(jīng)啟動。
Total System Global Area??135338868 bytes
Fixed Size? ?? ?? ?? ?? ?? ? 453492 bytes
Variable Size? ?? ?? ?? ? 109051904 bytes
Database Buffers? ?? ?? ???25165824 bytes
Redo Buffers? ?? ?? ?? ?? ???667648 bytes
數(shù)據(jù)庫裝載完畢。

4. 修改system表空間對應(yīng)數(shù)據(jù)文件去新路徑
SQL> alter database rename file? '/u01/app/oracle/oradata/orcl/system01.dbf' to '/u01/app/oracle/oradata/orcl/system/system01.dbf';

數(shù)據(jù)庫已更改。

5. 啟動數(shù)據(jù)庫

SQL> alter database open;

數(shù)據(jù)庫已更改。

非system表空間遷移:

準備工作:

1. 創(chuàng)建用于傳輸?shù)谋砜臻g:

create tablespace move datafile '/u01/app/oracle/oradata/orcl/move.dbf' size 10M;

2. 在表空間上創(chuàng)建表,以便檢查傳輸結(jié)果:

conn hr/hr

create table tbmove tablespace move?as select * from hr.employees;

檢查:確保表空間的所有對象都在該表空間中,例如表上的Index

命令:exec dbms_tts.transport_set_check('move', true, true);

檢查結(jié)果:SELECT * FROM TRANSPORT_SET_VIOLATIONS;

確保SELECT * FROM TRANSPORT_SET_VIOLATIONS無返回結(jié)果

3. 數(shù)據(jù)庫compatible大于10.0.0:show parameter compatible;

導出:

1. 將表空間設(shè)置為只讀:alter tablespace move read only;

2. 導出表空間的metadata:

a. 以system用戶創(chuàng)建文件夾:

create directory tbmove as '/tmp/tbmove';

b. 以system用戶導出表空間的metadata:

服務(wù)器端:EXPDP system/password DUMPFILE=expdat.dmp DIRECTORY=TBMOVE?TRANSPORT_TABLESPACES =MOVE

客戶端:expdp?system/password@orcl?dumpfile=expdat.dmp directory=tbmove transport_tablespaces=move

導出報錯,ORA-39123, ORA-29341;通過exec dbms_tts.transport_set_check('move', true, true)重新檢查。

問題是:為檢查創(chuàng)建的tbmove用的是sys用戶,所以無法導出

c. 檢查文件系統(tǒng),確認文件存在

轉(zhuǎn)換:

轉(zhuǎn)換原因:操作系統(tǒng)的Endian format不同

查看:select * from v$transportable_platform

轉(zhuǎn)換工具:RMAN

轉(zhuǎn)換地點:源服務(wù)器,目標服務(wù)器均可,源服務(wù)器相對簡單

腳本:

從Linux轉(zhuǎn)換成windows

RMAN> CONVERT TABLESPACE sales_1,sales_2?
2> TO PLATFORM 'Microsoft Windows NT'
3> FORMAT '/temp/%U';

從linux轉(zhuǎn)換成HPUX

RMAN> CONVERT DATAFILE?
2> '/hq/finance/work/tru/tbs_31.f',
3> '/hq/finance/work/tru/tbs_32.f',
4> '/hq/finance/work/tru/tbs_41.f'
5> TO PLATFORM="Solaris[tm] OE (32-bit)"
6> FROM PLATFORM="HP TRu64 UNIX"
7> DB_FILE_NAME_CONVERT=
8> "/hq/finance/work/tru/", "/hq/finance/dbs/tru"
9> PARALLELISM=5;

傳輸:將數(shù)據(jù)文件,metadata文件(expdat.dmp)復制到目標服務(wù)器

(如果針對同一機器,同一服務(wù)器,需要先刪除表空間 drop tablespace move including contents;)

導入:

IMPDP system/password DUMPFILE=expdat.dmp DIRECTORY=TBMOVE? TRANSPORT_DATAFILES=/tmp/tbmove/move.dbf

設(shè)置:

將表空間設(shè)置成可讀寫:alter tablespace move read write;

檢查:

conn hr/hr

select * from tbmove;

數(shù)據(jù)庫重建

同一服務(wù)器

使用DBCA將現(xiàn)有數(shù)據(jù)庫存為模板(包含結(jié)構(gòu),數(shù)據(jù)文件),然后使用模板在新位置創(chuàng)建新庫。

總結(jié)

以上是生活随笔為你收集整理的ORACLE 迁移的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。