新聞中心
在數(shù)據(jù)庫(kù)管理領(lǐng)域,數(shù)據(jù)庫(kù)遷移是一項(xiàng)重要的任務(wù)。它涉及到將一個(gè)或多個(gè)數(shù)據(jù)庫(kù)或應(yīng)用程序從一個(gè)環(huán)境轉(zhuǎn)移到另一個(gè)環(huán)境,通常是遷移基礎(chǔ)架構(gòu)或托管提供商、更新版本或平臺(tái)或合并數(shù)據(jù)庫(kù)。雖然Oracle數(shù)據(jù)庫(kù)遷移是一項(xiàng)繁瑣的任務(wù),但必須完成此任務(wù),既確保數(shù)據(jù)的完整性,又確保數(shù)據(jù)的安全性。在本文中,我們將分享一些Oracle數(shù)據(jù)庫(kù)遷移的技巧,以幫助您在遷移過(guò)程中快速移動(dòng)數(shù)據(jù)。

成都創(chuàng)新互聯(lián)公司專注于汕尾網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供汕尾營(yíng)銷型網(wǎng)站建設(shè),汕尾網(wǎng)站制作、汕尾網(wǎng)頁(yè)設(shè)計(jì)、汕尾網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務(wù),打造汕尾網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供汕尾網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
準(zhǔn)備工作
在開始Oracle數(shù)據(jù)庫(kù)遷移之前,必須先進(jìn)行一些準(zhǔn)備工作。這些準(zhǔn)備工作包括:
1.存儲(chǔ)備份和日志文件
在遷移過(guò)程中,您需要備份整個(gè)數(shù)據(jù)庫(kù)和日志文件。因此,您需要有足夠的存儲(chǔ)空間,以便存儲(chǔ)這些文件。備份數(shù)據(jù)庫(kù)和日志文件可以幫助您在遷移過(guò)程中避免數(shù)據(jù)丟失。
2.確認(rèn)遷移目標(biāo)環(huán)境
在遷移之前,您需要確認(rèn)目標(biāo)數(shù)據(jù)庫(kù)環(huán)境是否符合要求。目標(biāo)環(huán)境需要具有足夠的存儲(chǔ)空間、性能和安全性,以保持新數(shù)據(jù)庫(kù)的平穩(wěn)運(yùn)行。此外,新環(huán)境必須具有足夠的權(quán)限,以允許您完成遷移。
3.創(chuàng)建遷移計(jì)劃
創(chuàng)建遷移計(jì)劃可以幫助您規(guī)劃遷移過(guò)程的步驟和時(shí)間。此外,遷移計(jì)劃還應(yīng)包括備份和還原方案、驗(yàn)證和測(cè)試計(jì)劃以及后續(xù)支持和維護(hù)計(jì)劃。
快速move數(shù)據(jù)的技巧
1.使用Oracle Data Pump
Oracle Data Pump是一種快速移動(dòng)數(shù)據(jù)的工具,它允許將數(shù)據(jù)以二進(jìn)制格式從源數(shù)據(jù)庫(kù)導(dǎo)出并導(dǎo)入到目標(biāo)數(shù)據(jù)庫(kù)。使用Data Pump可以大大加快數(shù)據(jù)的遷移速度。此外,Data Pump還可以將數(shù)據(jù)導(dǎo)出到平面文件中,以便在遷移過(guò)程中進(jìn)行手動(dòng)處理。
2.使用Oracle GoldenGate
Oracle GoldenGate是一種高性能、高可用性的數(shù)據(jù)復(fù)制和同步工具,它允許在不影響源數(shù)據(jù)庫(kù)的情況下將數(shù)據(jù)復(fù)制到目標(biāo)數(shù)據(jù)庫(kù)。GoldenGate可以在不同的操作系統(tǒng)、數(shù)據(jù)庫(kù)版本和架構(gòu)之間進(jìn)行復(fù)制。使用GoldenGate可以減少數(shù)據(jù)遷移的停機(jī)時(shí)間,并提高遷移的效率。
3.使用Oracle Transportable Tablespaces
Oracle Transportable Tablespaces允許在同一操作系統(tǒng)上的不同Oracle數(shù)據(jù)庫(kù)之間移動(dòng)數(shù)據(jù)。使用Transportable Tablespaces可以避免在目標(biāo)數(shù)據(jù)庫(kù)中重新創(chuàng)建表和索引,并減少數(shù)據(jù)遷移的時(shí)間。此外,Transportable Tablespaces還可以使遷移過(guò)程更加容易,因?yàn)槟槐刂匦掳惭b任何軟件或創(chuàng)建新的數(shù)據(jù)庫(kù)實(shí)例。
4.使用Oracle RMAN
Oracle Recovery Manager(RMAN)是一種備份和還原數(shù)據(jù)庫(kù)的工具。使用RMAN可以將整個(gè)數(shù)據(jù)庫(kù)備份到磁盤或磁帶,并快速還原到目標(biāo)數(shù)據(jù)庫(kù)中。此外,使用RMAN還可以在備份和還原過(guò)程中對(duì)數(shù)據(jù)進(jìn)行壓縮,從而減少數(shù)據(jù)遷移的時(shí)間和存儲(chǔ)空間。
在Oracle數(shù)據(jù)庫(kù)遷移過(guò)程中,快速移動(dòng)數(shù)據(jù)是至關(guān)重要的。使用Oracle Data Pump、Oracle GoldenGate、Oracle Transportable Tablespaces和Oracle RMAN等工具可以大大加快數(shù)據(jù)的遷移速度。此外,在啟動(dòng)遷移之前做好充分的準(zhǔn)備工作和規(guī)劃,可以幫助您避免中斷和數(shù)據(jù)丟失,并確保數(shù)據(jù)庫(kù)遷移的安全和完整性。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
學(xué)習(xí)oracle視頻,看到指定表空間數(shù)據(jù)文件移動(dòng)到指定位置遇到問題,host move執(zhí)行無(wú)任何效果
我今天學(xué)習(xí)oracle也到這兒,發(fā)現(xiàn)敲了命令,在相應(yīng)的磁盤沒看到dbf文件,此時(shí)我用的是pl/sql developer 里的命令窗口
后來(lái)銷山仔我使用虧汪sqlplus來(lái)進(jìn)行同樣的操作,發(fā)現(xiàn)在相應(yīng)的磁盤中找到了dbf文件,我覺得可能是使用工具的問題。
自己的一點(diǎn)心得,不知道對(duì)與否,希望對(duì)你有幫唯碼助
是能移走的棗肆鉛呀,不應(yīng)該沒反映的。記雹洞得移走之后還要rename datafile.
例如:
SQL> select file_name from dba_data_files;
FILE_NAME
/u01/oracle/oradata/oradb/users01.dbf
/u01/oracle/oradata/oradb/undotbs01.dbf
/u01/oracle/oradata/oradb/sysaux01.dbf
/u01/oracle/oradata/oradb/system01.dbf
/u01/oracle/oradata/oradb/encrypted_ts01.dbf
SQL> alter tablespace users offline;
Tablespace altered.
SQL> alter tablespace users rename datafile ‘/u01/凳好oracle/oradata/oradb/users01.dbf’ to ‘/u01/oracle/users02.dbf’;
Tablespace altered.
SQL> alter tablespace users online;
Tablespace altered.
SQL> select file_name from dba_data_files;
FILE_NAME
/u01/oracle/users02.dbf
/u01/oracle/oradata/oradb/undotbs01.dbf
/u01/oracle/oradata/oradb/sysaux01.dbf
/u01/oracle/oradata/oradb/system01.dbf
/u01/oracle/oradata/oradb/encrypted_ts01.dbf
SQL> !ls -a /u01/oracle/users02.dbf
/u01/oracle/users02.dbf
SQL> !ls -a /u01/oracle/oradata/oradb/users01.dbf
ls: /u01/oracle/oradata/oradb/users01.dbf: No such file or directory
我倒,host命緩中令就是在sql/plus中執(zhí)迅哪攜行操作系統(tǒng)的命令,如果被移動(dòng)的表空間文件處于在在線狀畝伏態(tài),當(dāng)然不能讓你移動(dòng)了!這個(gè)時(shí)候你可以把表空間文件設(shè)置為冷備份狀態(tài),這個(gè)時(shí)候可以移動(dòng)。
我也遇到這個(gè)問凱雹芹題,后來(lái)發(fā)現(xiàn)是因?yàn)樵赑L/SQL developer中運(yùn)盯畢行這條肆備命令就無(wú)效,在sqlplus中運(yùn)行才有效
如何重建LOB類型的索引和LOB段
當(dāng)我們想重建LOB類型的索引的時(shí)候,就會(huì)出現(xiàn)報(bào)錯(cuò),重現(xiàn)如下:
create table test
( id int,
txt clob
);
SQL> select * from user_segments;
SEGMENT_NAMEPARTITION_NAME SEGMENT_TYPETABLESPACE_NAME
BYTES BLOCKS EXTENTS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE FREELISTS FREELIST_GROUPS BUFFER_POOL
—
–
TESTTABLEUSERS
DEFAULT
SYS_ILC00002$$ LOBINDEXUSERS
DEFAULT
SYS_LOBC00002$$ LOBSEGMENTUSERS
DEFAULT
alter index SYS_ILC00002$$ rebuild tablespace users ONLINE NOLOGGING
ORA-02327: 無(wú)法以數(shù)據(jù)類型 LOB 的型伍表達(dá)式創(chuàng)建索引
我們先回憶一下相關(guān)辯伏知識(shí),以下來(lái)自O(shè)RACLE 9I&10G編程藝術(shù)
lobindex和lobsegment,它們做什么用?創(chuàng)建這些段是為了支持我們的LOB列。我們的實(shí)際LOB數(shù)據(jù)就存儲(chǔ)在lobsegment中(確實(shí),LOB數(shù)據(jù)也有可能存儲(chǔ)在表T中,不過(guò)稍后討論
ENABLE STORAGE IN ROW子句時(shí)還會(huì)更詳細(xì)地說(shuō)明這個(gè)內(nèi)容)。lobindex用卜灶或于執(zhí)行LOB的導(dǎo)航,來(lái)找出其中的某些部分。創(chuàng)建一個(gè)LOB列時(shí),一般來(lái)說(shuō),存儲(chǔ)在行中的這是一個(gè)指針(
pointer),或LOB定位器(LOB locator)。我們的應(yīng)用所獲取的就是這個(gè)LOB定位器。當(dāng)請(qǐng)求得到LOB的“12.000~2,000字節(jié)”時(shí),將對(duì)lobindex使用LOB定位器來(lái)找出這些字節(jié)存
儲(chǔ)在哪里,然后再訪問lobsegment??梢杂胠obindex很容易地找到LOB的各個(gè)部分。由此說(shuō)來(lái),可以把LOB想成是一種主/明細(xì)關(guān)系。
表中的LOB實(shí)際上只是指向lobindex,lobindex再指向LOB本身的各個(gè)部分。為了得到LOB中的N~M字節(jié),要對(duì)表中的指針(LOB定位器)解除引用,遍歷lobindex結(jié)構(gòu)來(lái)找到所需的
數(shù)據(jù)庫(kù)(chunk),然后按順序訪問。這使得隨機(jī)訪問LOB的任何部分都能同樣迅速,你可以用同樣快的速度得到LOB的最前面、中間或最后面的部分,因?yàn)闊o(wú)需再?gòu)念^開始遍歷LOB
。
ORACLE也說(shuō):The LOB index is an internal structure that is strongly associated with the LOB storage. 也就是說(shuō)不讓直接重建
但是我覺得可以明確INDEX是用來(lái)確定LOBSEGMENT的位置,如果經(jīng)常對(duì)表中的行進(jìn)行DML或者對(duì)大字段進(jìn)行DML,我覺得重建還是用必要的。
既然是索引就要遵守索引的原則。大量的DML必然使索引的頁(yè)節(jié)點(diǎn)越來(lái)越多,深度越來(lái)越大,但是其中包含了空閑空間。
ORACLE METALINK 說(shuō) Use the ALTER TABLE … MOVE command which will rebuild the indexes ,也就是使用ALTER TABLE MOVE語(yǔ)句來(lái)進(jìn)行REBUILD索引。
下面就測(cè)試一下:
首先理解幾個(gè)概念,才能了解實(shí)驗(yàn)結(jié)果:
1、IN ROW 默認(rèn)的這個(gè)子句是(ENABLE STORAGE IN ROW),也就是小于4000字節(jié)就存儲(chǔ)在表段中,如果大于4000字節(jié)就存儲(chǔ)在lob段中,同時(shí)使用LOBINDEX來(lái)指定位置,我這里使
用DISABLE STORAGE IN ROW,也就是不管多大都存在LOBSEGMENT中。
2、CHUNK 表示最小LOGSEGMENT最小的存儲(chǔ)單元,而且一個(gè)CHUNK只限于一個(gè)SEGMENT行使用,如果一個(gè)CHUNK設(shè)置為32K,你的SEGMENT行只有2K那就要浪費(fèi)30k。
3、CACHE 表示是否把讀取寫入LOGSEGMENT記錄到緩存,默認(rèn)是NOCACHE,可以是CACHE和CACHE READS,前者讀寫都保存,后者讀保存,寫是直接寫。而NOCACHE,就是直接讀寫。
下面是我建立表的語(yǔ)句。
CREATE TABLE “PPTEST”.”TEST2″
( “ID” NUMBER(*,0),
“TXT” CLOB
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIALNEXTMINEXTENTS 1 MAXEXTENTS
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE “USERS”
LOB (“TXT”) STORE AS (
TABLESPACE “USERS” DISABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
NOCACHE
STORAGE(INITIALNEXTMINEXTENTS 1 MAXEXTENTS
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT))
我這里DISABLE STORAGE IN ROW CHUNK 8192,CHUNK是8K。
現(xiàn)在我插入數(shù)據(jù)
SQL> insert into test2
2 select * from test;
rows inserted
這里有58W多行,計(jì)算一下SEGMENTS占用空間。589824*8K=4.5G
查看一下:
select SEGMENT_NAME,SEGMENT_TYPE,BYTES/1024/1024/1024 gb,BLOCKS from user_segments;
SYS_ILC00002$$ LOBINDEX. 3968
SYS_LOBC00002$$LOBSEGMENT.95328
TESTTABLE0. 2432
確實(shí)我們的LOGSEGMENT是4.5G。
現(xiàn)在我們收集統(tǒng)計(jì)信息,并且對(duì)索引進(jìn)行分析如下:
SQL> execute dbms_stats.gather_schema_stats(ownname => ‘PPTEST’,cascade => true);
PL/SQL procedure successfully completed
yze index SYS_ILC00002$$ validate structure;
yze index SYS_ILC00002$$ compute statistics;
過(guò)后查看都沒有發(fā)現(xiàn)LOGINDEX的結(jié)構(gòu)信息,不知道為何。
但是考慮進(jìn)行了大量的DML夠后進(jìn)行REBULIDING索引的大小肯定會(huì)減少。
現(xiàn)在我們來(lái)進(jìn)行REBULDING實(shí)驗(yàn)。
首先模擬大量刪除插入,
delete test2;
insert into test2
select id,txt from (select rownum rn, id, txt from test) where mod(rn, 8) = 0;
先全部刪除,然后再插入1/8的數(shù)據(jù)。(過(guò)程巨慢)
SQL> delete test2;
rows deleted
查看
select SEGMENT_NAME,SEGMENT_TYPE,BYTES/1024/1024/1024 gb,BLOCKS from user_segments;
SYS_ILC00002$$ LOBINDEX.240
SYS_LOBC00002$$LOBSEGMENT.03520
TESTTABLE0. 2432
索引的塊大量增加,占用空間也大量增加,這里我也不太明白為何大量增加。這時(shí)其實(shí)沒有任何數(shù)據(jù)了。
然后進(jìn)行了插入。
SQL> insert into test2
2 select id,txt from (select rownum rn, id, txt from test) where mod(rn, 8) = 0;
73728 rows inserted
查看
select SEGMENT_NAME,SEGMENT_TYPE,BYTES/1024/1024/1024 gb,BLOCKS from user_segments;
SYS_ILC00002$$ LOBINDEX.1264
SYS_LOBC00002$$LOBSEGMENT.69056
TESTTABLE0. 2432
其實(shí)這個(gè)時(shí)候數(shù)據(jù)只是以前的1/8 但是LOGSEGMENT和LOBINDEX 卻更大。所以有大量的浪費(fèi)空間。
我們直接重建TEST2表
SQL> alter table test2 move tablespace users;
查看
SYS_ILC00002$$ LOBINDEX.1264
SYS_LOBC00002$$LOBSEGMENT.69056
TESTTABLE0. 384
只是重建了TEST2段
使用語(yǔ)句
ALTER TABLE test2 MOVE
TABLESPACE users
LOB (TXT) STORE AS lobsegment
(TABLESPACE users );
進(jìn)行重建
重建期間可以看到臨時(shí)對(duì)象如下:
4.TEMPORARY. 80
4.TEMPORARY.7408
4.TEMPORARY. 128
顯然表本身,LOBSEGMENT和LOBINDEX都再重建
然后查看
SQL> select SEGMENT_NAME,SEGMENT_TYPE,BYTES/1024/1024/1024 gb,BLOCKS from user_segments;
SEGMENT_NAMESEGMENT_TYPE GB BLOCKS
TESTTABLE0. 384
LOBSEGMENT LOBSEGMENT.74496
SYS_ILC00002$$ LOBINDEX. 512
因?yàn)槲疫@里使用 lobsegment所以以前的SYS_LOBC00002$$ 變?yōu)榱薒OBSEGMENT,可以看到這個(gè)時(shí)候容量正常了。0.56G剛好是以前的1/8.
如果想單獨(dú)重建會(huì)報(bào)錯(cuò)。METALINK上記錄如下:
Explanation
The ‘ALTER TABLE foo MODIFY LOB (lobcol) …’ syntax does not allow
for a change of tablespace
ALTER TABLE my_lob
MODIFY LOB (a_lob)
(TABLESPACE new_tbsp);
(TABLESPACE new_tbsp)
*
ORA-22853: invalid LOB storage option specification
You have to use the MOVE keyword instead as shown in the examples.
結(jié)論:
1、LOGSEGMENT不會(huì)重用HWM以下的空間,所以大量DML會(huì)不斷增加它的大小。
2、進(jìn)行LOBsegment和LOBINDEX重建很有必要,使用語(yǔ)法如下:
ALTER TABLE test2 MOVE
TABLESPACE users
LOB (TXT) STORE AS lobsegment
(TABLESPACE users );
必須和表一起重建,單獨(dú)重建LOBSEGMENT或者LOGINDEX沒有辦法。
分兩種情況,一種是移動(dòng)普簡(jiǎn)桐通索引,另一種是移動(dòng)分區(qū)索引。
oracle移動(dòng)普通索引到其他表空間語(yǔ)法:攔饑坦
alter index 索引名 rebuild tablespace 其他表空間;
oracle移動(dòng)分區(qū)索引到其他表空間語(yǔ)法:
alter table 表名 move partition 分區(qū)名 tablespace 其他表空間肢弊;
oracle數(shù)據(jù)庫(kù) move的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于oracle數(shù)據(jù)庫(kù) move,Oracle數(shù)據(jù)庫(kù)遷移指南:快速move數(shù)據(jù)的技巧,學(xué)習(xí)oracle視頻,看到指定表空間數(shù)據(jù)文件移動(dòng)到指定位置遇到問題,host move執(zhí)行無(wú)任何效果,如何重建LOB類型的索引和LOB段的信息別忘了在本站進(jìn)行查找喔。
四川成都云服務(wù)器租用托管【創(chuàng)新互聯(lián)】提供各地服務(wù)器租用,電信服務(wù)器托管、移動(dòng)服務(wù)器托管、聯(lián)通服務(wù)器托管,云服務(wù)器虛擬主機(jī)租用。成都機(jī)房托管咨詢:13518219792
創(chuàng)新互聯(lián)(www.cdcxhl.com)擁有10多年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)、開啟建站+互聯(lián)網(wǎng)銷售服務(wù),與企業(yè)客戶共同成長(zhǎng),共創(chuàng)價(jià)值。
文章標(biāo)題:Oracle數(shù)據(jù)庫(kù)遷移指南:快速move數(shù)據(jù)的技巧(oracle數(shù)據(jù)庫(kù)move)
分享網(wǎng)址:http://m.5511xx.com/article/dpiepcs.html


咨詢
建站咨詢
