10g升11g 讀書筆記
1、升級到11g
- dbca大致上跟10g沒有什差別,只有小部的差別:
- 假如你是使用template-driven 建立的database的話,Oracle SQL Developer將會自動安裝
- Oracle XML DB全自動建立
- Oracle Data Mining schema將不會自動建立,需要手動執行 catproc,sql
- 可選擇是否接受更安全的密碼管理方針
- ORACLE_BASE跟Oracle Cluster home不可指定相同的目錄,不然於安裝時會出現錯誤
- 先備份全部的資料
- 安裝一個新的11g的db,然後查看一下建立的script裡的新參數
- 查看sql.bsq的script,可以看到建立database的相關資訊
Any Oracle Version <= 9.0.1.4
| 除非先升級到10.2支援的path後,才能直接升到11g
|
Oracle 9.2.0.4 (or Higher)/10.1.0.2(or Higher)/10.2.0.1(or Higher)
| 可直接升級到11g
|
- 支援升級的方式
- DBCA(Database Upgrade Assistant),當你機器上有多個oracle時,執行 DBUA 時要注意執行的版本是否正確;也要記著上time zone patch,不然到時DBCA會回報錯誤
- log的目錄 $ORACLE_HOME/cfgtoollogs/dbua/db_name
- 重要的log檔
- UpgradeResults.html : 記錄 dbua 全部的訊習
- Trace.log : 記錄更詳訊的 dbua 資訊,任何的錯誤訊習也是在這裡
- Oracle_Server.log : 記錄比Trace.log中的錯誤更詳細的資訊
- Post_Upgrade.log : 記錄是否升級成於否
- 手動升級
- export/import
- Data copy
2、New Management Features
- ASM
- au Size:預設值為1mb,現在可以設定1m~64m
- compatible.rdbms : 預設值為10.1,不可設於低於預設值
- compatible.asm : 預設值為10.1
- disk_repair_time : 設定經過多長的時間點檢查不到遺失的disk時才進行修復的動作,值為0~136年。但要使用這個功能需要把compatible.rdbms、compatible.asm的值設為11.1 或更高的值才會生效。單位: H->小時;M->分。預設值為 3.6H
- 可查看 v$asm_attribute 就可看到現在的設定值
- 引入快速同步的功能: 主要是解決非hd壞損的突發情況,如跳電、diskarray抓不到,而導致有些asm group裡的disk無法讀取,這些disk的狀態將於 offline。在10g中,adm會自動把這些disk從disk group刪除,然後重新extent重建。如只是突發情況導致無法讀取的話,就可利用這個新功能設定經過多久的時間後才要進行刪除 offline 的disk動作,再進行 extent的重建動作。
- asm_preferred_read_failure_groups : 用於設定發生錯誤時,要優先讀取,語法如 alter system set asm_preferred_read_failure_groups = ASM_1.DISK1,ASM_2.DISK1
- start rolling migration : 從文字上來說就是滾動式的升級,在11g中可以一次升級一個asm中的node,而不必影響到其他的運作正常的asm,而達到oracle所說的不用停機完成升級版本。
- 進行中的asm node 的限制:
- 這段時間內只能mount和dismount disk group,無法做其他的操作
- 可修改檔案大小或刪除
- 可對disk group裡的檔案進行 open 或 close
- 限制存取存取view、packages。Global view是無法存取的
- 新的 SYSASM 角色 : 在10g中管理asm是需要用sysdba的角色才有權限管理,為了管理的分權上的問題,oracle再增加一個sysasm的角色專門給管理asm的人員,而不必擔心非相關的人有sysdba的權限。
- 新的asmcmd指令
- md_back:備份asm的實體分配資料,如目錄名稱。備份出來的檔案為文字檔,可直接觀看
- md_restore:還原mo_back出來的檔案
- lddsk:查看全部有效的asm disk
- remap:修復損壞的block,語法如下
- remap dgroup1 disk_001 200-400
- repair:
- ls : 增加 -c 和 -g
- -c : 是查看v$asm_diskgroup
- -g : 是查看gv$asm_diskgroup
- lsct :增加 -g
- lsdg :增加 -c 和 -g
- -c : 是查看v$asm_diskgroup
- -g : 是查看gv$asm_diskgroup
- Automatic Memory Management
- 提供了memory_target和memory_max_target,可讓dba脫離設定PGA、SGA大小的問題]
- memory_max_target : 是memory_target的上限值。如修改的話,需要重開db
- memory_target : 簡單的說就是 sga_target + pga_aggregate_target 的值,但這個值可以動態改變,而不需要重開db。注意有些linux平台並不支援,如不支援的話,會出現 ORA-00845 : MEMORY_TARGET not supported on this system.
- lock_sga不可跟memory_target跟memory_max_target一起用
- 新增一個 v$memory_target_advice view可查看 memory_target 的建議值;這些值將跟 AWR snapshots 收集的資訊有關
- v$memory_dynamic_components : 提供了 SGA 、PGA 的變動量記錄
- 失效的參數 : ddl_wait_for_locks 、 logmnr_max_persistent_sessions 、 plsql_compiler_flags
- undo_management 預設值為 auto ,不過也可自行設為手動
- ADDM (automated database diagnostic monitor) 新的功能
- 新增了一些view
- DBA_ADDM_TASKS : 保存著ADDM的作業資訊
- DBA_ADDM_INSTANCES : 只有現在instance-level 的ADDM資訊
- DBA_ADDM_FINDINGS : 提供更詳細的資訊
- DBA_ADDM_FDG_BREAKDOWN : 提供每個 instance 的ADDM資訊
- DBA_ADDM_SYSTEM_DIRECTIVES : 每個 DBA_* view都有對應一個USER_* view,但這個並沒有
- DBA_ADDM_TASK_DIRECTIVES:
- Database ADDM:主要是分析收集到的每個RAC node上面 AWR 資料,所以不像以前只能對單一個instance進行 ADDM,可額外收集到的資訊如下:
- Excessive use of global resources such as IO and global locks
- High-load SQL and resulting hot blocks
- Global cache interconnect traffice
- network latency issues
- skewing in instance response times
- 參數 set_default_task_parameter 控制是否要使用這個功能,選項有:
- UNUSE : 關畢 database ADDM ;語法
- exec dbms_advisor.set_default_task_parameter('ADDM','INSTANCES','UNUSED');
- Comma-separated list of instances : 只收集指定的 instance 的AWR;語法
- exec dbms_advisor.set_default_task_parameter('ADDM','INSTANCES','1,3'); 只有收集第1和第3的instances
- ALL : 開起 database ADDM ;語法
- exec dbms_advisor.set_default_task_parameter('ADDM','INSTANCES','ALL');
- 更詳細的分類
- 在 dba_advisot_findings 中,增加了 finding_name 的欄位,可明確的告知這類的問題、警告是那類的問題,如 "CPU Usage"
- 要查有多少 finding_name 的話,可查dba_advisor_finding_names table
- 可指定要過對那些OBJECT、SCHEMA不包含於ADDM中,可使用dbms_addm.{ insert_finding_directive | insert_parameter_directive | insert_segment_directove | insert_sql_directive}
- 如要刪除的話,可使用 dbms_addm.{delete_finding_directive | delete_parameter_directive | delete_segment_directive | delete_sql_directive}
- AWR (automated workload repository) 新的功能
- 11g預設值保留8天
- exec dbms_workload_repository.modify_baseline_windows_size(window_size => 30); window_size的值必需小於或等於 AWR 的保存日期,不然會得到 ORA-13541 的錯誤代碼
- AutoTask : 11g中提供了一個介面集中管理排程
- AutoTask Backgroup Process (ABP): 是由 MMON(memory monitor) 產生出多個 ABP ;如要看歴使資料可看 DBA_AUTOTASK_TASK view
- AutoTask clients : 產生client的資訊提供給 Segment Advisor和 Automatic SQL Tuning Advisor
- The AutoTask maintenance windows:
- resource manager : 資源管理
- OEM : 可由web介面新增、刪除、關畢、開起
- The Scheduler : 可排定時間執行
- AutoTask Dictionary Views
- DBA_SCHEDULER_* view在11g中已被DBA_AUTOTASK_* view 取代
- dbms_auto_task_admin package提供功能,如關畢的話,可使用 dbms_auto_task_admin.disable(client_name => 'auto optimizer stats collection',operation => NULL , window_name => NULL);
- window_name : 允許自定何時要停止;如寫sunday_window的話,就代表星期日將不行執行
- dbms_auto_task_admin.enable 的語法跟 disable 的一樣的,只是作用相反而已
- Parameter File Management Changes and New Features
- spfile 無法讀寫情況發生時,11g中可以選擇直接由記億體中直接產生;語法:
- create spfile from memory;
- 當參數下錯時,11g會提出建意值;如
- SQL> alter system set control_management_pack_access = 'Wrong_Value' scope=spfile;
alter system set control_management_pack_access = 'Wrong_Value' scope=spfile
*
Error at line 1:
ORA-00096 : invalid value Wrong_Value for parameter
control_management_pack_access , must be from among DIAGNOSTIC+TUNING,DIAGNOSTIC,NONE
- Resource Manager Changes And New Features
- 可測試 i/o 的效能;語法如
- Declare
v_max_iops PLS_INTEGER:=1;
v_max_mbps PLS_INTEGER:=1;
v_actual_latency PLS_INTEGER:=1;
begin
dbms_resource_manager.calibrate_io(
max_opps=>v_max_iops,
max_mbps=>v_max_mbps,
actual_latency=>v_actual_latency);
dbms_output.put_line('Resulte follow: ');
dbms_output.put_line('Max IOPS: '|| v_max_ops);
dbms_output.put_line('Max MBPS:'|| v_max_mbps);
dbms_output.put_line('Actual Latency: '||v_actual_latency);
end; - 可查看 v$io_calibration_status 是否在執行中/完成
- 可查看 dba_rsrc_io_calibrate 測試結果值
- resource manager 歴使資料存於 AWR
- 提供了控管i/o、cpu的功能
- switch_io_megabytes : 可使用的 i/o 量,預設值為 null ,就是不設限
- switch_io_reqs : 可讀寫的 i/o 量,預設值為 null ,就是不設限
- swithc_for_call : 如設為 true 的話,當執行完後會再回到原來的resource group
- mgmt_pl to mgmt_p8 : 代表cpu1~cpu8
- Finer-Grained Dependencies
- 11g加強分析物件之間的關連性,帶好的處理就是減少異動object時產生失效的object。如現在增加、減少欄位不一定會讓使用這個table的view失效,只要不是影響到架構
- DDL 等待情況上的改進 : 在10g時,如一筆資料尚未commit時,如這時做 DDL 動作時,將會回傳錯誤,而11g中將可執行,如:
session 1:
SQL>insert into test values (1);
1 row created.
session 2:
SQL>alter table test add (id2 number);
Table altered. - 增加欄位新特點 : 11g 可增加not null 和給於一個預設值,這時的預設值是存於database中,並不是存於table中,所以速度會變快很多,也只會發生少量的redo跟undo
- 可使用 events 1006 進行查看
SQL> alter session set events '10046 trace name context forever, level 16';
SQL> alter table emp add (id2 varchar2(1) default 'X' not null);
SQL> alter session set events '10046 trace name context off';
3、Oracle Database New Availability and Recovery Features
- Fault Diagnosability Infrastructure :
- The Automatic Diagnostic Repository (ADR) : 主要是再次把相關的資料庫資訊目錄再次規範,這時引入一個新的參數 diagnostic_dest ,11g中取消 user_dump_dest,core_dump_dest,backgroup_dump_dest。預設的 diagnostic_dest 是指向 $ORACLE_BASE,假如 $ORACLE_BASE 沒有設的話,就指向 $ORACLE_HOME
我們假設目錄為 /u01/oracle/diag/rdbms/mydb/MyInstanceName
這時的oracle_home為 /u01/oracle
ADR 的起始目錄 (root) 為 diag
product_type 為 rdbms
database name 為 mydb
instance name 為 MyInstanceName - ADR 在 rac 可自定每個node都有自已的ADR目錄,官方是建議共用一個 ADR 設定,這樣子可帶來每個node都可查看到全部node相關的資料
- 在MyInstanceName下面有幾個較重要的目錄
- alert : 11g中引入xml格式的alert log,所以也提供了對應的查尋的方式,不過也有保留舊的純文字log
- cdump : 跟以前相同
- trace : 跟以前相同
- incident : 跟以前相同
- 可查尋 v$diag_info 就可知道現在 ADR 的目錄配置情況
- Ths alert log
- 11g 提供另一種新的格式,是由xml組成的,主要是方便其他的工具進行分析
- 新的操作指令 : adrci
- 較常用的語法
- show alert -tail ;就跟 linux中的tail 功效相同
- show homes : 查看現在有多少個home
- set homepath xxxxxxx : 設定新的home為誰
- Trace , dump , and core files : 主要是配合 11g 中增強 metalink 的功能
- The Support Workbench :
- 提供多個操作介面,如有 Oracle Enterprise Manager 、 PL/SQL package dbms_hm 、 dbms_sqldiag.
- 把相關的check、ora-xxx 的錯誤訊習集中管理,並且提供較佳的介面可以查到較細節的錯誤。共有下列這幾種check
- Database Structure Integrity Check : 資料庫在open、mount時會自動檢查檔案是否損壞、遺失,但當資料庫是在nomount時,將只檢查controlfile
- Data Block Integrity Check : 檢查 image block是否有短錯誤,可在 V$DATABASE_BLOCK_CORRUPTION 看到較詳細的訊習
- Redo Integrity Check : 檢查 redo log file是否都可讀取
- Undo Segment Integrity Check : 查看logic undo 是否有錯誤,如有錯誤發現,oracle會試使用PMON(process monitor) 和 SMON (System Monitor)去recover 發生錯誤的交易(transaction),假如無法修覆的話,可查看 v$corrupt_xid_list 將會記錄,這是較偏向實體檔案方面
- Transaction Integrity Check : 跟undo segment integrity check很像,只是較偏向羅輯面,當transaction發生錯誤時,oracle會試著用PMON、SMON去修復,如無法的話,將可於 v$corrupt_xid_list 中查看的到
- Dictionary Integrity Check :檢查oracle最重要的 Dictionary 的object之間關連是否正確
- health check
- 模式一 : 被動式,固名思意,就是不是主動去檢查,只有當oracle發現在重大錯誤時,才會進行
- 模式二 : 手動式,由dba自行執行 dbms_hm PL/SQL 去執行檢查,或是由 OEM web介面進行檢查
- 資料庫在 open 、 mount的模式之下全部的check的選項都可執行;但在nomount時,只有特定的check才能執行,有 redo integrity check 、database structure integrity check
- 手動執行check時,可由 v$hm_check 查看到檢查記錄,如:
1、執行 Begin
dbms_hm.run_check('Dictionary Integrity Check','test_run');
End;
/
2、查看是否有在執行
select run_id,name from v$hm_run;
3、查看更進階的資訊 set long 10000 set longchunksize 1000 set pagesuze 1000 set linesize 512 dbms_hm.get_run_report('test_run');
|
- v$hm_run : 查看現在檢查的進度
- 也可使用adrci查看相關的訊習
- adrci >> set homepath diag/rdbms/oracle1/orcl
- adrci >> show report hm_run test_run
- ADR Command Interpreter (ADRCI) command-line utility
- Other ADR Contents
- RMAN New Features
- 平行備份 : 11g加強了平行備份的能力,因為以前的版本所指的平行備份是指多個channel可同時備份,但每個channel只能同時備份一個datafile。所以在11g,真的是支援到平行備份了,因為oracle會把單一大檔打散成多個channel中。但有好處也會帶來相對的問題,如是i/o本身就不強的情況下,使用平行備份反正有可能讓備份的速度變慢,主要是磁碟頭要不斷的來回走動,所以這是需要考量的。語法:
backup section size 300M tablespace user_data; - 壓縮備份 : 在11g中多提供了另一種壓縮格式 ZLIB ,10g是支援BZIP2 。如使用壓縮功能並沒有定議是要使用那種的話,就會採用ZLIB。如要手動指定的話,語法如:
configure compression algorithm 'ZLIB';
configure compression algorithm 'BZIP2';
ZLIB是吃cpu資源的,所以當系統是卡在cpu上面的話,可考慮採用 BZIP2。
- 複製database : 在11g以前要複製database時,需要備份現在的database,然後放至於目的地機器上,才能進行複製。而這次將不需要這樣子做,可以直接進行複製
- 大致的流程如下:
- create the oracle database directory structures
- create the password file for the auxiliary instance
- 建立password file ,如:orapwd file=pwdremote.ora password=remote_passwd。到時要配合 duplicate 指令用
- configure networking for the auxiliary instance
- 因為傳送是使用 Oracle Network Configuration ,所以要確保設定都正確
- 如:
- rman target=/ auxiliary=sys/remote_passwd@remote_oracle_sid
- duplicate target database to auxdb from active database spfile nofilenamecheck;
- 有網友提出,使用oracle內建的通訊協定來傳送檔案,並無法吃滿頻寬,也許可採用如nfs通訊協定來進衛複製。但使用oracle內建的好處就是不需要再次安裝第三方軟體跟設定了
- create the parameter file for the auxiliary instance
- 這是個選項,假如是要使用跟來源端一樣的設定的話,可直接複製來源端的spfile;相對的,也可自定新的db的相關參數
- start the auxiliary instance
- auxiliary instance 必需於 nomount
- 設定特定的備份檔保留時間
- 11g使用 keep ,取代 logs / nologs 。
- 主要用於特定的備份檔想要額外設定保留,而不受rman裡的設定configure retension policy to recovery window of 7 days;
- 如 backup datafile 1 keep forever,這就是datafile 1的備份檔永不過期,不受 delete obsolete
- backup failover for archived redo logs: 在備份時發生archived log file發生錯誤時,如有指定多個路徑存放的話,oracle會自動尋找可用的檔案備份
- 加強 archiveed redo log 刪除的策略
- 一般來說,只有falsh recovery area會自動進行刪除,而其他的archive log 將受 retention policy控管。現在11g提供了一個 all 的選項,並且也能管到standby的保留策略。
- recovery catalog 加強
- 增加二點:一是提供虛擬catalog以增加安全性,讓不相關的人只能看到所要的資訊,其二是提供 import catalog
- Undo backup 優化
- 假如 backup optimization 是設 on 的話,在備份undo tablespace時,只會備份還未 commit 的資料,已commit過的資料將不會備份
- Block Media Recovery 加強
- 11g 在修複 block 錯誤時,會先取得 flashback logs 進行修複(假如 flashback 是有開起),可以省下資料從backup set 或是從 tape 取得資料
- script 方面 : 在以前如要把變數帶入script的話,較通用的方法就是用script再產生要執行的script。現在11g提供變數的方法可以讓這件事更容易了
- 假如備份的script, rman_script.sh 內容為 backup database tag '&1' keep until time 'sysdate + 365' restore point '&2' plus archivelog;
配合 using 這樣子把參數傳入 rman target =rman/pass @'/rman/script/rman_script.sh' using my_tag my_point
- flashbadck transaction backout :
- 11g提供 dbms_flashback.transaction_backout 的方法,可由取消一個已commit過的交易資料
- 必需起動 supplemental logging
- alter database add supplemental log data;
- alter database add supplemental log data (primary key) columns;
- 使用者必需有權限執行 dbms_flashback 跟 select any transaction
- flashback data archives
- 跟falshback query非常相像,但底層的運作不太相同,flashback query是使用undo tablespace來實現,所以會有資料被覆蓋過去的問題,就算使用undo_retention,也只能拉長時間,並且undo tablespace使用空間將會非常大。所以11g,oracle提出一個新的flashback來解決個問題,他主要是把全部的資料記錄在指定的tablespace中,所以可以回查到任何時間點內的資料。多半用於交易記錄的需求上
- 授權 flashback archive administer 給於使用者
- 語法:
- create flashback archive default archive_one_year tablespace retention_archives quota 5G retention 1 year;
- create flashback archive archive_two_year tablespace retention_archives quota 1T retention 36 month;
- create table test_archive(id number) flashback archive archive_two_year;
- 刪除 flashacbk archive 上面的 table 時,需要先解除 flashback archive ,才能進行刪除
- alter table test_archive no flashback archive;
- drop table test_archive;
- standby database
- archive log 在傳送到standby database前,會自行壓縮後再行傳送
- standby database 現在可以開在 read-only 的情況下,而可進行查尋這些操作,oracle會自動接收 redo 的資訊,而不必人力介入
- snapshot database : 轉換成這種模式時,oracle會把database做一個標記,等日後轉換回來時用。這時的oracle還是會自動的接收 primary 送過來的 redo 資料,但並不會把 redo 的改變執行於 db 中。當從 snapshot database 轉回 standby database 時,這時oracle會把 database 的資料時間點轉換之前標記的時間點,然後自動的把這段時間內的 redo 資料變更於 db 中。
- Oracle Data Pump
- exp 在11g中不再支援,但imp還是會支援
- dump file 支援壓縮 : 語法
- expd system/passwd directory=dump_dir dumpfile=test.dump compression={ALL | metadata_only | data_only | none}
- metadata_only 是預設值
- 增強加密功能 : 語法
- expdp system/passwd directory=dump_dir dumpfile=test.dump encryption=all encryption_password=passwd encryption_algorithm=AES128 encryption_mode=password
- encryption_algorithm 支援 AES128 、 AES192 、 AES256
- encryption_mode 支援 dual 、 passwd 、 transparent
- remap_data
- 支援匯入時就修改為新的table名字
- exp時可使用reuse_dumpfile=y來覆蓋已存在的dump檔
4、Oracle Database Advisors
- database recovery advisor
- 11g引入了執行修復db的功能,可讓剛入門的dba可盡快解決問題
- rman增加的指令
- list failure detail : 可列出db錯誤的記錄
- advise failure : 可列出建議的解決方式,並且會把操作的流程寫在一個scritp中,這時你可手動執行產生出來的script
- repari failure : 執行oracle建議的解決方式,進行修複
- repair failure preview : 可模凝修複流程,但並不會真的執行
- change faulure xxx priority low : 設定 xxx 編號的錯誤優先等級為 low,但然了也可設為 high
- SQL Access Advisor
- 可選擇 index / materialized view / paration 進行建議
5、Oracle Database Change Management
- replay:可把正式區的運行流程的記錄下來,在測試的機器上進行重新執行,有下列幾種情況可以應用
- database upgrades : 資料庫升級後,進行效能測試
- database patch install : 安裝了patch後,進行效能測試
- RAC 增加、減一個node時,也可利用這功能進行效能測試
- os 平台改變
- 硬體改變,如cpu、ram、hd
- 使用這個功能,大約會影響效能4~5%,每個session大約會使用64k的空間記錄相關的操作
- 如是 rac 的架構下,記錄檔會寫於每個node之下,所以在replay時,需要放在一個地方讓測試環境都能讀寫的到那些檔案才行
- 手動執行 : dbms_workload_capture
- 支援
- all SQL operations including most with binds
- all long object (LOB) operations
- local transactions
- login and logoff
- session switching
- some PL/SQL remote procedure call
- 不支援
- direct path load operations
- oracle call-level interface (OCI)-base object navigation and REF binds
- streams and non-PL/SQL-based Advanced Querying (AQ)
- distributed transactions
- flashback operations
- shared server operations
- 分析重點
- 錯誤訊習
- 效能分析
- capture跟replay報表
- ADDM 報表
- ASH 報表
- AWR 報表
6、Oracle Database Security
- Auditing
- 11g中預設值是開起的,也可手動進門行關畢,設為 none 或 noadit
- 可監控的操作有
- alter any procedure
- alter any table
- alter database
- alter profile
- alter system
- alter user
- audit role by access
- audit system
- audit system by access
- create any job
- create any library
- create any procedure
- create any table
- create external job
- create public database link
- create session
- create user
- drop any procedure
- drop any table
- drop profile
- drop user
- exempt access policy
- grant any object privilege
- grant any privilege
- grant any role
- 如是升級到11g時,要注意system tablespace空間是否足夠,因為oracle會寫入audit相關的資料到 AUD$ 中
- passwords
- 可查看dba_users_with_defpwd找到密碼是預設值
- 檢查
- 是否密碼長度小於預設長度
- 密碼是否跟帳號相同
- 密碼長度是否跟帳號長度相同
- 密碼不可設為帳號從後往前寫的格式
- 密碥不可同於server name或server name後面加上1~100的數字。如 server_name1
- 密碼不可太過於簡單
- 密碼必需包一個字母符號跟一個數字
- 密碼區分大小寫
- 預設值是開起的,如需要關畢的話,需將 sec_case_sensitive_login 設為 false
- orapwd 建立密碼時,如需要開起密碼區分大小寫的話,需在建立密碼檔時加入 ignorecase = Y
- 密碼可使用特殊符號如 $、_、#
- 安全性
- 如連續輸入錯誤的話,oracle會延長再次login的時間,最長於10 sec
- 加網路try密碼的解決方案,是由 sec_protocol_error_further_action 設定,提供的有
- continue : 這是預設值,就不是進行任何處理
- dop : 去除使用者的登入權限
- deply : 延長使用者的再入登入的間隔時間,單位是秒
- 可定議要記錄於log中的等級,是由 sec_protocol_error_trace_action 提供,可使用的有
- none : 沒有動作
- trace : 預設值,寫入trace檔中
- log : 寫入alert log中
- alert : 由dba手動或oem中設定alert訊習
- sec_max_failed_login_attempts : 錯誤幾次後,將停止使用者登入,預設值為10
- sec_return_server_release_banner : 可設定不回傳oracle版本相關的訊習
- 預設值
- failed_login_attempts : 10
- password_grace_tme : 7 day
- password_life_time : 180
- password_lock_time : 1 day
- password_reuse_max : unlimited
- password_reuse_time : unlimited
- 安全性
- Fine-Grained Access Control (FGAC)
- tablespace encryption with transparent data encryption(TDE)
- undo 跟 temporary 不支援加密
- partition 支援混合式加密,也就是可部份partition加密,部份不進行加密
- BFILES(Binary file)跟external table不支援加密
- 加密可使用 3DES168 、 AES128 (default) 、 AES192 、 AES256
- [DBA | ALL | USER]_tablespaces 有新的欄位 ENCRYPTED 欄位可查尋是否有使用加密於否
- 可使用 alter table move 把加密的table移到非加密的tablespace中,table就會變成非加密型態,反之意思相同
- other TDE-related enhancements
- 加密功能也支援 Oracle Log Miner、logical standby database
- Oracle SECUREFILE LOBS
- 10g中提供的 LOBS 是BASICFILE ,在11G提供另一 LOBS,是 SECUREFILE
- 使用 hash index 可容易分辨出是否有多份相同資料存在
- 支援加密,可使用 3DES168 、 AES128 (default) 、 AES192 、 AES256
- 支援壓縮 ,可使用 "一般"、"高度"
- db_securefile 支援二種參數
- always: 假如無法建立成 SECUREFILE 的 LOBS 的話,將自動轉成建立 BASICFILE 的 LOBS
- force : 假如無法建立成 SECUREFILE 的 LOBS 的話,將回報錯誤
關畢 Automatic SQL Tuning
- STATISTICS_LEVEL to BASE
- trun off the AWR snapshots by using DBMS_WORKLOAD_REPOSITORY
- AWR retention is less than seven days
Automatic SQL Tuning Considerations
- Ad Hoc or rarely repeated SQL : 執行的次數非常的少
- Paralled queries
- Long-running queries ( post-profile ) : 執行時間非常的長
- recursive SQL statements
- DML ==> insert select or create table as select