查看oracle版本
select banner from sys.v_$version;
-------------------------------------
查看不同用户的连接数
select username,count(username) from v$session where username is not null group by username;
-------------------------------------
查询oracle的并发连接数
select count(*) from v$session where status='ACTIVE';
--------------------------------------
Oracle数据库中表的导入导出操作:
以Windows下的数据库为例(用cmd方式):
导出表:
1.导出整个数据库
exp 导表的用户名/密码@实例名 file='E:\xxx.dmp' full=y
2.导出单表或多表
exp 导表的用户名/密码@实例名 file='E:\xxx.dmp' tables=t1[(t1,t2,t3)]
3.导出数据库中一个或多个用户下的表
exp 导表的用户名/密码@实例名 file='E:\xxx.dmp' owner=(system,sys)
4.将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp 导表的用户名/密码@实例名 file='E:\xxx.dmp' tables=(table1) query=\" where filed1 like '00%'\"
------------------------------------------
导入表:
将E:\xxx.dmp 中的数据导入某数据库中。
imp 导表的用户名/密码@实例名 file=e:\xxx.dmp
imp 导表的用户名/密码@实例名 full=y file=e:\xxx.dmp ignore=y
在后面加上 ignore=y 忽略导入的报错,直接导入。
2 将e:\xxx.dmp中的表table1 导入
imp 导表的用户名/密码@实例名 file=e:\xxx.dmp tables=(table1)
----------------------------
Linux的话直接exp,imp根据提示操作,效果也是一样的。如果通过语句,可以现在emedit上写好直接复制黏贴即可。
---------------------------
数据库中查看版本:
select * from v$version;
Linux下查看ORACLE版本信息:
file $ORACLE_HOME/bin/oracle
-------------------------
数据库服务器查看字符集:
select * from nls_database_parameters;
其中NLS_CHARACTERSET下面的就是该数据库服务器的字符集
-------------------------
查看表空间xxx使用情况:(需sysdba权限):
select
a.tablespace_name 表空间名,
total/(1024*1024) 表空间大小,
(total-free)/(1024*1024) 表空间使用大小,
free/(1024*1024) 表空间剩余大小,
round((total-free)/total,4)*100 "使用率%"
from (select tablespace_name,sum(bytes) free from dba_free_space
group by tablespace_name) a,
(select tablespace_name,sum(bytes) total from dba_data_files
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
and a.tablespace_name = 'xxx';
-------------------------
查看当前用户下的表空间:(非sysdba)
select
a.bytes/1024/1024 "used(MB)",
b.bytes/1024/1024 "free(MB)",
a.bytes/1024/1024+b.bytes/1024/1024 "total(MB)"
from user_ts_quotas a,user_free_space b
where a.TABLESPACE_NAME=b.TABLESPACE_NAME and a.TABLESPACE_NAME='XXX';
-------------------------
查看当前角色XXX所具有的权限:
select * from dba_sys_privs where grantee='XXX';
-------------------------
查看当前用户所具有的角色:
select * from user_role_privs;
select * from session_privs;
-------------------------
查看当前用户的系统权限和表级权限
select * from user_sys_privs;
select * from user_tab_privs;
-------------------------
查看哪些用户具有sysdba或sysooper权限:
select * from V$PWFILE_USERS;
-------------------------
查看用户为XXX的表空间配额。(-1为不受限制)
select tablespace_name,username,max_bytes from DBA_TS_QUOTAS where username='XXX';
-------------------------
设定用户mc的表空间配额限为100M:
alter user mc quota 100M on tablespacname;
-------------------------
设定用户mc的表空间配额为无限制:
alter user mc quota unlimited on tablespacname;
-------------------------
赋予用户mc配置表空间无限额的权限:
grant unlimited tablespace to mc;
-------------------------
查看当前数据库的实例名:
select instance_name from v$instance;
-------------------------
修改用户表空间和临时表空间:
ALTER USER SCOTT DEFAULT TABLESPACE USERS;
ALTER USER SCOTT TEMPORARY TABLESPACE TEMP;
-------------------------
查看当前用户缺省的表空间:
select username,default_tablespace from user_users;
--------------------------------
查看归档是否开启;开启/关闭归档:
--------------
查看归档:
sqlplus>archive log list;
开启归档
sqlplus>shutdown immediate;(启动归档前先要停止数据库)
sqlplus>startup mount;(数据库以mount方式启动)
sqlplus>alter database archivelog;(启动数据库归档)
sqlplus>alter system set log_archive_dest_1="/arch"(改变路径,使用盘符)
sqlplus>alter database open;(打开数据库)
sqlplus>archive log list;(查看归档是否已经打开)
关闭归档
alter database noarchivelog;
--------------
查看归档日志使用情况:
select * from v$flash_recovery_area_usage;
-----------------------
查看用户账户状态:
select username,account_status from dba_users where username in ('DBSNMP','SYSMAN');
----------------------------
查看REDO日志位置、状态,以及添加、删除REDO日志组方法:
位置:
select * form v$logfile;
状态:
select group#,thread#,bytes/1024/1024,status from v$log;
:添加
alter database add logfile group 1|2|3|4('/u01/oracle/oradata/mcocp/redo01|02|03|04') size 100m;
删除:
alter database drop logfile group 1|2|3|4;
注:oracle11g默认的redo logsize为50M
----------------------------------------