Oracle 入门必看

安装oracle

连接oracle

PL/SQL

下载跟plsql一样64位的客户端连接工具
https://www.oracle.com/cn/database/technologies/instant-client/microsoft-windows-32-downloads.html PL/SQL配置客户端和oci目录
数据库地址:IP:PORT/servicename
配置tnsname创建tnsname.ora文件,添加数据库连接地址

DOCKERORACLE=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 175.178.174.4)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = helowin)
    )
  )

配置好系统变量
这样在登陆时就可以不输入IP+端口

在工具-选项中配置oci
直接连接即可

问题记录

PL/SQL 工具可能乱码

进入 我的电脑,属性,高级,环境变量,添加变量: NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"https://www.cnblogs.com/manjun/p/13627393.html

Oracle体系结构

【Oracle】表空间概述 - lanyouzixingxing - 博客园 (cnblogs.com)https://www.cnblogs.com/GreenLeaves/p/6592343.html 

1.  数据库

Oracle 数据库是数据的物理存储。这就包括(数据文件ORA或者 DBF、控制文件、联机日志、参数文件)。其实Oracle 数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是Oracle 就只有一个大数据库。

2.  实例

一个 Oracle 实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成。一个数据库可以有 n 个实例。

3.  用户

用户是在实例下建立的。不同实例可以建相同名字的用户。表是属于用户的,这点跟mysql不一样

4.  表空间

Oracle表空间(tablespaces)是一个逻辑的概念,真正存放数据的是数据文件(data files),把一组data files 捻在一起就成为一个表空间;一个Oracle数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。表空间是Oracle数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等。oarcle数据库真正存放数据的是数据文件(data files);表空间作用

逻辑上组织数据库的数据,数据库逻辑上是由一个或者多个表空间组成(至少是一个),通过表空间可以达到一下作用:

a、控制数据库占用的磁盘空间(如果没有表空间,数据文件东方一点西方一点,管理起来很麻烦)

b、dba可以将不同的数据类型部署到不同的位置(比如将索引放到一个表空间下,将触发器放到一个表空间下),这样有利于提高i/o的性能,同时有利于备份和恢复等操作。

5.  数据文件(dbf 、ora )

数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,真正是在某一个或者多个数据文件中。一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。注: 表的数据,是有用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件中。由于 oracle 的数据库不是普通的概念,oracle 是有用户和表空间对数据进行管理和存放的。但是表不是有表空间去查询的,而是由用户去查的。因为不同用户可以在同一个表空间建立同一个名字的表!这里区分就是用户了!

表空间管理

创建表空间:

create tablespace 表空间名称 datafile '文件绝对路径\文件名.dbf' size 初始表空间大小 autoextend(自动扩展) 
on next 100m maxsize 20480m(最大) extent management local(官方建议本地分区);

create tablespace ts1 datafile 'C:\tablespace\ts1.dbf' size 50M;

自动扩展大小:

create tablespace ts2 datafile 'C:\tablespace\ts2.dbf' size 50M autoextend on next 10M;

设置最大空间:

create tablespace ts3 datafile 'C:\tablespace\ts3.dbf' size 50M autoextend on next 10M maxsize 1024M;

更改用户默认表空间:

alter database default tablespace ts1;

表空间改名:

alter tablespace ts1 rename to tss1;

删除表空间:

drop tablespace ts2 including contents and datafiles;

当创建oracle数据库时,会自动创建一些表空间,比如SYSTEM,SYSAUX表空间。

 SYSTEM: 系统表表空间
 SYSAUX: 索引表空间
 USERS: 用户表空间
 UNDOTBS1: 回滚表空间
 EXAMPLE: 工具表空间
 TEMP: 临时表空间

新建的数据库默认就有下面的表空间,新建的表存放在USERS

表空间占用情况

SELECT a.tablespace_name "表空间名", 
total "表空间大小", 
free "表空间剩余大小", 
(total - free) "表空间使用大小", 
total / (1024 * 1024 ) "表空间大小(M)", 
free / (1024 * 1024 ) "表空间剩余大小(M)", 
(total - free) / (1024 * 1024 ) "表空间使用大小(M)", 
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 

表空间扩容

https://www.cnblogs.com/liwenchao1995/p/16386725.html oracle的数据文件最大仅支持32G。当查看实际oracle 表空间物理数据文件是32G,以达到oracle约定的上限。通过给表空间增加数据文件解决查看已存在的数据文件,dba登陆sql查询

-- 查看已存在的数据文件
select name from v$datafile;

-- 给users表空间增加数据文件 默认100m 自增长10m  最大1024m
alter tablespace users add datafile '/home/oracle/app/oracle/oradata/helowin/users02.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M maxsize 1024m;


--包含数据库中所有表空间的描述信息
SELECT * FROM DBA_TABLESPACES
--包含当前用户的表空间的描叙信息
SELECT * FROM USER_TABLESPACES
--包含从控制文件中获取的表空间名称和编号信息
SELECT * FROM V$TABLESPACE;
--包含数据文件以及所属的表空间的描述信息
SELECT * FROM DBA_DATA_FILES
--包含临时数据文件以及所属的表空间的描述信息
SELECT * FROM DBA_TEMP_FILES
--包含从控制文件中获取的数据文件的基本信息,包括它所属的表空间名称、编号等
SELECT * FROM V$DATAFILE
--包含所有临时数据文件的基本信息
SELECT * FROM V$TEMPFILEda
posted @ 2026-08-30 18:51  清哥的码农生活  阅读(4)  评论(0)    收藏  举报