Oracle 10,11,12c的Linux常用命令

[b]日常开发中,常用的Oracle操作Linux下命令汇总[/b]


oracle 10g,11g 数据库启动,关闭
1、su - oracle
2、echo $ORACLE_SID 看当前实例名是不是想要的实例名,若不是执行 export ORACLE_SID=实例名,
然后再执行echo $ORACLE_SID看有没有修改当前实例名成功
3、sqlplus /nolog
4、conn / as sysdba
5、startup 启动 shutdown immediate 关闭
6、exit


查看监听
1、 lsnrctl status
启动监听:
1、lsnrctl start
关闭监听
1、lsnrctl stop


Oracle12c
前面操作类似
1,select con_id,dbid,NAME,OPEN_MODE from v$pdbs;
用于查询seed和所有pdb库
2,alter session set container=XXX;
设置当前活动的pdb库
3,starup
打开当前活动的pdb库
shutdown immediate
关闭当前活动的pdb库
alter pluggable database all open;
打开所有的挂载库
alter pluggable database all close immediate;
关闭所有的挂载库
其他
4,select tablespace_name,file_id,file_name from dba_data_files;
查询当前库的表空间


查看机器,用户,连接数
select machine , osuser, count(*) as count from v$session group by machine , osuser order by count;

--数据库允许的最大连接数
select value from v$parameter where name ='processes';
--修改最大连接数:
alter system set processes = 300 scope = spfile;
查看当前实例
select instance_name from v$instance;
查看实例下有多少用户
select username from all_users;


删除一些trace文件,让出空间
Oracle的tarce文件是Oracle数据库在运行时产生的日志,该trace文件是可以删除的,对系统没有什么影响。
切换到oracle用户
cd $ORALCE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID

删除这些文件: find trace -ctime +30 | xargs rm -fr
再用df命令查看磁盘空间,已有空闲空间啦,问题解决。

# df -lh

启动提示
sqlplus /nolog;

connect/as sysdba;

Connected to an idle instance.


说明你的实例还没有被启动。

先startup

ORA-28000: the account is locked

alter user username account unlock

查看数据库默认的密码管理方式有效期
SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

修改用户密码并设置数据库默认密码为永久有效
SQL> alter user xxx identified by xxx;
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED ;

--查询表空间的free space
select tablespace_name,count(*) as extends,round(sum(bytes) / 1024 / 1024, 2) as MB,sum(blocks) as blocks from dba_free_space group by tablespace_name;


--查询表空间的总容量
select tablespace_name, sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name;

lsnrctl status后即无任何反应,而sqlplus正常
oracle 10.2.0.1.0的一个4518443的bug导致的,这个bug会自动创建一个子监听器,当出现这种情况时,监听就会挂起
查看lsnr进程
ps -ef|grep lsnr

杀死进程
kill -9 pid

之后重启监听
lsnrctl start
lsnrctl status

永久解决
vi $ORACLE_HOME/network/admin/listener.ora
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF

#可以添加在最后一行
之后重启

参考链接
[url="http://blog.csdn.net/haiross/article/details/41944493"]oracle查看允许的最大连接数和当前连接数等信息[/url]

[url="http://blog.csdn.net/orcldb/article/details/7672728"]lsnrctl status后即无任何反应,而SQL*Plus正常[/url]


[url="http://www.2cto.com/database/201502/376897.html"]Oracle10gLsnrctl没有反映无法连接数据库[/url]

你可能感兴趣的:(Oracle)