Results matching “key” from 一个不留_YiGeBuLiu

米奇奇妙年,全家更开心!

| | Comments (0) | TrackBacks (0)

来自公司上海团队的eCard新年祝贺!

米奇奇妙年,全家更开心!

还有不少米奇的资源下载哟,全是免费的

让网站支持原来的blog url风格

| | Comments (0) | TrackBacks (0)

    原来网站是我用rails程序写的,发表的文章URL都是类似这样的http://yigebuliu.com/article/show/aritcle_id
    现在我改用movable type,虽说原来写的文章数据都保留了,但用这种URL访问过来,由于无法解析URL,全部报404错误页面,如google,baidu等搜索引擎还保留着原来那种URL,另外一些网站引用到网站的链接也是用的原来的URL,可movable 没有支持这种风格(反正我不知道怎么设).

    因此我想解决这个问题,最后用了rewrite rule来解决此问题.记录一下!
首先先编写一个.htaccess文件,内容如下
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/article/show/.*$
RewriteRule ^(.*)$ $1.html
然后在网站目录上建立一个article/show目录
最后把movable type发布出来的静态html copy 到此目录下.

哈哈,结果用浏览器访问原来的url,比如:http://yigebuliu.com/article/show/100,再也不是可恶的404了,吼吼,成功,睡觉去也.

 

UPDATE:
看了访问日志,还有http://yigebuliu.com/article/tag/key这种情况.这是原来blog的tag访问方式,好办,再写个rewrite rule就行.

RewriteCond %{REQUEST_URI} ^/article/tag/.*$
RewriteRule ^article/tag/(.*)$ /cgi-bin/mt/mt-search.cgi?search=$1&IncludeBlogs=1

