<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    姿姿霸霸~~!
    貴在堅持!
    posts - 106,  comments - 50,  trackbacks - 0
    這兩天遇到客戶因為誤操作,將RAC環境下的所有共享存儲格式化掉了,客戶只有一個最近的RMAN的0級全備(無數據文件,無控制文件,無歸檔日志,無redo日志),需要幫忙恢復。將大致的恢復過程記錄一下。

    0.恢復共享存儲是第一步,給存儲原廠打電話,原廠推是os的問題,讓給os打電話,結果只能初始化了,最后只能恢復到被識別的狀態,一切從頭開始。

    1.因為集群軟件是裝在本地的,所以恢復rac的集群環境,只需要將ocr和vdisk重新配置一下,就可以了。可以執行root.sh腳本來進行重新的配置,如果中間報一個已經被配置過的提示,那就先用dd清除ocr和vdisk的信息,并刪除相應的目錄文件,如下:
    rm -rf /usr/tmp/.oracle /var/tmp/.oracle /tmp/.oracle /etc/oracle/* /var/opt/oracle/*  
    rm -rf /etc/init.cssd /etc/init.crs* /etc/init.evmd /etc/init.d/init.cssd /etc/init.d/init.crs  
    rm -rf /etc/init.d/init.crsd /etc/init.d/init.evmd /etc/rc3.d/K96init.crs /etc/rc3.d/S96init.crs  
    rm -rf /etc/rc.d/rc2.d/K96init.crs /etc/rc.d/rc2.d/S96init.crs

    2.恢復完集群環境之后,開始恢復數據庫。因為詢問到客戶有去年年底的一個RMAN的0級全備,以及控制文件的快照沒有放到共享存儲上,故可以采用重建控制文件+restore備份的方法來恢復。中途遇到很多問題,因為所有的日志備份均放到共享存儲下的,故這次恢復在recover的步驟時是沒有日志用來補充的。所以restore databse until 時間后,再recover,再alter database open resetlogs后,會報一個需要恢復數據文件的錯誤提示,操作的時候運氣不好,剛好遇到的是需要恢復datafile 1,再折騰了幾個小時候,終于發現按照正常的手段是行不通的.

    3.因為沒有日志,無法使得數據庫達到一致性,所以只有采取修改隱藏參數的辦法來忽略數據庫的不一致,來強行打開數據庫.先將數據庫打到mount狀態,在做完restore,recover之后,將隱藏參數修改 alter system set "_allow_resetlogs_corruption"=true scope=spfile;再shutdown數據庫,啟動到mount狀態之后,alter database open resetlogs; resetlogs打開數據庫后,運氣仍然不是太好,又遇到了ORA-00600 2662號的錯誤.

    4. 當使用修改_allow_resetlogs_corruption ,再打開數據庫時遇到了ORA-00600 2662號的錯誤, 如果SCN相差不多,可以通過多次重起數據庫解決 ,但是這次遇到的SCN相差很大(通過查v$datafile和v$datafile_header的CHECKPOINT_CHANGE#來判斷),這個時候只有再修改另外一個隱藏參數 _minimum_giga_scn來解決問題._minimum_giga_scn的作用是推進SCN號,該參數值的單位是billion,也就是說設置了該參數后,SCN號會變成XX* (1024*1024*1024) ,XX可以通過2662的幾個參數來確定. 2662后的參數[2662],[a],[b],[c],[d],[e]…[a] Current SCN WRAP,[b] Current SCN BASE,[c] dependent SCN WRAP,[d] dependent SCN BASE,[e] Where present this is the DBA where the dependent SCN came from.

    5.當修改了2個隱藏參數之后,數據庫終于能啟動了,但是alert日志還是會報一些600的錯誤,暫時忽略.用exp(expdp可能會報錯)將數據全部導出,重建新的實例,再用imp導入數據到新的庫中.exp的時候需要注意一個參數compress,這個參數可以降低HWM,使的imp的時候,時間相對盡量少一些.
    posted @ 2012-04-12 00:24 xrzp 閱讀(399) | 評論 (0)編輯 收藏
    早上做個實驗,update數據的時候報錯ora-30036:無法按8擴展段(在還原表空間‘undotbs_new’中)

    1.查詢了一下undo表空間的使用,發現已經超過了80%
    SELECT a.tablespace_name as tablespace_name,
           to_char(b.total
    /1024/1024,999999.99as Total,
           to_char((b.total
    -a.free)/1024/1024,999999.99as Used,
           to_char(a.free
    /1024/1024,999999.99as Free,
           to_char(
    round((total-free)/total,4)*100,999.99as Used_Rate
    FROM (SELECT tablespace_name, sum(bytes) free FROM DBA_FREE_SPACE GROUP BY tablespace_name) a,
         (
    SELECT tablespace_name, sum(bytes) total FROM DBA_DATA_FILES GROUP BY tablespace_name ) b
    WHERE a.tablespace_name=b.tablespace_name
      
    AND a.tablespace_name='UNDOTBS_NEW'
    ORDER BY a.tablespace_name;

    2.將undo表空間大小重新加大點,解決問題~
    alter database datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\SUREDD\UNTOTBS_NEW_01.DBF' resize 2048M;
    posted @ 2011-11-07 10:30 xrzp 閱讀(18092) | 評論 (0)編輯 收藏
    v$sqltext:存儲的是完整的SQL,SQL被分割
    v$sqlarea:存儲的SQL 和一些相關的信息,比如累計的執行次數,邏輯讀,物理讀等統計信息.v$sqlarea 忽略了執行計劃等差異,只是在形式上sql文本看起來一樣.相當于做了個聚合,是多個不同執行計劃的sql的聚合和累計信息 
    v$sql:存儲的是具體的SQL 和執行計劃相關信息,v$sqlarea 可以看做 v$sql 根據 sqltext 等 做了 group by 之后的信息
    v$sql_plan:代表了具體的sql的執行計劃,通過下面3個字段做連接(與v$sql)
    ADDRESS RAW(4),HASH_VALUE NUMBER,CHILD_NUMBER NUMBER
    posted @ 2011-11-07 00:00 xrzp 閱讀(358) | 評論 (0)編輯 收藏
    這幾天安裝oracle,檢查包的時候,發現一些包沒有裝上,使用rpm來裝的時候,又發現包的依耐性很重,所以就搭建一個本地的源,使用yum install來安裝.

    1.掛載安裝介質 
    mount /dev/cdrom /mnt/cdrom

    如果是實體機:
    mount 
    -o loop  鏡像所在目錄  掛載點

    2.vi /etc/yum.repos.d/server.repo
    [dange]                                        #隨意填
    name
    =red hat                                   #隨意填
    baseurl
    =file:///mnt/cdrom/RedHat/Server        #光盤掛載,Server目錄所在路徑
    enable
    =1                                       #yum開關
    gpgcheck
    =1                                     #是否檢查密鑰
    gpgkey
    =file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release      #密鑰所在地

    3.如果安裝軟件包提示沒有key的話導入key
    cd /mnt/cdrom
    rpm 
    --import  RPM-GPG-KEY-redhat-release   //安裝驗證文件,導入key
    yum list                                   //列出倉庫中的所有軟件,查看yum是否搭建成功
    yum clean  
    all                             //清空yum倉庫

    4.OK,可以直接使用yum install了
    posted @ 2011-10-20 09:22 xrzp 閱讀(418) | 評論 (0)編輯 收藏
    1.現象:裝clusterware,執行第二個腳本的時候可能會報錯
    Running vipca(silent) for configuring nodeapps
    /u01/app/oracle/crs/jdk/jre//bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory


    2. 解決方案:分別修改 $CRS_HOME/bin 目錄下的srvctl和vipca文件,在vipca文件ARGUMENTS=""行之前和srvctl文件的export LD_ASSUME_KERNEL行之后增加 unset LD_ASSUME_KERNEL 語句.
     修改之后再用root用戶執行vipca就可以了.
    posted @ 2011-10-16 23:31 xrzp 閱讀(321) | 評論 (0)編輯 收藏
    Mount Options for Oracle files when used with NAS devices [ID 359515.1]

     修改時間 23-SEP-2011     類型 BULLETIN     狀態 PUBLISHED 

    In this Document
      Purpose
      Scope and Application
      Mount Options for Oracle files when used with NAS devices
         RAC  
          Single Instance
      References


     

     

    Applies to:

    Oracle Server - Enterprise Edition - Version: 10.1.0.2 to 11.2.0.2 - Release: 10.1 to 11.2
    Information in this document applies to any platform.
    Oracle Clusterware, Oracle Real Application Clusters, NAS

    Purpose

    The purpose of this bulletin is to document the options with which the NAS systems should be mounted. This note does not cover the new dNFS feature that was introduced in 11g.

    Scope and Application

    This document is relevant to all environments using Oracle Clusterware & RAC. 

    Mount Options for Oracle files when used with NAS devices

    RAC  


    In the table below 
    • Binaries is the shared mount points where the Oracle Home and CRS_HOME is installed.
    • Datafiles includes Online Logs, Controlfile and Datafiles
    • nfsvers and vers are identical on those OS platforms that has nfsvers.  The ver option is an alternative to the nfsvers option. It is included for compatibility with other operating systems
    • Please note that the mount options on each of the following cells are applicable only to those type of files listed in the column heading.
    • For RMAN backup sets, image copies, and Data Pump dump files, the "NOAC" mount option should not be specified - that is because RMAN and Data Pump do not check this option and specifying this can adversely affect performance. 

    Operating System

    Mount options for    Binaries ##

    Mount options for Oracle DatafilesMount options for CRS Voting Disk and OCR
    Sun Solaris *

    rw,bg,hard,nointr,rsize=32768,
    wsize=32768,proto=tcp,noac,

    vers=3,suid

    rw,bg,hard,nointr,rsize=32768,
    wsize=32768,proto=tcp,noac,
    forcedirectio, vers=3,suid
    rw,bg,hard,nointr,rsize=32768,
    wsize=32768,proto=tcp,vers=3,
    noac,forcedirectio
    AIX (5L) **

    rw,bg,hard,nointr,rsize=32768,
    wsize=32768,proto=tcp,

    vers=3,timeo=600

    cio,rw,bg,hard,nointr,rsize=32768,
    wsize=32768,proto=tcp,noac,
    vers=3,timeo=600

    cio,rw,bg,hard,intr,rsize=32768,
    wsize=32768,tcp,noac,
    vers=3,timeo=600

    HPUX 11.23 ***  --rw,bg,vers=3,proto=tcp,noac,
    hard,nointr,timeo=600,
    rsize=32768,wsize=32768,suid
    rw,bg,vers=3,proto=tcp,noac,
    forcedirectio,hard,nointr,timeo=600,
    rsize=32768,wsize=32768,suid
    rw,bg,vers=3,proto=tcp,noac,
    forcedirectio,hard,nointr,timeo=600
    ,rsize=32768,wsize=32768,suid
    WindowsNot SupportedNot SupportedNot Supported
    Linux x86
    #
    ****

    rw,bg,hard,nointr,rsize=32768,
    wsize=32768,tcp, vers=3,
    timeo=600, actimeo=0

    rw,bg,hard,nointr,rsize=32768,
    wsize=32768,tcp,actimeo=0,
    vers=3,timeo=600

    rw,bg,hard,nointr,rsize=32768,
    wsize=32768,tcp,noac,actimeo=0,
    vers=3,timeo=600

    Linux x86-64 #
    ****
    rw,bg,hard,nointr,rsize=32768,
     wsize=32768,tcp,vers=3,
    timeo=600, actimeo=0
    rw,bg,hard,nointr,rsize=32768, 
    wsize=32768,tcp,actimeo=0, 
    vers=3,timeo=600
    rw,bg,hard,nointr,rsize=32768, 
    wsize=32768,tcp,noac,vers=3,
    timeo=600,actimeo=0
    Linux - Itaniumrw,bg,hard,nointr,rsize=32768, 
    wsize=32768,tcp,vers=3,
    timeo=600, actimeo=0
    rw,bg,hard,nointr,rsize=32768, 
    wsize=32768,tcp,actimeo=0, 
    vers=3,timeo=600
    rw,bg,hard,nointr,rsize=32768, 
    wsize=32768,tcp,noac,vers=3,
    timeo=600,actimeo=0

    * NFS mount option “forcedirectio” is required on Solaris platforms when mounting the OCR/CRS files when using Oracle 10.1.0.4 or 10.2.0.2 or later (Oracle unpublished bug 4466428) 
    ** AIX is only supported with NAS on AIX 5.3 TL04 and higher with Oracle 10.2.0.1 and later (NetApp) 
    *** NAS devices are only supported with HPUX 11.23 or higher ONLY 
    **** As per BUG 11812928, the 'intr' & 'nointr' are deprecated in OEL 5.6 kernels and up including Oracle Linux 6. It is harmless to still include it, but the "NFS: ignoring mount option: nointr" will appears. This message can be ingnored.


    # These mount options are for Linux kernels 2.6 and above for older kernels please check Note 279393.1

    Due to Unpublished bug 5856342, it is necessary to use the following init.ora parameter when using NAS with all versions of RAC on Linux (x86 & X86-64 platforms) until 10.2.0.4. This bug is fixed and included in 10.2.0.4 patchset.
    filesystemio_options = DIRECTIO

     Single Instance

     

    Operating System

    Mount options for BinariesMount options for Oracle Datafiles
    Sun Solaris *
    (8, 9, 10)

    rw,bg,hard,rsize=32768,wsize=32768,vers=3,nointr,proto=tcp,suid

    rw,bg,hard,rsize=32768,wsize=32768,vers=3,[forcedirectio or llock],nointr,proto=tcp,suid
    AIX (5L) **

    rw,bg,hard,rsize=32768,wsize=32768,vers=3,intr,timeo=600,proto=tcp

    rw,bg,hard,rsize=32768,wsize=32768,vers=3,cio,intr,timeo=600,proto=tcp

    HPUX 11.23 ****rw,bg,hard,rsize=32768,wsize=32768,vers=3,nointr,timeo=600,proto=tcp,suidrw,bg,hard,rsize=32768,wsize=32768,vers=3,nointr,timeo=600,proto=tcp, suid, forcedirectio
    WindowsNot SupportedNot Supported
    Linux x86
    #
    rw,bg,hard,rsize=32768,wsize=32768,vers=3,nointr,timeo=600,tcprw,bg,hard,rsize=32768,wsize=32768,vers=3,nointr,timeo=600,tcp,actimeo=0*
    Linux x86-64 #rw,bg,hard,rsize=32768,wsize=32768,vers=3,nointr,timeo=600,tcprw,bg,hard,rsize=32768,wsize=32768,vers=3,nointr,timeo=600,tcp,actimeo=0*
    Linux - Itaniumrw,bg,hard,rsize=32768,wsize=32768,vers=3,nointr,timeo=600,tcprw,bg,hard,rsize=32768,wsize=32768,vers=3,nointr,timeo=600,tcp

     

    * actime=0 or noac can be used


    References

    http://now.netapp.com/Knowledgebase/solutionarea.asp?id=kb7518
    http://linux.oracle.com/pls/apex/f?p=102:2:3947951439689189::NO::P2_VC_ID:424

    顯示相關信息 相關內容


    產品
    • Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Enterprise Edition
    關鍵字
    CLUSTERWARE; CRS; NAS; NETAPP
    錯誤
    KCCCHB_3; ORA-600[KCCCHB_3]

    posted @ 2011-10-16 23:16 xrzp 閱讀(1544) | 評論 (0)編輯 收藏
    1.檢查時區:
    檢查/etc/sysconfig/clock設置:
    ZONE
    ="Asia/Shanghai"(Linux會拷貝/usr/share/zoneinfo/Asia/Shanghai 到/etc/locatime作為本地時區,如果我們需要改變時區,那么只需要修改/etc/sysconfig/clock,并且將對應的/usr/share/zoneinfo/Asia的時區文件拷貝成/etc/localtime即可)
    UTC
    =false
    ARC
    =false

    2.安裝NTP包:
    rpm -ivh ntp-xxxxxx.rpm
    或者:
    yum install ntp

    3.編輯/etc/ntp.conf文件:
    服務端:
    server 
    127.127.1.0
    fudge 
    127.127.1.0 stratum 11
    driftfile 
    /var/lib/ntp/drift
    broadcastdelay 
    0.008
    客戶端:
    server 
    192.168.0.11 prefer #192.168.0.11為服務端的ip地址
    driftfile 
    /var/lib/ntp/drift
    broadcastdelay 
    0.008

    4.重啟ntp服務:
    service ntpd restart

    5.等待5分鐘,測試客戶端更新時間:
    ntpdate 192.168.0.11 
    Oct 
    16 21:09:28 ntpdate[8316]: step time server 192.168.0.11  offset -1791.709393 sec

    6.在客戶端將更新時間加入crontab:
    (1).cp /usr/sbin/ntpdate /usr/bin/
    (
    2).crontab –e
    加入
    */1 * * * * /usr/sbin/ntpdate 192.168.0.11 ; hwclock –w

    7.加入自啟動
    chkconfig ntpd on
    posted @ 2011-10-16 23:14 xrzp 閱讀(424) | 評論 (0)編輯 收藏

    gunzip xxx.cpio.gz

    cpio -idcmv < xxx.cpio

    posted @ 2011-10-16 23:02 xrzp 閱讀(464) | 評論 (1)編輯 收藏
    1.查看版本
    crsctl query crs softwareversion
    crsctl query crs activeversion
    2.管理
    srvctl start nodeapps -<node1 hostname> 
    srvctl start nodeapps 
    -<node2 hostname> 
    srvctl start asm 
    -<node1 hostname> 
    srvctl start asm 
    -<node2 hostname> 
    srvctl start 
    database -<database name> 
    srvctl start service 
    -<database name> -<service name> 
    crs_stat 
    -t

    srvctl stop service 
    -<database name> -<service name> 
    srvctl stop 
    database -<database name> 
    srvctl stop asm 
    -<node1 hostname> 
    srvctl stop asm 
    -<node2 hostname> 
    srvctl stop nodeapps 
    -<node1 hostname> 
    srvctl stop nodeapps 
    -<node2 hostname> 
    crs_stat 
    -
    posted @ 2011-10-16 23:01 xrzp 閱讀(264) | 評論 (0)編輯 收藏
    當服務器沒有裝圖形化界面的時候,如不能使用xhost之類的命令,就不能使用vnc了,那這個時候可以使用xmanager來代替

    1.網上可以下載一個xmanager企業版,下載完后打開Xbrowser,在help-->about Xbrowser中輸入注冊碼

    2.在服務器端
    DISPLAY=192.168.X.X:0.0
    export DISPLAY
    echo $DISPLAY

    3.使用xmanager的xshell來打開圖形化界面.(有可能會提醒運行一個rootpre之類的腳本)
    posted @ 2011-10-14 01:35 xrzp 閱讀(513) | 評論 (0)編輯 收藏
    在Redhat5之前通過/etc/sysconfig/rawdevices配置raw的控制文件,通過/etc/init.d/rawdevices來管理raw設備的啟動和關閉.
    在Redhat5之后,需要編輯/etc/udev/rules.d/60-raw.rules 這個文件.
    1.假設已經把一個硬盤新建了幾個區
    fdisk -l /dev/sdc
    /dev/sdc1
    /dev/sdc2
    /dev/sdc3

    2.修改/etc/udev/rules.d/60-raw.rules
    添加:
    ACTION=="add", KERNEL=="sdc1",RUN+="/bin/raw /dev/raw/raw1 %N"
    ACTION=="add", KERNEL=="sdc2",RUN+="/bin/raw /dev/raw/raw2 %N"
    ACTION=="add", KERNEL=="sdc3",RUN+="/bin/raw /dev/raw/raw3 %N"
    假設這個設備是給oracle用的,那再加上權限
    KERNEL=="raw[1-3]*", NAME="raw/%k" OWNER="oracle" GROUP="oinstall", MODE="0660"

    3.修改完之后重啟服務
    start_udev

    4.查看
    raw -qa 或者 ls -lrt /dev/raw/

    5.取消映射
     raw /dev/raw/rawX 0 0 
    posted @ 2011-10-14 01:28 xrzp 閱讀(451) | 評論 (0)編輯 收藏
    1.停止數據庫 
    2.停止Listener 
    3.用su或者重新登錄到root將oracle安裝目錄刪除 
    4.將/usr/bin下的文件刪除(刪除這三個文件后,Oracle就不能使用了) 
     rm /usr/local/bin/dbhome 
     rm /usr/local/bin/oraenv 
     rm /usr/local/bin/coraenv 
    5.將/etc/oratab刪除 
    6.將/etc/oraInst.loc刪除 
    7.將oracle用戶刪除(若要重新安裝,可以不刪除) 
    8.將用戶組刪除(若要重新安裝,可以不刪除)
    posted @ 2011-10-14 01:22 xrzp 閱讀(352) | 評論 (1)編輯 收藏
    做一個awr報告,在Load Profile可以查看到每秒的redo size(單位是byte),而redo log一般切換時間是1小時2-3次,按照3次來計算,就是20分鐘切換一次,所以redo log的大小就 = (redo size per second) * 60 * 20.
    如果不能做awr報告,就去查看alert日志,看日志的切換頻率,根據切換的頻率來確定redo log的大小.

    可能會用到的sql語句:
    select * from v$logfile;
    select * from v$log;
    alter database add logfile group x ('F:\oraredolog\REDO0x.LOG') size xxxM;
    alter database drop logfile group x;
    alter system switch logfile;
    alter system checkpoint;
    posted @ 2011-10-10 13:34 xrzp 閱讀(634) | 評論 (0)編輯 收藏
    在虛擬機上起動系統的時候,每次都發現Sendmail服務很費時間,決定將其關閉了,反正也沒怎么用.
    1.關閉sendmail服務
    [root@node1 ~]# /etc/rc.d/init.d/sendmail stop
    Shutting down sm-client:                                 [  OK  ]
    Shutting down sendmail:                                    [  OK  ]

    2.關閉sendmail自啟動
    [root@node1 ~]# chkconfig sendmail off

    3.
    確認sendmail自啟動已被關閉
    [root@node1 ~]#  chkconfig --list sendmail
    sendmail        0:off   1:off   2:off   3:off   4:off   5:off   6:off
    posted @ 2011-10-10 11:36 xrzp 閱讀(363) | 評論 (0)編輯 收藏
    V9.7中提供了更簡單易用的降低高水位標記功能。只需要使用ALTER TABLESPACE命令就可以達到效果。同時DB2還提供了兩個表函數MON_GET_TABLESPACE和MON_GET_EXTENT_MOVEMENT_STATUS來獲取和監控表空間以及數據塊移動信息。

    1.MON_GET_TABLESPACE語法
    MON_GET_TABLESPACE--(--tbsp_name--,--member--)
    tbsp_name是表空間對象,如果是空值,則會對所有的表空間操作。member的默認輸入是-1,指當前成員,如果是-2,則是所有數據庫成員。這個函數的返回值說明:
    tbsp_name:表空間名
    tbsp_type:表空間類型
    tbsp_state:表空間狀態
    tbsp_used_pages:已使用頁
    tbsp_free_pages:空閑頁
    tbsp_total_pages:總頁
    tbsp_page_top:高水位標記頁
    reclaimble_space_enabled:值1代表可回收空間
    select * from table(MON_GET_TABLESPACE(null,-2));

    2.獲取表空間信息
    SELECT varchar(tbsp_name, 16as tbsp_name,
           RECLAIMABLE_SPACE_ENABLED,
           TBSP_USED_PAGES,
           TBSP_FREE_PAGES,
           TBSP_PAGE_TOP
      
    from TABLE(MON_GET_TABLESPACE(''-2)) AS t
     
    where t.TBSP_PAGE_TOP > t.TBSP_USED_PAGES
    該語句篩選出了所有高水位標記大于已使用頁的表空間

    3.ALTER TABLESPACE 語法
    ALTER TABLESPACE--tablespace-name----------------------------> >----+-REDUCE--+-------------------------------+--+-----------------------------+-+ | +-| database-container-clause |-+ '-| on-db-partitions-clause |-' | | +-| all-containers-clause |-----+ | | +-MAX---------------------------+ | | +-STOP--------------------------+ | | '-integer--+---------+----------' | | +-K-------+ | | +-M-------+ | | +-G-------+ | | '-PERCENT-' | +-LOWER HIGH WATER MARK--+------+--------------------------------------------+ | '-STOP-' | '----------------------------------------------------------------------------'
    MAX參數可以指定最大限度的降低高水位標記來釋放空間。在運行REDUCE命令后,在數據塊移動的過程中,也可以使用STOP參數來停止表空間移動。如果是DMS表空間,則需要先運行LOWER HIGH WATER MARK子句降低高水位標記,再運行REDUCE子句釋放表空間。如果是啟用了自動存儲的表空間,直接運行REDUCE子句即可。
    自動存儲表空間
    ALTER TABLESPACE REDUCE 100 M(MAX)
    DMS 表空間
    ALTER TABLESPACE LOWER HIGH WATER MARK ALTER TABLESPACE REDUCE (ALL CONTAINERS 10 M(MAX)) 

    4.MON_GET_EXTENT_MOVEMENT_STATUS語法
    MON_GET_EXTENT_MOVEMENT_STATUS--(--tbsp_name--,--member--)
    tbsp_name 是表空間對象,如果是空值,則會對所有的表空間操作。member 的默認輸入是 -1,指當前成員,如果是 -2,則是所有數據庫成員。這個函數的返回值說明:
    tbsp_name:表空間名
    tbsp_id:表空間id
    member:成員
    current_extent:當前正在移動數據塊
    last_extent:最后移動的數據塊
    num_extents_moved:已移動的數據塊
    num_extents_left:未移動的數據塊
    total_move_time:總移動時間(微秒)

    5.監視表空間的移動
    SELECT varchar(tbsp_name, 20as tbsp_name,
           NUM_EXTENTS_MOVED,
           NUM_EXTENTS_LEFT,
           TOTAL_MOVE_TIME
      
    from TABLE(MON_GET_EXTENT_MOVEMENT_STATUS('TBS1'-2)) AS t

    6.驗證高水位標記的降低
    SELECT varchar(tbsp_name, 16as tbsp_name,
           BSP_USED_PAGES,
           TBSP_FREE_PAGES,
           TBSP_PAGE_TOP
      
    from TABLE(MON_GET_TABLESPACE('TBS1'-2)) AS t
    posted @ 2011-10-08 10:20 xrzp 閱讀(2944) | 評論 (1)編輯 收藏
    1.查看表空間信息
    使用list tablespaces show detail
    需要關注的幾個參數
    Tablespace ID:db2dart工具需要以這個ID作為參數
    表的類型:只有DMS管理的表空間才有HWM的標記屬性
    Used pages和High water mark:如果相等,說明高水位標記下沒有空閑頁可以被釋放
    2.查看HWM標記信息
    使用db2dart dbname /DHWM /TSI tbsid
    3.降低高水位標記建議
    使用db2dart dbname /LHWM /TSI tbsid /NP 0
    posted @ 2011-10-08 09:52 xrzp 閱讀(347) | 評論 (0)編輯 收藏
    1.對索引結構進行統計
    1.1analyze index indexname validate structure
    聯機文檔的原文:Specify VALIDATE STRUCTURE to validate the structure of the analyzed object. 
    The statistics collected by this clause are not used by the Oracle Database optimizer, as are statistics collected by the COMPUTE STATISTICS and ESTIMATE STATISTICS clauses.
    For an index, Oracle Database verifies the integrity of each data block in the index and checks for block corruption. This clause does not confirm that each row in the table has an index entry or that each index entry points to a row in the table. You can perform these operations by validating the structure of the table with the CASCADE clause.
    這個命令主要是用來分析索引的數據塊是否有壞塊,以及根據分析得到的數據(存放在index_stats)來判斷索引是否需要重新建立。
    1.2 validate structure有二中模式:online, offline, 默認是offline模式。
    聯機文檔原文:
    Specify ONLINE to enable Oracle Database to run the validation while DML operations are ongoing within the object. The database reduces the amount of validation performed to allow for concurrency.
    Specify OFFLINE, to maximize the amount of validation performed. This setting prevents INSERT, UPDATE, and DELETE statements from concurrently accessing the object during validation but allows queries. This is the default.
    Restriction on ONLINE
    You cannot specify ONLINE when analyzing a cluster or index.
    Note:
    When you validate the structure of an object ONLINE, Oracle Database does not collect any statistics, as it does when you validate the structure of the object OFFLINE.
    以offline模式分析時,會對表加一個4級別的鎖(表共享),對run系統可能造成一定的影響。
    而online模式則沒有表lock的影響,但當以online模式分析時, 在視圖index_stats沒有統計信息。
    2.對索引狀態進行統計
    analyze index indexname compute statistics
    聯機文檔原文:
    COMPUTE STATISTICS instructs Oracle Database to compute exact statistics about the analyzed object and store them in the data dictionary. When you analyze a table, both table and column statistics are collected.
    Both computed and estimated statistics are used by the Oracle Database optimizer to choose the execution plan for SQL statements that access analyzed objects. These statistics may also be useful to application developers who write such statements.
    Column statistics appear in the data dictionary views USER_TAB_COLUMNS, ALL_TAB_COLUMNS, and DBA_TAB_COLUMNS. Histograms appear in the data dictionary views USER_TAB_HISTOGRAMS, DBA_TAB_HISTOGRAMS, and ALL_TAB_HISTOGRAMS; USER_PART_HISTOGRAMS, DBA_PART_HISTOGRAMS, and ALL_PART_HISTOGRAMS; and USER_SUBPART_HISTOGRAMS, DBA_SUBPART_HISTOGRAMS, and ALL_SUBPART_HISTOGRAMS.
    總的來說,compute statistics是用來統計index的分析信息,來為CBO服務的。9i之后推薦使用dbms_stats。
    ps:
    for table的統計信息存在于視圖:user_tables 、all_tables、dba_tables
    for all indexes的統計信息存在于視圖: user_indexes 、all_indexes、dba_indexes
    for all columns的統計信息存在于試圖:user_tab_columns、all_tab_columns、dba_tab_columns
    3.一些sample
    3.1使用validate structure分析一個索引是否需要重建
    (1)analyze index index_name validate structure;
    (2)select t.del_lf_rows_len /t.lf_blk_len from index_stats t where t.name = &index_name;
    (3)如果結果大于20%,index就需要被rebuild了。
    4.對于分區表,建議使用DBMS_STATS,而不是使用Analyze語句。
    (1)可以并行進行,對多個用戶,多個Table
    (2)可以得到整個分區表的數據和單個分區的數據。
    (3)可以在不同級別上Compute Statistics:單個分區,子分區,全表,所有分區
    (4)可以導出統計信息
    (5)可以用戶自動收集統計信息
    5.DBMS_STATS的缺點
    (1)不能Validate Structure
    (2)不能收集CHAINED ROWS, 不能收集CLUSTER TABLE的信息,這兩個仍舊需要使用Analyze語句。
    (3)DBMS_STATS 默認不對索引進行Analyze,因為默認Cascade是False,需要手工指定為True
    6.對于oracle 9里面的External Table,Analyze不能使用,只能使用DBMS_STATS來收集信息。
    posted @ 2011-09-13 10:31 xrzp 閱讀(380) | 評論 (0)編輯 收藏
    事務隔離級別:一個事務對數據庫的修改與并行的另一個事務的隔離程度。
    兩個并發事務同時訪問數據庫表相同的行時,可能存在以下三個問題:
    1、幻想讀:事務T1讀取一條指定where條件的語句,返回結果集。此時事務T2插入一行新記錄,恰好滿足T1的where條件。然后T1使用相同的條件再次查詢,結果集中可以看到T2插入的記錄,這條新紀錄就是幻想。
    2、不可重復讀取:事務T1讀取一行記錄,緊接著事務T2修改了T1剛剛讀取的記錄,然后T1再次查詢,發現與第一次讀取的記錄不同,這稱為不可重復讀。
    3、臟讀:事務T1更新了一行記錄,還未提交所做的修改,這個T2讀取了更新后的數據,然后T1執行回滾操作,取消剛才的修改,所以T2所讀取的行就無效,也就是臟數據。
    為了處理這些問題,SQL標準定義了以下幾種事務隔離級別

    Oracle數據庫支持READ COMMITTED 和 SERIALIZABLE這兩種事務隔離級別。Oracle不支持臟讀。

    SQL標準所定義的默認事務隔離級別是SERIALIZABLE,但是Oracle 默認使用的是READ COMMITTED 設置隔離級別使用
    SET TRANSACTION ISOLATION LEVEL
    [READ UNCOMMITTED|READ COMMITTED|REPEATABLE READ|SERIALIZABLE]
    posted @ 2011-08-15 12:03 xrzp 閱讀(324) | 評論 (0)編輯 收藏
    1.概念設計:對用戶要求描述的現實世界(可能是一個工廠、一個商場或者一個學校等),通過對其中住處的分類、聚集和概括,建立抽象的概念數據模型。這個概念模型應反映現實世界各部門的信息結構、信息流動情況、信息間的互相制約關系以及各部門對信息儲存、查詢和加工的要求等。所建立的模型應避開數據庫在計算機上的具體實現細節,用一種抽象的形式表示出來。以擴充的實體—(E-R模型)聯系模型方法為例,第一步先明確現實世界各部門所含的各種實體及其屬性、實體間的聯系以及對信息的制約條件等,從而給出各部門內所用信息的局部描述(在數據庫中稱為用戶的局部視圖)。第二步再將前面得到的多個用戶的局部視圖集成為一個全局視圖,即用戶要描述的現實世界的概念數據模型。   

    2.邏輯設計:主要工作是將現實世界的概念數據模型設計成數據庫的一種邏輯模式,即適應于某種特定數據庫管理系統所支持的邏輯數據模式。與此同時,可能還需為各種數據處理應用領域產生相應的邏輯子模式。這一步設計的結果就是所謂“邏輯數據庫”。

    3.物理設計:
    根據特定數據庫管理系統所提供的多種存儲結構和存取方法等依賴于具體計算機結構的各項物理設計措施,對具體的應用任務選定最合適的物理存儲結構(包括文件類型、索引結構和數據的存放次序與位邏輯等)、存取方法和存取路徑等。這一步設計的結果就是所謂“物理數據庫”。

    4.三者關系:由上到下,先要概念設計,接著邏輯設計,再是物理設計,一級一級設計。
    posted @ 2011-08-03 00:28 xrzp 閱讀(354) | 評論 (0)編輯 收藏
    直接alter index xxx rebuild tablespace xxx 不得行.
    要醬紫,移動表的時候順帶一起移動:
     ALTER TABLE 表名 MOVE
      TABLESPACE 新表空間
      LOB (字段名) STORE 
    AS 
      (TABLESPACE 新表空間  );
    posted @ 2011-07-13 15:02 xrzp 閱讀(314) | 評論 (0)編輯 收藏
    1.報錯:

    Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2011-07-06_03-14-36PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
            at java.lang.ClassLoader$NativeLibrary.load(Native Method)
            at java.lang.ClassLoader.loadLibrary0(Unknown Source)
            at java.lang.ClassLoader.loadLibrary(Unknown Source)
            at java.lang.Runtime.loadLibrary0(Unknown Source)
            at java.lang.System.loadLibrary(Unknown Source)
            at sun.security.action.LoadLibraryAction.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)
            at sun.awt.DebugHelper.
    <clinit>(Unknown Source)
            at java.awt.Component.
    <clinit>(Unknown Source)

    2.出錯原因:缺少系統安裝包:rpm -ivh libXp-1.0.0-8.i386.rpm
    posted @ 2011-07-06 15:26 xrzp 閱讀(291) | 評論 (0)編輯 收藏
         摘要: oracle讀取數據的最小單位是塊.oracle讀取數據的最大限制取決于OS和oracle對多塊讀I/O的限制(db_file_multiblock_read_count).物理上來說,一個sql讀取某個記錄,得將記錄讀取到DB Cache中,然后才能從中或者,這個稱為物理讀.如果這個數據已經存在于DB Cache中,那么前臺進程可以直接沖DB Cache中讀取數據,這個稱謂邏輯讀.邏輯上來說,有...  閱讀全文
    posted @ 2011-06-12 01:23 xrzp 閱讀(183) | 評論 (0)編輯 收藏
    1.查看隱藏參數
    腳本1:
    SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ
    FROM SYS.x$ksppi x, SYS.x$ksppcv y
    WHERE x.inst_id = USERENV ('Instance')
    AND y.inst_id = USERENV ('Instance')
    AND x.indx = y.indx
    AND x.ksppinm LIKE '%&par%'
    腳本2:
    select
    x.ksppinm name,
    y.ksppstvl value,
    y.ksppstdf isdefault,
    decode(bitand(y.ksppstvf,
    7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE') ismod,
    decode(bitand(y.ksppstvf,
    2),2,'TRUE','FALSE') isadj
    from
    sys.x$ksppi x,
    sys.x$ksppcv y
    where
    x.inst_id 
    = userenv('Instance'and
    y.inst_id 
    = userenv('Instance'and
    x.indx 
    = y.indx and 
    x.ksppinm 
    like '%_&par%'
    order by 
    translate(x.ksppinm,
    '_','')

    2.Oracle通過一個內部參數_small_table_threshold來定義大表和小表的界限.缺省情況下該參數等于2%的數量,如果表的buffer大小小于這個參數的定義,則oracle認為它是小表,反之為大表.
    select (db_cache_size/塊size)*0.02 from dual
    posted @ 2011-06-11 20:44 xrzp 閱讀(302) | 評論 (0)編輯 收藏
    SELECT d.VALUE || '/' || LOWER(RTRIM(i.INSTANCE, CHR(0))) || '_ora_' ||
               p.spid 
    || '.trc' trace_file_name
          
    FROM (SELECT p.spid
                  
    FROM v$mystat m, v$session s, v$process p
                 
    WHERE m.statistic# = 1
                   
    AND s.SID = m.SID
                   
    AND p.addr = s.paddr) p,
               (
    SELECT t.INSTANCE
                  
    FROM v$thread t, v$parameter v
                 
    WHERE v.NAME = 'thread'
                   
    AND (v.VALUE = 0 OR t.thread# = TO_NUMBER(v.VALUE))) i,
               (
    SELECT VALUE FROM v$parameter WHERE NAME = 'user_dump_dest') d
    posted @ 2011-06-11 19:38 xrzp 閱讀(190) | 評論 (0)編輯 收藏

    <2011年6月>
    2930311234
    567891011
    12131415161718
    19202122232425
    262728293012
    3456789

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    好友的blog

    搜索

    •  

    積分與排名

    • 積分 - 117282
    • 排名 - 500

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品国偷自产在线| 亚洲av永久无码精品天堂久久| 国产精品免费一区二区三区四区| 亚洲网红精品大秀在线观看| 男人的好看免费观看在线视频 | 久久99久久成人免费播放| 久久丫精品国产亚洲av不卡| 国产午夜免费福利红片| 久久永久免费人妻精品| 亚洲Aⅴ在线无码播放毛片一线天| 亚洲日产无码中文字幕| 在线免费观看一级片| 人妻免费一区二区三区最新| 亚洲人成电影网站免费| 亚洲av无码av制服另类专区| 日本二区免费一片黄2019| 一级毛片免费观看不卡视频| 国产精品亚洲精品日韩电影| 色婷婷亚洲十月十月色天| 亚洲第一网站男人都懂| 一个人免费高清在线观看| 热久久这里是精品6免费观看| 亚洲码和欧洲码一码二码三码| 久久精品国产亚洲AV网站| 亚洲国产人成中文幕一级二级| 亚洲日本在线免费观看| 中文字幕在线免费视频| 国产精品亚洲精品久久精品 | 亚洲福利视频网站| 亚洲性在线看高清h片| 最新欧洲大片免费在线| 免费一区二区三区| 一区二区三区视频免费观看| 亚洲人成网站色7799| 亚洲福利视频网址| 亚洲人成电影福利在线播放| 久久亚洲欧洲国产综合| 免费一级成人毛片| 国产精品二区三区免费播放心| 毛片免费视频在线观看| 精品久久久久久久久免费影院|