安装
参考 http://www.cnblogs.com/gaojun/archive/2012/11/22/2783257.html
几个问题:
1. 用户删除问题
p001:~ # userdel -r oracle
userdel: account `oracle' is currently in use.
p001:~ # who
weblogic :0 May 6 05:23
root pts/0 May 6 08:35 (10.0.0.36)
weblogic pts/1 May 6 08:50 (10.0.0.116)
oracle pts/3 May 6 07:11
oracle pts/4 May 6 07:14 (10.0.0.36)
p001:~ # ps -t pts/3
PID TTY TIME CMD
17872 pts/3 00:00:00 bash
p001:~ # ps -t pts/4
PID TTY TIME CMD
17973 pts/4 00:00:00 bash
p001:~ # kill -9 17872
p001:~ # kill -9 17973
2. ulimit –n 65536 问题
错误信息:-bash: ulimit: open files: cannot modify limit: 不允许的操作
普通用户不能设置超过当前ulimit –a 查看到的open file的值
//open files (-n) 1024
只能由root用户设置一个较大的值 比如65540 。 也就是说普通用户只能设置比当前值小 不能比当前值大
解决办法 :
可以在etc profile中 直接设置 ulimit –n 65536
当然这种情况是没有考虑区分用户 也没有考虑区分shell类型的
3. 创建用户同时指定家目录
useradd -g oinstall -G dba -d /home/oracle -m oracle
4. 安装过程图形化问题
可以在服务器上开启远程桌面服务 suese是vnc,还是比较简单的.
我一开始直接在虚拟上操作的,因为virtualbox的bug 导致鼠标定位错位,无法点击,烦恼了好久浪费了些时间.
当然也可以考虑xbrowser工具
详细安装过程参考 http://www.cnblogs.com/gaojun/archive/2012/11/22/2783257.html
5. 界面乱码问题
在执行安装脚本前先执行
export LANG=en_US
即可
6. 依赖检查问题
检查有三块 1 是 swap空间大小问题 2 是系统参数问题 3是依赖的动态链接库问题
1 2 可以不用解决 解决3就可以了
解决3的办法 我用的是suse 挂上系统镜像光盘 然后在yast的软件管理中心中一个一个装上缺的依赖就可以了
解决好之后 点击 忽略这些 就可以继续向下安装了
listener配置
1.网络环境配置
如需要修改主机 则用yast网络配置进行
检查 /etc/hosts文件中的ip与主机名的映射是否正确
因为后面配置listener需要
2. 配置listener
netca
图形化配置 没啥 界面乱码与上面解决办法相同
配置好之后 检查1521端口是否在监听
如果没有监听 用命令
lsnrctl start 启动
数据库配置
实例启动报错问题
sqlplus /nolog、conn /as sysdba、startup命令后显示
could not open parameter file /initORCL.ora'
参考 http://blog.csdn.net/lyayfy/article/details/9793735 方法1 :
解决方法1(已经验证):
将$ORACLE_BASE/admin /数据库名称/pfile目录下的init.ora.012009233838形式的文件copy到$ORACLE_HOME/dbs目录下 initoracle.ora即可。(注:initoracle.ora中的oracle为你的实例名 ORACLE_SID)
多实例创建问题
用dbca创建数据库即可,数据库名与实例一样即可。
创建好之后 用system (密码在创建的时候你设置的)连接 然后创建用户并授权
创建用户我用的dbvisual工作 操作的
授权用的sql操作的(针对用户1):
grant connect,resource to yonghu1;
grant dba to yonghu1;
oracle的用户想当于db2的schema, 一个数据库实例可以有多个用户 每个用户 可以各自创建一堆数据库对象(表啊什么的)。
附一张连接配置图
oracle多实例用一个监听 有一点需要注意
启动数据库的时候 我们通常是在用户的bash_profile中
export ORACLE_SID=ORCL
如果你这个时候
sqlpus /nolog
conn / as sysdba
startup
这个时候只会启动ORCL这个实例
我多实例 还有一个实例怎么办 比如我另一个实例是BJ
此时需要手动执行
export ORACLE_SID=bj
// 上面的设置要注意大小写 否则startup的时候 会出现 LRM-00109: could not open parameter file '/u01/oracle/db...
然后 再 sqlpus /nolog.....
然后再启动数据库...
然后就可以在lsnrctl status中看到两个实例了
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=p213.efwk.afcati.com)(PORT=1521)))
Services Summary...
Service "ORCLXDB.efwk.afcati.com" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "bj" has 1 instance(s).
Instance "bj", status READY, has 1 handler(s) for this service...
Service "bjXDB" has 1 instance(s).
Instance "bj", status READY, has 1 handler(s) for this service...
Service "orcl.efwk.afcati.com" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
The command completed successfully
乱码问题
oracle@p002:~> sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on Sat Apr 29 03:52:47 2017 Copyright (c) 1982, 2009, Oracle. All rights reserved. SQL> connect / as sysdba Connected to an idle instance. SQL> shutdown immediate; ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Linux-x86_64 Error: 2: No such file or directory SQL> startup mount ORACLE instance started. Total System Global Area 1603411968 bytes Fixed Size 2213776 bytes Variable Size 939526256 bytes Database Buffers 654311424 bytes Redo Buffers 7360512 bytes Database mounted. SQL> ALTER SESSION SET SQL_TRACE=TRUE; Session altered. SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; System altered. SQL> alter database open; Database altered. SQL> ALTER DATABASE character set INTERNAL_USE AL32UTF8; Database altered. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 1603411968 bytes Fixed Size 2213776 bytes Variable Size 939526256 bytes Database Buffers 654311424 bytes Redo Buffers 7360512 bytes Database mounted. Database opened.
DB LINK与同义词
这种主要用于oracle中跨用户的表访问
oracle的用户相当于db2的schema db2的schema 可以互相访问 加上前缀即可,但是oracle不行 需要通过这个办法解决。
授予权限:
grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to XTHIS;
grant CREATE DATABASE LINK to XTHIS;
创建db links:
CREATE DATABASE LINK "你的link名字.REGRESS.RDBMS.DEV.US.ORACLE.COM" CONNECT TO 需要被link的用户名 IDENTIFIED BY "需要被link的密码" USING '(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))
)
(CONNECT_DATA=(SID=ORCL)
)
)';
// SID=ORCL 是你的连接sid的名字 如果你是service_name连接 则是 SERVICE_NAME=XXXX
建同义词:
CREATE OR REPLACE SYNONYM "你当前的用户名"."别名" FOR "被link的表名"@"你的link名字.REGRESS.RDBMS.DEV.US.ORACLE.COM";
验证:
select * from 别名
--EOF--