本篇內容主要講解“Oracle數據版本12.2.0.1.0有哪些新特性”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Oracle數據版本12.2.0.1.0有哪些新特性”吧!
1. 在線重命名和重新定位活躍數據文件
可以使用ALTER DATABASE MOVE DATAFILE這樣的SQL語句對數據文件進行在線重命名和移動
2. 表分區或子分區的在線遷移
表分區或子分區可以在線或是離線遷移至一個不同的表空間。
當指定了ONLINE語句,所有的DML操作可以在沒有任何中斷的情況下,在參與這一過程的分區或子分區上執行,還可維護表上任何本地或全局的索引
3. 不可見字段
可以在表中創建不可見字段。
當一個字段定義為不可見時,這一字段就不會出現在通用查詢中,除非在SQL語句或條件中有顯式的提及這一字段,或是在表定義中有DESCRIBED。
必須在INSERT語句中顯式提及不可見字段名以將不可見字段插入到數據庫中。
虛擬字段和分區字段同樣也可以定義為不可見類型。但臨時表,外部表和集群表并不支持不可見字段
set colinvisible on
alter table emp modify(sal visible);
只要索引類型的形式不同,一個字段就可以包含在一個B-tree索引中,同樣也可以包含在Bitmap索引中
可以將DDL操作寫入xml和日志文件中
ALTER SYSTEM|SESSION SET ENABLE_DDL_LOGGING=TRUE;
DDL操作會記錄在$ORACLE_BASE/diag/rdbms/DBNAME/log/ddl路徑下
/u01/app/oracle/diag/rdbms/prod/PROD/log/ddl
臨時undo功能中,臨時undo記錄可以存儲在一個臨時表中,而無需再存儲在undo表空間內。
這樣做的主要好處在于:減少undo表空間,由于信息不會被記錄在redo日志中,所以減少了redo數據的生成。
你可以在會話級別或者數據庫級別來啟用臨時undo選項
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');
在12c中引入了SYSBACKUP特權用來在 RMAN中執行備份和恢復命令。
因此,你可以在數據庫中創建一個本地用戶并在不授予其SYSDBA權限的情況下,通過授予SYSBACKUP權限讓其能夠在RMAN中執行備份和恢復相關的任務。
$ ./rman target "username/password as SYSBACKUP"
備份用戶權限
grant sysbackup to wangkai;
rman target '"wangkai/oracle@prod as sysbackup"'
可以在不需要SQL前綴的情況下在RMAN中執行任何SQL和PL/SQL命令,即你可以從RMAN直接執行任何SQL和PL/SQL命令
可以在發生drop或truncate的情況下從RMAN備份將一個特定的表或分區恢復到某個時間點或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';
執行詳情見 session.log.
select * from emp1;
可以通過開啟自動PGA管理來對PGA設定硬性限制,這需要對PGA_AGGREGATE_LIMIT 參數進行設置
當超過了當前的PGA的限制,Oracle會自動終止/中止會話或進程以保持最合適的PGA內存。
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;
/
12c只需要使用一條單獨的ALTER TABLE ADD PARTITION 命令就可以添加多個新分區
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;
預升級腳本,預升級檢查驗證,此腳本還能以修復腳本的形式解決在升級過程前后出現的各種問題
并行升級功能
SQL> @/u01/app/oracle/product/12.1.0/db_1/rdbms/admin/preupgrd.sql
圖形界面:
可以在主數據庫和備用數據庫之間用一個服務名重新獲得或恢復數據文件、控制文件、參數文件、表空間或整個數據庫
場景1,在物理備用數據庫上:
./rman target ‘“username/password@standby_db_tns as sysbackup”’
RMAN>recover database from service primary_db_tns using compressed backupset;
(以上示例使用備庫數據庫上定義的primary_db_tns連接字符串連接到主數據庫,然后執行了一個增量備份,再將這些增量備份傳輸至備用數據庫來進行同步。然而,需要確保已經對primary_db_tns進行了配置,即在備份數據庫端將其指向主數據庫。)
在以下示例中,我將演示一個場景通過從備用數據庫獲取數據文件來恢復主數據庫上丟失的數據文件
場景2,在主數據庫上:
./rman target ‘”username/password@primary_db_tns as sysbackup”’
RMAN>restore datafile ‘+DG_DISKGROUP/DBNAME/DATAFILE/filename’ from service standby_db_tns;
自己實驗:備庫刪掉幾個數據文件,通過從主數據庫獲取數據文件來恢復備庫丟失的數據文件。
在導出時可以將視圖轉換為表,在導入時可以關閉日志記錄
像表一樣導出視圖
views_as_tables參數允許把視圖當成表導出。表結構匹配試圖列,視圖查詢結果對應表數據。
views_as tables=
[schema_name.]view_name[:table_name],...
例子:
conn scott/tiger@prod2
create view emp_v as select * from emp;
用views_as_tables參數導出視圖。
$expdp scott/tiger views_as_tables=scott.emp_v directory=test_dir dumpfile=emp_v.dmp logfile=expdp_emp_v.log
expdp默認會創建一個臨時表來作為視圖的拷貝,但不包含數據,只是會導出提供一個元數據源。此外,也可以確定一個結構合適的表來代替,但這也許只有在只讀庫上才有意義。
禁用日志選項(disable_archive_logging)
impdp的transform參數已經擴展為包括disable_archive_logging選項,默認值為“N”,不會影響日志行為;將該選項設置為“Y“,這將會使表和索引在導入前將日志屬性設置為nologging,從而減少導入期間相關日志的產生,導入后再將日志屬性重置為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
(如果數據庫運行在force logging模式,disable_archive_logging選項將沒什么影響)
當數據庫反應遲鈍或是掛起狀態時,而且你已經配置了Oracle 企業管理器 12c的云控制,你就可以對嚴重的性能問題進行診斷。
這對于你了解當前數據庫發生了什么狀況有很大幫助,而且還能夠對此問題給出解決方案
在12c R1中,你現在可以同時在多個表、分區以及子分區上收集統計數據。
在你開始使用它之前,你必須對數據庫進行以下設置以開啟此功能:
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’);
自動存儲管理(ASM)中的增強
Flex ASM
節點上的ASM實例發生故障,則運行于此節點上的所有數據庫和實例都會受到影響。
為了避免ASM實例的單點故障,Oracle 12c提供了一個名為Flex ASM的功能。
Flex ASM是一個不同的概念和架構,只有很少數量的ASM實例需要運行在集群中的一些服務器上。
當某節點上的一個ASM實例發生故障,Oracle集群就會在另一個不同的節點上自動啟動替代ASM實例以加強可用性。
另外,這一設置還為運行在此節點上的實例提供了ASM實例負載均衡能力。Flex ASM的另一個優勢就是可以在單獨節點上加以配置
ASM存儲限制放寬
ASM支持511個ASM磁盤群組,而在11g R2中只支持63個。
11g R2中20 PB的磁盤大小,現在已經將這一數字提高到32 PB。
對ASM均衡操作的優化
12c 中新的EXPLAIN WORK FOR 語句用于衡量一個給定ASM均衡操作所需的工作量,并在V$ASM_ESTIMATE動態視圖中輸入結果
使用此動態視圖,你可以調整POWER LIMIT 語句對重新平衡操作工作進行改善
ASM磁盤清理
在一個ASM磁盤群組中,新的ASM磁盤清理操作分為正?;蚋呷哂鄡蓚€級別,它可以檢驗ASM磁盤群組中所有磁盤的邏輯數據破壞,
并且可以自動對邏輯破壞進行修復,如果檢測到有邏輯數據破壞,就會使用ASM鏡像磁盤。
磁盤清理可以在磁盤群組,特定磁盤或是某個文件上執行,這樣其影響可降到最小程度
ASM的活動會話歷史(ASH)
V$ACTIVE_SESSION_HISOTRY 動態視圖現在還可以提供ASM實例的活動會話抽樣,然而,診斷包的使用是受到許可限制的。
Flex 集群
Oracle 12c 在集群安裝時支持兩類配置:傳統標準集群和Flex集群。
在一個傳統標準集群中,所有集群中的節點都彼此緊密地整合在一起,并通過私有網絡進行互動,而且可以直接訪問存儲。
另一方面,Flex集群在Hub和Leaf節點結構間引入了兩類節點。
分配在Hub中的節點類似于傳統標準集群,它們通過私有網絡彼此互連在一起并對存儲可以進行直接讀寫訪問。
而Leaf節點不同于Hub節點,它們不需要直接訪問底層存儲;相反的是,它們通過Hub節點對存儲和數據進行訪問
ASM磁盤群組中的OCR備份
對于12c,OCR現在可以在ASM磁盤群組中得以備份。
這簡化了通過所有節點對OCR備份文件的訪問。為了防止OCR的恢復,你不必擔心OCR最新的備份是在哪個節點上。
可以從任何節點輕易識別存儲在ASM中的最新備份并能很容易地執行恢復
支持IPv6協議
對于12c,Oracle是支持IPv6網絡協議配置的。
你現在可以在IPv4或IPv6上配置共有或私有網絡接口,盡管如此,你需要確保在所有集群中的節點上使用相同的IP協議
What-if命令評估
通過srvctl使用新的What-if命令評估選項,現在可以確定運行此命令所造成的影響。
這一新添加到srvctl的命令,可以在沒有實際執行或是不對當前系統做任何改變的情況下模擬此命令。
這在想要對一個已存在的系統進行更改卻對結果不確定的時候特別有用。
這樣,此命令就會提供進行變更的效果。而–eval 選項也可以通過crsctl 命令來使用
srvctl的改進
對于srvctl命令還有一些新增功能。以下演示了如何用這些新增功能停止或啟動集群上的數據庫或實例資源。
srvctl start database|instance –startoption NOMOUNT|MOUNT|OPEN
srvctl stop database|instance –stopoption NOMOUNT|MOUNT|OPEN
到此,相信大家對“Oracle數據版本12.2.0.1.0有哪些新特性”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。