随笔 - 175  文章 - 202  trackbacks - 0
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

第一个Blog,记录哈哈的生活

常用链接

留言簿(16)

随笔分类

随笔档案

文章分类

文章档案

收藏夹

Java links

搜索

  •  

最新评论

阅读排行榜

评论排行榜

     摘要: http://www.levelofindirection.com/journal/2009/10/10/using-a-networked-drive-for-time-machine-backups-on-a-mac.html
You'll find similar information to this around the web, but I find it fiddly enough to piece together reliably, and I need it often enough, that I thought I'd blog about it. That way it at least gives me a single place to look. Maybe it will help others too. Much of the specifcs, especially the hdiutil command line and the ifconfig trick, I sourced from this thread in the Ready  阅读全文
posted @ 2010-12-20 12:56 哈哈的日子 阅读(234) | 评论 (0)编辑 收藏
下面的网址可以浏览,但不是实际下载的地址
http://s3browse.springsource.com/browse/maven.springframework.org/

实际下载的地址是

http://maven.springframework.org/xxxx

就是去掉前面的
http://s3browse.springsource.com/browse/

浏览进去下载一下,看看网址就知道了。

posted @ 2010-12-08 15:50 哈哈的日子 阅读(293) | 评论 (0)编辑 收藏
1424-4118-1138-0912-4001-7222
需要在 hosts 文件中加入
127.0.0.1 activate.adobe.com 
posted @ 2010-12-06 14:18 哈哈的日子 阅读(597) | 评论 (0)编辑 收藏

一、简介

       SQL*LOADERORACLE的数据加载工具,通常用来将操作系统文件迁移到ORACLE数据库中。SQL*LOADER是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECTPARALLEL)。使用前提是必须存在目标表。

二、SQL*LOADER使用方法

    Window系统下,SQL Loader的命令为sqlldr,在UNIX下一般为sqlldr/sqlload

有效的关键字:   
userid   --   ORACLE   用户名/口令   
control   --   控制文件名  
log   --   日志文件名 
bad   --   错误文件名,如果有的数据没有被处理,将会出现在这里   
data   --   数据文件名  
discard   --   废弃文件名 
discardmax   --   允许丢弃数据的数目   (全部默认)   
skip   --   要跳过的逻辑记录的数目   (默认0)   
load   --   要加载的逻辑记录的数目   (全部默认)   
errors   --   允许的错误记录数目  (默认50)   
rows   --   常规路径绑定数组中或直接路径保存数据间的行数  (默认:   常规路径   64,   所有直接路径)   
bindsize   --    常规路径绑定数组的大小,以字节计算(默认65536)   
silent   --   运行过程中隐藏的信息   (header,feedback,errors,discards,partitions)   
direct   --   使用直接路径   (默认FALSE)   
parfile   --   参数文件:包含参数说明的文件的名称
parallel   --   执行并行加载   (默认FALSE)   

file -- 要从以下对象中分配区的文件
skip_unusable_indexes -- 不允许/允许使用无用的索引或索引分区  (默认 FALSE)
skip_index_maintenance -- 没有维护索引, 将受到影响的索引标记为无用  (默认 FALSE)

commit_discontinued -- 提交加载中断时已加载的行  (默认 FALSE)
readsize -- 读取缓冲区的大小               (默认 1048576)
external_table -- 使用外部表进行加载; NOT_USED, GENERATE_ONLY, EXECUTE  (默认 NOT_USED)
columnarrayrows -- 直接路径列数组的行数  (默认 5000)
streamsize -- 直接路径流缓冲区的大小 (以字节计)  (默认 256000)
multithreading -- 在直接路径中使用多线程
resumable -- 启用或禁用当前的可恢复会话  (默认 FALSE)
resumable_name -- 有助于标识可恢复语句的文本字符串
resumable_timeout -- RESUMABLE 的等待时间 (以秒计)  (默认 7200)
date_cache -- 日期转换高速缓存的大小 (以条目计)  (默认 1000)

PLEASE NOTE: 命令行参数可以由位置或关键字指定。前者的例子是 'sqlload scott/tiger foo'; 后一种情况的一个示例是 'sqlldr control=foo userid=scott/tiger'.位置指定参数的时间必须早于但不可迟于由关键字指定的参数。例如,允许 'sqlldr scott/tiger control=foo logfile=log', 但是不允许 'sqlldr scott/tiger control=foo log', 即使参数 'log' 的位置正确。

