溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Oracle數(shù)據(jù)版本12.2.0.1.0有哪些新特性

發(fā)布時(shí)間:2021-11-10 15:14:20 來源:億速云 閱讀:267 作者:iii 欄目:關(guān)系型數(shù)據(jù)庫

本篇內(nèi)容主要講解“Oracle數(shù)據(jù)版本12.2.0.1.0有哪些新特性”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Oracle數(shù)據(jù)版本12.2.0.1.0有哪些新特性”吧!

1. 在線重命名和重新定位活躍數(shù)據(jù)文件

可以使用ALTER DATABASE MOVE DATAFILE這樣的SQL語句對(duì)數(shù)據(jù)文件進(jìn)行在線重命名和移動(dòng)

 2. 表分區(qū)或子分區(qū)的在線遷移

表分區(qū)或子分區(qū)可以在線或是離線遷移至一個(gè)不同的表空間。

當(dāng)指定了ONLINE語句,所有的DML操作可以在沒有任何中斷的情況下,在參與這一過程的分區(qū)或子分區(qū)上執(zhí)行,還可維護(hù)表上任何本地或全局的索引

 3. 不可見字段

可以在表中創(chuàng)建不可見字段。

當(dāng)一個(gè)字段定義為不可見時(shí),這一字段就不會(huì)出現(xiàn)在通用查詢中,除非在SQL語句或條件中有顯式的提及這一字段,或是在表定義中有DESCRIBED。

必須在INSERT語句中顯式提及不可見字段名以將不可見字段插入到數(shù)據(jù)庫中。

虛擬字段和分區(qū)字段同樣也可以定義為不可見類型。但臨時(shí)表,外部表和集群表并不支持不可見字段

set colinvisible on

alter table emp modify(sal visible);

4. 相同字段上的多重索引

只要索引類型的形式不同,一個(gè)字段就可以包含在一個(gè)B-tree索引中,同樣也可以包含在Bitmap索引中

5. DDL日志

可以將DDL操作寫入xml和日志文件中

ALTER SYSTEM|SESSION SET ENABLE_DDL_LOGGING=TRUE;

DDL操作會(huì)記錄在$ORACLE_BASE/diag/rdbms/DBNAME/log/ddl路徑下

/u01/app/oracle/diag/rdbms/prod/PROD/log/ddl

6. 臨時(shí)undo

臨時(shí)undo功能中,臨時(shí)undo記錄可以存儲(chǔ)在一個(gè)臨時(shí)表中,而無需再存儲(chǔ)在undo表空間內(nèi)。

這樣做的主要好處在于:減少undo表空間,由于信息不會(huì)被記錄在redo日志中,所以減少了redo數(shù)據(jù)的生成。

你可以在會(huì)話級(jí)別或者數(shù)據(jù)庫級(jí)別來啟用臨時(shí)undo選項(xiàng)

show parameter undo;

select name,value from v$mystat natural join v$statname where name in('redo entries','redo size')

create global temporary table temp_objects as select * from dba_objects where 1=2;  

select name,value from v$mystat natural join v$statname where name in('redo entries','redo size');

insert into temp_objects select * from dba_objects;

select name,value from v$mystat natural join v$statname where name in('redo entries','redo size');

drop table temp_objects;

ALTER SYSTEM SET TEMP_UNDO_ENABLED=TRUE;

show parameter undo;

select name,value from v$mystat natural join v$statname where name in('redo entries','redo size');

create global temporary table temp_objects as select * from dba_objects where 1=2;  

select name,value from v$mystat natural join v$statname where name in('redo entries','redo size');

insert into temp_objects select * from dba_objects;

select name,value from v$mystat natural join v$statname where name in('redo entries','redo size');

7. 新的備份用戶特權(quán)

在12c中引入了SYSBACKUP特權(quán)用來在 RMAN中執(zhí)行備份和恢復(fù)命令。

因此,你可以在數(shù)據(jù)庫中創(chuàng)建一個(gè)本地用戶并在不授予其SYSDBA權(quán)限的情況下,通過授予SYSBACKUP權(quán)限讓其能夠在RMAN中執(zhí)行備份和恢復(fù)相關(guān)的任務(wù)。

$ ./rman target "username/password as SYSBACKUP"

備份用戶權(quán)限

grant sysbackup to wangkai;

rman target '"wangkai/oracle@prod as sysbackup"'

8. 可以在RMAN中執(zhí)行SQL語句

可以在不需要SQL前綴的情況下在RMAN中執(zhí)行任何SQL和PL/SQL命令,即你可以從RMAN直接執(zhí)行任何SQL和PL/SQL命令

