oracle 19c New Features (oracle 19c新特性)


文章來自oracle官方文檔:https://docs.oracle.com/en/database/oracle/oracle-database/19/newft/new-features.html#GUID-3B8EF89B-0E24-4CA5-B6F5-7242699CCAC2

 

1.應用開發

這個里面是對java,jsion的功能加強了

Java的應用程序連續性:聲明式請求划分

自動模式下配置Java的Application Continuity時(即服務FAILOVER_TYPE = AUTO),Java數據庫連接(JDBC)驅動程序在創建帶有重播數據源的JDBC連接后,會在運行時注入beginRequest調用。

此功能確保Java應用程序和第三方連接池的停機時間為零,而無需進行代碼更改。

 

Java的應用程序連續性:新狀態管理

此功能引入了新的會話狀態,包括AL8KW_ERR_OVLAPAL8KW_EDITIONAL8KW_SQL_TXLPAL8KW_ROW_ARCHIVAL這些會話狀態正常活動期間保存和恢復在故障轉移時FAILOVER_RESTORE設置和故障轉移等於AUTO

此功能增強了Java應用程序連續性的透明度。

 

物化視圖支持包含JSON_TABLE的查詢

現在具有JSON_EXISTSJSON_VALUE和其他功能的查詢可以利用在使用JSON_TABLE函數的查詢上創建的實例化視圖

當列中的JavaScript對象符號(JSON)文檔包含數組時,此功能特別有用。這種類型的實例化視圖為訪問這些JSON數組中的數據提供了快速的性能。

 
JSON更新操作

現在,您可以使用新的SQL函數JSON_MERGEPATCH更新JavaScript對象符號(JSON)文檔,並通過一個語句將一個或多個更改應用於多個文檔。

此功能提高了JSON更新操作的靈活性。

 

SQL / JSON語法簡化

現在,您可以對字段投影,SQL / JSON路徑表達式和SQL / JSON生成函數JSON_OBJECT使用更簡單的語法

用於JavaScript對象表示法(JSON)處理的SQL接口更易於用於某些操作。

 

JSON對象映射

現在,您可以將JavaScript對象表示法(JSON)數據與SQL對象類型和集合類型之間進行映射。

此功能使使用SQL對象和集合的程序更易於與基於JSON的應用程序進行交互。

 

新的SQL / JSON函數JSON_SERIALIZE和JSON數據指南對GeoJSON數據的支持

您可以使用新的SQL / JSON函數JSON_SERIALIZE將JavaScript對象表示法(JSON)數據序列化為文本。聚合函數JSON_DATAGUIDE現在可以檢測GeoJSON地理數據。

您可以使用JSON_SERIALIZE將JSON值提取為文本以進行打印或顯示。您可以使用SQL函數JSON_DATAGUIDE創建一個視圖,以對諸如SDO_GEOMETRY數據之類的數據進行投影

 

LISTAGG匯總的DISTINCT選項

現在,LISTAGG聚合函數通過使用新的DISTINCT關鍵字來支持重復消除

所述LISTAGG根據聚合函數訂單的每個組中的行的查詢ORDER BY表達式,然后串接的值成一個字符串。您可以使用新的DISTINCT關鍵字從指定的表達式中刪除重復的值,然后再將其串聯為單個字符串這消除了使用聚合的LISTAGG函數之前創建復雜查詢處理以查找不同值的需要使用DISTINCT選項刪除LISTAGG函數中的重復值

結果是更簡單,更快,更有效的SQL。

值得注意的是,oracle11g 開發支持wm_concat,但是12c之后,要用wm_concat,需要換成listagg,在升級的時候,需要讓業務測試,以免出現不必要的業務問題。

 

2.可用性

動態更改Oracle Data Guard Broker快速啟動故障轉移目標

快速啟動故障轉移目標備用數據庫可以動態更改為目標列表中的另一個備用數據庫,而無需禁用快速啟動故障轉移。

