隨筆-69  評論-0  文章-5  trackbacks-0
            2007年4月11日
          先占個地兒
          http://blog.csdn.net/boat1980/archive/2008/07/23/2698318.aspx

          posted @ 2008-09-22 11:36 liunix 閱讀(243) | 評論 (0)編輯 收藏
          <html>
          <head>
          <script>
          function overlay() {
              el 
          = document.getElementById("overlay");
              el.style.visibility 
          = (el.style.visibility == "visible"? "hidden" : "visible";
          }
          </script>
          <style>
          body 
          {
               height
          :100%;
               margin
          :0;
               padding
          :0;
          }
          /*外層全部*/
          #overlay
          {
               visibility
          : hidden;
               position
          : absolute;
               left
          : 0px;
               top
          : 0px;
               width
          :100%;
               height
          :100%;
               text-align
          :center;
               z-index
          : 1000;
               background-color
          :#000;
               filter
          : alpha(opacity=70); /*ie支持的半透明,下面兩名為ff支持的*/
               -moz-opacity
          : 0.7;
               opacity
          :.70;
          }
          /*外層的顯示區*/
          #overlay div 
          {
               width
          :300px;
               margin
          : 100px auto;
               background-color
          : #FFFFFF;
               border
          :1px solid #000;
               padding
          :15px;
               text-align
          :center;
          }
          </style>
          </head>
          <body id="body">
          <div id="overlay">
               
          <div>
                  用戶名:
          <input type="text" name="" /><br/>
                  密  碼:
          <input type="text" name="" /><br/>
                  
          <input type="button" value="關閉" onclick="overlay()" />
               
          </div>
          </div>

          <href='#' onclick='overlay()'>Click here to show the overlay</a>
          </body>
          </html>   
          posted @ 2008-08-29 16:23 liunix 閱讀(652) | 評論 (0)編輯 收藏
          一、DESede加密(對應SunJCE不提供模式和填充的情況)
          declare
              result raw(
          2000);
              l_mod number :
          = dbms_crypto.ENCRYPT_3DES+dbms_crypto.CHAIN_ECB+dbms_crypto.PAD_PKCS5;
          begin
              result :
          = dbms_crypto.Encrypt(src => utl_i18n.string_to_raw('wwww'),typ => l_mod,key => hextoraw('123456789012345678901234567890123456')
              );
              dbms_output.put_line(result);
          end;
          /

          二,摘要
          dbms_crypto.Hash(utl_i18n.string_to_raw('input'),dbms_crypto.MD5))
          posted @ 2008-07-21 14:54 liunix 閱讀(679) | 評論 (0)編輯 收藏
          用了幾天jira管理對它的權限模式有了初步理解:



          project和permission schema多對一,從而形成了permission schema的重用
          而permission schema本身則代表了group/user和pemission之前的映射關系

          另外,jira還有一個Project Role的概念更增加了jira權限管理的靈活性
          其實它實質上就是一個角色(RBAC中的R),可以和group/user多對多關聯,
          (當然也可和Permission通過schema進行關聯)
          使jira的權限配置更新靈活的同時,也增加了相當的復雜性

          posted @ 2008-07-17 16:06 liunix 閱讀(1309) | 評論 (0)編輯 收藏
          一,造libmysql.def文件
             1, ${mysql_home}/include/libmySQL.def文件如果有直接用
             2, 否則下載pexports工具,執行pexprots libmySQL.dll> libmySQL.def(libmySQL.dll在${mysql_home}/bin目錄下一般會有)
          二,轉換成靜態庫
             dlltool --input-def libmySQL.def --dllname libmySQL.dll --output-lib libmysql.a -k
          三,配置Eclipse(靜態庫和動態庫加法都是-L${DIR} -l${libname},但誰的優先級高呢?)
              1, 加上庫目錄,如"${workspace_loc:/hello_mysql/libs}"
              2, 加上libmysql.a的庫名: mysql
              3, 構建,報錯:  #ff0000 reference to `mysql_real_connect@32'之類的錯
              4, 修改def文件,將mysql_real_connect改成mysql_real_connect@32,其它錯誤同理,并重新生成靜態庫
              5, 重新構建完成
          四,示例程序(只須修改連接信息及表名)
          #include <stdio.h>
          /*下面這一行一定要加上*/
          #include 
          <my_global.h>
          #include 
          <mysql.h>

          int main() {
              MYSQL mysql;
              MYSQL_RES 
          *result;
              MYSQL_ROW row;

              
          int numrows, numcols, c;

              mysql_init(
          &mysql);

              
          if (!mysql_real_connect(&mysql, "localhost""opencart""opencart""opencart"0, NULL, 0)) {
                  fprintf(stderr,
          "Failed to connect to database: Error %d:%s\n", mysql_errno(&mysql), mysql_error(&mysql));
              }
              
          char query[] = "SELECT * FROM product";

              
          if (mysql_query(&mysql, query))
              {
                  fprintf(stderr,
          "Error executing query: Error %d: %s\n", mysql_errno(&mysql), mysql_error(&mysql));
              }

              result 
          = mysql_use_result(&mysql);

              
          if (!result) {
                  fprintf(stderr,
          "Error executing query: Error %d: %s\n", mysql_errno(&mysql), mysql_error(&mysql));
              }
              numcols 
          = mysql_num_fields(result);

              
          while (row = mysql_fetch_row(result)) {
                  
          for (c = 0; c < numcols; c++) {
                      printf(
          "%s\t", row[c]);
                  }
                  printf(
          "\n");
              }
          }

             
          posted @ 2008-07-14 15:36 liunix 閱讀(1039) | 評論 (0)編輯 收藏
          一、安裝
          1, 安裝xampp
          2, 安裝zend studio[6]

          二、配置調式
          1,在http.conf中指定php.ini的位置
              PhpIniDir "D:/xampp/php"

          2, 在php.ini中的zend的部分指定以下內容(ZendDebugger.dll是從zend studio中搜出來的)
          [Zend]
          zend_extension_ts = "D:\xampp\php\zendOptimizer\lib\ZendDebugger_5.2.12.dll"
          ;下面部分可選
          zend_debugger.allow_hosts=127.0.0.1/32,127.0.0.1/24
          zend_debugger.expose_remotely=allowed_hosts


          posted @ 2008-07-07 11:38 liunix 閱讀(291) | 評論 (0)編輯 收藏
          放在/usr/local/bin下,挺好用
           #!/bin/sh
           # this script converts an rpm into a plain tarball

           mkdir $$.cpio
           rpm2cpio $@ 
          > $$.cpio/foo
           cd $$
          .cpio
           cpio 
          ---< foo
           rm 
          -f foo
           find 
          . -type d -perm 700 -exec chmod 755 {} \;
           tar cvzf 
          ../`basename $@ .rpm`.tar.gz .
           cd 
          ../
           rm 
          -rf $$.cpio


          posted @ 2008-06-18 11:37 liunix 閱讀(347) | 評論 (0)編輯 收藏
          1,去http://rpm.pbone.net/下載下列rpm包并安裝
          libnasl-2.2.9-1.fc5.i386.rpm
          nessus-core-2.2.9-1.fc5.i386.rpm
          nessus-core-debuginfo-2.2.9-1.fc5.i386.rpm(可選)
          nessus-libraries-2.2.9-1.fc5.i386.rpm
          nessus-server-2.2.9-1.fc5.i386.rpm
          nessus-gui-2.2.9-1.fc5.i386.rpm
          2, 找個能用的郵箱去http://www.nessus.org/plugins/index.php?view=register注冊一下
          3, 按郵件中的方式運行nessus-fetch --register ****
          4, 運行nessus-adduser增加一個沒有rule的用戶
          5, 運行nessus-mkcert造個證書
          6, 運行nessus-fetch --check檢查一下狀態
          7, 如果前面沒啥問題,運行service nessusd start
             如果這一步除了成功沒啥別的輸出就ok啦


          posted @ 2008-06-18 10:44 liunix 閱讀(277) | 評論 (0)編輯 收藏
          限制本機的對外訪問(例如不讓測試環境訪問生產庫):
          iptables -t filter -A OUTPUT -d 192.168.2.2 -p tcp --dport 1521 -j REJECT

          #端口轉發到另一臺機器上
          -A PREROUTING -d $ip1 -i eth0 -p tcp -m tcp --dport $port1 -j DNAT --to-destination $ip2:$port2
          -A POSTROUTING -d $ip2 -p tcp -m tcp --dport $port2 -j SNAT --to-source $ip1
          #本機端口相互映射
          -A PREROUTING -p tcp --dport $port1 -j REDIRECT --to-port $port2
          posted @ 2008-06-02 11:07 liunix 閱讀(224) | 評論 (0)編輯 收藏
          pre-commit.tmpl,然后更名pre-commit并加上執行權限:
          #!/bin/sh

          REPOS
          ="$1"
          TXN
          ="$2"

          RES
          ="OK"
          # Make sure that the log message contains some text.
          SVNLOOK=/app/subversion/bin/svnlook
          $SVNLOOK log -"$TXN" "$REPOS" | egrep "[^[:space:]]+" >/dev/null || unset RES
          if [ "$RES" != "OK" ]
          then
              echo 
          "You must input some comments for you commit" >&2
              
          exit 1
          fi

          # All checks passed, so allow the commit.
          exit 0


          posted @ 2008-05-28 14:18 liunix 閱讀(1495) | 評論 (0)編輯 收藏
          fisheye(1.4.3):
              cenqua_com_licensing.atlassian.license.DefaultLicense
                 isExpired(),getExpiryDate()
              cenqua_com_licensing.atlassian.license.DefaultLicenseType(重點)
                 isEvaluationLicenseType(),expires().....

          posted @ 2008-05-28 11:13 liunix 閱讀(518) | 評論 (0)編輯 收藏

          一,將pem格式的key文件導入keystore

          摘抄備用:http://www.agentbob.info/agentbob/79-AB.html

          說明: 經試驗證書的pem文件可能通過keytool直接導入keystore中的

          Apache Tomcat and many other Java applications expect to retrieve SSL/TLS certificates from a Java Key Store (JKS). Jave Virtual Machines usually come with keytool  to help you create a new key store.

          Keytool helps you to:

          • create a new JKS with a new private key
          • generate a Certificate Signung Request (CSR) for the private key in this JKS
          • import a certificate that you received for this CSR into your JKS

          Keytool does not let you import an existing private key for which you already have a certificate. So you need to do this yourself, here's how:

          Let's assume you have a private key (key.pem) and a certificate (cert.pem), both in PEM format as the file names suggest.

          PEM format is 'kind-of-human-readable' and looks like e.g.

          -----BEGIN CERTIFICATE-----
          Ulv6GtdFbjzLeqlkelqwewlq822OrEPdH+zxKUkKGX/eN
          .
          . (snip)
          .
          9801asds3BCfu52dm7JHzPAOqWKaEwIgymlk=
          ----END CERTIFICATE-----

          Convert both, the key and the certificate into DER format using openssl :

          openssl pkcs8 -topk8 -nocrypt -in key.pem -inform PEM -out key.der -outform DER
          openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER

          Now comes the tricky bit, you need something to import these files into the JKS. ImportKey will do this for you, get the ImportKey.java (text/x-java-source, 6.6 kB, info) source or the compiled (Java 1.5 !) ImportKey.class (application/octet-stream, 3.3 kB, info) and run it like

          user@host:~$ java ImportKey key.der cert.der
          Using keystore-file : /home/user/keystore.ImportKey
          One certificate, no chain.
          Key and certificate stored.
          Alias:importkey Password:importkey

          Now we have a proper JKS containing our private key and certificate in a file called keystore.ImportKey, using 'importkey' as alias and also as password. For any further changes, like changing the password we can use keytool.



          二、將私鑰導出成pem文件(默認keytool是不能導出私鑰的)
          import sun.misc.BASE64Encoder;
          import java.security.cert.Certificate;
          import java.security.*;
          import java.io.File;
          import java.io.FileInputStream;
           
          class ExportPriv {
              
          public static void main(String args[]) throws Exception{
              ExportPriv myep 
          = new ExportPriv();
              myep.doit();
              }
           
              
          public void doit() throws Exception{
           
              KeyStore ks 
          = KeyStore.getInstance("JKS");
              String fileName 
          = "store.jks";
           
              
          char[] passPhrase = "password".toCharArray();
              BASE64Encoder myB64 
          = new BASE64Encoder();
              
           
              File certificateFile 
          = new File(fileName);
              ks.load(
          new FileInputStream(certificateFile), passPhrase);
           
              KeyPair kp 
          = getPrivateKey(ks, "alias", passPhrase);
                  
              PrivateKey privKey 
          = kp.getPrivate();
              
           
              String b64 
          = myB64.encode(privKey.getEncoded());
           
              System.out.println(
          "-----BEGIN PRIVATE KEY-----");
              System.out.println(b64);
              System.out.println(
          "-----END PRIVATE KEY-----");
           
              }
           
          // From http://javaalmanac.com/egs/java.security/GetKeyFromKs.html
           
             
          public KeyPair getPrivateKey(KeyStore keystore, String alias, char[] password) {
                  
          try {
                      
          // Get private key
                      Key key = keystore.getKey(alias, password);
                      
          if (key instanceof PrivateKey) {
                          
          // Get certificate of public key
                          Certificate cert = keystore.getCertificate(alias);
              
                          
          // Get public key
                          PublicKey publicKey = cert.getPublicKey();
              
                          
          // Return a key pair
                          return new KeyPair(publicKey, (PrivateKey)key);
                      }
                  } 
          catch (UnrecoverableKeyException e) {
                  } 
          catch (NoSuchAlgorithmException e) {
                  } 
          catch (KeyStoreException e) {
                  }
                  
          return null;
              }
           
          }
           

          posted @ 2008-04-17 16:27 liunix 閱讀(8006) | 評論 (0)編輯 收藏
          去年rails正火的時候,仿active record用hibernate實現了一個BasePo,當時用的是一個
          靜態sessionfactory注入的方式,感覺很不好,當明也沒想到好的方案,后來發現有人通過
          threadlocal實現了下面這個,可以看看:
           1 public class Persistent implements Lifecycle, Validatable, Serializable {
           2    
           3    protected Serializable _id;
           4    protected int _version;
           5 
           6    public Serializable getIdentifier() {
           7       return _id;
           8    }
           9    public void setIdentifier(Serializable id) {
          10       _id = id;
          11    }
          12    public int getVersion() {
          13       return _version;
          14    }
          15    public void setVersion(int version) {
          16       _version = version;
          17    }
          18 
          19    public Long persist() throws HibernateException, SQLException {
          20       HibernateSession.currentSession().saveOrUpdate(this);
          21       return _id;
          22    }
          23    public void delete() throws HibernateException, SQLException {
          24       HibernateSession.currentSession().delete(this);
          25    }
          26    public void refresh() throws HibernateException, SQLException {
          27       HibernateSession.currentSession().load(this, _id);
          28    }
          29    public void lock() throws HibernateException, SQLException {
          30       HibernateSession.currentSession().lock(this, LockMode.UPGRADE);
          31    }
          32 
          33    public boolean onSave(Session s) throws CallbackException {
          34       return NO_VETO;
          35    }
          36    public boolean onDelete(Session s) throws CallbackException {
          37       return NO_VETO;
          38    }
          39    public boolean onUpdate(Session s) throws CallbackException {
          40       return NO_VETO;
          41    }
          42    public void onLoad(Session s, Serializable id) {
          43       _id = id;
          44    }
          45 
          46    public void validate() throws ValidationFailure {
          47    }
          48 }

          原文:http://hibernate.bluemars.net/46.html?cmd=prntdoc

          下面是hibernatesession的源碼,應該考濾一下如何與spring事務結合的問題(還是加一個doInTransaction 的callback?)
           1 import java.util.Collection;
           2 
           3 import net.sf.hibernate.HibernateException;
           4 import net.sf.hibernate.Session;
           5 import net.sf.hibernate.Transaction;
           6 
           7 import org.apache.commons.logging.Log;
           8 import org.apache.commons.logging.LogFactory;
           9 
          10 /**
          11  * @author Ralph Schaer
          12  * @version $Revision: 1.6 $ $Date: 2004/05/22 12:24:32 $
          13  */
          14 public class HibernateSession {
          15 
          16   private static final Log LOG = LogFactory.getLog(HibernateSession.class);
          17   public static final ThreadLocal SESSION = new ThreadLocal();
          18 
          19   public static Session currentSession() throws HibernateException {
          20 
          21     Session s = (Session) SESSION.get();
          22     if (s == null) {
          23       s = HibernateFactoryManager.getSessionFactory().openSession();
          24       SESSION.set(s);
          25     }
          26     return s;
          27   }
          28 
          29   public static Session getSession() throws HibernateException {
          30     return HibernateFactoryManager.getSessionFactory().openSession();
          31   }
          32 
          33   public static void closeSession() {
          34     try {
          35       Session s = (Session) SESSION.get();
          36       SESSION.set(null);
          37       if (s != null) {
          38         s.close();
          39       }
          40 
          41     } catch (HibernateException e) {
          42       LOG.error("HibernateSession:  closeSession", e);
          43     }
          44 
          45   }
          46 
          47   public static void rollback(Transaction tx) {
          48     if (tx != null) {
          49       try {
          50         tx.rollback();
          51         closeSession();
          52       } catch (HibernateException he) {
          53         LOG.error("HibernateSession: rollback", he);
          54       }
          55     }
          56   }
          57 
          58   //Utility methods
          59   public static int collectionSize(Collection coll) throws HibernateException {
          60     return ((Integer) currentSession().createFilter(coll, "select count(*)").iterate().next()).intValue();
          61   }
          62 
          63 }


          還有一種考慮泛型的方式可以參考:
          http://privacyneed.info/index.php?hl=f5&q=uggc%3A%2F%2Fcrgreonpxyhaq.oybtfcbg.pbz%2F2007%2F07%2Fvzcyrzragvat-npgvirerpbeq-va-wnin.ugzy
          posted @ 2008-03-28 11:30 liunix 閱讀(483) | 評論 (0)編輯 收藏
          從網上找了一段,寫得挺麻煩,但可以借一下思路
          cat watch.sh

          #!/bin/sh
          cd /root/bin

          PID
          =`ps -aef | grep Xms500M | grep -grep | gawk '{print $2}'`
          PID
          =`expr $PID + 1 - 1`

          date
          free
          echo 
          $PID
          echo 
          "------------------"

          if [ $PID -eq 0 ]
          then
          sleep 10
          /usr/java/tomcat/bin/startup.sh
          sleep 160
          fi

          while [ 1 ]
          do
          date
          free
          echo 
          "Tomcat process ID is $PID"
          wget http
          ://192.168.1.101/jsp/w_blog/blog.jsp -O working.jpg 2>> /dev/null &
          sleep 120
          touch working
          .jpg
          SIZE
          =`du working.jpg | gawk '{print $1}'`
          if [ $SIZE -le 20 ]
          then


          WID
          =`ps -aef | grep 192.168.1.101 | grep -grep | gawk '{print $2}'`
          WID
          =`expr $WID + 1 - 1`

          if ! test -$WID
          then
          killall wget
          fi


          echo 
          "Tomcat restart checking"
          free
          vmstat
          FREEMEM
          =`free | grep Mem | gawk '{print $4}'`

          if [ $FREEMEM -le 15000 ]
          then

          if [ $PID -ne 0 ]
          then
          kill -9 $PID
          ls 
          -l
          /usr/java/tomcat/bin/shutdown.sh
          fi

          /usr/java/tomcat/bin/shutdown.sh
          sleep 10
          /usr/java/tomcat/bin/startup.sh
          sleep 30
          fi

          date
          ps 
          -aef | grep -v httpd
          ls 
          -l
          PID
          =`ps -aef | grep Xms500M | grep -grep | gawk '{print $2}'`
          PID
          =`expr $PID + 1 - 1`

          fi

          rm 
          -f working.jpg

          done


          posted @ 2008-03-24 19:25 liunix 閱讀(1300) | 評論 (0)編輯 收藏
          1,設置好WEB-INF/classes/xplanner-customer.properties中的數據連接,建mysql庫[xplanner]
          2, 運行會自動創建數據庫表和sysadmin/admin用戶
          3, 中文亂碼,先導出數據庫[主要保存用戶維護數據]
              mysqldump --opt --database xplanner > xplanner.sql
          4, 將sql中的create database語句改成default charset utf8;
          5, souce xplanner.sql
          6, 將server-config.wsdd[WEB-INF]下的附件上傳位置改成合適目錄
          7, 重啟xplanner即可

          posted @ 2008-03-20 20:22 liunix 閱讀(257) | 評論 (0)編輯 收藏
          概念:
              唯一的就是一個候選鍵(數據庫理論基礎)
          所以要增加唯一性就是增加一個Alternate key

          操作:
              單擊表模型,選中keys簽,增加一個key,不選primary即可

          信息來源sybooks online:
              http://infocenter.sybase.com/help/index.jsp
          查找unique constraint找出和PDM相關的內容

          posted @ 2008-03-19 15:36 liunix 閱讀(179) | 評論 (0)編輯 收藏
          網上說的比較多
          不過一定要記住看服務進程的log:
          view /var/log/mysql.log
          在我這里問題是:


          /usr/libexec/mysqld: Can't create/write to file '/tmp/'


          說明mysql用戶無權使用/tmp目錄,改一下目錄權限就好了
          chmow -R 777 /tmp

          posted @ 2008-03-18 14:29 liunix 閱讀(176) | 評論 (0)編輯 收藏
          一,JIRA安裝
              1, 下載最新的JIRA(要注冊才能得到測試liense)
              2,  創建數據庫用戶[注意:jira用的utf8],create database jira default charset utf8; (mysql)
              3,  按官網WIKI配置數據庫,所有表會自動創建


          二,SUBVERSION-PLUGIN
              1, 下載插件
              2,  拷完lib到指定位置即可(不要拷properties)   
              3, 在管理端增加倉庫位置

          三,svnwebclient
              1, enscript不是語法加亮,只是加彩而已(而且大部分linux版本自帶)

          posted @ 2008-03-18 14:04 liunix 閱讀(221) | 評論 (0)編輯 收藏
          1, 下載http://www.allwiki.com/wiki/Mediawiki
          2,  解壓放到/var/www/html下,將config目錄權限改為777
          3,  給apache增加一個配置文件mediawiki.conf,內容如下:
          <Directory "/var/www/html/mediawiki">
              AllowOverride None
              Options +ExecCGI
              Order allow,deny
              Allow from all
          </Directory>
          4,瀏覽器中輸入:http://hostname/mediawiki/index.php
          5,安裝看是否缺php-mysql,如果缺到fc5的cd-rom中安裝
          6, 創建數據庫
              mysql -u root
              create database mediawiki;
              grant all on mediawiki.* to mediawiki@'localhost' identified by 'mediawiki';
          6, 輸入各項配置
          7, mysql5創建表有問題,尚未解決,實在不行只能換個wiki看看了

          posted @ 2008-03-15 15:59 liunix 閱讀(156) | 評論 (0)編輯 收藏
          1, 下載bugzilla
              運行./checksetup.pl
          2, 根據提示安裝perl模塊
              位置:http://search.cpan.org/search?query=IO%3A%3AScalarArray&mode=all
              下載后:
              perl Makefile.pl
              make
              make test
              make install
              (過程如果有依整性錯誤,請安裝相應模塊)
          3,配置mysql
              mysql -u root
              create database bugs
              grant all on bugs.* to bugzilla@'localhost' identified by 'bugs'
          4,配置vi ./localconfig設置數據庫
          5, 再次運行./checksetup.pl會創建數據庫和設置bugzilla管理員(以mail作為登錄名)
          6, 將bugzilla目錄拷到/www/html/下
          7, 在/etc/httpd/conf.d/下增加bugzilla.conf內容如下:
          AddHandler cgi-script .cgi .pl
          <Directory "/var/www/html/bugzilla">
              AllowOverride None
              Options +ExecCGI
              Order allow,deny
              Allow from all
          </Directory>
          8,運行apachectl restart
          9,訪問:http://hostname/bugzilla/index.cgi
             

          posted @ 2008-03-15 14:41 liunix 閱讀(166) | 評論 (0)編輯 收藏
          常用操作:
          -- job 權限
          grant create job to somebody;

          -- job 創建
          begin
           dbms_scheduler.create_job (
               job_name 
          => 'AGENT_LIQUIDATION_JOB',
               job_type 
          => 'STORED_PROCEDURE',
               job_action 
          => 'AGENT_LIQUIDATION.LIQUIDATION'--存儲過程名
               start_date => sysdate,
               repeat_interval 
          => 'FREQ=MONTHLY; INTERVAL=1; BYMONTHDAY=1;BYHOUR=1;BYMINUTE=0;BYSECOND=0',  -- 按月,間隔為1個(月),每月1號,凌晨1點
               comments => '執行代理商清分程序'
           );
          end;
          /

          -- job 執行時間測試
          DECLARE
              start_date date;
              return_date_after date;
              next_run_date date;
          BEGIN
              start_date :
          = sysdate;--to_timestamp_tz('10-OCT-2004 10:00:00','DD-MM-YYYY HH24:MI:SS');
              return_date_after := start_date;
          FOR i IN 1..10 LOOP
               DBMS_SCHEDULER.EVALUATE_CALENDAR_STRING(
          'FREQ=MONTHLY; INTERVAL=1; BYMONTHDAY=1;BYHOUR=1;BYMINUTE=0;BYSECOND=0',start_date, return_date_after, next_run_date);
               DBMS_OUTPUT.PUT_LINE(
          'next_run_date: ' || to_char(next_run_date,'yyyy-mm-dd HH24:MI:SS'));
               return_date_after :
          = next_run_date;
              
          END LOOP;
          END;
          /

          -- job 查詢
          select owner, job_name, state from dba_scheduler_jobs;
          select job_name, state from user_scheduler_jobs;

          -- job 啟用
          begin
              dbms_scheduler.enable(
          'BACKUP_JOB');
          end;
          /

          -- job 運行
          begin
              dbms_scheduler.run_job(
          'COLA_JOB',TRUE); -- true代表同步執行
          end;
          /

          -- job 停止(不太好用)
          begin
              dbms_scheduler.stop_job(job_name 
          => 'COLA_JOB',force => TRUE);
          end;
          /

          -- job 刪除(對停job來說好用)
          begin
              dbms_scheduler.drop_job(job_name 
          => 'COLA_JOB',force => TRUE);)
          end;
          /

          posted @ 2008-03-14 10:36 liunix 閱讀(624) | 評論 (0)編輯 收藏
          位置:
          http://xfire.codehaus.org/HTTP+Transport
          posted @ 2008-03-13 14:58 liunix 閱讀(533) | 評論 (0)編輯 收藏
          1,一定不要下載.zip,而用tar.gz或bz2
          2, 安裝到/usr/local/subverion時再啟apache
              出現: /usr/local/subverion/lib/libaprutil-0.so.0: undefined symbol: gdbm_errno
              解決:export LD_PRELOAD=/usr/lib/libgdbm.so.2 再執行 apachectl start(或 service httpd start)
              可以將export這一行放入apachectl腳本中
          3, 安裝可以自動更新apache中的moudle, 不用換rpm安裝剩下的svn等命令,這些只不過是服務器上的客戶端
              只要以后執行/usr/local/subverion/bin下的命令即可(可以在profile中修改PATH)

          posted @ 2008-03-11 13:40 liunix 閱讀(228) | 評論 (0)編輯 收藏
          1, 準備相關JAVA包
          2,  jce_policy-1_4_2.zip中的兩個jar到D:\jdk14\jre\lib\security
          3,  bcprov-jdk14-138.jar到D:\jdk14\jre\lib\ext并修改D:\jdk14\jre\lib\security\java.security加入
              security.provider.6=org.bouncycastle.jce.provider.BouncyCastleProvider


          posted @ 2008-03-07 20:13 liunix 閱讀(208) | 評論 (0)編輯 收藏
           


          posted @ 2008-03-03 16:21 liunix 閱讀(926) | 評論 (0)編輯 收藏
          一,基本安裝

          如果不能獲得額外的IP
          vmware-tool的安裝:
          0, 將fc5安裝CD中的kernel-devel安裝上
          1,將CD-ROM置為默認狀態
          2, 在菜單中選取安裝vmware-tool
          3,將cd mount上
          4, install
          5, 運行vmware-any-any-update101.tar.gz中的runme.pl(改其中的路徑/etc/vmware --> /etc/vmware-tools   /usr/bin/vmware-config.pl -->/usr/bin/vmware-tool-config.pl)


          -- 下面這個可能依賴前一項的成功
          vm:網卡配置選nat
          vm的linux中:netconfig 指定與"VMware Network Adapter VMnet8"相同的IP網段地址和子網
          vm的linux中:子網默認網關和edit->virtual network setting->nat 中的網關地址一樣(還可以在neat中加上路由)
          vm的dns: 和主機相同
          vm的linux中:service network restart

          二、添加硬盤
          基本知識:
                硬盤命名規則-----hda代表硬盤名,hda1則代表hda上的第1個分區
          過程如下:
          0,   在vmware中用新增硬盤向導添加一塊硬盤,下面就是操作linux的fdisk的事情了
          1,   fdisk -l   ----------查看當前硬盤的分區情況
          2,   fdisk  /dev/hdb  --為指定硬盤分區
          3,   m          -----------查看幫助
          4,   n           -----------新建分區(要選主分區,不知何為)
          5    w           -----------寫入磁盤的分區表
          6,   mkfs -t ex2 /dev/hdb1  --為新建分區創建文件系統(或mkfs.ex2  /dev/hdb1,都是mkfs.$type 命令系列)
          ##7,   mount  /hdb1   /dev/hdb1 加載新建文件系統
          若使用了邏輯卷管理器:則用system-config-lvm調整,可以將新建的分區邏輯地加到原來的
          mount點下,等于動態擴展了原來的磁盤(比較好用)



          posted @ 2008-02-27 09:19 liunix 閱讀(184) | 評論 (0)編輯 收藏
          xplanner         進度
          bugzilla(--jira) bug
          eclipse mylyn    任務
          emma             覆蓋
          cs               集成
          SVN              版本
          ant              構建
          selenium         黑盒測試
          --wiki           文檔

          junit            白盒測試
          ant              構建

          --powerdesigner    數據庫設計
          --rose/vision      UML/流程圖工具
          --word             文檔工具

          人個schedule     qorganizer


          說明: --為收費工具
          posted @ 2008-02-26 11:07 liunix 閱讀(128) | 評論 (0)編輯 收藏
          ant

          <?xml version="1.0"?>
          <project name="PGAgent" basedir="." default="default">
              
              
          <target name="default" depends="deploy" description="代理商平臺構建" />
              
              
          <property name="build.path" value="build" />
              
              
          <tstamp>
                  
          <format property="date.MMdd" pattern="MMdd"/>
              
          </tstamp>
              
              
          <filterset id="filter.test">
                  
          <filter token="dataSource.url" value="jdbc:oracle:thin:@1.2.3.4:1521:p5dbb1"/>
                  
          <filter token="dataSource.username" value="gagent"/>
                  
          <filter token="dataSource.password" value="gagent"/>
                  
          <filter token="log4j.path" value="/home/xuzhijin/logs/pgagent/pgagent.log"/>
              
          </filterset>
              
              
          <filterset id="filter.deploy">
                  
          <filter token="dataSource.url" value="null"/>
                  
          <filter token="dataSource.username" value="null"/>
                  
          <filter token="dataSource.password" value="null"/>
                  
          <filter token="log4j.path" value="null"/>
              
          </filterset>    

              
          <target name="deploy" depends="test_tidy,deploy_tidy">
                  
          <antcall target="clean_before" />
                     
          <zip destfile="${build.path}/${ant.project.name}_test_${date.MMdd}.zip" basedir="${build.path}/test" />
                     
          <zip destfile="${build.path}/${ant.project.name}_deploy_${date.MMdd}.zip" basedir="${build.path}/deploy" />
                  
          <antcall target="clean_after" />
              
          </target>
              
              
          <target name="deploy_tidy">
                  
          <copy todir="${build.path}/deploy/${ant.project.name}/">
                      
          <fileset dir="${basedir}/WebRoot/">
                          
          <exclude name="**/.svn"/>
                          
          <exclude name="**/.svn/*.*"/>
                      
          </fileset>
                  
          </copy>
                  
          <copy todir="${build.path}/deploy/${ant.project.name}/WEB-INF/classes" overwrite="true" >
                      
          <fileset dir="${basedir}/buildFilter/">
                          
          <include name="*.properties"/>
                      
          </fileset>                
                      
          <filterset refid="filter.deploy" />
                  
          </copy>
              
          </target>
              
              
          <target name="test_tidy">
                  
          <copy todir="${build.path}/test/${ant.project.name}/">
                      
          <fileset dir="${basedir}/WebRoot/">
                          
          <exclude name="**/.svn"/>
                          
          <exclude name="**/.svn/*.*"/>
                      
          </fileset>
                  
          </copy>
                  
          <copy todir="${build.path}/test/${ant.project.name}/WEB-INF/classes/" overwrite="true" >
                      
          <fileset dir="${basedir}/buildFilter/">
                          
          <include name="*.properties"/>
                      
          </fileset>            
                      
          <filterset refid="filter.test" />
                  
          </copy>
              
          </target>    
              
              
          <target name="clean_after">
                  
          <delete dir="${build.path}/test" />
                  
          <delete dir="${build.path}/deploy" />
              
          </target>
              
              
          <target name="clean_before">
                  
          <delete file="${build.path}/${ant.project.name}_test_${date.MMdd}.zip" />
                  
          <delete file="${build.path}/${ant.project.name}_deploy_${date.MMdd}.zip" />
              
          </target>

          </project>



          bash:
          #!/bin/bash
          file_prefix=PGAgent_test
          dest_dir
          =/usr/local/ciecc/webapps/
          today
          =`date +%m%d`
           
          rm 
          -rf $dest_dir${file_prefix%_*}
          unzip 
          -$dest_dir $file_prefix'_'$today.zip
          tail 
          -/home/xuzhijin/logs/pgagent/pgagent.log

          posted @ 2008-02-22 20:28 liunix 閱讀(155) | 評論 (0)編輯 收藏
              String.prototype.trim = function() {
                  return this.replace(/^\s+|\s+$/g,"");
              }
             
              String.prototype.isBlank = function() {
                  return this == null || this == "";
              }
              
              function validate_required(form){
                  for(var i=0;i<form.elements.length;i++){
                      var element  = form.elements[i];
                      if(null != element.getAttribute('required') && 'TRUE' == element.getAttribute('required').toUpperCase()){
                          if(element.value.trim().isBlank()){
                              alert('所有必填項都不能為空');
                              return false;
                          }
                      }
                 }
                 return true;
              }
             
              function validate_pattern(form){
                  for(var i=0;i<form.elements.length;i++){
                      var element  = form.elements[i];
                      if(null != element.getAttribute('pattern')){
                          if( !element.value.trim().isBlank() && !new RegExp(element.getAttribute('pattern').split("/")[0]).test(element.value.trim())){
                              alert(element.getAttribute('pattern').split("/")[1]);
                              return false;
                          }
                      }
                 }
                 return true;                         
              }
             
              -- 校驗不必填的傳真只填一半的特殊情況
              function validate_other(form){
                  if(form.cpFaxPart1.value.isBlank() != form.cpFaxPart2.value.isBlank()){
                     alert('公司傳真未填寫完整(也可完全不填)');
                     return false;
                  }
                  return true;
              }
                     
              function validate(form){
                  return validate_required(form) && validate_pattern(form) && validate_other(form);
              }
          posted @ 2008-02-15 15:52 liunix 閱讀(165) | 評論 (0)編輯 收藏
          alter session set max_dump_file_size=unlimited;
          alter session set timed_statistics=true;
          alter session set events '10046 trace name context forever, level 12';
          select 'Hello, world; today is '||sysdate from dual; exit;

          tkprof card_ora_13226.trc trace.txt print=100 record=sql.txt sys=no

          然后查年trace.txt就是分析內容了
          posted @ 2007-11-06 09:52 liunix 閱讀(378) | 評論 (0)編輯 收藏
          #少了一步安裝 fcgi本身的
          #將public下面的所有ruby路徑改正確
          #詳細說明如何啟用fcgi而不是cgi(改.htpaccess)
          #將ruby-fcgi按README安裝完全
          #啟用SYBASE要設置/etc/ld.so.conf加上sybase的lib路徑(APACHE以NOBODY啟動,LD_LIBRARY_PATH似乎沒用)


          1,為編譯fastcgi,安裝httpd-dev包
              rpm -ivh httpd-dev***.rpm    #會要求安裝其它依賴包
          2,構建mod_fastcgi.so,正常構建會報缺少文件(對fc4自動安裝apache而言),會自動加入/usr/lib/httpd/module中,/etc/httpd/conf/httpd.conf也會自動加載(但語法不對)
              apxs -n mod_fastcgi -i -a -c mod_fastcgi.c fcgi_buf.c fcgi_config.c fcgi_pm.c fcgi_protocol.c fcgi_util.c  #在解壓后的mod_fast2.4.2包中執行,構建mod_fast.so
              chmod 755 /usr/lib/httpd/modules/mod_fastcgi.so #修改訪問權限
          3,ruby的fcgi模塊正確安裝方法
             1,下載ruby-fcgi-0.8.7.tar.gz
             2,ruby install.rb config -- --with-fcgi-include=/usr/local/include --with-fcgi-lib=/usr/local/lib  (指向正確的fcgi安裝路徑)
             3,其余按readme
          4,為apache配置虛擬主機(客戶機的host要配合指向)---還要加上一條時間選項
              <Directory /var/www/>
                  AllowOverride all
              </Directory>

              LoadModule fastcgi_module modules/mod_fastcgi.so
              FastCgiConfig -singleThreshold 100 -killInterval 300 -autoUpdate -idle-timeout 240  -pass-header HTTP_AUTHORIZATION
              AddHandler fastcgi-script .fcgi

              <VirtualHost *:80>
                  ServerAdmin webmaster@example.com
                  DocumentRoot /var/www/rails/testapp/public        #testapp即為你rails程序的根目錄
                  ServerName www.example.com
                  ErrorLog /var/log/httpd/testapp-error_log
                  CustomLog /var/log/httpd/testapp-access_log common
                  Options Indexes ExecCGI FollowSymLinks
                  RewriteEngine On
              </VirtualHost>
          6,啟動apache,看歡迎頁面
              apachectl start   #用這種方式可以在控制臺查看錯誤消息(應該會報一條無效的加截so的行190?)
          7,根據需要修改rails應用(producation環境,facgi的dispatch,數據庫支持)


          8,后續修改如下
              chown -R apache.apache ${railsapp}
              mkdir /tmp/fcgi_ipc
              httpd.conf-->FastCgiIpcDir "/tmp/fcgi_ipc/"
              chown -R apache.apache /tmp/fcgi_ipc





          錯誤情況分析:
          1,apache的error.log或app的error.log會報:(權限問題)
              [Sun Nov 19 14:05:29 2006] [crit] (13)Permission denied:
              FastCGI: can't create (dynamic) server "/var/www/rails/testapp/public/dispatch.fcgi":
              bind() failed [/etc/httpd/logs/fastcgi/dynamic/3c713fbde3044b67e240a7bf3791f36b]

          2,測試dispatch.fcgi的方法ruby -d dispatch.fcgi

          3,app下面的fastcgi.crash.log中產生----注意,說方法丟失可能是c的動態庫沒有找到
             Dispatcher failed to catch: undefined method `is_cgi?' for FCGI:Class (NoMethodError)
             fcgi的問題


          posted @ 2007-08-10 11:46 liunix 閱讀(967) | 評論 (0)編輯 收藏
          1, 安裝系統時盡量不要選擇ruby,如果已安裝
              rpm -qa | grep ruby
              rpm -e ${已安裝上ruby包名}

          2, 檢查系統,確定已安裝gcc,make
              gcc -v
              make -v

          3, 安裝ruby 1.8.5
              wget ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.5.tar.gz
              tar xzvf ruby-1.8.5.tar.gz
              cd ruby-1.8.5
              ./configure --prefix=/usr/local/ruby
              make && make install
              export PATH=$PATH:/usr/local/ruby/bin/

          4, 安裝rubygems
              wget http://rubyforge.org/frs/download.php/20990/rubygems-0.9.4.zip
              unzip rubygems-0.9.4.zip && cd rubygems-0.9.4
              ruby setup.rb

          5, 安裝rails
              gem install rails  -v=1.2.3
              各種依賴庫均選Y

          6, 安裝mongrel(有平臺選項的均選ruby)
              gem install mongrel
              各種依賴庫均Y

          7, 安裝sybase-ruby庫
              wget http://enjoy1.bb-east.ne.jp/~tetsu/sybct-ruby-0.2.9.tar.gz
              tar xzvf sybct-ruby-0.2.9.tar.gz
              cd sybct-ruby-0.2.9
              編緝extconf.rb文件,指向正確sybase路徑
              ruby extconf.rb
              make
              cp sybct.o sybct.so sybct.rb sybsql.rb /usr/local/ruby/lib/ruby/site_ruby/1.8/i686-linux
              export LD_LIBRARY_PATH=${SYBASE_HOME}/OCS-12_5/lib

          8, 結合apache與mongrel (APP_ROOT為應用程序根目錄)
             參見文章: http://mongrel.rubyforge.org/docs/apache.html

          9, 安裝ImageMagick和RMagic(不要安裝RMagic的gem包)
              先檢查依賴庫:libpng,libjpeg,libtiff,gd-devel
              unzip ImageMagick-6.3.4-4.zip
              cd ImageMagick-6.3.4-4
              ./configure --prefix=/usr/local/ImageMagick
              make && make install
              export PATH=$PATH:/usr/local/ImageMagic/bin
              編輯:/etc/ld.so.conf,加入
              /usr/local/ImageMagick/lib
              執行:ldconfig

             
              tar xzvf RMagick-1.15.6.tar.gz
              cd RMagick-1.15.6
              ./configure
              make && make install


          posted @ 2007-07-11 12:44 liunix 閱讀(629) | 評論 (0)編輯 收藏
          cygwin清屏:
          1, ctrl+l
          2, alias cls='echo -e "\E[2J"'

          復制,粘帖:
          控制臺的編輯選項選上"快帶編輯"
          就可以左鍵直接選取,右鍵粘帖了
          posted @ 2007-06-11 20:19 liunix 閱讀(2540) | 評論 (0)編輯 收藏
          為了rails的圖形開發
          參照 robbin說法:
          http://robbin.javaeye.com/blog/post/296400

          補充一下:
          下ImageMagick的源碼版(即便安裝了rpm,也再下一版)
              configure時一定指定路徑
          RMagick也最好是源碼版

          posted @ 2007-05-31 20:33 liunix 閱讀(146) | 評論 (0)編輯 收藏
          目的:為了用老的gcc進行sybase的c開發

          -,fc6 上安裝  VMware

          1, 下載VMware-server-1.0.1-29996.tar.gz,vmware-any-any-update109.tar.gz,yum install xined

          2, 安裝vmware(一路default),config.pl報錯,運行update109,搜一個注冊碼填上

          3,啟動xinted,vmware的xined腳本

          4, 啟動客戶端vmare

          二,vmware安裝rh7

          圖形界面,不說了

          安裝 sshd_server,setup 配置開啟sshd服務, 然后service sshd start

          執行ipchains -A input -p tcp -s 192.168.1.6 -d 192.168.1.8 22 -j ACCEPT

          打開防火墻端口:ipchains(7.1就變成真的iptable了)

          三,openclient 12.5
          先裝common rpm再openclient.rpm


          posted @ 2007-05-25 23:48 liunix 閱讀(327) | 評論 (0)編輯 收藏
          一,3.12版

          1, 慢
              3.12版真的很慢,那就用ibm的jre吧,聽說4.0就好了

          2, 類庫的引入
              project properties--->c/c++builder-->Tools setting選項中

          3, 2中的warning選項最好別改,否則build項目會有問題

          4, 剛上手的話,最好使用managed c project

          5, 問題binaries要變沒,那就換瀏覽視圖找到二進制文件右鍵debug吧



          二,4,0 m版 

          總得來說,快了,功能多了,復雜了,可以直接用sun的jdk了,run/debug沒前一版方便了

          1, 配eclipse 3.3 m版

          2,   項目的配置界面變化不小

          3,  項目默認不啟用自動構建

          4, 問題:加入線程庫的L和l后,編譯還會報找不到,一個鐘頭過去了
                             直接鏈接的字串中手工加上lpthread即可,這個應該算是個偏方了。。。

          posted @ 2007-05-17 14:39 liunix 閱讀(1365) | 評論 (0)編輯 收藏
          顯示行號:

          第一步:安裝setnu.el到/usr/share/emacs/site-lisp目錄下;
          第二步:在.emacs中添加
          (require 'setnu)
          (setnu-mode t)
          第三步:在啟動emacs后M-x setnu-mode即可以!


          posted @ 2007-05-14 10:07 liunix 閱讀(158) | 評論 (0)編輯 收藏
          出現check sum metadata error 的時候:
          yum clean all

          posted @ 2007-05-14 10:05 liunix 閱讀(122) | 評論 (0)編輯 收藏
          1, 手工清除后,數據庫中還會存有記錄:
          select * from v$flash_recovery_area_usage;

          2, 然后:
          rman target /
          crosscheck archivelog all;
          delete expired archivelog all;

          說明:2是修復1的辦法,也應該是正常清除歸檔日志的辦法吧


          posted @ 2007-05-11 18:16 liunix 閱讀(2068) | 評論 (0)編輯 收藏
          1, 編譯通過helloworld
          cc hello.c -o b.out `pkg-config --cflags --libs gtk+-2.0`
          后面的``內容主要是類庫和頭文件的引入,看來要仔細看看gcc的東西了

          posted @ 2007-04-30 11:22 liunix 閱讀(306) | 評論 (0)編輯 收藏
          1,啟用審計記錄
              alter system set audit_trail=DB   SCOPE=SPFILE                                  //audit_trail的可選值為:OS或者NONE  
              startup force

          2,  啟/禁用審計
              audit table by scott
              noaudit table by scott
          3,  查詢審計
              先從字典中找出audit的相關視圖
              dba_stmt_audit_opts                   關于已定義的審計
              dba_trail                                          已有審計的記錄


          ....這里是stmt審計,其它種類審計待續...................

          posted @ 2007-04-27 10:06 liunix 閱讀(233) | 評論 (0)編輯 收藏
          一個月前裝ralis
              gem install rails --include-dependencies
               版本為1.2.1

          現在升級
              gem update rails --include-dependencies
              版本為1.2.3
          (反安裝gem uninstall ? -v=?, 要一個包一個包的來)
          但原的程序是在1.1.4上做的

          出現問題,只好建了一個1.2.3的工程,將程序手工復制過來,
          我是在fc上開發,出現編碼錯誤,在環境文件中加上
          $KCODE="none"
          即可

          附:gem 使用說明

          gem --help 列出用法

          gem help commands 列出所有子命令

          gem help ${subcommand} 列出子命令用法



          posted @ 2007-04-23 19:05 liunix 閱讀(450) | 評論 (0)編輯 收藏
          1, realplayer直接下載安裝.bin即可
                 可能會輸入法有沖突,那么將realplay文件頭中加上export GTK_IM_MODULE=xim

          2, mplayer

          裝yum擴展庫
                  rpm -ivh http://rpm.livna.org/livna-release-6.rpm
                  rpm -import http://rpm.livna.org/RPM-LIVNA-GPG-KEY
                  ( rpm -ivh http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/6/freshrpms-release/freshrpms-release-1.1-1.fc.noarch.rpm 可選)
                  yum -y install mplayer
          裝maplayer菜單項
                 yum install mplayer-gui

                 yum install mplayerplug-in

          讓firefox正確打開mms媒體
                  地址欄:about:config
                  在顯示網頁的區域單擊右鍵,選擇新建字符串,串名是
                  network.protocol-handler.app.mms
                  串值是:
                  /usr/bin/mplayer

          posted @ 2007-04-19 20:35 liunix 閱讀(185) | 評論 (0)編輯 收藏
          一,聯機日志文件

          1,查看概要信息
              select l.group#,l.bytes/1024/1024 M,f.member from v$log l,v$logfile f
              where l.group#=f.group# order by 1

          2,增/刪一個新組
              alter database add logfile
              group 4
              ('/oracle/oradata/orcl/redo04.log')
              size 50M
              /
              系統會自動創建文件  


              alter database drop logfile group 4
              /
              rm logfile redo04.log
              在fc6不知為何還要手工刪除

          3,為一個組增刪日志成員
             
              先建一個多文件的測試組,(前面的建的單文件的測試組增加成員時會報文件名字錯誤), 可見日志組的成員數并不要求一致
              alter database add logfile
              group 4
              ('/oracle/oradata/orcl/redo0401.log',
              '/oracle/oradata/orcl/redo0402.log')
              size 50m

              增加文件(不用指定文件大小)
              alter database add logfile member
              '/oracle/oradata/orcl/redo0403.log'
             to group 4
              /
            
              刪除文件
              alter database drop logfile member '/oracle/oradata/orcl/redo0403.log'
              rm redo0403.log

          4, 重命名日志文件會用到 alter database rename file 'old' to 'new' ,過程麻煩,還不如刪了重建


          5, 清理日志組(刪除并重建)
                alter database clear logfile group 4
                /



          二,歸檔日志文件


          1,查看歸檔日志是否啟用的方法
                achive log list
                select log_mode from v$database

          2, db_recovery_file_dest == USE_DB_RECOVERY_FILE_DEST (地址)

          3, shutdown immediate
           
          4, startup mount

          5, alter database archivelog

          6, alter database open

          7,  alter database switch logfile  生成一個新的

          posted @ 2007-04-12 17:55 liunix 閱讀(1842) | 評論 (0)編輯 收藏
          1, 數據文件
                 dba_data_files
          2,日志文件
                v$log          大小
                v$logfile    路徑
          3,   控制文件
               show parameter control

          posted @ 2007-04-12 17:49 liunix 閱讀(204) | 評論 (0)編輯 收藏
          1, 找到glogin.sql

          設置:
              -- custom setup
          REM Number of lines of SELECT statement output before reprinting headers
          SET PAGESIZE 999

          REM Width of displayed page, expressed in characters
          SET LINESIZE 132

          REM Enable display of DBMS_OUTPUT messages. Use 1000000 rather than
          REM "UNLIMITED" for databases earlier than Oracle Database 10g Release 2
          SET SERVEROUTPUT ON SIZE UNLIMITED FORMAT WRAPPED

          REM Change default to "vi improved" editor
          DEFINE _EDITOR = /usr/bin/vim

          REM Format misc columns commonly retrieved from data dictionary
          COLUMN segment_name FORMAT A30 WORD_WRAP
          COLUMN object_name FORMAT A30 WORD_WRAP

          REM set the prompt (works in SQL*Plus from Oracle9i Database or later)
          SET SQLPROMPT "_USER'@'_CONNECT_IDENTIFIER > "


          2, c /a/b/g  替換

          3,   a [_][_] asdf  追加,注意兩個空格

          4,   column ${列名} format aNN  格式化字符
                 column ${列名} format 99999.99  格式化數字,一個9代表1位
          posted @ 2007-04-12 17:44 liunix 閱讀(176) | 評論 (0)編輯 收藏
          declare
              my_exception EXCEPTION;
              pragma EXCEPTION_INIT(my_exception,-20000);
          begin
              raise_application_error(-20000,'自定義錯語');
          exception when my_exception then
              dbms_output.put_line('捕到了:'||sqlcode||sqlerrm);
          end;
          /


          posted @ 2007-04-12 16:48 liunix 閱讀(427) | 評論 (0)編輯 收藏
          操作手順:

          1, alter database back controlfile to trace

          2, show parameter user

                  user_dump_dest                       string      /oracle/admin/orcl/udump

          3, cd /oracle/admin/orcl/udmp

          4, ll | srot -k 6  (按日期排序文件,sort 的用法和手上的不一樣)



          二,多路復用控制文件

          1, 注意scope = spfile,若是init.ora文件,則必須關閉

          alter system set control_files=
          '/oracle/oradata/orcl/control01.ctl',
          '/oracle/oradata/orcl/control02.ctl',
          '/oracle/oradata/orcl/control03.ctl',
          '/oracle/oradata/orcl/control04.ctl'
           scope=spfile
          /

          這時show parameter control  顯示沿未更改

          2, shutdown immediate

          3,    cp control01.ctl control04.ctl

          4,  startup

          5,  show parameter control  顯示已經修改
          posted @ 2007-04-11 19:17 liunix 閱讀(292) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 拜城县| 祁东县| 新和县| 萝北县| 开封县| 集安市| 特克斯县| 江西省| 教育| 汝州市| 房山区| 韶山市| 雅安市| 伊宁市| 秦皇岛市| 太和县| 盐边县| 合阳县| 安龙县| 新田县| 嘉祥县| 屏南县| 丰原市| 中山市| 靖江市| 皮山县| 德阳市| 平顺县| 潮安县| 鹿泉市| 鲁甸县| 曲沃县| 揭西县| 扶风县| 巴彦淖尔市| 大同市| 顺平县| 光泽县| 丰城市| 濮阳市| 津市市|