oracle常用命令
一、Oracle数据库实例、用户、目录及session会话查看:
1、ORACLE SID查看设置
查看SID、用户名
$ env|grep SID 、select * from v$instance、select instance_name,host_name from v$instance;
查看数据库所有用户及用户状态:
SQL> select usernames,account_status from dba_users;
设置SID
$ export ORACLE_SID=hisvhfs
查看数据库DBID:
SQL>select * from v$DBID
2、查询、设置Oracle数据库实例最大进程数及最大会话数
查看系统最大session:
SQL>show parameter session
查看当前连接数:
SQL>select count(*) from v$bgprocess
查看系统最大进程数:
SQL>show parameter process
查看当前连接到数据库的用户:
SQL>select count(*) from v$session
查看当前数据库建立的会话情况:
SQL> select sid,serial#,username,program,machine,status from v$session;
查看当前数据库的并发连接数
SQL> select count(*) from v$session where status='ACTIVE';
查看当前有哪些用户正在使用数据:
select osuser,a.username,cpu_time/executions/1000000||'s',sql_fulltext,machine
from v$session a,v$sqlarea b
where a.sql_address = b.address
order by cpu_time/executions desc;
修改processes和sessions值
SQL> alter system set processes=300 scope=spfile;
系统已更改。
SQL> alter system set sessions=335 scope=spfile;
系统已更改。
修改processes和sessions值必须重启oracle服务器才能生效
ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下:
sessions=(1.1*process+5)
3、查看数据库目录
SQL> select * from all_directories;
4、查看数据库现有模式、是否归档
SQl>select name,log_mode from v$database;
也可以用下面的语句
archive log list;(该方法需要as sysdba)
查看数据库的创建日期和归档方式
SQL> Select Created, Log_Mode, Log_Mode From V$Database;
5、配置用户密码过期时间
alter profile "default" limit password_life_time unlimited; 配置用户密码永不过期
alter profile "default" limit password_life_time 100; 配置用户密码100天过期
6、创建、配置新用户及查看用户属性
解锁新用户:
SQL> alter user scott account unlock;
SQL> alter user scott identified by tiger;
删除oracle用户:
SQL>drop user username cascade; (删除与用户相关的所有对象)
这样该用户包括该用户下的表,试图,同义词,过程,索引,及相关的一切就删除了。
创建用户并赋权限以及设置默认表空间。
以sysdba用户登陆进行以下设置:
-- Create the user
create user VHFSM
identified by vhnj1fsm
default tablespace MGRVHFSTBSDEF 此处是设置默认表空间。
temporary tablespace TEMP
profile DEFAULT
quota unlimited on mgrvhfstbs2010此处是设置可操作的其他表空间
quota unlimited on mgrvhfstbsdef;
-- Grant/Revoke role privileges
grant connect to VHFSM;
grant dba to VHFSM;
-- Grant/Revoke system privileges
grant unlimited tablespace to VHFSM;
查看用户及角色权限
--1.查看所有用户:
select * from dba_users;
select * from all_users;
select * from user_users;
--2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):
select * from dba_sys_privs;
select * from user_sys_privs;
--3.查看角色(只能查看登陆用户拥有的角色)所包含的权限
sql>select * from role_sys_privs;
--4.查看用户对象权限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
--5.查看所有角色:
select * from dba_roles;
--6.查看用户或角色所拥有的角色:
select * from dba_role_privs;
select * from user_role_privs;
--7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)
select * from V$PWFILE_USERS
--注意:
--1、以下语句可以查看Oracle提供的系统权限
select name from sys.system_privilege_map
--2、查看一个用户的所有系统权限(包含角色的系统权限)
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');
二、创建、管理Oracle表空间
1、先查询空闲空间
select tablespace_name,file_id,block_id,bytes,blocks from dba_free_space;
2、增加Oracle表空间
先查询数据文件名称、大小和路径的信息,语句如下:
select tablespace_name,file_id,bytes,file_name from dba_data_files;
3、修改文件大小语句如下
alter database datafile
'需要增加的数据文件路径,即上面查询出来的路径
'resize 800M;
4、创建Oracle表空间
create tablespace test
datafile '/home/ap