标签:oracle

错误情况:
一朋友的网站,由于listener.log过大,就删除了它,并重新建了一个空的listener.log文件,结果程序报:

java.sql.SQLException: Io exception: The Network Adapter could not establish the connection.

到oracle的帐号下执行lsnrctl start,报:

NL-00280:error creating log stream /oracle/…/log/listener.log
NL-00278:cannot open log file
SNL-00016:snlfohd:error opening file
Linux Error:13:Permission denied

Listener failed to start…

看错误提示应该是oracle这个用户对新建的listener.log没有操作权限,回到#下,touch一下文件,并用chown命令,把listener.log文件归到oracle用户及其用户组下面,重新启动监听器即可。

对于listener.log过大的处理,应该是:

lsnrctl set log_status off
mv listener.log listener.bak
lsnrctl set log_status on
lsnrctl status

当然,google到有懒人的做法是把log取消掉:

$lsnrctl set log_status off

查看用户表:

select * from CAT; //普通用户自己查看
select TABLE_NAME from DBA_TABLES where OWNER=”; //管理员用

在Oracle中查看所有的表:

select * from TAB/DBA_TABLES/DBA_OBJECTS/CAT;

看用户建立的表:

select TABLE_NAME from USER_TABLES; //当前用户的表
select TABLE_NAME from ALL_TABLES; //所有用户的表
select TABLE_NAME from DBA_TABLES; //包括系统表

查看用户:

select * from ALL_USERS; //查看所有用户
select * from DBA_USERS; //查看所有dba用户
select * from DBA_USERS where DEFAULT_TABLESPACE ‘SYSTEM’ //查看所有不是系统管理员的用户

装好了oracle,发现oracle用户的$home目录下,没有.profile文件,相关的环境变量记录在.dtprofile里面,而.dtprofile并不是每次用户登录都会执行,所以做好创建oracle的配置文件,再将.dtprofile里的相关内容注释掉就行了。

vi .bash_profile

export LANG=zh_CN.GBK
export ORACLE_BASE=/ora10g
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/Db_1
export ORACLE_SID=orcl
export NLS_LANG=American_America.ZHS16GBK
export PATH=$PATH:$ORACLE_HOME/bin
umask 022

Continue reading →