在早期版本的Oracle數據庫中,必須禁用快速啟動故障轉移才能移至新的目標備用數據庫。這使代理配置處於完全無法使用自動故障轉移的時期。您可以使用SET FAST_START FAILOVER TARGET命令來動態更改快速啟動故障轉移目標備用數據庫。

Format

SET FAST_START FAILOVER TARGET TO database-name [NOWAIT];


DGMGRL> SET FAST_START FAILOVER TARGET TO Boston; Changing fast-start failover target to ‘Boston’… Succeeded. DGMGRL> SHOW FAST_START FAILOVER;
Oracle Data Guard Broker中的簡化數據庫參數管理

通過允許通過SQL * Plus進行所有參數管理,簡化了Oracle Data Guard代理配置中的數據庫參數管理。消除了數據庫的Data Guard參數設置和Data Guard Broker的屬性設置之間的不一致。

現在,您可以使用SQL * Plus ALTER SYSTEM命令或通過新EDIT DATABASE ... SET PARAMETER 命令在Data Guard Broker命令行界面(DGMGRL)中管理所有與Oracle Data Guard相關的參數設置在DGMGRL中進行的參數更改將立即在目標數據庫上執行。

 

Oracle Data Guard Broker的快速啟動故障轉移的僅觀察模式

“僅觀察”模式使您可以測試自動快速啟動故障轉移,而不會影響Oracle Data Guard代理配置中的生產數據庫。

配置快速啟動故障轉移時,可以使用僅觀察模式創建測試模式,該模式檢查正常生產過程中何時發生故障轉移或其他交互。您可以使用此測試中的信息來更精確地調整快速啟動故障轉移屬性。您還可以發現環境中的哪些情況會導致自動故障轉移。

 

將還原點從主站點傳播到備用站點

在主數據庫上創建的還原點將傳播到備用站點,以便即使在執行故障轉移操作之后也可以使用它們。

在主站點上定義了正常還原點或保證的還原點,以在發生邏輯損壞時實現快速的時間點恢復。這些還原點存儲在控制文件中。發生故障轉移時,備用數據庫將成為主數據庫。但是,還原點信息會丟失。將還原點從主數據庫傳播到備用數據庫可簡化故障轉移后的還原和恢復過程,因為備用數據庫是使用在主數據庫上創建的還原點進行更新的。

 

閃回主數據庫時閃回備用數據庫

在主數據庫上執行閃回操作時,可以自動閃回Oracle Data Guard設置中的備用數據庫。

在主數據庫上執行閃回操作時,備用數據庫不再與主數據庫同步。在早期版本中,您需要執行某些步驟以將備用數據庫與主數據庫同步。此功能引入了一個新參數,當對主數據庫執行閃回操作時,該參數可使備用數據庫自​​動閃回。這樣可以減少時間,精力和人為錯誤,從而加快同步速度並減少恢復時間目標(RTO)。

 

Oracle Data Guard多實例重做應用程序可與內存中列存儲一起使用

現在可以在活動Data Guard備用數據庫上同時啟用“內存中列存儲”和“ Data Guard多實例重做應用”。以前,這兩個功能是互斥的。

現在,您可以在同一Active Data Guard備用數據庫上使用最快的重做應用技術(Data Guard多實例重做應用)和最快的分析查詢技術(內存列存儲),以充分利用這兩個功能。多實例重做應用使用Active Data Guard備用數據庫上的內存列存儲中的信息,以盡可能提高應用速度。

 

活動Data Guard DML重定向

偶然數據處理語言(DML)操作可以在Active Data Guard備用數據庫上運行。當需要進行某些寫操作時,這將使更多應用程序受益於使用Active Data Guard備用數據庫。

DML重定向有助於在主數據庫和備用數據庫之間實現負載平衡。在Active Data Guard備用數據庫上發布偶然DML時,更新將傳遞到執行該更新的主數據庫。事務的結果重做將更新備用數據庫,然后將控制權返回給應用程序。

PDB恢復目錄

當目標數據庫是可插拔數據庫(PDB)時,支持與恢復目錄的連接。

Oracle Database 19c版為多租戶容器數據庫(CDB)和PDB級別的備份和還原提供了完整的備份和恢復靈活性,包括恢復目錄支持。您可以使用虛擬專用目錄(VPC)用戶來精細控制權限,以在PDB級別執行備份和還原操作。元數據視圖也受到限制,因此VPC用戶只能查看已被授予用戶權限的數據。

 

定期清除閃回日志,以提高快速恢復區域大小的可預測性

通過自動刪除超出保留期限的閃回日志,可以改善快速恢復區域的管理和數據庫的運行狀況。

快速恢復區域對於數據庫至關重要,因為它存儲備份,聯機重做日志,歸檔的重做日志和閃回日志。因為許多數據庫都可以使用快速恢復區域,所以當快速恢復區域變滿時,多個數據庫會受到影響。從存儲管理的角度來看,此功能使閃回空間的使用變得可預測,因為閃回所使用的空間不超過保留所需的空間。它還允許您通過調整回閃保持力來控制累積的空間壓力。

 

利用Oracle Data Guard調整自動中斷解決方案的新參數

可以調整Oracle Data Guard自動中斷解決方案以滿足您的特定需求。

Oracle Data Guard在主數據庫和備用數據庫上有多個進程,它們通過網絡相互通信以管理重做傳輸和歸檔。在某些故障情況下,網絡掛起,斷開連接和磁盤I / O問題,這些過程可能掛起,從而可能導致重做傳輸和間隙解決方面的延遲。Oracle Data Guard具有內部機制來檢測這些掛起的進程並終止它們,從而允許進行正常的停機解決方案。現在,您可以使用兩個新參數DATA_GUARD_MAX_IO_TIME和DATA_GUARD_MAX_LONGIO_TIME,根據用戶網絡和磁盤I / O行為來調整特定Oracle Data Guard配置的等待時間。

 

細粒度補充測井

細粒度的補充日志記錄為部分數據庫復制用戶提供了一種對不感興趣的表禁用補充日志記錄的方式,因此,即使在數據庫或架構級別啟用了補充日志記錄,對於不感興趣的表也沒有補充日志記錄開銷。

當僅數據庫中的某些表需要補充日志記錄時(例如在Oracle GoldenGate部分復制配置中),使用此功能可以大大減少資源使用和重做生成方面的開銷。補充日志記錄是為邏輯備用數據庫或完整的數據庫復制要求而設計和實現的。在僅復制表子集的環境中,這會增加不必要的開銷。

 

Oracle Sharding  “分片”

 多表家族對系統管理的分片的支持

19c中,可以在分片數據庫中創建多個表族,每個表族都可以使用不同的分片鍵進行分片。

現在可以將訪問不同表系列的不同應用程序托管在一個分片數據庫中。此功能僅適用於系統管理的分片數據庫。

 

 

 

 

 

.大數據與數據倉庫

自動索引

自動索引功能可根據應用程序工作負載的變化自動執行索引管理任務,例如在Oracle數據庫中創建,重建和刪除索引。

此功能通過在Oracle數據庫中自動管理索引來提高數據庫性能。

  

SQL診斷和修復增強功能

SQL診斷和修復工具(例如SQL測試用例生成器和SQL修復顧問)已得到增強,以提供更好的診斷和修復功能來管理有問題的SQL語句。

這些增強功能可以更有效地診斷和修復有問題的SQL語句。

 

基於位圖的計數不同的SQL函數

使用新的位向量SQL運算符可加快SQL查詢中的COUNT DISTINCT操作。要為數字表達式計算COUNT(DISTINCT),可以創建表達式的位向量表示形式,並在最終位計數之前對其進行匯總。可以在實例化視圖中實例化生成的位向量。

