久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Oracle Database 12c 新特性總結(jié)

 qrzhcd 2013-07-17

【IT168 評論】甲骨文公司近日正式發(fā)布了新版旗艦級數(shù)據(jù)庫Oracle Database 12c,,而隨著產(chǎn)品正式GA,,相關(guān)技術(shù)文檔也披露了更多關(guān)于12c數(shù)據(jù)庫的細節(jié)。本系列文章是Oracle ACE總監(jiān)Syed Jaffer Hussain對Oracle數(shù)據(jù)庫12c的一些新特性總結(jié),,包括數(shù)據(jù)庫管理,、RMAN、高可用性以及性能調(diào)優(yōu)等內(nèi)容,。

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

  不同于以往的版本,,在Oracle數(shù)據(jù)庫12c R1版本中對數(shù)據(jù)文件的遷移或重命名不再需要太多繁瑣的步驟,即把表空間置為只讀模式,,接下來是對數(shù)據(jù)文件進行離線操作,。在12c R1中,可以使用ALTER DATABASE MOVE DATAFILE這樣的SQL語句對數(shù)據(jù)文件進行在線重命名和移動,。而當(dāng)此數(shù)據(jù)文件正在傳輸時,,終端用戶可以執(zhí)行查詢,DML以及DDL方面的任務(wù),。另外,,數(shù)據(jù)文件可以在存儲設(shè)備間遷移,,如從非ASM遷移至ASM,反之亦然,。

  重命名數(shù)據(jù)文件:

SQL> ALTER DATABASE MOVE DATAFILE '/u00/data/users01.dbf' TO '/u00/data/users_01.dbf';

  從非ASM遷移數(shù)據(jù)文件至ASM:

SQL> ALTER DATABASE MOVE DATAFILE '/u00/data/users_01.dbf' TO '+DG_DATA';

  將數(shù)據(jù)文件從一個ASM磁盤群組遷移至另一個ASM磁盤群組:

SQL> ALTER DATABASE MOVE DATAFILE '+DG_DATA/DBNAME/DATAFILE/users_01.dbf ' TO '+DG_DATA_02';

  在數(shù)據(jù)文件已存在于新路徑的情況下,,以相同的命名將其覆蓋:

SQL> ALTER DATABASE MOVE DATAFILE '/u00/data/users_01.dbf' TO '/u00/data_new/users_01.dbf' REUSE;

        復(fù)制文件到一個新路徑,同時在原路徑下保留其拷貝:

SQL> ALTER DATABASE MOVE DATAFILE '/u00/data/users_01.dbf' TO '/u00/data_new/users_01.dbf' KEEP;

  當(dāng)通過查詢v$session_longops動態(tài)視圖來移動文件時,,你可以監(jiān)控這一過程,。另外,你也可以引用alert.log,,Oracle會在其中記錄具體的行為,。

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

  在Oracle 12c R1中遷移表分區(qū)或子分區(qū)到不同的表空間不再需要復(fù)雜的過程。與之前版本中未分區(qū)表進行在線遷移類似,,表分區(qū)或子分區(qū)可以在線或是離線遷移至一個不同的表空間,。當(dāng)指定了ONLINE語句,所有的DML操作可以在沒有任何中斷的情況下,,在參與這一過程的分區(qū)或子分區(qū)上執(zhí)行,。與此相反,分區(qū)或子分區(qū)遷移如果是在離線情況下進行的,,DML操作是不被允許的,。

  示例:

SQL> ALTER TABLE table_name MOVE PARTITION|SUBPARTITION partition_name TO tablespace tablespace_name;
SQL
> ALTER TABLE table_name MOVE PARTITION|SUBPARTITION partition_name TO tablespace tablespace_name UPDATE INDEXES ONLINE;

  第一個示例是用來在離線狀況下將一個表分區(qū)或子分區(qū)遷移至一個新的表空間。第二個示例是在線遷移表分區(qū)或子分區(qū)并維護表上任何本地或全局的索引,。此外,,當(dāng)使用ONLINE語句時,DML操作是不會中斷的,。

  重要提示:

  UPDATE INDEXES語句可以避免出現(xiàn)表中任何本地或全局索引無法使用的情況,。

  表的在線遷移限制也適用于此。

  引入加鎖機制來完成這一過程,,當(dāng)然它也會導(dǎo)致性能下降并會產(chǎn)生大量的redo,,這取決于分區(qū)和子分區(qū)的大小。

  3. 不可見字段

  在Oracle 11g R1中,,Oracle以不可見索引和虛擬字段的形式引入了一些不錯的增強特性,。繼承前者并發(fā)揚光大,Oracle 12c R1中引入了不可見字段思想,。在之前的版本中,,為了隱藏重要的數(shù)據(jù)字段以避免在通用查詢中顯示,我們往往會創(chuàng)建一個視圖來隱藏所需信息或應(yīng)用某些安全條件,。

  在12c R1中,,你可以在表中創(chuàng)建不可見字段。當(dāng)一個字段定義為不可見時,這一字段就不會出現(xiàn)在通用查詢中,,除非在SQL語句或條件中有顯式的提及這一字段,,或是在表定義中有DESCRIBED。要添加或是修改一個不可見字段是非常容易的,,反之亦然,。

