亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

 

1、不可見字段(Invisible columns)

在 12c R1中,可以在表中創建不可見字段。當一個字段為不可見時,這一字段就不會出現在查詢結果中,除非顯式在 SQL 語句或條件中指定,或是在表定義中有 DESCRIBED。

實例:

創建一張表TEST,將其中一列設置為invisible,字段查詢觀察結果。

1.1、建表

create table emp (id number,name varchar2(20) invisible);
insert into emp(id,name) values(1,'tom');
insert into emp(id,name) values(2,'mike');
commit;

1.2、字段查詢

select * from emp;
select id,name from emp;
關于Oracle數據庫12c 新特性總結

 

1.3、PLSQL查看

關于Oracle數據庫12c 新特性總結

 


2、相同字段上的多重索引(Multiple indexes on the same set of columns)

在12c中可使用invisible參數,對表同一字段創建不同類型的索引

實例:

2.1、建表及索引

create table dup(name varchar2(10),sex varchar2(10),adr varchar2(200),id number(10),birth date);
create index idx_dup_adr on dup(adr);
create bitmap index bitidx_dup_adr on dup(adr) invisible;
SELECT OWNER,INDEX_NAME,INDEX_TYPE,TABLE_NAME,STATUS,VISIBILITY FROM DBA_INDEXES WHERE TABLE_NAME='DUP';
關于Oracle數據庫12c 新特性總結

 


關于Oracle數據庫12c 新特性總結

 

2.2、如果要使bitmap索引生效,將btree索引設為隱藏

alter index idx_dup_adr invisible;
alter index bitidx_dup_adr visible;
關于Oracle數據庫12c 新特性總結

 


3、DDL日志

DDL log開啟之后可在記錄的xml文件中找到對應的時間戳以及主機ip。

以下的 DDL 語句可能會記錄在 xml 或日志文件中:

  • CREATE|ALTER|DROP|TRUNCATE TABLE
  • DROP USER
  • CREATE|ALTER|DROP PACKAGE|FUNCTION|VIEW|SYNONYM|SEQUENCE

3.1、開啟 DDL 日志功能

 ALTER SYSTEM|SESSION SET ENABLE_DDL_LOGGING=TRUE;

3.2、刪除表dup

 drop table dup;
關于Oracle數據庫12c 新特性總結

 

3.3、查看日志

 $cat  /u01/App/oracle/diag/rdbms/srm/SRM/log/ddl/log.xml 
關于Oracle數據庫12c 新特性總結

 


4、新的備份用戶特權

在11g R2中,引入了SYSASM特權來執行ASM的特定操作。同樣地,在12c中引入了SYSBACKUP特權用來在 RMAN中執行備份和恢復命令。因此,你可以在數據庫中創建一個本地用戶并在不授予其SYSDBA權限的情況下,通過授予SYSBACKUP權限讓其能夠在RMAN中執行備份和恢復相關的任務。

grant sysbackup to admin
rman
connect target "admin/oracle@pdb as sysbackup"

5、 數據泵的增強

5.1、關閉redo日志的生成

在導入大型表時可以通過增加TRANSFORM選項,關閉redo日志的生成,從而加快導入。

impdp admin/oracle@pdb directory=dump dumpfile=admin.dmp logfile=admin_nolog.log 
schemas=admin TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y

5.2、導出將視圖轉換為表

expdp admin/oracle@pdb directory=dump dumpfile=admin.dmp logfile=admin.log 
views_as_tables=view_test

6、完整可傳輸導出/導入 遷移數據庫(Full transportable export/import)

Oracle 數據庫 12c 的完整可傳輸導出/導入(Full Transportable Export/Import)功能來使用較少的停機時間,將數據庫升級/遷移到 Oracle 數據庫 12c (12.1.0.2以上)中。(支持單實例遷移到RAC集群)

