Oracle常用命令(持续更新)
--1、解锁用户 alter user 用户名 account unlock;
--2、开启最小补充日志记录(执行的DML操作会被记录下来) alter database add supplemental log data;
--3、查看FLASHBACK_TRANSACTION_QUERY中的记录,已获得某张表的操作记录
select * from flashback_transaction_query where table_name=upper('table_name');
--4、查看数据库当前(相对的)系统改变号 system change number (scn)
select dbms_flashback.get_system_change_number from dual;
--5、查询某个表在指定scn时的数据 xxxxx就是指定的scn ,可以在FLASHBACK_TRANSACTION_QUERY中查到部分scn记录
select * from table_name as of scn xxxxx;
--6、查看锁住的表,和解锁表
select object_name,machine,s.sid,s.serial# from v$locked_object l,dba_objects o,v$session s where l.object_id=o.object_id and l.session_id=s.id;
alter system kill session 'sid,serial';
--7、查询oracle版本号
select * from product_component_version;
--8、查询oracle某张表的大小,Oracle中有两种含义的表大小:
一种是分配给一个表的物理空间数量,而不管空间是否被使用。可以这样查询获得字节数:
select segment_name, bytes from user_segments where segment_type = '表名';--表名大写
或者 Select Segment_Name,Sum(bytes)/1024/1024 from User_Extents Group By Segment_Name;【这个查询速度慢】
另一种表实际使用的空间。这样查询:
analyze table 表名 compute statistics;
select num_rows * avg_row_len from user_tables where table_name = '表名';--表名大写
--8、一次导出、导入多个用户对象
exp username/pwd@orcl owner=(username1,username2,username3...) file=D:\xxx.dmp;
imp username/pwd@orcl file=D:\xxx.dmp full=y;--oracle会自动帮你根据dmp中的用户对象来分别导入各个用户的表、存储过程等到各个用户下
--9、查看监听状态、 启动监听、 关闭监听
lsnrctl status、lsnrctl start、lsnrctl stop
--10、切换oracle例程
set oracle_sid = orcl; oracle_sid:环境变量名 orcl:指定的oracle例程名