2008年06月16日

10升11g的讀書筆記

終於有空開始讀10g升11g的書了,開始記錄相關的重點了~~
想看我分享的google doc格式的話,請按這
http://docs.google.com/Doc?id=dccgk3s8_194pzbgkpfx

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
        • -g : 是查看gv$asm_client
      • 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';

Posted by my_work at 樂多Roodo! │22:25 │回應(2)引用(0)DB
樂多分類:網路/3C 共同主題:Oracle 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/6184145
回應文章

貓兄

佩服佩服
11g是圓的扁的,我都還沒搞清楚勒
以前的經驗
從7,8,8i upgrade到9i
我是用
1. exp/imp
2. TTS (Transportable Tablespaces)
沒用過dbua
現在要從9i upgrade到10g
DB大到不太可能用舊方法
可要好好研究一下dbua
有問題在跟您請教
Thanks
Posted by Willy at 2008年10月1日 21:56
有機會大家一起討論~~^^
Posted by 睡貓 at 2008年10月5日 01:03