9. RMAN中的表級(jí)別恢復(fù)

可以在發(fā)生drop或truncate的情況下從RMAN備份將一個(gè)特定的表或分區(qū)恢復(fù)到某個(gè)時(shí)間點(diǎn)或SCN

drop table emp1 purge;

RMAN> recover table wk.emp1 until time "to_date('2018-11-06 14:00:00','yyyy-mm-dd hh34:mi:ss')"

2> auxiliary destination '/u01/app/backup/tmp'  

3> datapump destination '/u01/app/backup/tmp';

執(zhí)行詳情見 session.log.

select * from emp1;

10. PGA的大小限制問題

可以通過開啟自動(dòng)PGA管理來對(duì)PGA設(shè)定硬性限制,這需要對(duì)PGA_AGGREGATE_LIMIT 參數(shù)進(jìn)行設(shè)置

當(dāng)超過了當(dāng)前的PGA的限制,Oracle會(huì)自動(dòng)終止/中止會(huì)話或進(jìn)程以保持最合適的PGA內(nèi)存。

create or replace package demo_pkg

as

  type array is table of char(2000) index by binary_integer;

  g_data array;

end;

/

select a.name,to_char(b.value,'999,999,999')bytes,to_char(round(b.value/1024/1024,1),'99,999.9')mbytes

from v$statname a,v$mystat b

where a.statistic#=b.statistic#

and a.name like '%ga memory%';

begin

for i in 1..1000000

   loop

    demo_pkg.g_data(i):='x';

   end loop;

end;

/

11. 對(duì)表分區(qū)維護(hù)的增強(qiáng)

12c只需要使用一條單獨(dú)的ALTER TABLE ADD PARTITION 命令就可以添加多個(gè)新分區(qū)

select TABLE_NAME,PARTITION_NAME,tablespace_name,PARTITION_POSITION,SEGMENT_CREATED from user_tab_partitions;

ALTER TABLE sales_history drop PARTITION p5;

ALTER TABLE sales_history ADD

partition p5 VALUES LESS THAN (TO_DATE('01-JAN-2003','dd-MON-yyyy')) tablespace study3,

partition p6 VALUES LESS THAN (TO_DATE('01-JAN-2004','dd-MON-yyyy')) tablespace study3;

select TABLE_NAME,PARTITION_NAME,tablespace_name,PARTITION_POSITION,SEGMENT_CREATED from user_tab_partitions;

12. 數(shù)據(jù)庫升級(jí)改進(jìn)

預(yù)升級(jí)腳本,預(yù)升級(jí)檢查驗(yàn)證,此腳本還能以修復(fù)腳本的形式解決在升級(jí)過程前后出現(xiàn)的各種問題

并行升級(jí)功能

SQL> @/u01/app/oracle/product/12.1.0/db_1/rdbms/admin/preupgrd.sql

圖形界面:

13. 通過網(wǎng)絡(luò)恢復(fù)數(shù)據(jù)文件

可以在主數(shù)據(jù)庫和備用數(shù)據(jù)庫之間用一個(gè)服務(wù)名重新獲得或恢復(fù)數(shù)據(jù)文件、控制文件、參數(shù)文件、表空間或整個(gè)數(shù)據(jù)庫

場(chǎng)景1,在物理備用數(shù)據(jù)庫上:

./rman target ‘“username/password@standby_db_tns as sysbackup”’

RMAN>recover database from service primary_db_tns using compressed backupset;

(以上示例使用備庫數(shù)據(jù)庫上定義的primary_db_tns連接字符串連接到主數(shù)據(jù)庫,然后執(zhí)行了一個(gè)增量備份,再將這些增量備份傳輸至備用數(shù)據(jù)庫來進(jìn)行同步。然而,需要確保已經(jīng)對(duì)primary_db_tns進(jìn)行了配置,即在備份數(shù)據(jù)庫端將其指向主數(shù)據(jù)庫。)

在以下示例中,我將演示一個(gè)場(chǎng)景通過從備用數(shù)據(jù)庫獲取數(shù)據(jù)文件來恢復(fù)主數(shù)據(jù)庫上丟失的數(shù)據(jù)文件

場(chǎng)景2,在主數(shù)據(jù)庫上:

./rman target ‘”username/password@primary_db_tns as sysbackup”’

RMAN>restore datafile ‘+DG_DISKGROUP/DBNAME/DATAFILE/filename’ from service standby_db_tns;

自己實(shí)驗(yàn):備庫刪掉幾個(gè)數(shù)據(jù)文件,通過從主數(shù)據(jù)庫獲取數(shù)據(jù)文件來恢復(fù)備庫丟失的數(shù)據(jù)文件。

14. 對(duì)Data Pump的增強(qiáng)

在導(dǎo)出時(shí)可以將視圖轉(zhuǎn)換為表,在導(dǎo)入時(shí)可以關(guān)閉日志記錄

像表一樣導(dǎo)出視圖

views_as_tables參數(shù)允許把視圖當(dāng)成表導(dǎo)出。表結(jié)構(gòu)匹配試圖列,視圖查詢結(jié)果對(duì)應(yīng)表數(shù)據(jù)。

views_as tables=

[schema_name.]view_name[:table_name],...

例子:

conn scott/tiger@prod2

create view emp_v as select * from emp;

用views_as_tables參數(shù)導(dǎo)出視圖。

$expdp scott/tiger views_as_tables=scott.emp_v directory=test_dir dumpfile=emp_v.dmp logfile=expdp_emp_v.log

expdp默認(rèn)會(huì)創(chuàng)建一個(gè)臨時(shí)表來作為視圖的拷貝,但不包含數(shù)據(jù),只是會(huì)導(dǎo)出提供一個(gè)元數(shù)據(jù)源。此外,也可以確定一個(gè)結(jié)構(gòu)合適的表來代替,但這也許只有在只讀庫上才有意義。

禁用日志選項(xiàng)(disable_archive_logging)

impdp的transform參數(shù)已經(jīng)擴(kuò)展為包括disable_archive_logging選項(xiàng),默認(rèn)值為“N”,不會(huì)影響日志行為;將該選項(xiàng)設(shè)置為“Y“,這將會(huì)使表和索引在導(dǎo)入前將日志屬性設(shè)置為nologging,從而減少導(dǎo)入期間相關(guān)日志的產(chǎn)生,導(dǎo)入后再將日志屬性重置為logging。

transform= disable_archive_logging:Y:table

transform= disable_archive_logging:Y:index

$ impdp wk/oracle directory=test_dir dumpfile=emp_v.dmp logfile=impdp_emp_v.log remap_schema=scott:wk transform= disable_archive_logging:Y

(如果數(shù)據(jù)庫運(yùn)行在force logging模式,disable_archive_logging選項(xiàng)將沒什么影響)

15. 實(shí)時(shí)自動(dòng)數(shù)據(jù)診斷監(jiān)視器 (ADDM) 分析

當(dāng)數(shù)據(jù)庫反應(yīng)遲鈍或是掛起狀態(tài)時(shí),而且你已經(jīng)配置了Oracle 企業(yè)管理器 12c的云控制,你就可以對(duì)嚴(yán)重的性能問題進(jìn)行診斷。

這對(duì)于你了解當(dāng)前數(shù)據(jù)庫發(fā)生了什么狀況有很大幫助,而且還能夠?qū)Υ藛栴}給出解決方案

16. 同時(shí)在多個(gè)表上收集統(tǒng)計(jì)數(shù)據(jù)

在12c R1中,你現(xiàn)在可以同時(shí)在多個(gè)表、分區(qū)以及子分區(qū)上收集統(tǒng)計(jì)數(shù)據(jù)。

在你開始使用它之前,你必須對(duì)數(shù)據(jù)庫進(jìn)行以下設(shè)置以開啟此功能:

  SQL> ALTER SYSTEM SET RESOURCE_MANAGER_PLAN=’DEFAULT_MAIN’;

  SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=4;

  SQL> EXEC DBMS_STATS.SET_GLOBAL_PREFS(‘CONCURRENT’, ‘ALL’);

  SQL> EXEC DBMS_STATS.GATHER_SCHEMA_STATS(‘SCOTT’);

17. ASM的增強(qiáng)

自動(dòng)存儲(chǔ)管理(ASM)中的增強(qiáng)

Flex ASM

節(jié)點(diǎn)上的ASM實(shí)例發(fā)生故障,則運(yùn)行于此節(jié)點(diǎn)上的所有數(shù)據(jù)庫和實(shí)例都會(huì)受到影響。

為了避免ASM實(shí)例的單點(diǎn)故障,Oracle 12c提供了一個(gè)名為Flex ASM的功能。

Flex ASM是一個(gè)不同的概念和架構(gòu),只有很少數(shù)量的ASM實(shí)例需要運(yùn)行在集群中的一些服務(wù)器上。

當(dāng)某節(jié)點(diǎn)上的一個(gè)ASM實(shí)例發(fā)生故障,Oracle集群就會(huì)在另一個(gè)不同的節(jié)點(diǎn)上自動(dòng)啟動(dòng)替代ASM實(shí)例以加強(qiáng)可用性。

