您的位置:首页 > 数据库 > Oracle

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

2016-11-12 10:25 681 查看
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进程 下载

Shell代码  


ps -ef|grep lsnr  

杀死进程 

Shell代码  


kill -9 pid  

之后重启监听 
lsnrctl start 
lsnrctl status 

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

#可以添加在最后一行 
之后重启
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息