可以使用full transportable export/import功能將整個數據庫從一個數據庫實例復制到另一個數據庫實例。可以使用Data Pump來生成一個導出dump文件,如果需要將這個dump文件傳輸到目標數據庫,然后導入dump文件。另外也可以使用Data Pump跨網絡來復制數據庫。

數據庫中要被傳輸的表空間可以是字典管理或本地管理表空間。源數據庫中的表空間的塊大小不必與目標數據庫中標準塊大小相同。

這種傳輸數據庫的方法要求直到完成導出dump文件之前所要傳輸的用戶創建的表空間必須設置為只讀狀態。如果不能滿足這個條件那么可以使用備份功能來完成傳輸表空間。

這個后面單獨演示一下。。。

使用導出dump文件方式來傳輸數據庫必須執行以下步驟:
1)在源數據庫上,將每個用戶表空間設置為只讀狀態。在執行導出操作時要確保設置參數transportable=always與full=y。如果源數據庫的版本是11.2.0.3或11G之后的版本,那么還必須設置version=12或更高版本號。導出的dump文件包含了存儲在用戶表空間中對象的元數據與存儲在管理表空間(比如system與sysaux)中用戶創建對象的元數據與實際數據。

2)將導出的dump文件傳輸到目標數據庫

3)將所有用戶表空間的所有數據文件傳輸到目標數據庫,如果源平臺與目標平臺不同,那么需要檢查字節編碼,可以通過查詢v$transportable_platform視圖進行查看。如果源平臺與目標平臺的字節編碼不一樣,那么使用以下方法來轉換數據文件:
(1)使用dbms_file_transfer包中的get_file或put_file過程來傳輸數據文件。這些過程會將源數據文件自動轉換為目標平臺的字節編碼方式。
(2)使用rman的convert命令將源數據文件轉換為目標平臺的字節編碼方式

4)可選操作,將源數據庫中的將被傳輸的表空間設置為讀寫狀態

5)在目標數據庫中導入數據,當導入完成后,用戶表空間將會設置為讀寫狀態。


7、擴展數據類型長度32k Strings

VARCHAR2, NAVARCHAR2 以及 RAW 這些數據類型的 大小可以從 4K 以及 2K 字節擴展至32K 字節。

開啟方法:

7.1、關閉cdb

 alter pluggable database SRMPDB close;

7.2、啟動數據庫到upgrade模式

 startup upgrade;

7.3、在cdb內修改初始化參數MAX_STRING_SIZE

ALTER SESSION SET CONTAINER=CDB$ROOT;
ALTER SYSTEM SET max_string_size=extended SCOPE=SPFILE;

7.4、以sys用戶執行擴展腳本

 @?/rdbms/admin/utl32k.sql

7.5、重啟數據庫到normal模式

shutdown immediate;
startup;

7.6、執行腳本編譯無效對象

 @?/rdbms/admin/utlrp.sql

8、在SQL語句中通過with語句定義函數(12.1.0.2)

ORACLE 12C可以在sql語句中編寫函數,在read only或者不想新建函數,可通過這種方法實現。

如下創建一個函數,用來判斷輸入數據是否是數字,如果是數字輸出Y,如果不是輸出N.

with function Is_Number
      (x in varchar2) return varchar2 is
        Plsql_Num_Error exception;
         pragma exception_init(Plsql_Num_Error, -06502);
     begin
       if (To_Number(x) is NOT null) then
         return 'Y';
       else
         return '';
      end if;
    exception
     when Plsql_Num_Error then
       return 'N';
    end Is_Number;

用select語句調用Is_Number函數

select is_number('1') from dual; 
/

9、在線移動并重命名數據文件

當數據文件正在傳輸時,終端用戶可以執行查詢,DML 以及 DDL 方面的任務

--移動數據文件并且重命名(容器數據只能移動自己所屬數據文件)
alter database move datafile '/u01/app/oracle/oradata/orcl/pdborcl/admin.dbf' to '/home/oracle/admin1.dbf';

