今天第一次在linux下使用oracle,忙了整整一天才正常使用起来。把遇到的问题整理如下。
- 设置环境变量
- 设置监听
- 服务端参数脚本丢失
- em启动报错
一、linux下使用root用户登陆,passwd oracle修改oracle用户密码,su oracle到oracle用户下,cd ~oracle进入oracle根目录,vi .bash_profile编辑脚本
export ORACLE_HOME=/home/oracle/product/11g/db_1
export ORACLE_SID=orcl
这样就可以直接运行sqlplus、lsnrctl和emctl等命令,不需要用./sqlplus
二、运行lsnrctl,stat查看监听状态,由于在没有图形界面,只能依靠命令行设置。listener.ora和tnsnames.ora在$ORACLE_HOME/network/admin目录下
listener.ora内容
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /home/oracle/product/11g/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = aaa)
(ORACLE_HOME = /home/oracle/product/11g/db_1)
(SID_NAME = orcl)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))
)
lsnrctl start启动监听进程,stat 查看状态。遇到问题,由于修改了hostname,启动时报无法连接,把HOST=oracle修改成ip后,虽然可以启动,但是没有服务注册。在sqlplus下,执行alter system register; 手动注册也没有效果。
最好还是修改成oracle,可以启动也可以注册。估计是系统的原因。
三、startup数据库
Oracle 11gORA-00845: MEMORY_TARGET not supported on this system
原因系统共4G内存,共享内存shm默认为一半2G,而oracle的MEMORY_TARGET=3600M,大于shm而报错。
解决方法
1、修改shm=3600M
df -lh查看tmpfs的设置
vi /etc/fstab修改tmpfs /dev/shm tmpfs defaults,size=3600M 0 0
umount /dev/shm
mount /dev/shm
2、create pfile from spfile;
从spfile生成pfile,打开后修改MEMORY_TARGET,
MEMORY_MAX_TARGET的值即可
三、由于我只修改了MEMORY_TARGET,造成 MEMORY_TARGET 大于 MEMORY_MAX_TARGET ,还是报错。直接打开SPFILEORCL.ORA二进制文件修改并保存,再次启动无法解析spfile。
将和db_1同级的admin/orcl/pfile下的 init.ora.072012111935 文件,复制到spfile文件目录下,改名为initorcl.ora,
执行 CREATE SPFILE FROM PFILE;
再次生成spfile,startup成功
四、由于机器名称修改,造成em启动报错,默认url还带有旧的机器名。
先停止em, emctl stop dbconsole
emca -repos drop -repos create
重建em配置,需要输入sid,sys密码,sysman密码,dbsnmp密码。
以上密码使用alter user sysman identified by sysman;修改
shutdown immediate;
startup;
再启动emctl start dbconsole;
查看em服务状态:emctl status dbconsole
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8742393/viewspace-716895/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8742393/viewspace-716895/