oracle简介及常用操作

简介:

  oracle数据库是基于C/S模式的技术,是分布式的数据库产品,它支持多用户、分布式数据、大事务量处理。oracle数据库结构分为逻辑存储结构和物理存储结构。(1)逻辑存储结构是由表空间、段、区、数据块组成的。(2)物理存储结构是由数据文件、归档日志文件、控制文件、跟踪文件等组成。oracle基本类型的输出:

(1)表方式,将指定表的数据导出;

(2)用户方式,将指定用户的所有对象及数据导出;

(3)全库方式,将数据库中的所有对象导出。


整个Oracle数据库就是一个大的柜子,这个柜子会被分为多个层,每个层就是一个tablespace,每个层中的文件就是我们的table,文件中纸及上面的数据就是我们的data。


PLSQLDeveloper连接远程Oracle数据库

https://www.2cto.com/database/201407/319297.html





oracle数据库的启动与关闭:

启动:export ORACLE_SID=数据库实例

        

STARTUP  (该命令完成创建实例、安装实例和打开数据库的所有三个步骤。)

关闭:SHUTDOWN NORMAL

当前正在被Oracle处理的SQL语句立即中断,系统中任何没有提交的事务全部回滚。如果系统中存在一个很长的未提交的事务,采用这种方式关闭数据库也需要一段时间(该事务回滚时间)。系统不等待连接到数据库的所有用户退出系统,强行回滚当前所有的活动事务,然后断开所有的连接用户。

下面来看看数据库迁移的几种方式:(1)Exp/Imp(2)Expdp/Impdp(3)Db_link(4)data guard(5)rman

  1. 查看oracle数据库数据量大小


select sum(bytes)/1024/1024/1024 from dba_segments;


2.1查看所有表空间及表空间大小:


select tablespace_name ,sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name;

2.2查看表空间使用率的sql脚本

  • SELECT D.TABLESPACE_NAME,  

  •        SPACE || 'M' "SUM_SPACE(M)",  

  •        BLOCKS "SUM_BLOCKS",  

  •        SPACE - NVL (FREE_SPACE, 0) || 'M' "USED_SPACE(M)",  

  •        ROUND ( (1 - NVL (FREE_SPACE, 0) / SPACE) * 100, 2) || '%'  

  •           "USED_RATE(%)",  

  •        FREE_SPACE || 'M' "FREE_SPACE(M)"  

  •   FROM (  SELECT TABLESPACE_NAME,  

  •                  ROUND (SUM (BYTES) / (1024 * 1024), 2) SPACE,  

  •                  SUM (BLOCKS) BLOCKS  

  •             FROM DBA_DATA_FILES  

  •         GROUP BY TABLESPACE_NAME) D,  

  •        (  SELECT TABLESPACE_NAME,  

  •                  ROUND (SUM (BYTES) / (1024 * 1024), 2) FREE_SPACE  

  •             FROM DBA_FREE_SPACE  

  •         GROUP BY TABLESPACE_NAME) F  

  •  WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)  

  • UNION ALL                                                           --如果有临时表空间  

  • SELECT D.TABLESPACE_NAME,  

  •        SPACE || 'M' "SUM_SPACE(M)",  

  •        BLOCKS SUM_BLOCKS,  

  •        USED_SPACE || 'M' "USED_SPACE(M)",  

  •        ROUND (NVL (USED_SPACE, 0) / SPACE * 100, 2) || '%' "USED_RATE(%)",  

  •        NVL (FREE_SPACE, 0) || 'M' "FREE_SPACE(M)"  

  •   FROM (  SELECT TABLESPACE_NAME,  

  •                  ROUND (SUM (BYTES) / (1024 * 1024), 2) SPACE,  

  •                  SUM (BLOCKS) BLOCKS  

  •             FROM DBA_TEMP_FILES  

  •         GROUP BY TABLESPACE_NAME) D,  

  •        (  SELECT TABLESPACE_NAME,  

  •                  ROUND (SUM (BYTES_USED) / (1024 * 1024), 2) USED_SPACE,  

  •                  ROUND (SUM (BYTES_FREE) / (1024 * 1024), 2) FREE_SPACE  

  •             FROM V$TEMP_SPACE_HEADER  

  •         GROUP BY TABLESPACE_NAME) F  

  •  WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)  

  • ORDER BY 1;  

2.3表空间扩容


(1)alter database datafile '/data/oracle/app/oracle/oradata/orcl/system01.dbf'  resize 1024m;

(2)alter database datafile '/data/oracle/app/oracle/oradata/orcl/system01.dbf' autoextend on next 50m maxsize unlimited;

(3)select file_name,autoextensible,increment_by from dba_data_files ;

3.查看某一表空间下的表

select table_name from Dba_Tables where tablespace_name='表空间名';

4.查询某一表空间属于哪个用户

(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.查方案(查看有多少个用户):应该是每个用户一个方案, select username from dba_users;
   查表名:select table_name from dba_tables where owner='X';

7.查询哪些用户有dba权限

使用dba身份登录后,输入select * from V$PWFILE_USERS查看。

8.查看指定用户下表的数量

select count(*) from dba_tables t where t.owner='用户名'; 

9.查看当前登陆的用户的表的数量

select count(table_name) from user_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

select instance_name from v$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查看指定实例下的所有表

(1)、用指定用户登录指定的数据库实例:

203fb80e7bec54e77a6d016bbf389b504ec26ac5

(2)、打开sql窗口,写如下语句:


1

select from user_tables;

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 * FROM user_tab_privs_made t where t.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 50M
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;



本文转自 goldfishe 51CTO博客,原文链接:http://blog.51cto.com/jack88/1908557

相关文章
|
3月前
|
SQL Oracle 关系型数据库
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
87 0
|
6月前
|
Oracle 关系型数据库 数据库
Oracle 简介与 Docker Compose部署
Oracle 数据库是一款由 Oracle 公司开发的关系型数据库管理系统(RDBMS)。它被广泛应用于企业级应用程序,提供了可靠的数据存储和强大的数据管理功能。
242 1
Oracle 简介与 Docker Compose部署
|
9月前
|
SQL 存储 Oracle
Oracle数据库中日期的操作、主键自增与分页查询
Oracle数据库中日期的操作、主键自增与分页查询
79 0
|
4月前
|
Oracle 关系型数据库
Oracle - 表操作语句
Oracle - 表操作语句
25 0
|
7月前
|
SQL 存储 Oracle
Oracle SQL操作和查询
SQL是结构化查询语言(Structured Query Language),专门用于数据存取、数据更新及数据库管理等操作。
91 0
|
9月前
|
Oracle 关系型数据库 Java
hibernate操作Oracle出现违反唯一约束条件
出现这个问题的原因无非是主键冲突,我这里引起主键冲突的原因是实体类使用的ID策略为
|
10月前
|
SQL Oracle 前端开发
Oracle更改数据后后台无法操作 一直加载
今天用dbutils操作Oracle,在SQL developer里面测试执行完update语句后,在后台操作,前端页面一直加载,
|
11月前
|
存储 XML SQL
Oracle 数据库自动诊断库 ADR(Automatic Diagnostic Repository)简介 发表在 数据和云
Oracle 数据库如果出现故障,我们的第一个反应是查看数据库的 alert log,但一些工程师对 alert log 不熟悉,实际上 alert log 位于Oracle 数据库自动诊断库(Automatic Diagnostic Repository,以下简称 ADR) 中,要熟悉 alert log,我们必需全面了解 ADR 的概念。
215 0
|
11月前
|
Oracle 关系型数据库 数据库
|
11月前
|
SQL XML Oracle
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作(下)
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作(下)

推荐镜像

更多