oracle暫時(shí)沒有這個(gè)功能。
成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的城步網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
關(guān)于你說的“oracle分區(qū)表還是不能解決幾百億數(shù)據(jù)存量下的插入性能”是什么意思?是將數(shù)據(jù)插入這么多記錄的表上性能無法保證,還是太大并發(fā)會(huì)導(dǎo)致性能問題?
另外,如果你的并發(fā)不太大,而且還想實(shí)現(xiàn)分表,可以通過觸發(fā)器實(shí)現(xiàn)啊
1. 組合分區(qū)表的創(chuàng)建方式("范圍-哈稀"),見附1
2. 樓主的需求,即"范圍-范圍分區(qū)",在ORACLE 9i, 10g經(jīng)過測(cè)試都是不能實(shí)現(xiàn)的
在附1的基礎(chǔ)上修改為"范圍-范圍"組合分區(qū),創(chuàng)建時(shí)報(bào)錯(cuò):ORA-14151:無效的表分區(qū)方法
3. 關(guān)于sxdtgsh兄的回答,我測(cè)了
3.1 沒有maxvalue上限分區(qū)設(shè)置,在插入超出分區(qū)的數(shù)據(jù)時(shí)會(huì)報(bào)錯(cuò)ORA-14400: 插入的分區(qū)關(guān)鍵字未映射到任何分區(qū)
3.2 按回答的語句創(chuàng)建分區(qū)表沒有問題,但數(shù)據(jù)無法按照樓主的需求分布
====附1
附錄:創(chuàng)建"范圍-哈稀"組合分區(qū)表
CREATE TABLE TAB11 (ID NUMBER,DT DATE)
PARTITION BY RANGE (DT)
SUBPARTITION BY HASH (ID) SUBPARTITIONS 2 -- 自分區(qū)個(gè)數(shù),可以不寫,由系統(tǒng)判斷
(
PARTITION Y2012 VALUES LESS THAN (TO_DATE('2013-01-01','YYYY-MM-DD'))
(
SUBPARTITION Y2012_H1
,SUBPARTITION Y2012_H2
)
,PARTITION Y2013 VALUES LESS THAN (TO_DATE('2014-01-01','YYYY-MM-DD'))
(
SUBPARTITION Y2013_H1
,SUBPARTITION Y2013_H2
)
,PARTITION YMAX VALUES LESS THAN (MAXVALUE)
(
SUBPARTITION YMAX_H1
,SUBPARTITION YMAX_H2
)
)
====附2,請(qǐng)樓主檢查最后查詢的數(shù)據(jù)分布
create table T_TEST
(
ID NUMBER(20) NOT NULL,
TIME DATE NOT NULL
)
partition by range(TIME, ID) -- 按時(shí)間、ID范圍分區(qū) 這個(gè)例子是按年的
(
partition P_2012_10 values less than (to_date('2013-01-01','yyyy-MM-dd'), 10),
partition P_2012_20 values less than (to_date('2013-01-01','yyyy-MM-dd'), 20),
partition P_2012_MAX values less than (to_date('2013-01-01','yyyy-MM-dd'), MAXVALUE),
partition P_2013_10 values less than (to_date('2014-01-01','yyyy-MM-dd'), 10),
partition P_2013_20 values less than (to_date('2014-01-01','yyyy-MM-dd'), 20),
partition P_2013_MAX values less than (to_date('2014-01-01','yyyy-MM-dd'), MAXVALUE),
partition P_MAX values less than (MAXVALUE,MAXVALUE)
);
INSERT INTO T_TEST VALUES (1,TO_DATE('20121204 00:00:00','YYYYMMDD HH24:MI:SS'));
INSERT INTO T_TEST VALUES (12,TO_DATE('20121204 00:00:00','YYYYMMDD HH24:MI:SS'));
INSERT INTO T_TEST VALUES (32,TO_DATE('20121204 00:00:00','YYYYMMDD HH24:MI:SS'));
INSERT INTO T_TEST VALUES (2,TO_DATE('20131204 00:00:00','YYYYMMDD HH24:MI:SS'));
INSERT INTO T_TEST VALUES (12,TO_DATE('20131204 00:00:00','YYYYMMDD HH24:MI:SS'));
INSERT INTO T_TEST VALUES (33,TO_DATE('20131204 00:00:00','YYYYMMDD HH24:MI:SS'));
INSERT INTO T_TEST VALUES (3,TO_DATE('20141204 00:00:00','YYYYMMDD HH24:MI:SS'));
INSERT INTO T_TEST VALUES (23,TO_DATE('20141204 00:00:00','YYYYMMDD HH24:MI:SS'));
INSERT INTO T_TEST VALUES (43,TO_DATE('20151204 00:00:00','YYYYMMDD HH24:MI:SS'));
SELECT * FROM T_TEST;
SELECT * FROM T_TEST PARTITION(P_2012_10);
SELECT * FROM T_TEST PARTITION(P_2012_20);
SELECT * FROM T_TEST PARTITION(P_2012_MAX);
SELECT * FROM T_TEST PARTITION(P_2013_10);
SELECT * FROM T_TEST PARTITION(P_2013_20);
SELECT * FROM T_TEST PARTITION(P_2013_MAX);
SELECT * FROM T_TEST PARTITION(P_MAX);
配置不同的oracle用戶就相當(dāng)于不同的databases;比如system,scott
dataHost name="oracle1" maxCon="1000" minCon="1"balance="0" writeType="0" dbType="oracle" dbDriver="jdbc"
heartbeatselect1 from dual/heartbeat
connectionInitSqlaltersession set nls_date_format='yyyy-mm-dd hh24:mi:ss'/connectionInitSql
writeHosthost="hostM1" url="jdbc:oracle:thin:@localhost:1521:orcl"user="system" password="123456" /
/dataHost
dataHost name="oracle2" maxCon="1000" minCon="1"balance="0" writeType="0" dbType="oracle" dbDriver="jdbc"
heartbeatselect1 from dual/heartbeat
connectionInitSqlaltersession set nls_date_format='yyyy-mm-dd hh24:mi:ss'/connectionInitSql
writeHosthost="hostM1" url="jdbc:oracle:thin:@localhost:1521:orcl"user="scott" password="123456" /
/dataHost
實(shí)現(xiàn)Oracle數(shù)據(jù)庫(kù)的讀寫分離的方法:
DSG RealSync同步軟件的實(shí)現(xiàn)方案:
利數(shù)據(jù)庫(kù)同步復(fù)制軟件是實(shí)施關(guān)鍵系統(tǒng)災(zāi)備工程的一個(gè)重要組成部分,當(dāng)生產(chǎn)系統(tǒng)出現(xiàn)異?;蚬收蠒r(shí),備份系統(tǒng)的數(shù)據(jù)庫(kù)能夠完全代替生產(chǎn)系統(tǒng)的Oracle 數(shù)據(jù)庫(kù)管理系統(tǒng),以實(shí)現(xiàn)關(guān)鍵系統(tǒng)的正常運(yùn)行。
1、充分利用投入的資源:
平時(shí)災(zāi)備數(shù)據(jù)庫(kù)可以作為查詢庫(kù)來使用,方便的實(shí)現(xiàn)了讀寫分離,降低了主生產(chǎn)系統(tǒng)的壓力??梢猿浞值陌褳?zāi)備資源利用起來,不至于浪費(fèi)投入。
2、將查詢、報(bào)表、統(tǒng)計(jì)等查詢操作業(yè)務(wù)全部割接到備份數(shù)據(jù)庫(kù),主庫(kù)只用于寫操作。新寫入的數(shù)據(jù)在三秒左右會(huì)同步到備份庫(kù)。
讀寫分離的實(shí)現(xiàn)后,業(yè)務(wù)性能遠(yuǎn)遠(yuǎn)超過用戶估計(jì)。
3、業(yè)務(wù)功能實(shí)現(xiàn):
在關(guān)鍵業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)據(jù)庫(kù)上安裝復(fù)制軟件代理程序,通過代理程序獲取數(shù)據(jù)庫(kù)的交易,實(shí)現(xiàn)數(shù)據(jù)變化的實(shí)時(shí)跟蹤。抓取的數(shù)據(jù)通過1000Mbps以太網(wǎng)進(jìn)行實(shí)時(shí)傳輸,實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)同步到備份系統(tǒng)上的實(shí)時(shí)傳輸。
4、技術(shù)實(shí)現(xiàn):
復(fù)制軟件是采用交易復(fù)制的方式進(jìn)行數(shù)據(jù)同步;災(zāi)備數(shù)據(jù)庫(kù)上的Oracle數(shù)據(jù)庫(kù)處于OPEN狀態(tài),可提供實(shí)時(shí)數(shù)據(jù)訪問。數(shù)據(jù)復(fù)制的時(shí)延可以控制在3秒左右。