--文件系統移動到ASM磁盤(如果rac環境中數據文件創建在某個節點,移動數據文件之后,需要在另外節點重啟cdb)
alter database move datafile '/home/oracle/admin.dbf' to '+DATA/pdborcl_admin.dbf';

10、高級索引壓縮(COMPRESS ADVANCED LOW)

在使用高級索引壓縮之后,可以一定程度下降低數據庫IO。

場景實驗;a表普通索引,b表壓縮索引,簡單看看段大小

10.1、a表創建普通索引

create table a(id int,object_name varchar2(20));
insert into a values(1,'hwb');
create index idx_obname_a on a(object_name);
select segment_name,bytes/1024/1024 from dba_segments where segment_name =upper('idx_obname_a');
關于Oracle數據庫12c 新特性總結

 

10.2、b表創建壓縮索引

create table b(id int,object_name varchar2(20));
insert into b values(1,'hwb');
create index idx_obname_b on b(object_name) COMPRESS ADVANCED LOW;
select segment_name,bytes/1024/1024 from dba_segments where segment_name =upper('idx_obname_b');

我這里數據量太少了,一個段的空間都沒占滿,所以看到的都是一樣。

關于Oracle數據庫12c 新特性總結

 


11、PGA大小限制(PGA Size Limit)

在12C之前,對于PGA內存的管理是使用PGA_AGGREGATE_TARGET參數來控制的,但這個參數只是一個目標值,可以超過設定的大小,無法直接對pga限定大小。

在12C中可使用PGA_AGGREGATE_LIMIT參數來限制Oracle實例PGA使用內存的上限,如果超過限制就采取終止會話的方式來降低PGA內存的使用量。

備注:如果使用ASMM,PGA_AGGREGATE_LIMIT大小為2G(初始化參數未超過2G)或者PGA_AGGREGATE_TARGET的2倍(超過2G)


12、RMAN 表級恢復

在Oracle 12C之前RMAN只能在數據庫級(數據文件)、表空間級進行完全恢復或者不完全恢復。如果是某張表發生了截斷或者刪除,可通過閃回表或者閃回數據庫快速恢復,或者是dmp文件。然而到了12C,RMAN可以通過備份將數據表恢復到故障時間點,而其他表不受影響。其過程是在恢復過程中創建輔助實例,還原系統數據文件(system、sysaux、undotbs),基于redo或者archivelog應用,最后通過數據泵導入目標shemas,恢復之后自動創建的輔助實例會被自動刪除。


13、In-Memory選件

啟用IMO非常簡單,12.1.0.2及之后版本下,設置INMEMORY_SIZE 為非0值便可啟用IM column store特性。

INMEMORY_SIZE 是個實例級參數,默認為0,設置一個非0值時,最小值為100M。

通常情況下,sys用戶下的對象及SYSTEM、SYSAUX表空間上的對象無法使用IMO特性,但通過設置“_enable_imc_sys”隱含參數也可以使用

開啟DB In-Memory過程如下:

1)修改INMEMORY_SIZE參數:

SQL> ALTER SYSTEM SET INMEMORY_SIZE=1G SCOPE=SPFILE;

2)檢查sga參數的設置,確保在設置完inmemroy_size參數之后數據庫實例還可以正常啟動。如果數據庫使用了ASMM,則需要檢查sga_target參數。如果使用了AMM,則需要檢查MEMORY_TARGET參數,同時也需要檢查SGA_MAX_TARGET(或MEMORY_MAX_TARGET)。

備注:從 12.2 開始,可以動態增加 In-Memory 區域的大小,為此,只需 通過 ALTER SYSTEM 命令增加 INMEMORY_SIZE 參數值即可

3)重啟數據庫實例

4)查看IM特性是否開啟

 SHOW PARAMETER inmemory;

14、全庫緩存(Force Full Database Caching Mode)

