欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-13 14:57:07
...
日常开发中,常用的Oracle操作Linux下命令汇总


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

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

参考链接
oracle查看允许的最大连接数和当前连接数等信息

lsnrctl status后即无任何反应,而SQL*Plus正常


Oracle10gLsnrctl没有反映无法连接数据库
相关标签: oracle linux