SQL> CREATE TABLE emp (eno number(6), ename name varchar2(40), sal number(9) INVISIBLE);
SQL
> ALTER TABLE emp MODIFY (sal visible);

  你必須在INSERT語句中顯式提及不可見字段名以將不可見字段插入到數(shù)據(jù)庫中。虛擬字段和分區(qū)字段同樣也可以定義為不可見類型,。但臨時表,,外部表和集群表并不支持不可見字段。

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

  在Oracle 12c R1之前,,一個字段是無法以任何形式擁有多個索引的,。或許有人會想知道為什么通常一個字段需要有多重索引,,事實上需要多重索引的字段或字段集合是很多的,。在12c R1中,只要索引類型的形式不同,,一個字段就可以包含在一個B-tree索引中,,同樣也可以包含在Bitmap索引中。注意,,只有一種類型的索引是在給定時間可用的,。

  5. DDL日志

  在之前的版本中沒有可選方法來對DDL操作進行日志記錄。而在12c R1中,,你現(xiàn)在可以將DDL操作寫入xml和日志文件中,。這對于了解誰在什么時間執(zhí)行了create或drop命令是十分有用的。要開啟這一功能必須對ENABLE_DDL_LOGGING 初始參數(shù)加以配置,。這一參數(shù)可以在數(shù)據(jù)庫或會話級加以設(shè)置。當(dāng)此參數(shù)為啟用狀態(tài),,所有的DDL命令會記錄在$ORACLE_BASE/diag/rdbms/DBNAME/log|ddl 路徑下的xml和日志文件中,。一個xml中包含DDL命令,IP地址,,時間戳等信息,。這可以幫助確定在什么時候?qū)τ脩艋虮磉M行了刪除亦或是一條DDL語句在何時觸發(fā)。

  開啟DDL日志功能

SQL> ALTER SYSTEM|SESSION SET ENABLE_DDL_LOGGING=TRUE;

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

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

6. 臨時undo

  每個Oracle數(shù)據(jù)庫包含一組與系統(tǒng)相關(guān)的表空間,,例如SYSTEM,,SYSAUX,UNDO & TEMP,,并且它們在Oracle數(shù)據(jù)庫中每個都用于不同的目的,。在Oracle 12c R1之前,undo記錄是由臨時表產(chǎn)生并存儲在undo表空間中的,這更類似于一個通用或持久的表撤銷記錄,。然而,,由于在12c R1中引入了臨時undo功能,那些臨時undo記錄現(xiàn)在就可以存儲在臨時表中,,而不是存儲在undo表空間中,。臨時undo的主要好處在于:由于信息不會寫入undo日志,undo表空間的開銷得以減少并且產(chǎn)生的undo數(shù)據(jù)會更少,。而對于在會話級還是數(shù)據(jù)庫級開啟臨時undo功能你是可以靈活選擇的,。

  啟用臨時undo功能

  要使用這一新功能,需要做以下設(shè)置:

  兼容性參數(shù)必須設(shè)置為12.0.0或更高

  啟用 TEMP_UNDO_ENABLED 初始化參數(shù)

  由于臨時undo記錄現(xiàn)在是存儲在一個臨時表空間中的,,你需要有足夠的空間來創(chuàng)建這一臨時表空間

  對于會話級,,你可以使用:ALTER SYSTEM SET TEMP_UNDO_ENABLE=TRUE;

  查詢臨時undo信息

  以下所列的字典視圖是用來查看或查詢臨時undo數(shù)據(jù)相關(guān)統(tǒng)計信息的:

V$TEMPUNDOSTAT
DBA_HIST_UNDOSTAT
V$UNDOSTAT

  要禁用此功能,你只需做以下設(shè)置:

SQL> ALTER SYSTEM|SESSION SET TEMP_UNDO_ENABLED=FALSE;

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

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

  8. 如何在RMAN中執(zhí)行SQL語句

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

  在12c中,,你可以在不需要SQL前綴的情況下在RMAN中執(zhí)行任何SQL和PL/SQL命令,即你可以從RMAN直接執(zhí)行任何SQL和PL/SQL命令,。如下便是在RMAN中執(zhí)行SQL語句的示例:

RMAN> SELECT username,machine FROM v$session;
RMAN
> ALTER TABLESPACE users ADD DATAFILE SIZE 121m;

  9. RMAN中的表恢復(fù)和分區(qū)恢復(fù)

  Oracle數(shù)據(jù)庫備份主要分為兩類:邏輯和物理備份,。每種備份類型都有其自身的優(yōu)缺點。在之前的版本中,,利用現(xiàn)有物理備份來恢復(fù)表或分區(qū)是不可行的,。為了恢復(fù)特定對象,邏輯備份是必需的,。對于12c R1,,你可以在發(fā)生drop或truncate的情況下從RMAN備份將一個特定的表或分區(qū)恢復(fù)到某個時間點或SCN。

  當(dāng)通過RMAN發(fā)起一個表或分區(qū)恢復(fù)時,,大概流程是這樣的:

  確定要恢復(fù)表或分區(qū)所需的備份集

  在恢復(fù)表或分區(qū)的過程中,,一個輔助數(shù)據(jù)庫會臨時設(shè)置為某個時間點

  利用數(shù)據(jù)泵將所需表或分區(qū)導(dǎo)出到一個dumpfile

  你可以從源數(shù)據(jù)庫導(dǎo)入表或分區(qū)(可選)

  在恢復(fù)過程中進行重命名操作

  以下是一個通過RMAN對表進行時間點恢復(fù)的示例(確保你已經(jīng)對稍早的數(shù)據(jù)庫進行了完整備份):

RMAN> connect target "username/password as SYSBACKUP";
RMAN
> RECOVER TABLE username.tablename UNTIL TIME 'TIMESTAMP…'
AUXILIARY DESTINATION 
'/u01/tablerecovery'
DATAPUMP DESTINATION 
'/u01/dpump'
DUMP FILE 'tablename.dmp'
NOTABLEIMPORT 
-- this option avoids importing the table automatically.(此選項避免自動導(dǎo)入表)
REMAP TABLE 'username.tablename''username.new_table_name'-- can rename table with this option.(此選項可以對表重命名)

  重要提示:

  確保對于輔助數(shù)據(jù)庫在/u01文件系統(tǒng)下有足夠的可用空間,同時對數(shù)據(jù)泵文件也有同樣保證

  必須要存在一份完整的數(shù)據(jù)庫備份,,或者至少是要有SYSTEM相關(guān)的表空間備份

  以下是在RMAN中應(yīng)用表或分區(qū)恢復(fù)的限制和約束:

  SYS用戶表或分區(qū)無法恢復(fù)

  存儲于SYSAUX和SYSTEM表空間下的表和分區(qū)無法恢復(fù)

  當(dāng)REMAP選項用來恢復(fù)的表包含NOT NULL約束時,,恢復(fù)此表是不可行的

  10. 限制PGA的大小

  在Oracle 12c R1之前,沒有選項可以用來限制和控制PGA的大小,。雖然你設(shè)置某個大小為PGA_AGGREGATE_TARGET 的初始參數(shù),,Oracle會根據(jù)工作負載和需求來動態(tài)地增大或減小PGA的大小,。而在12c中,你可以通過開啟自動PGA管理來對PGA設(shè)定硬性限制,,這需要對PGA_AGGREGATE_LIMIT 參數(shù)進行設(shè)置,。因此,你現(xiàn)在可以通過設(shè)置新的參數(shù)來對PGA設(shè)定硬性限制以避免過度使用PGA,。

SQL> ALTER SYSTEM SET PGA_AGGREGATE_LIMIT=2G;
SQL
> ALTER SYSTEM SET PGA_AGGREGATE_LIMIT=0--disables the hard limit

  重要提示:

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

  原文鏈接:http://www./showcontent_74721.htm

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多