三、SQL*LOADER实例

控制文件脚本实例:

load data    --控制文件表示
infile 'e:\aa.csv'    --有导入的数据文件名
append into table TBL_SYNC_CORE_INSURANCE    --向表TBL_SYNC_CORE_INSURANCE中追加记录
fields terminated by ','  --指定用逗号分隔
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS  
--表的字段没有对应值时允许为空
*************下面是表的字段
(
  COVERAGE_CODE,
  PRODUCT_NO,
  NAME,
  MAIN_COVERAGE_CODE,
  KIND,
  CREATOR,
  CREATED_DATE,
  MODIFIER,
  MODIFIED_DATE
)

      备注:数据导入的方式上例中用的append,有一下几种:insert,为缺省方式,在数据装载开始时要求表为空;append,在表中追加新记录;replace,删除旧记录,替换成新装载的记录   ;truncate,同replace,会用truncate语句删除现存数据

      在命令行提示符下使用SQL*Loader命令实现数据的输入:

      sqlldr   userid=用户名/口令@服务名   control='e:\control.ctl'   log=e:\log.txt   bad=e:\bad.txt

      如果本地安装了oracle服务端,可以不写服务名;log和bad不写,默认生成在当前目录下。

四、其他导入方法

      利用PLSQL   Developer:

      在单个文件不大的情况下(少于100000行),并且目的表结构已经存在的情况下-----对于excel而言肯定不会超过了,因为excel文件的最大行为65536-----可以全选数据COPY   ,然后用PLSQL   Developer工具。

      1   在PLSQL   Developer的sql   window里输入select   *   from   test   for   update;   
      2   按F8执行;
      3   打开锁,   再按一下加号.   鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后COMMIT提交即可。

五、补充在Linux下使用 sqlldr 的注意事项

在执行 sqlldr 前,需要进行以下步骤

  1. 设置 ORACLE_HOME 环境变量,如 export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
  2. 设置ORACLE编码格式,将本地字符集和ORACLE字符集设置为一致,如export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
  3. 将csv文件转码成相应的编码

然后再使用 sqlldr 进行数据导入

posted @ 2010-11-07 15:42 哈哈的日子 阅读(4139) | 评论 (0)编辑 收藏
原因:

因为公司搬迁,两天左右,svn服务器不能使用,需要搭建临时的 svn 服务器。

一、备份 svn 服务器:

首先,使正在使用的 svn 无法提交。方法是:

在正在使用的 svn 服务器上,增加一个 pre-commit hook,在不使用 perl, python 等脚本的情况下,windows 就是 pre-commit.bat,linux 就是 pre-commit

使这个 hook 始终 exit 1

然后旧的 svn 服务器就没办法提交了。

文件 copy 一份出来就可以了,放在另外一个服务上,启动,然后让大家 relocate 一下,就可以使用新的 svn 服务器了。

二、恢复 svn 服务器

旧的 svn 依然不能提交,即 pre-commit hook exit 1,将新的 svn 服务器也设置为不能提交。

然后:

在新的 svn 服务器上,使用 svnadmin dump -r xxx:HEAD --incremental > dump 进行增量的版本库 dump

xxx 是我们备份的下一个版本号

将旧的 svn 服务器设置为可以提交,即删除 pre-commit hook 或修改为正常使用的 hook,然后在旧的 svn 服务器上使用 svnadmin load < dump 就可以将新的服务器上提交的内容恢复到旧的服务器上。

让大家 relocate 回到旧的服务器上,就可以了。

完成!
posted @ 2010-10-16 13:09 哈哈的日子 阅读(917) | 评论 (3)编辑 收藏

这种方法SEO不好,需要SEO的,请不要使用。
在ckeditor中,增加分页符,然后可以使用下面的代码进行 js 分页。