您可以通過進一步分組比目標查詢更大的GROUP BY鍵來構造位向量,以便可以使用一個物化視圖通過使用ROLLUP來重寫帶有COUNT(DISTINCT)表達式的多個GROUP BY查詢。

在大多數情況下,將位向量SQL函數與實例化視圖結合使用,可以顯着提高具有COUNT(DISTINCT)操作的查詢的性能,這在數據倉庫環境中很常見。自然會並行評估新的運算符,並利用硬件優化的位圖操作。通過在較低級別的聚合級別使用位向量創建實例化視圖,可以使用ROLLUP重用相同的實例化視圖以在較高級別的聚合級別重寫查詢。

相關話題

內存中外部表的大數據和性能增強

內存中外部表增加了對ORACLE_HIVE和ORACLE_BIGDATA驅動程序,並行查詢,Oracle Real Application Clusters,Oracle Active Data Guard和按需填充的支持。

通過使用新的大數據驅動程序,可以避免在將數據填充到內存中列存儲(IM列存儲)中之前實現數據的成本和復雜性。您可以使用Oracle數據庫和數據庫內存中的SQL分析功能來分析內部和外部數據。支持並行查詢和完全掃描填充,這意味着應用程序在訪問駐留在數據庫外部的數據時具有較少的限制。

相關話題

自動SQL計划管理

自動SQL計划管理無需用戶干預即可解決計划回歸問題。例如,如果高負載的語句執行不理想,則SQL計划管理演進顧問可以自動定位這些語句,然后測試並接受最佳計划。

SQL計划管理在自動工作量存儲庫(AWR)中搜索SQL語句。通過按最高負載進行優先級排序,它會在所有可用資源中尋找替代計划,從而將性能更好的計划添加到SQL計划基准中。Oracle數據庫還提供了計划比較工具和改進的提示報告。

使用自動化可以大大減少SQL語句性能下降的影響。

實時統計

Oracle Database在常規數據操作語言(DML)操作期間自動收集在線統計信息。

在執行DBMS_STATS統計信息收集作業之間,統計信息可能會過時。通過在DML操作期間自動收集一些統計信息,數據庫可以擴展DBMS_STATS收集的統計信息。最新的統計信息使優化器可以生成更優化的計划。

 

高頻自動優化器統計信息收集

您可以配置輕量級的高頻自動任務,該任務定期收集過時對象的優化程序統計信息。

在執行DBMS_STATS作業之間,統計數據可能過時。通過更頻繁地收集統計信息,優化器可以生成更優化的計划。

 

混合分區表

混合分區表功能通過使分區既可以駐留在Oracle數據庫段中也可以駐留在外部文件和源中來擴展Oracle分區。此功能顯着增強了大數據SQL分區的功能,其中表的大部分可以駐留在外部分區中。

混合分區表使您可以將內部分區和外部分區集成到單個分區表中。使用此功能,您還可以將非活動分區移動到外部文件(例如Oracle Data Pump文件),以獲得更便宜的存儲解決方案。

不過我感覺大多數這種業務場景用起來的少。

 

 

 

.數據庫整體

能夠在靜默模式下使用DBCA創建Oracle數據庫的副本

現在,您可以在靜默模式下使用數據庫配置助手(DBCA)的createDuplicateDB命令來創建Oracle數據庫的副本。

此功能使開發人員可以處理Oracle數據庫的相同副本。

 

能夠在靜默模式下使用DBCA將PDB重定位到另一個CDB

現在,您可以在靜默模式下使用數據庫配置助手(DBCA)的relocatePDB命令將可插拔數據庫(PDB)移至另一個多租戶容器數據庫(CDB)。

通過此功能,可以在靜默模式下使用DBCA自動執行重新定位PDB的PDB生命周期操作。

通過以靜默模式使用DBCA克隆遠程PDB來創建PDB的能力

現在,您可以通過以靜默方式使用數據庫配置助手(DBCA)的createPluggableDatabase命令的createFromRemotePDB參數克隆遠程PDB來創建可插拔數據庫(PDB)。

通過此功能,可以在靜默模式下使用DBCA自動執行克隆PDB的PDB生命周期操作。

簡化的基於映像的Oracle數據庫客戶端安裝

Oracle Database 19c開始,Oracle數據庫客戶端軟件可以作為映像文件下載和安裝。您必須將映像軟件解壓縮到想要Oracle主目錄所在的目錄中,然后運行runInstaller腳本以開始Oracle數據庫客戶端安裝。Oracle數據庫客戶端安裝二進制文件繼續以傳統格式作為非映像zip文件提供。

Oracle數據庫和Oracle Grid Infrastructure映像文件安裝一樣,Oracle Database客戶端映像安裝可簡化Oracle Database客戶端安裝並確保最佳實踐部署。

根腳本自動化對Oracle數據庫安裝的支持

Oracle Database 19c開始,數據庫安裝程序或設置向導提供了一些選項,用於設置權限以在數據庫安裝期間根據需要自動運行根配置腳本。您仍然可以選擇手動運行根配置腳本。

設置無需用戶干預即可運行的根配置腳本的權限,可以簡化數據庫的安裝,並有助於避免意外的權限錯誤。

 

支持Oracle Clusterware升級的空運行驗證

Oracle Grid Infrastructure 19c開始,Oracle Grid Infrastructure安裝向導(gridSetup.sh)使您能夠執行空運行模式升級,以檢查系統的升級准備情況。

在空運行升級模式下,安裝向導將執行在實際升級中將執行的所有系統就緒檢查,並使您能夠在開始升級之前驗證系統是否已准備好進行升級。此模式不執行實際升級。它有助於預測系統設置程序中的潛在問題並避免升級失敗。

 

自動升級和數據庫實用程序

 

適用於Oracle數據庫的自動升級

AutoUpgrade使您可以使用一個命令和一個配置文件在命令行上升級一個或多個Oracle數據庫實例。

AutoUpgrade運行升級前的任務,在需要時執行自動修復,處理數據庫升級,並通過完成升級后的任務來完成升級。它包括自動重試和回退,可以為將來的時間點安排升級的選項,以及根據需要設置,更改或刪除初始化參數的功能。

AutoUpgrade大大減少了與數據庫升級相關的手動工作。它使您可以同時升級多個數據庫。它甚至可以為沒有熟練的數據庫管理員主動管理的數據庫進行例行升級。通過減少升級所需的精力,並在升級過程中自動實施推薦的做法,AutoUpgrade使數據庫升級過程更容易完成,並降低了風險。

 

Oracle數據泵在導入時排除ENCRYPTION子句的能力

有一個新的轉換參數OMIT_ENCRYPTION_CLAUSE,它使數據泵抑制使用加密列與對象關聯的任何加密子句。

對於具有加密列的非雲數據庫,現在可以進行更好的Oracle Cloud遷移。

 

Oracle Data Pump允許表空間在TTS導入期間保持只讀狀態

現在,只要將文件空間設置為只讀,就可以導入裝載在兩個不同數據庫上的表空間文件。

一個新選項允許您還原12.2之前的默認行為,以便在可移植表空間導入過程中表空間數據文件是只讀的。好處是,這允許將表空間數據文件安裝在兩個數據庫上,只要它保持只讀狀態即可。但是,使用此選項要求源數據庫和目標數據庫具有完全相同的夏令時(DST)版本,因為導入時不調整TIMESTAMP WITH TIMEZONE數據。另外,如果指定此參數,則數據庫不會自動重建表空間位圖以在導入期間回收空間。這可以使導入過程更快,但要以重新獲得表空間數據文件中的可用空間為代價。

 

Oracle Data Pump支持資源使用限制

Oracle數據泵參數MAX_DATAPUMP_JOBS_PER_PDB已更新,並且有一個新參數MAX_DATAPUMP_PARALLEL_PER_JOB。

MAX_DATAPUMP_JOBS_PER_JOB提供了對可在多租戶容器數據庫環境中啟動的作業數量的更多控制:默認值:100,范圍:0至250或自動:SESSIONS的50%。該MAX_DATAPUMP_PARALLEL_PER_JOB參數使您能夠獲得超過並行的工人數量更多的控制,你可以使用一個單獨的數據泵作業。

當有多個用戶在數據庫環境中執行數據泵作業時,這些參數為您提供了對資源利用的更多控制。

 

適用於可移動表空間的Oracle數據泵測試模式

您可以更輕松地確定導出所需的時間,並發現關閉檢查未報告的不可預見的問題。

可傳輸表空間(TTS)的測試模式使用TTS或完全可傳輸的導出或導入執行僅元數據導出測試。它還消除了將源數據庫表空間設置為只讀模式的要求。

 

Oracle數據泵可防止無意中使用受保護的角色

Oracle Data Pump使用新的命令行參數ENABLE_SECURE_ROLES防止在導出和導入過程中無意中使用受保護的角色。

某些Oracle角色需要授權。如果需要在Oracle Data Pump導出和導入中使用這些角色,則必須顯式啟用它們。新的ENABLE_SECURE_ROLES參數可用於EXPDP和IMPDP客戶端以及Oracle Data Pump PL / SQL API。從Oracle Database 19c開始,默認值為NO。

 

Oracle Data Pump加載分區表數據一項操作

Oracle Data Pump可以將表的所有分區中的表數據作為一項操作導入,而不是將每個分區的單獨操作導入。

GROUP_PARTITION_TABLE_DATAImport DATA_OPTIONS命令行參數的新值,它通過將表的所有分區中的表數據作為一項操作導入來更改Oracle Data Pump的默認行為。當您不希望將每個表分區作為單獨的操作導入的默認“導入”行為時,此參數很有用。導入選擇默認值。例如,當表可能在加載表的過程中移動到另一個分區時,可以使用此參數。當表不是由導入操作創建的時,也會使用默認值。 

 

Oracle Data Pump允許在對象存儲中的轉儲文件中使用通配符

Oracle Data Pump通過允許使用通配符表示基於URL的轉儲文件名,簡化了將多個轉儲文件導入Oracle自治數據庫的過程。

當您需要從對象存儲服務中導入多個轉儲文件時,基於URL的轉儲文件名中的通配符可以簡化Oracle自主數據庫的import命令。它可以減少鍵入,並減少轉儲文件名拼寫錯誤的可能性。不要在存儲桶名稱組件中使用通配符。

 

Oracle Data Pump導入支持更多對象存儲憑證

Oracle Data Pump導入使用針對Oracle自治數據庫的新CREDENTIAL參數,支持DEFAULT_CREDENTIAL以外的對象存儲憑證。

Oracle數據泵導入不再局限於在Oracle自治數據庫中使用DEFAULT_CREDENTIAL。從Oracle Database 19c(並回移植到Oracle Database 18c版本18.3)開始,新的IMPDP客戶端CLI CREDENTIAL參數接受在Oracle自治數據庫中創建的任何Oracle Cloud Infrastructure(OCI)對象存儲憑證。數據泵驗證證書是否存在以及用戶是否有權讀取證書。任何錯誤都將返回給IMPDP客戶端。

 

 在線維護操作增強

在不同版本中,Oracle 持續增強在線維護操作,例如在 12.2 開始支持的Online Move、在線修改普通表為分區表等特性。

在19c 中,持續增強了智能的、細粒度的游標失效控制,將DDL操作對於游標失效的影響降至最低,例如,在 19c 中,comment on table的操作,將不會引起游標的失效。

針對分區維護的操作,例如Truncate分區等,Oracle 將進行細粒度的控制,和DDL操作無關的SQL將不受DDL失效影響。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM