oracle数据库是基于C/S模式的技术,是分布式的数据库产品,它支持多用户、分布式数据、大事务量处理。oracle数据库结构分为逻辑存储结构和物理存储结构。(1)逻辑存储结构是由表空间、段、区、数据块组成的。(2)物理存储结构是由数据文件、归档日志文件、控制文件、跟踪文件等组成。oracle基本类型的输出:
(1)表方式,将指定表的数据导出;
(3)全库方式,将数据库中的所有对象导出。
整个Oracle数据库就是一个大的柜子,这个柜子会被分为多个层,每个层就是一个tablespace,每个层中的文件就是我们的table,文件中纸及上面的数据就是我们的data。
启动:export ORACLE_SID=数据库实例
STARTUP (该命令完成创建实例、安装实例和打开数据库的所有三个步骤。)
关闭:SHUTDOWN NORMAL
当前正在被Oracle处理的sql语句立即中断,系统中任何没有提交的事务全部回滚。如果系统中存在一个很长的未提交的事务,采用这种方式关闭数据库也需要一段时间(该事务回滚时间)。系统不等待连接到数据库的所有用户退出系统,强行回滚当前所有的活动事务,然后断开所有的连接用户。
下面来看看数据库迁移的几种方式:(1)Exp/Imp(2)Expdp/Impdp(3)Db_link(4)data guard(5)rman
查看oracle数据库数据量大小
select sum(bytes)/1024/1024/1024 from dba_segments;
2.查看所有表空间及表空间大小:
select tablespace_name,sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name;
3.查看某一表空间下的表
select table_name from Dba_Tables where tablespace_name='表空间名';
(1)、如果是临时表空间
select username from dba_users where temporary_tablespace='TEMP' group by username;
(2)、其它存储对象(表、索引等)用的表空间,还是用这条语句查:
select owner from dba_segments where tablespace_name='表空间名' group by owner;
5.查看某个用户使用了哪些表空间
select tablespace_name,sum(bytes) / (1024 * 1024) size_m from dba_segments where owner = 'USER_NAME' group by tablespace_name;
6.查方案(查看有多少个用户):应该是每个用户一个方案,selectusernamefromdba_users;
查表名:selecttable_namefromdba_tableswhereowner='X';
使用dba身份登录后,输入select * from V$PWFILE_USERS查看。
select count(*) from dba_tables t where t.owner='用户名';
selectcount(table_name)fromuser_tables ;
user_tables用于存储用户分配的表视图
dba_tables用于存储管理员分配的表视图
all_tables用户存储数据库中所有的表的视图
10.查看表中的数据
select * from schema.table_name;
desc schema.table_name;(此命令只能在命令行里用,比如sqlplus)
11.show parameter db_name
12.Oracle监听服务lsnrctl参数及查询状态详解
host lsnrctl status;(参考http://www.2cto.com/database/201304/206297.html)
13.SID
selectinstance_namefromv$instance;
(参考http://blog.itpub.net/24742969/viewspace-1614022/)
尽管v$instance中字段instance_name看起来是实例名,但是实际上存储的是sid,在win下sid不能重复,不管oracle_home是否相同,相同当然不行,主要是不同也不行,这里的不同是针对unix/linux而言的,在unix/linux下只要不同版本的oracle安装在不同的oracle_home下就可以创建相同sid的实例,但是win下不可以,这不是由oracle决定的,主要是受到windows服务的限制,在服务中不能存在服务名相同的oracle服务,服务名是由如下格式组成的:OracleServiceSID,因为服务名中包括了sid,所以sid如果相同了,服务名就相同了,这是windows所不允许的。因此在win下无法创建相同sid的不同实例。
14.oracle查看指定实例下的所有表
(2)、打开sql窗口,写如下语句:
1
|
|
15.清屏命令
windows:host cls
linux:clear screen
16.http://www.cnblogs.com/vipsoft/archive/2012/05/23/2514374.html
http://www.cnblogs.com/caogang/p/4546072.html
17.查询Oracle中对某个表的访问权限被授予给了哪个用户的信息
SELECT*FROMuser_tab_privs_madetwheret.TABLE_NAME=upper('emp');
18.查看表空间是否自动扩展
select file_name,autoextensible,increment_by from dba_data_files ;
19.查看剩余的空间
SELECT SUM(bytes) / (1024 * 1024) AS free_space,tablespace_name FROM dba_free_space GROUP BY tablespace_name;
20.增加表空间大小
ALTER TABLESPACE app_data ADD DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50MAUTOEXTEND ON NEXT 5M MAXSIZE 100M;