$(
function() {
    
var top = "#content";
    
var content = $(top);
    
var all = content.find("*");
    
var pages = [];
    
function hideContent() {
        all.hide();
    }
    
function showArray(arr) {
        $.each(arr, 
function(i) {
            
this.show().parentsUntil(top).show();
        });
    }
    
function initPages(pageBreaks) {
        pageBreaks.each(
function(index) {
            $(
this).attr("id""pageBreak" + index);
        });
        
var current = 0;
        pages[
0= [];
        all.each(
function(i) {
            
var id = $(this).attr("id");
            
if(id == "pageBreak" + current) {
                current
++;
                pages[current] 
= [];
            } 
else {
                pages[current].push($(
this));
            }
        });
    }
    
function showPage(i) {
        hideContent();
        showArray(pages[i]);
    }
    
var pageBreaks = content.find("div[style]").filter(function() {
        
return $(this).css("page-break-after"== "always";
    });
    
if(pageBreaks.size() > 0) {
        initPages(pageBreaks);
        $(
"#pagingBar").pagination(pages.length, {
            callback: 
function(index) {
                showPage(index);
            },
            prev_text: '
<',
            next_text: '
>',
            items_per_page: 
1,
            num_display_entries: 
5,
            num_edge_entries: 
2
        });
        showPage(
0);
    }
    $(
"#content").show();
});
posted @ 2010-06-23 00:58 哈哈的日子 阅读(985) | 评论 (0)编辑 收藏
grant all privileges on *.* to root@'%' identified by '' with grant option;
posted @ 2010-06-11 15:02 哈哈的日子 阅读(206) | 评论 (0)编辑 收藏
产品需要一个邮件服务器,目标定位在 Apache James,原因是 sendmail 不好配,没弄明白。
开工!

1. 下载 James,是个 zip 包或是 tar 包,解压,windows 下不说,linux 下 tar -xf apache-james-2.3.2.tar.gz
2. 到 james-x.x.x/bin 目录下,linux 需要 chmod a+x *.sh,加上执行属性,然后运行 ./phoenix.sh start,然后快点儿 ./phoenix.sh stop,start 是因为会生成一个展开目录的 james,快一些 stop 是因为无数的垃圾邮件服务器在连接你,用你当垃圾邮件发送器
3. 修改 james-x.x.x/apps/james/SAR-INF/config.xml 文件,这步是最重要的。
    a) 修改 <servername>haha.com</servername>,把这个修改为你的域名,注意:要和你的机器 hostname 一致,至于怎么改 hostname,请参考我转的另一篇文章
    b) 把下面这段注释掉
         <mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">
            <processor> relay-denied </processor>
            <notice>550 - Requested action not taken: relaying denied</notice>
         </mailet>
    c) 把下面这段原来被注释掉的去掉注释
         <authRequired>true</authRequired>
    d) 把下面的被注释掉的,也去掉注释
         <verifyIdentity>true</verifyIdentity>
    e) 修改 root 密码,就是这行 <account login="root" password="new_password"/>
4. 重新执行 ./phoenix.sh start

你已经成功了。
posted @ 2010-05-31 22:32 哈哈的日子 阅读(566) | 评论 (0)编辑 收藏
http://www.onlyit.cn/bbs_html/200603/article_49_1284.htm

域名记录简介 
概述 
成功注册了域名之后,域名的日常管理就是对各种域名记录的配置和管理。下面我对常用的三种域名记录进行一个简单的介绍,这三种域名记录类型分别是 A 记录(地址记录)、 CNAME 记录(别名记录)和 MX 记录(邮件服务器记录)。前面两种主要作用都是将一个域名解释成一个 IP 地址,用于几乎所有的 TCP/IP 通信。后一种是将一个域名解释成一个邮件服务器的域名,只用于 SMTP (互联网的邮件系统)通信过程。 
在开始之前需要简单说明一下 DNS 系统所作的事情不仅仅是将域名解释成 IP 地址。 DNS 实际上作的是名字翻译工作。虽然在 TCP/IP 环境下最后基本上都会牵扯到 IP 地址。但是 DNS 允许通过不同的类型让同一个名称拥有不同的含义。比如同样的 oray.net 这个名称在 Web/FTP 通信过程中对应的是一个地址,在 SMTP 通信中则变成一个邮件服务器。这样就允许我们将 Web 和 SMTP 服务器放在不同的 IP 地址上。 
DNS 服务器进行名字解释的时候依赖的是一个数据文件,每个域名都有一个独立的数据文件,这个文件包括了该域名所有的名称,名称对应的类型和对应的类型数据。 DNS 规定的名称类型有近 20 个,不过常用的除了我们下面介绍的三种外,还有就是 soa 记录和 NS 记录。 
记录生存时间 
所有的名字记录都有一个相同的属性就是生存时间( TTL ),这个属性用来控制其它 DNS 服务器在什么时候删除这个记录的解释结果,是一个非常重要的参数。在前面我们讲过为了提高域名解释的速度。一般的 DNS 服务器都会缓存代理解释的结果。但是如果授权服务器的记录发生改变,曾经代理解释过这个记录的 DNS 服务器不会那么快反应这个变化。因为在记录缓存失效之前,这些服务器会使用缓存中的结果回答收到的查询申请。所以缓存虽然提高了查询效率,但是负面的作用就是变化的反应时间延长。技术上叫收敛过程缓慢,一个记录的缓存时间越长,收敛就越慢。在同一个域名下不同的域名记录的缓存时间是可以单独控制的,对于经常需要变化的域名记录我们一般采用较短的缓存时间。 
为了改善这种慢收敛效应, DNS 规定了记录的代理解释的服务器在使用缓存数据回应的时候,包含在回应数据中的缓存时间是原始缓存时间减去已经缓存的时间。例如一个记录在授权服务器上设置的缓存时间是 1 小时,那么代理解释服务器通过授权服务器得到的结果的原始缓存时间就是 1 小时,缓存了半小时后,代理解释服务器上再次受到解释请求,这是服务器通过缓存解释域名,不过回应的时候告诉客户这股只剩下半小时的缓存时间。如果客户是另一台代理服务器那么这台服务得到的原始缓存时间就只有半小时了。这样的机制保证了一个记录变化之后最坏情况下被缓存的时间最长就是设定的生存时间。 
A 记录(地址记录) 
这种记录是最简单的一种记录类型,其功能就是将域名解释成一个 IP 地址。配置的时候(不同的系统有不同的操作界面,不过基本的原理差不多)输入名称和一个 IP 地址。留意一下生存时间就可以了。 
一个名字可以对多个 IP 地址,这样就需要使用多条 A 记录来实现。在解释的时候 DNS 服务器基本上都会支持一种 “ 轮换 ” ( Round Robin )机制。如果同一个类型的同一个名字有多条记录,虽然每次查询都斛返回所有的记录内容,不过在返回的过程中数据排列的顺序每次都不相同。由于大部分的客户端只选择第一条记录所以通过这种方式可以实现一定程度的负载平衡。 
CNAME (别名记录) 
这种记录的作用是将一个域名解释成另外一个域名,两个域名不一定需要在同一个域下。通常为了方便域名的管理。如果一个 IP 地址对应着多个域名的话,经常使用若干条 CNAME 记录和一条 A 记录来替代多条 A 记录。这样当 IP 地址发生变化的时候只需要改变一条 A 记录就可以了。 
理论上别名记录本身也可以只想另外一个别名记录,不过一般不这么做。应为最后我们需要的是得到一个地址。多极别名会大大降低域名的查询速度,而且一些服务器不会正常解释这种域名记录。 
MX (邮件服务器记录) 
这种记录用来说明负责接受指定域名的邮件的邮件服务器是哪一个。仅用于 SMTP 服务转发邮件的时候。当 SMTP 服务器需要向外转发 name@Domain.com 的邮件的时候。首先会像 DNS 查询类行为 MX ,名称为 Domain.Com 的记录。如果没有 MX 记录则会使用 A 类型再查询一次。所以 MX 记录在一定程度上是可以使用 A 记录替代的。 
MX 记录的结果比上面两个稍微复杂一些,它包含一个邮件服务器的域名和一个邮件服务器的优先级,如果你的域名使用多个 SMTP 服务器接受邮件的话,你可以使用多条 MX 记录指出所有的邮件的服务器,通过优先级参数配置那一台服务作为首选服务器。一般情况下邮件会发给优先级最高的服务器(数值最小的),如果该服务器不能连通,则转到下一个优先级的服务器。想通优先级的服务器的顺序可以由 “ 轮换 ” 机制决定。 
一般情况下,即使你的其他服务器和邮件服务区使用相同的 IP 地址也建议使用 MX 记录来表示邮件服务器。相对于简单的 A 记录来说, MX 记录的优先级可以控制,另外你保持了邮件服务和其他服务的独立性。
posted @ 2010-05-30 00:26 哈哈的日子 阅读(275) | 评论 (0)编辑 收藏
test
test
test
e538-c851-cf5a-930c-1943
posted @ 2010-05-27 09:44 哈哈的日子 阅读(341) | 评论 (0)编辑 收藏
仅列出标题
共17页: First 上一页 4 5 6 7 8 9 10 11 12 下一页 Last