1、linux在登录oracle用户时,注意
登录指令 su oracle 和 su - oracle 这两个区别
su oracle登录时,只登录普通的oracle用户 无法进行oracle的导出导入
会出现提示 如 [oracle@iZ0in2t3g4chnhZ ~]$ bash: imp: command not found
而su - oracle 登录oracle用户,则是指oracle数据库用户登录,该命令下可以进行导出导入
2、在linux下登录进行SQL查询
1.在命令行模式下,输入sqlplus /nolog 回车
2.这时界面会显示SQL>,这个时候再输入 conn / as sysdba 回车
3、数据导出
exp 用户名/密码@实例 file=导出文件路径及文件名称 log=日志路径及名称
exp ah_dcits/ah_dcits@lioracle file=/home/oracle/0312.dmp log=/home/oracle/ahcoms.log
4、数据导入
imp 用户名/密码@实例 file=数据文件 full=y ignore=y &
imp ah_dcits/ah_dcits@orcl file=200907ahslm4.dmp full=y ignore=y &
5、针对空表无法导出-执行
declare
stmt varchar2(200);
begin
for tb in (select table_name from user_tables where segment_created='NO') loop
stmt:='alter table '||tb.table_name||' allocate extent';
begin
execute immediate stmt;
exception when others then
dbms_output.put_line(stmt);
end;
end loop;
end;
6、oracle杀掉某个占用该资源的会话
1.检查哪个用户占用资源
select l.session_id,o.owner,o.object_name from v$locked_object l,dba_objects o where l.object_id=o.object_id;
2.利用查出来占用资源 的session_id,查出更加详细的信息
SELECT sid, serial#, username, oSUSEr, terminal,program ,action, prev_exec_start FROM v$session where sid = 33;
3.根据上面查出来的 SID,SERIAL# 杀掉占用资源的会话
alter system kill session '33,17';