Oracle 数据库实例

Oracle数据库由数据库和实例两部分组成,数据库包含物理文件,而实例是内存中的进程集合。数据库实例是访问数据库的途径,SID用于外部连接。全局数据库名是数据库标识,启动数据库后可以创建表空间,如wj_data和wj_temp。用户在实例下创建,并分配表空间,如wj用户。用户通过角色如CONNECT和RESOURCE进行权限管理。表空间用于存储物理表,用户可在相同表空间创建同名表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Oracle 数据库实例

Oracle- 数据库的实例,表空间,用户,表之间的关系

一、完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例

1.数据库是一些列物理文件的集合(数据文件,控制文件,联机文件,参数文件)

2.Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区;

  用Oracle官方描述:实例是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,是由进程和这些进程所使用的内存(SGA)所构成一个集合。其实就是用来访问和使用数据库的一块进程,它只存在于内存中。就像Java中new出来的实例对象一样。我们访问Oracle都是访问一个实例,但这个实例如果关联了数据库文件,就是可以访问的,如果没有,就会得到实例不可用的错误。实例名指的是用于响应某个数据库操作的数据库管理系统的名称。她同时也叫SID。实例名是由参数instance_name决定的。
查询当前数据库实例名:

select instance_name from v$instance;

数据库实例名(instance_name)用于对外部连接。在操作系统中要取得与数据库的联系,必须使用数据库实例名。比如我们作开发,要连接数据库,就得连接数据库实例名:

jdbc:oracle:thin:@localhost:1521:orcl(orcl就为数据库实例名)

 

二、数据库

  1.全局数据库名:就是数据库的一个标识,在安装的时候一般就要想好;

  2.启动数据库:也叫全局数据库,是数据库系统的入口,它会内置一些高级权限的用户,如:sys,system;

三、表空间

  1.Oracle数据库是通过表空间来存储物理表的,数据库实例=N*表空间=*张表

  创建表空间语法:

创建临时表空间

CREATE TEMPORARY TABLESPACE wj_temp /* 临时表空间名称:wj_temp */
tempfile 'D:\app\dbf\wj_temp.dbf' /* 表空间路径 */
size 50m /* 空间初始大小:50M*/
autoextend ON /* 开启自动扩展 */
NEXT 50m /* 空间满了一次扩展50M*/
maxsize 6G /* 空间最终大小6G,可设为 unlimited 大小不受限制*/
extent management local;
创建表空间

CREATE TABLESPACE wj_data /* 临时表空间名称:wj_data */
datafile 'D:\app\dbf\wj_data.dbf' /* 表空间路径 */
size 50m /* 表空间初始大小:50M */
autoextend ON /* 开启自动扩展*/
NEXT 50m /* 表空间满了后一次扩展50M */
maxsize 10G /* 空间最终大小10G,可设为 unlimited 大小不受限制*/
logging extent management local;

查看已经创建好的表空间:

select default_tablespace, temporary_tablespace, d.username  
from dba_users d

四、用户

  1.Oracle 数据库建好之后,要想在数据库里建表,必须先为数据库建立用户,并未用户指定表空间(用户是在实例下创建的);

  Oracle是由用户和表空间对数据进行管理和存放的,但是表不是用表空间查询的,而是由用户去查询,因为不同用户可以在同一个表空间,建立同一个名字的表;

CREATE USER wj                    /* 用户名 */
IDENTIFIED BY 123456              /* 密码 */  
DEFAULT TABLESPACE wj_data        /* 表空间 */    
TEMPORARY TABLESPACE wj_temp      /* 临时表空间 */

 五、角色

-- connect 角色使得用户可以登录;resource 角色使得用户可以进行程序开发,如建立表、触发器等。授权命令如下:
GRANT CONNECT,RESOURCE TO wj;

 -- 查询数据库中的用户 

SELECT * FROM dba_users ORDER BY userName

 

### Oracle 数据库实例创建配置管理 #### 手动创建Oracle数据库实例的优势 手动创建数据库实例提供了对每一个细节进行深入调整的机会,确保数据库能够根据业务需求进行高度定制化的配置。这种方式特别适合那些需要精细控制数据库配置的场景[^1]。 #### 设置环境变量 为了准备创建Oracle数据库实例,在Linux环境下需先设置ORACLE_SID环境变量。这一步骤通过命令行完成: ```bash export ORACLE_SID=dcpfareint ``` 此操作定义了即将创建的数据库实例名称为`dcpfareint`[^2]。 #### 初始化参数文件的创建 创建初始化参数文件是至关重要的步骤之一。该文件包含了启动和运行数据库所需的各种参数设定。通常情况下,这个文件会被命名为`init<sid>.ora`,其中`<sid>`代表之前所设的ORACLE_SID值。例如,对于上述案例中的SID,初始化参数文件应被命名为`initdcpfareint.ora`并放置于$ORACLE_HOME/dbs目录下。 #### 启动数据库至NOMOUNT状态 使用SQL*Plus或其他客户端工具连接到目标主机,并执行如下命令来启动数据库实例而不加载任何数据文件或控制文件: ```sql STARTUP NOMOUNT; ``` 此时,仅内存结构被分配给新的实例,而没有任何物理存储对象关联进来。 #### 创建控制文件 一旦处于NOMOUNT状态下,则可以继续构建整个数据库的基础架构——即创建控制文件。这一过程涉及指定日志文件位置、表空间详情以及其他必要的元数据信息。具体实现可通过发出CREATE CONTROLFILE语句达成,其语法较为复杂,建议参照官方文档获取最准确的形式。 #### 完成剩余配置工作 最后阶段包括但不限于建立必需的数据字典视图、授予初始权限集以及导入样例模式等辅助性任务。这些活动有助于使新建成的数据库具备基本功能和服务能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值