把所有/article/tag/*的这种访问uri全部rewrite成movable type搜索的uri就行了,也就是/cgi-bin/mt/mt-search.cgi?search=key&IncludeBlogs=1

让OC4J支持https访问

|

我现在用的OC4J版本是10.13

第一步先建一个用https访问的web site 文件,内容大致如下:

<?xml version="1.0" standalone='yes'?>
 
<web-site
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/web-sit
e-10_0.xsd"
  port="443" secure ="true"
  display-name="OC4J 10g (10.1.3) Default Web Site"
  schema-major-version="10"
  schema-minor-version="0"
>
<ssl-config keystore="my.keystore" keystore-password="hello" />
 
  <default-web-app application="default" name="defaultWebApp" access-log="true"/
>
<web-app application="default" name="gm" root="/gm" access-log="true"/>
<web-app application="default" name="wap" root="/wap" access-log="true"/>
<web-app application="default" name="media" root="/media" access-log="true"/>
  <web-app application="system" name="dms0" root="/dmsoc4j" access-log="false" /
>
  <web-app application="system" name="dms0" root="/dms0" access-log="false" />
<!--
  <web-app application="system" name="admin_web" root="/adminoc4j" />
-->
  <web-app application="system" name="JMXSoapAdapter-web" root="/JMXSoapAdapter" />
  <web-app application="default" name="jmsrouter_web" root="/jmsrouter" load-on-startup="true" />
  <web-app application="javasso" name="javasso-web" root="/jsso" load-on-startup="false" />
  <web-app application="ascontrol" name="ascontrol" root="/em" load-on-startup="true" ohs-routing="false" />
 
  <!-- Access Log, where requests are logged to -->
  <access-log path="../log/default-web-access.log" split="day" />
  <!-- Uncomment this if you want to use ODL logging capabilities
  <odl-access-log path="../log/default-web-access" max-file-size="1000" max-directory-size="10000"/>
  -->
 
</web-site>

其中红色的是重点部分.标准https端口号是443,如果选用其它端口的话则直接改就行了,secure ="true"是必须标注的.

<ssl-config keystore="my.keystore" keystore-password="hello" />这个就是用于https的证书文件,和密码.

第二步是在server.xml中加入使用https的web site 文件,如下:

<?xml version="1.0"?>
 
<application-server  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xmlns.oracl
e.com/oracleas/schema/application-server-10_1.xsd"  application-directory="../applications"
 check-for-updates="adminClientOnly"
 deployment-directory="../application-deployments"
 connector-directory="../connectors"
 schema-major-version="10" schema-minor-version="0" >
....

        <global-application name="default" path="application.xml" parent="system" start="true" />
        <application name="javasso" path="../../home/applications/javasso.ear" parent="default" start="false" />
        <application name="ascontrol" path="../../home/applications/ascontrol.ear" parent="system" start="true" />
        <global-web-app-config path="global-web-application.xml" />
        <transaction-manager-config path="transaction-manager.xml" />
        <web-site default="true" path="./default-web-site.xml" />
        <web-site path="./secure-web-site.xml" />
        <cluster  id="78400349798527" />
</application-server>

这样oc4j配置就可以,然后重启oc4j,用浏览器访问一下吧.https://localost,是不是可以了呢.当然还会提示证书未信任,解决这个问题就是要买一个证书了,便宜的,几百,贵的7,8千.  

 



删除oracle分区表时犯下的错误

|

    今天在删除一个oralce分区表中的一个分区时直接把分区删了,而没有重新建立这个表的索引,造成应用出问题了,以后要切记这个问题.

    其实造成这个问题的发生就是我对oracle的分区表太不了解了.

    错误1.在建立这个分区表时,这个表的所有索引全部建成global的了,就是整个表的索引,如果建成每个分区一个索引,也就是local的也不会出现今天的问题

    错误2.删除分区表时没有加入更新索引的语句,造成所有索引unusable,我的语句是

 

这里如果写成

 

也没事了

没办法,错误已经造成,只好把这个表的所有index rebuild了

 

rebuild的时间是漫长的....

 

另外查询某个表的索引状态可以用下面这个语句:

结果中valid是有效的,unusable未使用的.

以后要切记了!

Oracle中分区表的使用

|

        由于业务中有一个日志表随着时间越来越长,表越来越大,每次做Insert,Update时,资源占用很大,直接导致了系统慢,所以决定把这个表改成分区表的形式(只是数据库的存储做了变化,Insert,Update,Select,Delete都未做变化).

下面稍微介绍一下分区表的概念:

     在大型的企业应用或企业级的数据库应用中,要处理的数据量通常可以达到几十到几百GB,有的甚至可以到TB级。虽然存储介质和数据处理技术的发展也很快,但是仍然不能满足用户的需求,为了使用户的大量的数据在读写操作和查询中速度更快,Oracle提供了对表和索引进行分区的技术,以改善大型应用系统的性能。

   使用分区的优点:

   ·增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;

   ·维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;

   ·均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能;

   ·改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。

下面介绍一个分区表的使用:

1.建立分区表

这个表是根据DATVISITTIME字段的值来插入不同的分区表中,2006年10月的数据插到HS_APP_VISITLOG_0610中,2006年11月的数据插到HS_APP_VISITLOG_0611中,2006年12月的数据插到HS_APP_VISITLOG_0612中,然后其它的数据插到HS_APP_VISITLOG_MAX中.
PS:不用事先建HS_APP_VISITLOG_0610...HS_APP_VISITLOG_MAX这些表,在建HS_APP_VISITLOG_PART这个表时会自动建立.

2.增加分区表

3.删除分区表

最后再讲一下分区表其它的东东:

1.分区表可以把不同的子表放在不同的表空间中,建分区表时间时用

这是网易教程里的一个例子,就是看交易号,如果小于30000000,就把记录存在表空间dinya_space01的part_01 子表中

2.分区表存储记录有几种方式

          ·范围分区 就是上面那时间段,还有交易号的,用less than关键字

   ·Hash分区(散列分区) ,故名思议,就是Hash方式存储记录

         

   ·复合分区

                  有时候我们需要根据范围分区后,每个分区内的数据再散列地分布在几个表空间中,这样我们就要使用复合分区。复合分区是先使用范围分区,然后在每个分区内再使用散列分区的一种分区方法,如将物料交易的记录按时间分区,然后每个分区中的数据分三个子分区,将数据散列地存储在三个指定的表空间中:

         

ubuntu下rails连接mysql中文问题

|
1.mysql 建表时指定CHARACTER SET为utf8
    CREATE TABLE `users` (
       `id` int(11) NOT NULL auto_increment,
       `user_name` varchar(255) character set utf8 collate utf8_bin NOT NULL,
       `login_user` varchar(28) NOT NULL,
       `login_pwd` varchar(128) NOT NULL,
       `enabled_flag` tinyint(4) NOT NULL,
       `update_at` datetime NOT NULL,
       `create_at` datetime NOT NULL
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

2.rails的database.yml指定encoding
    development:
      adapter: mysql
      database: yige_development
      username: root
      password:
      host: localhost
      socket: /var/run/mysqld/mysqld.sock
      encoding: utf8
其中socket: /var/run/mysqld/mysqld.sock,是因为ubuntu的apt-get安装mysql时,mysql Socket文件的位置.

3.在application.rb中加入
    before_filter :configure_charsets

    def configure_charsets
        @headers["Content-Type"] = "text/html; charset=utf-8"
        suppress(ActiveRecord::StatementInvalid) do
            ActiveRecord::Base.connection.execute 'SET NAMES UTF8'
        end
    end

4.在rhtml模板中加入
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />