sunfruit[请访问http://www.fruitres.cn]

--我相信JAVA能走得更远 QQ:316228067

2008年9月12日 #

Linux Enterprise 5 安装Oracle出现ins_rdbms.mk错误的解决办法

    --sunfruit

    在Linux Enterprise 5安装Oracle的时候有时候会报错例如“makefile '/oracle/product/10.2.0/db_1/rdbms/lib/ins_rdbms.mk' 的目标 'all_no_orcl' 时出错”

    经过多次测试是缺少相关的系统包文件,至少我的环境中确实是这样,只要是安装了下面的包文件,这个错误可以避免(版本号在不同环境中略有不同)

    compat-libstdc++-33-3.2.3-61
    compat-libstdc++-296-2.96-138
    gcc-4.1.1-52.el5
    gcc-c++-4.1.1-52.el5
    glibc-2.5-12
    glibc-common-2.5-12
    glibc-devel-2.5-12
    glibc-headers-2.5-12
    libgcc-4.1.1-52.el5
    make-3.81-1.1
    binutils-2.17.50.0.6-2.el5
    openmotif-2.3.0-0.3.el5

    以上的安装包由于在安装Linux的选择的包以及具体的环境不同可能,可能有些不需要,不过如果出现了ins_rdbms.mk的错误,可以按照这个方法尝试一下

    注:以上的安装在Linux Enterprise 5的安装盘中都包含,不需要额外在网上下载

posted @ 2008-09-12 09:18 sunfruit 阅读(5404) | 评论 (1)编辑 收藏

Linux Enterprise 5安装Oracle10g,Oracle10g字符集设置问题

    -sunfruit

    如果在安装Oracle10g的时候没有选择字符集,则按照下面的3部进行字符集的修改就可以完全正常的使用Oracle10g(注:关于下面的1、2、3均是转贴,后面添加了个人在使用的时候一些心得)
   

1、检查服务器上Oracle数据库的字符集   
    sqlplus /nolog
  SQL>  connect / as sysdba
  连接成功.   
   
  SQL>  desc  props$   
    列名                                                    可空值否      类型   
    -------------------------------  --------  ----   
    NAME                                                        NOT  NULL  VARCHAR2(30)   
    VALUE$                                                                      VARCHAR2(2000)   
    COMMENT$                                                                  VARCHAR2(2000)   
   
  SQL>  col  value$  format  a40   
  SQL>  select  name,value$  from  props$;   
   
  NAME                                                      VALUE$   
  ------------------------------  -------------------------   
  DICT.BASE                                            2   
  NLS_LANGUAGE                                      AMERICAN   
  NLS_TERRITORY                                    AMERICA   
  NLS_CURRENCY                                      $   
  NLS_ISO_CURRENCY                              AMERICA   
  NLS_NUMERIC_CHARACTERS                  .,   
  NLS_DATE_FORMAT                                DD-MON-YY   
  NLS_DATE_LANGUAGE                            AMERICAN   
  NLS_CHARACTERSET                              ZHS16GBK   
  NLS_SORT                                              BINARY   
  NLS_CALENDAR                                      GREGORIAN   
  NLS_RDBMS_VERSION                            7.3.4.0.0   
  GLOBAL_DB_NAME                                  ORACLE.WORLD   
  EXPORT_VIEWS_VERSION                      3   
   
   
   
  NLS_CHARACTERSET和NLS_CHAR_CTERSET这个参数应该是ZHS16GBK,如不是,改为它。   
   
  SQL*Plus中修改方法:   
  SQL>  update  props$  set  value$='ZHS16GBK'  where  name='NLS_CHARACTERSET'; 


2、确认字符集是否修改的不彻底。
  SELECT DISTINCT (NLS_CHARSET_NAME(CHARSETID)) CHARACTERSET,
  DECODE(TYPE#, 1,
  DECODE(CHARSETFORM, 1, 'VARCHAR2', 2, 'NVARCHAR2', 'UNKOWN'),
  9,
  DECODE(CHARSETFORM, 1, 'VARCHAR', 2, 'NCHAR VARYING', 'UNKOWN'),
  96,
  DECODE(CHARSETFORM, 1, 'CHAR', 2, 'NCHAR', 'UNKOWN'),
  112,
  DECODE(CHARSETFORM, 1, 'CLOB', 2, 'NCLOB', 'UNKOWN')) TYPES_USED_IN
  FROM SYS.COL$
  WHERE CHARSETFORM IN (1, 2)
  AND TYPE# IN (1, 9, 96, 112);

3、如果上面的查询的确显示有多个字符集的设定,则进行如下处理:
  SHUTDOWN IMMEDIATE;
  STARTUP MOUNT;
  ALTER SYSTEM ENABLE RESTRICTED SESSION;
  ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
  ALTER SYSTEM SET AQ_TM_PROCESSES=0;
  ALTER DATABASE OPEN;

  COL VALUE NEW_VALUE CHARSET
  SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET';
  COL VALUE NEW_VALUE NCHARSET
  SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_NCHAR_CHARACTERSET';

  --INTERNAL_USE是没有写在文档中的参数,用以强制完成字符集一致化
  ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET;
  ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET;

  SHUTDOWN IMMEDIATE;
  STARTUP;
  -- 再次启动数据库一遍
  SHUTDOWN IMMEDIATE;
  STARTUP;

**************注意****************
本人在使用上面的方法设置以后Oracle10g可以正常使用,在导入dmp,sql文件的时候则需要在Linux中做如下设置
sql文件,dmp文件在导入oracle的时候需要设置字符集

export LANG=zh_CN.GBK    //这个是linux的字符集设置
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK   //这个是oracle的字符集设置

posted @ 2008-09-12 09:09 sunfruit 阅读(2307) | 评论 (0)编辑 收藏