另外,這一設(shè)置還為運(yùn)行在此節(jié)點(diǎn)上的實(shí)例提供了ASM實(shí)例負(fù)載均衡能力。Flex ASM的另一個(gè)優(yōu)勢(shì)就是可以在單獨(dú)節(jié)點(diǎn)上加以配置

ASM存儲(chǔ)限制放寬

ASM支持511個(gè)ASM磁盤群組,而在11g R2中只支持63個(gè)。

11g R2中20 PB的磁盤大小,現(xiàn)在已經(jīng)將這一數(shù)字提高到32 PB。

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

12c 中新的EXPLAIN WORK FOR 語句用于衡量一個(gè)給定ASM均衡操作所需的工作量,并在V$ASM_ESTIMATE動(dòng)態(tài)視圖中輸入結(jié)果

使用此動(dòng)態(tài)視圖,你可以調(diào)整POWER LIMIT 語句對(duì)重新平衡操作工作進(jìn)行改善

ASM磁盤清理

在一個(gè)ASM磁盤群組中,新的ASM磁盤清理操作分為正常或高冗余兩個(gè)級(jí)別,它可以檢驗(yàn)ASM磁盤群組中所有磁盤的邏輯數(shù)據(jù)破壞,

并且可以自動(dòng)對(duì)邏輯破壞進(jìn)行修復(fù),如果檢測(cè)到有邏輯數(shù)據(jù)破壞,就會(huì)使用ASM鏡像磁盤。

磁盤清理可以在磁盤群組,特定磁盤或是某個(gè)文件上執(zhí)行,這樣其影響可降到最小程度

ASM的活動(dòng)會(huì)話歷史(ASH)

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

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

Flex 集群

Oracle 12c 在集群安裝時(shí)支持兩類配置:傳統(tǒng)標(biāo)準(zhǔn)集群和Flex集群。

在一個(gè)傳統(tǒng)標(biāo)準(zhǔn)集群中,所有集群中的節(jié)點(diǎn)都彼此緊密地整合在一起,并通過私有網(wǎng)絡(luò)進(jìn)行互動(dòng),而且可以直接訪問存儲(chǔ)。

另一方面,F(xiàn)lex集群在Hub和Leaf節(jié)點(diǎn)結(jié)構(gòu)間引入了兩類節(jié)點(diǎn)。

分配在Hub中的節(jié)點(diǎn)類似于傳統(tǒng)標(biāo)準(zhǔn)集群,它們通過私有網(wǎng)絡(luò)彼此互連在一起并對(duì)存儲(chǔ)可以進(jìn)行直接讀寫訪問。

而Leaf節(jié)點(diǎn)不同于Hub節(jié)點(diǎn),它們不需要直接訪問底層存儲(chǔ);相反的是,它們通過Hub節(jié)點(diǎn)對(duì)存儲(chǔ)和數(shù)據(jù)進(jìn)行訪問

ASM磁盤群組中的OCR備份

對(duì)于12c,OCR現(xiàn)在可以在ASM磁盤群組中得以備份。

這簡(jiǎn)化了通過所有節(jié)點(diǎn)對(duì)OCR備份文件的訪問。為了防止OCR的恢復(fù),你不必?fù)?dān)心OCR最新的備份是在哪個(gè)節(jié)點(diǎn)上。

可以從任何節(jié)點(diǎn)輕易識(shí)別存儲(chǔ)在ASM中的最新備份并能很容易地執(zhí)行恢復(fù)

支持IPv6協(xié)議

對(duì)于12c,Oracle是支持IPv6網(wǎng)絡(luò)協(xié)議配置的。

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

19. RAC數(shù)據(jù)庫的增強(qiáng)

What-if命令評(píng)估

通過srvctl使用新的What-if命令評(píng)估選項(xiàng),現(xiàn)在可以確定運(yùn)行此命令所造成的影響。

這一新添加到srvctl的命令,可以在沒有實(shí)際執(zhí)行或是不對(duì)當(dāng)前系統(tǒng)做任何改變的情況下模擬此命令。

這在想要對(duì)一個(gè)已存在的系統(tǒng)進(jìn)行更改卻對(duì)結(jié)果不確定的時(shí)候特別有用。

這樣,此命令就會(huì)提供進(jìn)行變更的效果。而–eval 選項(xiàng)也可以通過crsctl 命令來使用

srvctl的改進(jìn)

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

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

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

到此,相信大家對(duì)“Oracle數(shù)據(jù)版本12.2.0.1.0有哪些新特性”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI