Oracle12c新特性有哪些

本篇內(nèi)容介紹了“Oracle 12c新特性有哪些”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比安龍網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式安龍網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋安龍地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。

  1. 自動存儲管理(ASM)中的增強

 Flex ASM

在一個典型的網(wǎng)格基礎(chǔ)架構(gòu)安裝環(huán)境中,每個節(jié)點都運行自身的ASM實例,并將其作為運行于此節(jié)點上數(shù)據(jù)庫的存儲容器。但這種設(shè)置會存在相應(yīng)的單點故障危險。例如,如果此節(jié)點上的ASM實例發(fā)生故障,則運行于此節(jié)點上的所有數(shù)據(jù)庫和實例都會受到影響。為了避免ASM實例的單點故障,Oracle 12c提供了一個名為Flex ASM的功能。Flex ASM是一個不同的概念和架構(gòu),只有很少數(shù)量的ASM實例需要運行在集群中的一些服務(wù)器上。當(dāng)某節(jié)點上的一個ASM實例發(fā)生故障,Oracle集群就會在另一個不同的節(jié)點上自動啟動替代ASM實例以加強可用性。另外,這一設(shè)置還為運行在此節(jié)點上的實例提供了ASM實例負(fù)載均衡能力。Flex ASM的另一個優(yōu)勢就是可以在單獨節(jié)點上加以配置。

當(dāng)選擇Flex Cluster選項作為集群安裝環(huán)境的第一部分時,鑒于Flex Cluster的要求,F(xiàn)lex ASM配置就會被自動選擇。傳統(tǒng)集群同樣也適用于Flex ASM。當(dāng)你決定使用Flex ASM時,你必須保證所需的網(wǎng)絡(luò)是可用的。你可以選擇Flex ASM存儲選項作為集群安裝環(huán)境的一部分,或是使用ASMCA在一個標(biāo)準(zhǔn)集群環(huán)境下啟用Flex ASM。

以下命令顯示了當(dāng)前的ASM模式:

$ ./asmcmd showclustermode
$ ./srvctl config asm

或是連接到ASM實例并查詢INSTANCE_TYPE參數(shù)。如果輸出值為ASMPROX,那么,就說明Flex ASM已經(jīng)配置好了。

  ASM存儲限制放寬

ASM存儲硬性限額在最大ASM 磁盤群組和磁盤大小上已經(jīng)大幅提升。在 12c R1中,ASM支持511個ASM磁盤群組,而在11g R2中只支持63個。同樣,相比起在11g R2中20 PB的磁盤大小,現(xiàn)在已經(jīng)將這一數(shù)字提高到32 PB。

  對ASM均衡操作的優(yōu)化

12c 中新的EXPLAIN WORK FOR 語句用于衡量一個給定ASM均衡操作所需的工作量,并在V$ASM_ESTIMATE動態(tài)視圖中輸入結(jié)果。使用此動態(tài)視圖,你可以調(diào)整POWER LIMIT 語句對重新平衡操作工作進(jìn)行改善。例如,如果你想衡量添加一個新ASM磁盤所需的工作量,在實際執(zhí)行手動均衡操作之前,你可以使用以下命令:

SQL> EXPLAIN WORK FOR ALTER DISKGROUP DG_DATA ADD DISK data_005;
SQL> SELECT est_work FROM V$ASM_ESTIMATE;
SQL> EXPLAIN WORK SET STATEMENT_ID='ADD_DISK' FOR ALTER DISKGROUP DG_DATA AD DISK data_005;
SQL> SELECT est_work FROM V$ASM_ESTIMATE WHERE STATEMENT_ID = 'ADD_DISK’;

你可以根據(jù)從動態(tài)視圖中獲取的輸出來調(diào)整POWER的限制以改善均衡操作。

  ASM 磁盤清理

在一個ASM磁盤群組中,新的ASM磁盤清理操作分為正?;蚋呷哂鄡蓚€級別,它可以檢驗ASM磁盤群組中所有磁盤的邏輯數(shù)據(jù)破壞,并且可以自動對邏輯破壞進(jìn)行修復(fù),如果檢測到有邏輯數(shù)據(jù)破壞,就會使用ASM鏡像磁盤。磁盤清理可以在磁盤群組,特定磁盤或是某個文件上執(zhí)行,這樣其影響可降到最小程度。以下演示了磁盤清理場景:

SQL> ALTER DISKGROUP dg_data SCRUB POWER LOW:HIGH:AUTO:MAX;
SQL> ALTER DISKGROUP dg_data SCRUB FILE '+DG_DATA/MYDB/DATAFILE/filename.xxxx.xxxx'
REPAIR POWER AUTO;

  ASM的活動會話歷史(ASH)

V$ACTIVE_SESSION_HISOTRY 動態(tài)視圖現(xiàn)在還可以提供ASM實例的活動會話抽樣。然而,診斷包的使用是受到許可限制的。

  2. 網(wǎng)格(Grid)基礎(chǔ)架構(gòu)的增強

  Flex 集群

Oracle 12c 在集群安裝時支持兩類配置:傳統(tǒng)標(biāo)準(zhǔn)集群和Flex集群。在一個傳統(tǒng)標(biāo)準(zhǔn)集群中,所有集群中的節(jié)點都彼此緊密地整合在一起,并通過私有網(wǎng)絡(luò)進(jìn)行互動,而且可以直接訪問存儲。另一方面,F(xiàn)lex集群在Hub和Leaf節(jié)點結(jié)構(gòu)間引入了兩類節(jié)點。分配在Hub中的節(jié)點類似于傳統(tǒng)標(biāo)準(zhǔn)集群,它們通過私有網(wǎng)絡(luò)彼此互連在一起并對存儲可以進(jìn)行直接讀寫訪問。而Leaf節(jié)點不同于Hub節(jié)點,它們不需要直接訪問底層存儲;相反的是,它們通過Hub節(jié)點對存儲和數(shù)據(jù)進(jìn)行訪問。

你可以配置多達(dá)64個Hub節(jié)點,而Leaf節(jié)點則可以更多。在Oracle Flex集群中,無需配置Leaf節(jié)點就可以擁有Hub節(jié)點,而如果沒有Hub節(jié)點的話,Leaf節(jié)點是不會存在的。對于一個單獨Hub節(jié)點,你可以配置多個Leaf節(jié)點。在Oracle Flex集群中,只有Hub節(jié)點會直接訪問OCR和Voting磁盤。當(dāng)你規(guī)劃大規(guī)模的集群環(huán)境時,這將是一個非常不錯的功能。這一系列設(shè)置會大大降低互連擁堵,并為傳統(tǒng)標(biāo)準(zhǔn)集群提供空間以擴大集群。

部署Flex 集群的兩種途徑:

1. 在配置一個全新集群的時候部署

2. 升級一個標(biāo)準(zhǔn)集群模式到Flex集群

如果你正在配置一個全新的集群,你需要在步驟3中選擇集群配置的類型,選擇配置一個Flex集群選項,然后你需要在步驟6中對Hub和Leaf節(jié)點進(jìn)行分類。對于每個節(jié)點,選擇相應(yīng)角色是Hub或是Leaf,而虛擬主機名也是可選的。

將一個標(biāo)準(zhǔn)集群模式轉(zhuǎn)換為Flex 集群模式需要以下步驟:

1. 用以下命令獲取集群的當(dāng)前狀態(tài):

$ ./crsctl get cluster mode status

2. 以root用戶執(zhí)行以下命令:

$ ./crsctl set cluster mode flex
$ ./crsctl stop crs
$ ./crsctl start crs –wait

3. 根據(jù)設(shè)計改變節(jié)點角色:

$ ./crsctl get node role config
$ ./crsctl set node role hub|leaf
$ ./crsctl stop crs
$ ./crsctl start crs -wait

  注意:

?你無法從Flex恢復(fù)回標(biāo)準(zhǔn)集群模式

?改變集群節(jié)點模式需要集群棧停止

?確保以一個固定的VIP配置GNS

  ASM磁盤群組中的OCR備份

對于12c,OCR現(xiàn)在可以在ASM磁盤群組中得以備份。這簡化了通過所有節(jié)點對OCR備份文件的訪問。為了防止OCR的恢復(fù),你不必?fù)?dān)心OCR最新的備份是在哪個節(jié)點上。可以從任何節(jié)點輕易識別存儲在ASM中的最新備份并能很容易地執(zhí)行恢復(fù)。

以下演示了如何將ASM磁盤群組設(shè)置為OCR備份位置:

$ ./ocrconfig -backuploc +DG_OCR

  支持IPv6協(xié)議

對于12c,Oracle是支持IPv6網(wǎng)絡(luò)協(xié)議配置的。你現(xiàn)在可以在IPv4或IPv6上配置共有或私有網(wǎng)絡(luò)接口,盡管如此,你需要確保在所有集群中的節(jié)點上使用相同的IP協(xié)議。

  3. RAC數(shù)據(jù)庫的增強

  What-if命令評估

通過srvctl使用新的What-if命令評估選項,現(xiàn)在可以確定運行此命令所造成的影響。這一新添加到srvctl的命令,可以在沒有實際執(zhí)行或是不對當(dāng)前系統(tǒng)做任何改變的情況下模擬此命令。這在想要對一個已存在的系統(tǒng)進(jìn)行更改卻對結(jié)果不確定的時候特別有用。這樣,此命令就會提供進(jìn)行變更的效果。而–eval 選項也可以通過crsctl 命令來使用。

例如,如果你想要知道停止一個特定數(shù)據(jù)庫會發(fā)生什么,那么你就可以使用以下示例:

$ ./srvctl stop database –d MYDB –eval
$ ./crsctl eval modify resource -attr “value”

  srvctl的改進(jìn)

對于srvctl命令還有一些新增功能。以下演示了如何用這些新增功能停止或啟動集群上的數(shù)據(jù)庫或?qū)嵗Y源。

srvctl start database|instance –startoption NOMOUNT|MOUNT|OPEN
srvctl stop database|instance –stopoption NOMOUNT|MOUNT|OPEN

  4. 截斷表CASCADE

在之前的版本中,在子表引用一個主表以及子表存在記錄的情況下,是不提供截斷此主表操作的。而在12c中的帶有CASCADE操作的TRUNCATE TABLE可以截斷主表中的記錄,并自動對子表進(jìn)行遞歸截斷,并作為DELETE ON CASCADE服從外鍵引用。由于這是應(yīng)用到所有子表的,所以對遞歸層級的數(shù)量是沒有CAP的,可以是孫子表或是重孫子表等等。

這一增強擯棄了要在截斷一個主表之前先截斷所有子表記錄的前提。新的CASCADE語句同樣也可以應(yīng)用到表分區(qū)和子表分區(qū)等。

SQL> TRUNCATE TABLE CASCADE;
SQL> TRUNCATE TABLE PARTITION CASCADE;

如果對于子表的外鍵沒有定義ON DELETE CASCADE 選項,便會拋出一個ORA-14705錯誤。

  5. 對Top-N查詢結(jié)果限制記錄

在之前的版本中有多種間接手段來對頂部或底部記錄獲取Top-N查詢結(jié)果。而在12c中,通過新的FETCH FIRST|NEXT|PERCENT語句簡化了這一過程并使其變得更為直接。為了從EMP表檢索排名前10的工資記錄,可以用以下新的SQL語句:

SQL> SELECT eno,ename,sal FROM emp ORDER BY SAL DESC
FETCH FIRST 10 ROWS ONLY;

以下示例獲取排名前N的所有相似的記錄。例如,如果第十行的工資值是5000,并且還有其他員工的工資符合排名前N的標(biāo)準(zhǔn),那么它們也同樣會由WITH TIES語句獲取。

SQL> SELECT eno,ename,sal FROM emp ORDER BY SAL DESC
FETCH FIRST 10 ROWS ONLY WITH TIES;

以下示例限制從EMP表中獲取排名前10%的記錄:

SQL> SELECT eno,ename,sal FROM emp ORDER BY SAL DESC
FETCH FIRST 10 PERCENT ROWS ONLY;

以下示例忽略前5條記錄并會顯示表的下5條記錄:

SQL> SELECT eno,ename,sal FROM emp ORDER BY SAL DESC
OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY;

所有這些限制同樣可以很好的應(yīng)用于PL/SQL塊。

BEGIN
SELECT sal BULK COLLECT INTO sal_v FROM EMP
FETCH FIRST 100 ROWS ONLY;
END;

  6. 對SQL*Plus的各種增強

SQL*Plus的隱式結(jié)果:12c中,在沒有實際綁定某個RefCursor的情況下,SQL*Plus從一個PL/SQL塊的一個隱式游標(biāo)返回結(jié)果。這一新的dbms_sql.return_result過程將會對PL/SQL 塊中由SELECT 語句查詢所指定的結(jié)果加以返回并進(jìn)行格式化。以下代碼對此用法進(jìn)行了描述:

SQL> CREATE PROCEDURE mp1
res1 sys_refcursor;
BEGIN
open res1 for SELECT eno,ename,sal FROM emp;
dbms_sql.return_result(res1);
END;
SQL> execute mp1;

當(dāng)此過程得以執(zhí)行,會在SQL*Plus上返回格式化的記錄。

顯示不可見字段:在本系列文章的第一部分,我已經(jīng)對不可見字段的新特性做了相關(guān)闡述。當(dāng)字段定義為不可見時,在描述表結(jié)構(gòu)時它們將不會顯示。然而,你可以通過在SQL*Plus提示符下進(jìn)行以下設(shè)置來顯示不可見字段的相關(guān)信息:

SQL> SET COLINVISIBLE ON|OFF

以上設(shè)置僅對DESCRIBE 命令有效。目前它還無法對不可見字段上的SELECT 語句結(jié)果產(chǎn)生效果。

  7. 會話級序列

在12c中現(xiàn)在可以創(chuàng)建新的會話級數(shù)據(jù)庫序列來支持會話級序列值。這些序列的類型在有會話級的全局臨時表上最為適用。

會話級序列會產(chǎn)生一個獨特范圍的值,這些值是限制在此會話內(nèi)的,而非超越此會話。一旦會話終止,會話序列的狀態(tài)也會消失。以下示例解釋了創(chuàng)建一個會話級序列:

SQL> CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 SESSION;
SQL> ALTER SEQUENCE my_seq GLOBAL|SESSION;

對于會話級序列,CACHE, NOCACHE, ORDER 或 NOORDER 語句會予以忽略。

  8. WITH語句的改善

在12c中,你可以用SQL更快的運行PL/SQL函數(shù)或過程,這些是由SQL語句的WITH語句加以定義和聲明的。以下示例演示了如何在WITH語句中定義和聲明一個過程或函數(shù):

WITH
PROCEDURE|FUNCTION test1 (…)
BEGIN
END;
SELECT FROM table_name;
/

盡管你不能在PL/SQL單元直接使用WITH語句,但其可以在PL/SQL單元中通過一個動態(tài)SQL加以引用。

  9. 擴展數(shù)據(jù)類型

在12c中,與早期版本相比,諸如VARCHAR2, NAVARCHAR2以及 RAW這些數(shù)據(jù)類型的大小會從4K以及2K字節(jié)擴展至32K字節(jié)。只要可能,擴展字符的大小會降低對LOB數(shù)據(jù)類型的使用。為了啟用擴展字符大小,你必須將MAX_STRING_SIZE的初始數(shù)據(jù)庫參數(shù)設(shè)置為EXTENDED。

要使用擴展字符類型需要執(zhí)行以下過程:

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

2. 以升級模式重啟數(shù)據(jù)庫

3. 更改參數(shù): ALTER SYSTEM SET MAX_STRING_SIZE=EXTENDED;

4. 執(zhí)行 utl32k.sql as sysdba : SQL> @?/rdbms/admin/utl32k.sql

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

6. 以讀寫模式重啟數(shù)據(jù)庫

對比LOB數(shù)據(jù)類型,在ASSM表空間管理中,擴展數(shù)據(jù)類型的字段以SecureFiles LOB加以存儲,而在非ASSM表空間管理中,它們則是以BasciFiles LOB進(jìn)行存儲的。

注意:一旦更改,你就不能再將設(shè)置改回STANDARD。

“Oracle 12c新特性有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

網(wǎng)頁題目:Oracle12c新特性有哪些
當(dāng)前地址:http://bm7419.com/article2/jdcoic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、定制開發(fā)網(wǎng)站內(nèi)鏈、面包屑導(dǎo)航、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)