通常情況下,Oracle會決定哪些數據會留在緩沖區中。當沒足夠的空間時,數據會被寫出內存。此外,為了避免大量讀取將有用的信息擠出緩沖區,Oracle對有些操作也許會采取繞過緩沖區的措施。Oracle12cR1 (12.1.0.2)引入了全數據緩沖的概念。如果Oracle認為緩沖區大的足以容納整個數據庫,那么,它將會緩沖所有的數據塊。此外,可以強制啟用全數據緩沖模式。

要想強制開啟該模式,需要先將關閉并將庫置于mount狀態,否則,在打開的數據庫上執行該ALTER DATABASE命令將會報錯。

開啟強制全庫緩存模式數據庫兼容性級別必須是12.0.0或者更高;

14.1、查看是否啟用全數據庫緩存

SELECT FORCE_FULL_DB_CACHING FROM V$DATABASE;

關于Oracle數據庫12c 新特性總結

 

14.2、啟用全數據庫緩存

startup mount;
ALTER DATABASE FORCE FULL DATABASE CACHING;
ALTER DATABASE OPEN;

15、Sharding Database

Oracle Sharding是Oracle 12.2版本推出的新功能,也稱為數據分片,適用于online transaction processing (OLTP). Oracle Sharding基于表分區技術,是一種在數據層將數據水平分區存儲到不同的數據庫的技術. Sharding可以實現將一個分區表的不同分區存儲在不同的數據庫中,每個數據庫位于不同的服務器,每一個數據庫都稱為shard, 這些shard組成一個邏輯數據庫,稱為sharded database (SDB). 這個table也稱為sharded table, 每個shard數據庫中保存該表的不同數據集(按照sharding key分區), 但是他們有相同的列(columns)。

Shard是一種shared-nothing技術,每個shard數據庫使用獨立的服務器硬件(CPU,內存等)。Shard可以運行在單機數據庫或者DATAGUARD/ADG數據庫。


16、在線把非分區表轉為分區表(12.2.0.1)

在Oracle12.2版本之前,如果想把一個非分區表轉為分區表常用的有這幾種方法:

1)建好分區表然后insert into select 把數據插入到分區表中;

2)使用在線重定義(DBMS_REDEFINITION)的方法。

Oracle12cR2版本中提供了一種新特性,一條語句就可以把非分區表轉換為分區表,例如:

alter table tablename modify
partition by range (字段) interval (10)
( 
partition p1 values less than (10),
partition p2 values less than (20)
) online
;

17、表在線移動

在11g以及12C R1,如果通過alter table move降低高水位,表的索引在move之后會失效。在12C R2中可通過獨有關鍵字online子句以及update indexes在線移動表,并且索引不會失效。

 alter table tablename move online;

18、DataGuard通過網絡恢復數據文件

在Oracle 12C中可以通過rman指定網絡服務名方式,在主備庫之間恢復數據庫文件,有如下幾種方式:

  • 數據庫級別: restore database from service <服務別名>恢復數據文件、控制文件、參數文件。
  • 表空間: restore tablespace from service <服務別名>
  • 控制文件: restore controlfile to ‘指定的位置’ from service <服務別名>
  • SPFILE: restore spfile from service <服務別名>

19、In-Database Archiving數據庫內歸檔

通常,在應用程序開發中對表做設計時,不可避免的會對表中的數據做刪除處理,如果直接使用硬刪除,則不能有效地對已刪除的數據進行追蹤;如果采用軟刪除(例如表中增加了刪除標記的字段delete_flag),雖然可以對已刪除的字段進行追蹤,但如果使用未刪除的數據時,需要加上delete_flag='N',這種帶刪除標記的數據對應用來說是可見的,而且占用一定的存儲空間。

Oracle Database 12c中引入了 In-Database Archiving的新特性, 該特性允許用戶通過對表上的數據行標記為inactive不活躍的,以歸檔數據。 這些inactive的數據行可以通過壓縮進一步優化,且對應用來說默認不可見。該特性可以對現有代碼做最少改動的情況下,實現了這種“標記刪除”的功能和需求。

 

 

了解更多

分享到:
標簽:數據庫 Oracle
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定