在主机上执行SQL前的准备:
su - oracle
sqlplus /nolog
conn /as sysdba
查看oracle的连接数:
select * from v$session;
检查数据库 中的 OPEN_CURSORS 参数值:
show parameter open_cursors;
调整 OPEN_CURSORS 参数值 :
ALTER SYSTEM SET OPEN_CURSORS = 2500;
获取指定的oracle用户打开的游标数:
select o.sid, osuser, machine, count(*) num_curs from v$open_cursor o, v$session s where user_name = 'oracle用户名' and o.sid = s.sid group by o.sid, osuser, machine order by num_curs desc;
获取为游标执行的 SQL:
select q.sql_text from v$open_cursor o, v$sql q where q.hash_value = o.hash_value and o.sid = sid编号;
创建用户:
create user 用户名 identified by 密码;
给用户赋予dba权限:
Grant dba to 用户名;
修改用户密码:
alter user 用户名 identified by 新密码;
删除用户:
drop user 用户名 cascade;
使用alter table 来增加、删除和修改一个列:
alter table test add (te_name varchar2(30) default 'tom' not null);
alter table test modify (te_name varchar2(16) default 'unknown');
alter table test drop column te_name;
其中需要注意的是如果某一列中已经存在值,如果你要修改的为比这些值还要窄的列宽这样将会出现一个错误。
查看所有用户:
select * from dba_users;
select * from all_users;
select * from user_users;
查看用户或角色系统权限(直接赋值给用户或角色的系统权限):
select * from dba_sys_privs; select * from user_sys_privs;
查看角色(只能查看登陆用户拥有的角色)所包含的权限:
select * from role_sys_privs;
查看用户对象权限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
查看所有角色:
select * from dba_roles;
查看用户或角色所拥有的角色:
select * from dba_role_privs;
select * from user_role_privs;
查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)
select * from V$PWFILE_USERS
查看Oracle提供的系统权限:
select name from sys.system_privilege_map;
查看一个用户的所有系统权限(包含角色的系统权限):
select privilege from dba_sys_privs where grantee='DATAUSER'
union
select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='DATAUSER' );
导出全部数据:
exp 用户名/密码 file="dat.dmp" full=y
导出指定用户的数据:
exp 用户名/密码 file="dat.dmp" owner=(用户名)
导入
imp userid=system/manager full=y file=filename.dmp
导入导出前注意事项:
查看要导出或导入的用户的语言:
select userenv('language') from dual;
设置环境变量
export NLS_LANG="语言"
例如:
export NLS_LANG=”SIMPLIFIED CHINESE_CHINA.UTF8″
然后在执行exp或imp命令