Oracle11g在ubuntu12.04上使用时的若干问题

按正常步骤在ubuntu12.04上安装好oracle11g后,要想正常使用还有若干问题需要注意。

  • 分区挂载不正确,导致oracle实例不能成功启动运行,表现为sql无法执行

    出现此错误的原因是,ubuntu12.04挂载/dev/shm出错,在终端执行df -h /dev/shm查看,出现如下结果:

    1
    2
    3
    root@sumory:~# df -h /dev/shm
    Filesystem Size Used Avail Use% Mounted on
    shmfs 2.0G 610M 1.5G 30% /run/shm

    最后一项,Mounted on(/run/shm),问题就出在这里了,在ubuntu12.04中,/dev/shm是一个指向/run/shm的连接,可以用以下方式修复:

    1
    2
    3
    4
    rm /dev/shm
    mkdir /dev/shm
    mount -t tmpfs shmfs -o size=2048m /dev/shm #具体参数含义google之
    df –h /dev/shm #查看Mounted on一项为/dev/shm,则表明正确配置

    接着 cd /u01/app/oracle/product/11.2.0/xe/bin, 然后执行./lsnrctl start

    之后,转到oracle用户:

    1
    2
    3
    4
    5
    su - oracle
    sqlplus / as sysdba
    #进入sql命令行,然后
    shutdown immediate
    startup

    这样oracle实例就正确启动,并在端口监听了。

  • oracle占用8080端口,oracle是这么的脑残,使用以下方法更改

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    SQL> call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),
    2 '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()',8081))
    3 /

    Call completed.

    SQL> commit
    2 ;

    Commit complete.

    SQL> exec dbms_xdb.cfg_refresh;

    PL/SQL procedure successfully completed.

    SQL> select dbms_xdb.cfg_get from dual;


    root@sumory:~# netstat –ntlp 检查,发现已改为8081
  • ORA-25153错误,也就是temp文件问题

    1
    2
    3
    select * from v$tempfile; --发现临时文件丢失
    #指定临时文件
    alter tablespace temp add tempfile '/u01/app/oracle/oradata/XE/temp01.dbf' size 1024M autoextend off;