记录我的生活和学习历程
  • 2016年2月13日幸福之家

    2016-02-13

    幸福一家人

    作者:swappy | Categories:未分类 | Tags:
  • 世界,您好!

    2015-12-08

    欢迎使用WordPress。这是您的第一篇文章。编辑或删除它,然后开始写作吧!

    作者:swappy | Categories:未分类 | Tags:
  • [Oracle] oracle删除归档日志

    2012-12-07

    某公司一工程师联系我,说应用系统报错,无法正常使用,报错信息:
    ORA-00257: archiver error. Connect internal only, until freed
    字面上看是归档日志的问题。
    首先看下归档日志使用情况:

    擦!归档日志马上100%了!不出问题才怪。接下来删除过期的归档日志文件,释放空间。操作方法:
    1:进入rman
    $rman target /
    2:手动删除归档日志。以下命令是删除7天前的归档日志,最后的时候会让你输入yes。
    RMAN>DELETE ARCHIVELOG ALL COMPLETED BEFORE ‘SYSDATE-7’;
    3:重新检查下
    RMAN>crosscheck archivelog all;
    4:完成

    参考:
    http://www.cnblogs.com/ungshow/archive/2009/04/03/1429218.html
    http://hi.baidu.com/asxsankohubgpxd/item/ef444e8a79f5b0874514cf69
    http://www.2cto.com/database/201203/124636.html

    作者:swappy | Categories:Oracle | Tags:
  • [Mysql]mysql密码找回

    2012-11-15

    近日,在ubuntu下安装了一个mysql

    sudo apt-get install mysql-server
    

    安装过程居然没有提示我设定mysql密码。安装好后,以为用户为root默认密码为空,可是怎么也登陆不进去,只好强制更改root密码了。
    操作步骤:
    1.停掉mysql

    service mysql stop
    

    2.以–skip-grant-table 的参数启动mysql,执行后不要动此Terminal,他会一直停在那里。

    mysqld_safe --skip-grant-table&
    

    3:开启另一个Terminal,执行下面命令,passwd为你要设定的密码

    mysql mysql
    mysql> UPDATE user SET password=password('passwd') WHERE user='root';
    mysql> FLUSH PRIVILEGES;
    mysql> exit
    

    4:回到当初执行的终端Terminal,ctrl+c,终止其执行。确保进程已经关闭再执行下

    killall mysqld
    

    5:重启mysql并登陆

    service mysql start
    mysql -u root -p 
    Enter password:
    
    作者:swappy | Categories:Mysql | Tags:
  • [Oracle] 不同字符集数据库之间的数据(汉字)传输

    2012-11-14

    前段时间用Oracle ODI同步2个数据库的数据,结果汉字字段全部是乱码,首先想到可能是数据库字符集不对。
    执行:
    select * from nls_database_parameters where parameter = ‘NLS_CHARACTERSET’;
    果然,源数据库是UTF8 ,目标数据库是GBK。
    于是开始从编码这块入手,经网上搜索,用oralce 自带的函数 utl_raw.cast_to_raw和utl_raw.cast_to_varchar2这两个函数可以解决。
    utl_raw.cast_to_raw是把字符串转成16进制数,utl_raw.cast_to_varchar2是把16进制数转成字符串。
    实现思路:
    环境:字符集为UTf-8/GBK的数据库A/B中有数据表t_table(id,xm),其中姓名为汉字。
    目的:把A库中的t_table 数据同步到B库中的t_table中
    1:在A中,创建视图v_table 用utl_raw.cast_to_raw()函数把xm字段转成16进制数
    create or replace view v_table as select id,utl_raw.cast_to_raw(xm) xm from t_table;
    2:把v_table 中的内容同步到B库中的T_table 中,可以用dblink,也可以用ODI,再次不过多描述。
    3:在B中,创建视图v_table 用utl_raw.cast_to_varchar2()函数 把16进制的xm字段转成字符串。
    create or replace view v_table as select id,utl_raw.cast_to_varchar2(xm) xm from t_table;
    网上看到,做到这一步,好多人都成功了。但是我同步过来的数据,依然是乱码!
    经过排查,发现2个问题。
    1:utl_raw.cast_to_raw这个函数在不同的字符集数据库环境下,转换同一个字符串结果是不一样的!比如:
    在UTF8下 select utl_raw.cast_to_raw(‘刘德华’) from dual;–结果是 E58898E5BEB7E58D8E
    在GBK下 select utl_raw.cast_to_raw(‘刘德华’) from dual;–结果是 C1F5B5C2BBAA
    2:不同字符集传输ABC字母的时候,也是乱码!
    解决思路:
    1:convert()用这个函数转换下编码,然后再进行16进制转换。
    2:把16进制数据转换成10进制数据然后跨库传输。
    操作步骤:
    1:在A/B数据库中添加自定义函数,功能:实现二进制、八进制、十进制、十六进制相互转换。内容见附录。
    2:更改A库中的视图,pkg_number_trans.f_hex_to_dec() 是自定义函数,把十六进制转成10进制:
    create or replace view v_table as
    select id,pkg_number_trans.f_hex_to_dec(utl_raw.cast_to_raw(convert(xm,’ZHS16GBK’,’AL32UTF8′))) xm from t_table;
    3:把v_table 中的内容同步到B库中的T_table 中。
    4:修改B库中的视图。
    create or replace view v_table as
    select id,utl_raw.cast_to_varchar2(pkg_number_trans.f_dec_to_hex(xm)) xm from t_table;
    5:成功!
    附录:

    CREATE OR REPLACE PACKAGE pkg_number_trans IS 
    
      FUNCTION f_bin_to_oct(p_str IN VARCHAR2) RETURN VARCHAR2; 
      
      FUNCTION f_bin_to_dec(p_str IN VARCHAR2) RETURN VARCHAR2; 
      
      FUNCTION f_bin_to_hex(p_str IN VARCHAR2) RETURN VARCHAR2; 
    
      FUNCTION f_oct_to_bin(p_str IN VARCHAR2) RETURN VARCHAR2; 
      
      FUNCTION f_oct_to_dec(p_str IN VARCHAR2) RETURN VARCHAR2; 
    
      FUNCTION f_oct_to_hex(p_str IN VARCHAR2) RETURN VARCHAR2; 
      
      FUNCTION f_hex_to_bin(p_str IN VARCHAR2) RETURN VARCHAR2; 
    
      FUNCTION f_hex_to_oct(p_str IN VARCHAR2) RETURN VARCHAR2; 
    
      FUNCTION f_hex_to_dec(p_str IN VARCHAR2) RETURN VARCHAR2; 
      
      FUNCTION f_dec_to_bin(p_int IN VARCHAR2) RETURN VARCHAR2; 
    
      FUNCTION f_dec_to_oct(p_int IN VARCHAR2) RETURN VARCHAR2; 
    
      FUNCTION f_dec_to_hex(p_int IN VARCHAR2) RETURN VARCHAR2; 
      
    END pkg_number_trans; 
    / 
    CREATE OR REPLACE PACKAGE BODY pkg_number_trans IS 
      FUNCTION f_bin_to_oct(p_str IN VARCHAR2) RETURN VARCHAR2 IS 
        ----------------------------------------------------------------------------------------------
        -- 对象名称: f_bin_to_oct 
        -- 对象描述: 二进制转换八进制 
        -- 输入参数: p_str 二进制字符串 
        -- 返回结果: 八进制字符串 
        -- 测试用例: SELECT pkg_number_trans.f_bin_to_oct('11110001010') FROM dual; 
        -- 备    注: 需要定义f_stragg函数和type_str_agg类型 
        ------------------------------------------------------------------------------------------------
        v_return VARCHAR2(4000); 
        v_bin    VARCHAR2(4000); 
      BEGIN 
        v_bin := substr('00' || p_str, -3 * ceil(length(p_str) / 3)); 
        SELECT f_stragg(data1) INTO v_return 
          FROM (SELECT (CASE upper(substr(v_bin, (rownum - 1) * 3 + 1, 3)) 
                         WHEN '000' THEN '0' 
                         WHEN '001' THEN '1' 
                         WHEN '010' THEN '2' 
                         WHEN '011' THEN '3' 
                         WHEN '100' THEN '4' 
                         WHEN '101' THEN '5' 
                         WHEN '110' THEN '6' 
                         WHEN '111' THEN '7' 
                       END) data1 
                  FROM dual 
                CONNECT BY rownum <= length(v_bin) / 3); 
        RETURN v_return; 
      EXCEPTION 
        WHEN OTHERS THEN 
          RETURN NULL; 
      END f_bin_to_oct; 
    
      FUNCTION f_bin_to_dec(p_str IN VARCHAR2) RETURN VARCHAR2 IS 
        ---------------------------------------------------------------------------------------- 
        -- 对象名称: f_bin_to_dec 
        -- 对象描述: 二进制转换十进制 
        -- 输入参数: p_str 二进制字符串 
        -- 返回结果: 十进制字符串 
        -- 测试用例: SELECT pkg_number_trans.f_bin_to_dec('11110001010') FROM dual; 
        ----------------------------------------------------------------------------------------- 
        v_return  VARCHAR2(4000); 
      BEGIN 
        SELECT SUM(data1) INTO v_return 
          FROM (SELECT substr(p_str, rownum, 1) * power(2, length(p_str) - rownum) data1 
                  FROM dual 
                CONNECT BY rownum <= length(p_str)); 
        RETURN v_return; 
      EXCEPTION 
        WHEN OTHERS THEN 
          RETURN NULL; 
      END f_bin_to_dec; 
    
      FUNCTION f_bin_to_hex(p_str IN VARCHAR2) RETURN VARCHAR2 IS 
        ----------------------------------------------------------------------------------- 
        -- 对象名称: f_bin_to_hex 
        -- 对象描述: 二进制转换十六进制 
        -- 输入参数: p_str 二进制字符串 
        -- 返回结果: 十六进制字符串 
        -- 测试用例: SELECT pkg_number_trans.f_bin_to_oct('11110001010') FROM dual; 
        -- 备    注: 需要定义f_stragg函数和type_str_agg类型 
        -------------------------------------------------------------------------------------- 
        v_return VARCHAR2(4000); 
        v_bin    VARCHAR2(4000); 
      BEGIN 
        v_bin := substr('000' || p_str, -4 * ceil(length(p_str) / 4)); 
        SELECT f_stragg(data1) INTO v_return 
          FROM (SELECT (CASE upper(substr(v_bin, (rownum - 1) * 4 + 1, 4)) 
                         WHEN '0000' THEN '0' 
                         WHEN '0001' THEN '1' 
                         WHEN '0010' THEN '2' 
                         WHEN '0011' THEN '3' 
                         WHEN '0100' THEN '4' 
                         WHEN '0101' THEN '5' 
                         WHEN '0110' THEN '6' 
                         WHEN '0111' THEN '7' 
                         WHEN '1000' THEN '8' 
                         WHEN '1001' THEN '9' 
                         WHEN '1010' THEN 'A' 
                         WHEN '1011' THEN 'B' 
                         WHEN '1100' THEN 'C' 
                         WHEN '1101' THEN 'D' 
                         WHEN '1110' THEN 'E' 
                         WHEN '1111' THEN 'F' 
                       END) data1 
                  FROM dual 
                CONNECT BY rownum <= length(v_bin) / 4); 
        RETURN v_return; 
      EXCEPTION 
        WHEN OTHERS THEN 
          RETURN NULL; 
      END f_bin_to_hex; 
    
      FUNCTION f_oct_to_bin(p_str IN VARCHAR2) RETURN VARCHAR2 IS 
        ------------------------------------------------------------------------------------------- 
        -- 对象名称: f_oct_to_bin 
        -- 对象描述: 八进制转换二进制 
        -- 输入参数: p_str 八进制字符串 
        -- 返回结果: 二进制字符串 
        -- 测试用例: SELECT pkg_number_trans.f_oct_to_bin('3612') FROM dual; 
        -- 备    注: 需要定义f_stragg函数和type_str_agg类型 
        -------------------------------------------------------------------------------------------- 
        v_return VARCHAR2(4000); 
      BEGIN 
        SELECT to_char(to_number(f_stragg(data1))) INTO v_return 
          FROM (SELECT (CASE upper(substr(p_str, rownum, 1)) 
                         WHEN '0' THEN '000' 
                         WHEN '1' THEN '001' 
                         WHEN '2' THEN '010' 
                         WHEN '3' THEN '011' 
                         WHEN '4' THEN '100' 
                         WHEN '5' THEN '101' 
                         WHEN '6' THEN '110' 
                         WHEN '7' THEN '111' 
                       END) data1 
                  FROM dual 
                CONNECT BY rownum <= length(p_str)); 
        RETURN v_return; 
      EXCEPTION 
        WHEN OTHERS THEN 
          RETURN NULL; 
      END f_oct_to_bin; 
    
      FUNCTION f_oct_to_dec(p_str IN VARCHAR2) RETURN VARCHAR2 IS 
        ---------------------------------------------------------------------------------------------------------------------- 
        -- 对象名称: f_oct_to_dec 
        -- 对象描述: 八进制转换十进制 
        -- 输入参数: p_str 八进制字符串 
        -- 返回结果: 十进制字符串 
        -- 测试用例: SELECT pkg_number_trans.f_oct_to_dec('3612') FROM dual; 
        ---------------------------------------------------------------------------------------------------------------------- 
        v_return  VARCHAR2(4000); 
      BEGIN 
        SELECT SUM(data1) INTO v_return 
          FROM (SELECT substr(p_str, rownum, 1) * power(8, length(p_str) - rownum) data1 
                  FROM dual 
                CONNECT BY rownum <= length(p_str)); 
        RETURN v_return; 
      EXCEPTION 
        WHEN OTHERS THEN 
          RETURN NULL; 
      END f_oct_to_dec; 
      
      FUNCTION f_oct_to_hex(p_str IN VARCHAR2) RETURN VARCHAR2 IS 
        --------------------------------------------------------------------------------------------- 
        -- 对象名称: f_oct_to_bin 
        -- 对象描述: 八进制转换十六进制 
        -- 输入参数: p_str 八进制字符串 
        -- 返回结果: 十六进制字符串 
        -- 测试用例: SELECT pkg_number_trans.f_oct_to_hex('3612') FROM dual; 
        ---------------------------------------------------------------------------------------------- 
        v_return VARCHAR2(4000); 
        v_bin    VARCHAR2(4000); 
      BEGIN 
        SELECT pkg_number_trans.f_oct_to_bin(p_str) INTO v_bin FROM dual; 
        SELECT pkg_number_trans.f_bin_to_hex(v_bin) INTO v_return FROM dual; 
        RETURN v_return; 
      EXCEPTION 
        WHEN OTHERS THEN 
          RETURN NULL; 
      END f_oct_to_hex; 
    
      FUNCTION f_dec_to_bin(p_int IN VARCHAR2) RETURN VARCHAR2 IS 
        ---------------------------------------------------------------------------------------------------------------------- 
        -- 对象名称: f_dec_to_bin 
        -- 对象描述: 十进制转换二进制 
        -- 输入参数: p_str 十进制字符串 
        -- 返回结果: 二进制字符串 
        -- 测试用例: SELECT pkg_number_trans.f_dec_to_bin('1930') FROM dual; 
        ---------------------------------------------------------------------------------------------------------------------- 
        v_return VARCHAR2(4000); 
        v_hex    VARCHAR2(4000); 
      BEGIN 
        SELECT pkg_number_trans.f_dec_to_hex(p_int) INTO v_hex FROM dual; 
        SELECT pkg_number_trans.f_hex_to_bin(v_hex) INTO v_return FROM dual; 
        RETURN v_return; 
      EXCEPTION 
        WHEN OTHERS THEN 
          RETURN NULL; 
      END f_dec_to_bin; 
      
      FUNCTION f_dec_to_oct(p_int IN VARCHAR2) RETURN VARCHAR2 IS 
        ---------------------------------------------------------------------------------------------------------------------- 
        -- 对象名称: f_dec_to_oct 
        -- 对象描述: 十进制转换八进制 
        -- 输入参数: p_str 十进制字符串 
        -- 返回结果: 八进制字符串 
        -- 测试用例: SELECT pkg_number_trans.f_dec_to_oct('1930') FROM dual; 
        ---------------------------------------------------------------------------------------------------------------------- 
        v_return VARCHAR2(4000); 
        v_bin    VARCHAR2(4000); 
      BEGIN 
        SELECT pkg_number_trans.f_dec_to_bin(p_int) INTO v_bin FROM dual; 
        v_bin := substr('00' || v_bin, -3 * ceil(length(v_bin) / 3)); 
        SELECT f_stragg(data1) INTO v_return 
          FROM (SELECT (CASE upper(substr(v_bin, (rownum - 1) * 3 + 1, 3)) 
                         WHEN '000' THEN '0' 
                         WHEN '001' THEN '1' 
                         WHEN '010' THEN '2' 
                         WHEN '011' THEN '3' 
                         WHEN '100' THEN '4' 
                         WHEN '101' THEN '5' 
                         WHEN '110' THEN '6' 
                         WHEN '111' THEN '7' 
                       END) data1 
                  FROM dual 
                CONNECT BY rownum <= length(v_bin) / 3); 
        RETURN v_return; 
      EXCEPTION 
        WHEN OTHERS THEN 
          RETURN NULL; 
      END f_dec_to_oct; 
      
      FUNCTION f_dec_to_hex(p_int IN VARCHAR2) RETURN VARCHAR2 IS 
        ---------------------------------------------------------------------------------------------------------------------- 
        -- 对象名称: f_dec_to_oct 
        -- 对象描述: 十进制转换十六进制 
        -- 输入参数: p_str 十进制字符串 
        -- 返回结果: 十六进制字符串 
        -- 测试用例: SELECT pkg_number_trans.f_dec_to_hex('1930') FROM dual; 
        ---------------------------------------------------------------------------------------------------------------------- 
        v_return VARCHAR2(4000); 
      BEGIN 
        SELECT upper(TRIM(to_char(p_int, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'))) INTO v_return FROM dual; 
        RETURN v_return; 
      EXCEPTION 
        WHEN OTHERS THEN 
          RETURN NULL; 
      END f_dec_to_hex; 
      
      FUNCTION f_hex_to_bin(p_str IN VARCHAR2) RETURN VARCHAR2 IS 
        ---------------------------------------------------------------------------------------------------------------------- 
        -- 对象名称: f_dec_to_oct 
        -- 对象描述: 十六进制转换二进制 
        -- 输入参数: p_str 十六进制字符串 
        -- 返回结果: 二进制字符串 
        -- 测试用例: SELECT pkg_number_trans.f_hex_to_oct('78A') FROM dual; 
        ---------------------------------------------------------------------------------------------------------------------- 
        v_return VARCHAR2(4000); 
      BEGIN 
        SELECT to_char(to_number(f_stragg(data1))) INTO v_return 
          FROM (SELECT (CASE upper(substr(p_str, rownum, 1)) 
                         WHEN '0' THEN '0000' 
                         WHEN '1' THEN '0001' 
                         WHEN '2' THEN '0010' 
                         WHEN '3' THEN '0011' 
                         WHEN '4' THEN '0100' 
                         WHEN '5' THEN '0101' 
                         WHEN '6' THEN '0110' 
                         WHEN '7' THEN '0111' 
                         WHEN '8' THEN '1000' 
                         WHEN '9' THEN '1001' 
                         WHEN 'A' THEN '1010' 
                         WHEN 'B' THEN '1011' 
                         WHEN 'C' THEN '1100' 
                         WHEN 'D' THEN '1101' 
                         WHEN 'E' THEN '1110' 
                         WHEN 'F' THEN '1111' 
                       END) data1 
                  FROM dual 
                CONNECT BY rownum <= length(p_str)); 
        RETURN v_return; 
      EXCEPTION 
        WHEN OTHERS THEN 
          RETURN NULL; 
      END f_hex_to_bin; 
      
      FUNCTION f_hex_to_oct(p_str IN VARCHAR2) RETURN VARCHAR2 IS 
        ---------------------------------------------------------------------------------------------------------------------- 
        -- 对象名称: f_dec_to_oct 
        -- 对象描述: 十六进制转换八进制 
        -- 输入参数: p_str 十六进制字符串 
        -- 返回结果: 八进制字符串 
        -- 测试用例: SELECT pkg_number_trans.f_hex_to_oct('78A') FROM dual; 
        ---------------------------------------------------------------------------------------------------------------------- 
        v_return VARCHAR2(4000); 
        v_bin    VARCHAR2(4000); 
      BEGIN 
        SELECT pkg_number_trans.f_hex_to_bin(p_str) INTO v_bin FROM dual; 
        SELECT pkg_number_trans.f_bin_to_oct(v_bin) INTO v_return FROM dual; 
        RETURN v_return; 
      EXCEPTION 
        WHEN OTHERS THEN 
          RETURN NULL; 
      END f_hex_to_oct; 
      
      FUNCTION f_hex_to_dec(p_str IN VARCHAR2) RETURN VARCHAR2 IS 
        ---------------------------------------------------------------------------------------------------------------------- 
        -- 对象名称: f_hex_to_dec 
        -- 对象描述: 十六进制转换十进制 
        -- 输入参数: p_str 十六进制字符串 
        -- 返回结果: 十进制字符串 
        -- 测试用例: SELECT pkg_number_trans.f_hex_to_dec('78A') FROM dual; 
        ---------------------------------------------------------------------------------------------------------------------- 
        v_return  VARCHAR2(4000); 
      BEGIN 
        SELECT SUM(data1) INTO v_return 
          FROM (SELECT (CASE upper(substr(p_str, rownum, 1)) 
                         WHEN 'A' THEN '10' 
                         WHEN 'B' THEN '11' 
                         WHEN 'C' THEN '12' 
                         WHEN 'D' THEN '13' 
                         WHEN 'E' THEN '14' 
                         WHEN 'F' THEN '15' 
                         ELSE substr(p_str, rownum, 1) 
                       END) * power(16, length(p_str) - rownum) data1 
                  FROM dual 
                CONNECT BY rownum <= length(p_str)); 
        RETURN v_return; 
      EXCEPTION 
        WHEN OTHERS THEN 
          RETURN NULL; 
      END f_hex_to_dec; 
      
    END pkg_number_trans; 
    / 
    
    CREATE OR REPLACE TYPE type_str_agg AS OBJECT 
    ( 
      total VARCHAR2(4000), 
    
      STATIC FUNCTION odciaggregateinitialize(sctx IN OUT type_str_agg) 
        RETURN NUMBER, 
    
      MEMBER FUNCTION odciaggregateiterate 
      ( 
        SELF  IN OUT type_str_agg, 
        VALUE IN VARCHAR2 
      ) RETURN NUMBER, 
    
      MEMBER FUNCTION odciaggregateterminate 
      ( 
        SELF        IN type_str_agg, 
        returnvalue OUT VARCHAR2, 
        flags       IN NUMBER 
      ) RETURN NUMBER, 
    
      MEMBER FUNCTION odciaggregatemerge 
      ( 
        SELF IN OUT type_str_agg, 
        ctx2 IN type_str_agg 
      ) RETURN NUMBER 
    ) 
    / 
    CREATE OR REPLACE TYPE BODY type_str_agg IS 
    
      STATIC FUNCTION odciaggregateinitialize(sctx IN OUT type_str_agg) 
        RETURN NUMBER IS 
      BEGIN 
        sctx := type_str_agg(NULL); 
        RETURN odciconst.success; 
      END; 
    
      MEMBER FUNCTION odciaggregateiterate 
      ( 
        SELF  IN OUT type_str_agg, 
        VALUE IN VARCHAR2 
      ) RETURN NUMBER IS 
      BEGIN 
        SELF.total := SELF.total || VALUE; 
        RETURN odciconst.success; 
      END; 
    
      MEMBER FUNCTION odciaggregateterminate 
      ( 
        SELF        IN type_str_agg, 
        returnvalue OUT VARCHAR2, 
        flags       IN NUMBER 
      ) RETURN NUMBER IS 
      BEGIN 
        returnvalue := SELF.total; 
        RETURN odciconst.success; 
      END; 
    
      MEMBER FUNCTION odciaggregatemerge 
      ( 
        SELF IN OUT type_str_agg, 
        ctx2 IN type_str_agg 
      ) RETURN NUMBER IS 
      BEGIN 
        SELF.total := SELF.total || ctx2.total; 
        RETURN odciconst.success; 
      END; 
    END; 
    / 
    
    CREATE OR REPLACE FUNCTION f_stragg(p_input VARCHAR2) RETURN VARCHAR2 
      PARALLEL_ENABLE 
      AGGREGATE USING type_str_agg; 
    / 
    
    作者:swappy | Categories:Oracle | Tags:
  • [SqlServer]客户端连接不成功

    2012-07-10

    之前同事遇到了一个问题,在做ODI集成的时候,sqlserver死活连接不上。
    跟他要过各个用户名和密码,上去看了下,果然发现了问题所在,成功解决!在此记录下解决过程
    首先,ODI要连接sqlserver,sqlserver必须已经打上sp3或者sp4补丁,我检测了下,他的数据库版本号是8.00.760,说明已经打上了sp3补丁(版本号8.00.2039表示安装了SP4,8.00.760表示安装了SP3)。
    我在ODI服务器ping了下sql服务器,能ping通,然后telnet “sqlip“ 1433 结果telnet失败。说明远程并不能访问sql服务器的1433端口。
    当时估计,很有可能防火墙给阻拦了,于是我跑到sql服务器上,一看,我勒个去,Windows2000服务器!Windows2000本身是不带防火墙的,我也并没有发现有别的防火墙软件。于是,我在sql服务器上telnet 1433端口,失败!问题已经很明显了,sqlserver并没有在1433端口上监听,确保猜想是正确的,我又执行了netstat命令,查看下本机端口监听和开放状态,果然没有1433端口。走到这里,就已经说明是sqlserver配置出问题了。
    打开”服务器网络实用工具“,发现tcp/ip在启用访问内,然后看了下属性,乖乖!值是2433!问题知道了,修改成1433后,重启sqlserver,于是再telnet一切顺利!搞定!

    作者:swappy | Categories:Sqlserver | Tags:
  • [叨叨]永远都不要做的事

    2012-07-08

    1,跟知己上床 2、和情人结婚 3、把同事当成朋友 4、到朋友公司打工 5、在上司面前知无不言 6、轻信上司的许诺 7、喜怒哀乐都挂在脸上 8、在人堆里大声讲手机 9、习惯于给自己找借口 10、超车过去,看开着车有着窈窕背影的MM的脸 11、对MM的不字信以为真 12、指望前女友回心转意

    作者:swappy | Categories:叨叨 | Tags:
  • [Oracle]oracle 10G 定时Exp导出

    2012-06-05

    环境:
    操作系统:Redhat e5
    数据库:Oracle Cluster 10

    1:创建文件夹
    mkdir /backup/exp/expdata //exp导出数据文件目录
    mkdir /backup/exp/explog //日志目录
    mkdir /backup/exp/sh //脚本目录
    2:创建脚本 exp.sh 其中,环境变量部分可以参照本地数据库环境.bash_profile文件:
    ##########By swappy@20120215#########
    ORACLE_BASE=/u01/app/oracle
    ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db
    CRS_HOME=$ORACLE_BASE/product/10.2.0/crs
    ORACLE_SID=rac1
    ORACLE_TERM=xterm
    #NLS_LANG=”Simplified Chinese”_China.ZHS16CGB231280
    NLS_LANG=AMERICAN_AMERICA.AL32UTF8
    TMPDIR=/var/tmp
    umask 022
    NLS_DATE_FORMAT=”YYYY/MM/DD hh24:mi:ss”
    ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
    TNS_ADMIN=$ORACLE_HOME/network/admin
    export ORACLE_BASE ORACLE_HOME CRS_HOME ORACLE_SID
    export NLS_LANG
    export TMPDIR NLS_DATE_FORMAT ORA_NLS33 TNS_ADMIN DISPLAY
    LIBPATH=$ORACLE_HOME/lib
    export LIBPATH
    PATH=$PATH:$ORACLE_HOME/bin:$CRS_HOME/bin:/usr/sbin
    export PATH
    ############EXP#################
    D=$(date +%y-%m-%d);
    export D;
    $ORACLE_HOME/bin/exp system/passwd file=/backup/exp/expdata/data_${D}.dmp log=/backup/exp/explog/log_${D}.log owner=TRS,TRSPLUGINS
    3:创建后,chmod +x exp.sh 赋予可执行权限。然后./exp.sh 看看是执行成功。
    4:创建crontab计划
    crotab -e 编辑计划加入:
    * 12 * * * /backup/exp/sh/exp.sh
    保存后重启服务
    service crond restart

    作者:swappy | Categories:Oracle未分类 | Tags:
  • [叨叨]博客搬家

    2012-06-03

    Kaisir童鞋的帮助下,域名成功备案,博客搬家成功!耶!
    记录下环境:
    服务器地址:济南
    线路:网通
    操作系统:CentOS
    虚拟主机:WDCP v2.3
    博客系统:Wordpress 3.3
    备案/许可证编号为:鲁ICP备12014303号
    心情:爽!

    作者:swappy | Categories:叨叨 | Tags:
  • [叨叨]博客搬家

    2012-06-03

    Kaisir童鞋的帮助下,域名成功备案,博客搬家成功!耶!
    记录下环境:
    服务器地址:济南
    线路:网通
    操作系统:CentOS
    虚拟主机:WDCP v2.3
    博客系统:Wordpress 3.3
    主题:PowerV3
    备案/许可证编号为:鲁ICP备12014303号
    心情:爽!

    作者:swappy | Categories:叨叨 | Tags: