OracleDB 01 概述和基本操作

Posted Silent1376

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OracleDB 01 概述和基本操作相关的知识,希望对你有一定的参考价值。

Oracle 概述:

- Oracle 是殷墟出土的甲骨文(oracle bone inscriptions)的英文翻译的第一个单词

- Oracle 公司是全球最大的信息管理软件及服务供应商,成立于1977年,总部位于美国加州 Redwood shore

- Oracle 公司因其复杂的关系数据库产品而闻名。Oracle的关系数据库是世界第一个支持SQL语言的数据库

 

- Oracle数据库是一种网络上的数据库

    它在网络上支持多用户, 支持服务器/客户机等部署(或配置)

- 服务器与客户机是软件概念, 它们与计算机硬件不存在一一对应的关系.

    即: 同一台计算机既可以充当服务器又可以充当客户机,

    或者, 一台计算机只充当服务器或只充当充当客户机.


 

Oracle 数据库体系结构

平常所说的 Oracle 或 Oracle 数据库指的是 Oracle 数据库管理系统.

Oracle 数据库管理系统是管理数据库访问的计算机软件(Oracle database manager system).

它由 Oracle 数据库和 Oracle 实例(instance)构成.

 

Oracle 数据库:

  一个相关的操作系统文件(即存储在计算机硬盘上的文件)集合,

  这些文件组织在一起, 成为一个逻辑整体, 即为 Oracle 数据库.

  Oracle 用它来存储和管理相关的信息.

  Oracle数据库必须要与内存里实例合作,才能对外提供数据管理服务。

Oracle 实例:

  位于物理内存里的数据结构,它由操作系统的多个后台进程和一个共享的内存池所组成,

  共享的内存池可以被所有进程访问.

  Oracle 用它们来管理数据库访问.用户如果要存取数据库(也就是硬盘上的文件) 里的数据,

  必须通过Oracle实例才能实现, 不能直接读取硬盘上的文件.

  实际上, Oracle 实例就是平常所说的数据库服务(service) .

区别:

  实例可以操作数据库;在任何时刻一个实例只能与一个数据库关联,

  访问一个数据库;而同一个数据库可由多个实例访问(RAC)


 

实例概念:

Oracle有一个特殊的概念

Oracle数据库 = 数据库 + Oracle文件系统 + Oracle实例

实例处理Oracle的请求,调用文件系统

然后返回结果响应给客户端

 

单实例和多实例

一个数据库可以对应多个实例操作


 数据库服务

 

这是Oracle数据库的服务,一定要安装

如果找不到此服务

可以在这里配置

 

在这里设置

 


 

监听器:

用于侦听客户端的请求,相当于我们的感知器,只有收到这个请求才能对客户端响应

两种非正常情况:

- 没装,无法监听请求

- 装了,不能正常监听

关于监听设置

监听的端口号默认1521

主目录口令 root 123456 【根据自己设置的填入】


 

管理工具:

SQL * PLUS 

  是DOS界面下操作的数据库管理系统,和Oracle19c一起安装

  数据库管理员经常使用的数据库管理工具

ISQL * PLUS 

  是Oracle提供的一个基于Web页面形式的管理工具

  通过浏览器,直接访问数据库

Navicat For Oracle 

  第三方管理工具,界面人性化,功能全面,操作方便

OEM

  企业管理器,提供底层的管理功能


 

SQL * PLUS

功能:

- CRUD

- 查询结果格式化输出

- 对数据库的【用户、角色、表空间、数据表】管理

 

或者Win + R  输入 sqlplus

 

这里的用户是本地管理员

用户名:sys

密码:我们设置的数据库口令 Dzz123456

一定要加这个 as sysdba访问

就像下面这个控制台提示一样

sys/Dzz123456 as sysdba

 

断开连接

disconn

 

连接

conn

 

这个重新连接的是使用网络连接,不需要 as sysdba,且用户状态是system

system/Dzz123456

 

这个网路连接是可以使用安全输入的【就是输入看不见密码。。。】


 

数据库的连接:

连接默认的数据库

win + r 输入 regedit

路径地址

计算机\\HKEY_LOCAL_MACHINE\\SOFTWARE\\ORACLE\\KEY_OraDB19Home1

当前默认的数据库

 

我们连接的时候加上数据库地址参数即可【@数据库的名字】

即可个锤子,演示直接就行,结果我就报参数错误

这是第一个可行的方案,完整的连接参数

https://blog.csdn.net/u010523770/article/details/79013782

sys/Dzz123456@localhost:1521/orcl as sysdba

哦,原来地址不能空格

sys/Dzz123456@orcl as sysdba

使用这个也是一样的

system/Dzz123456@orcl

 

原来是这两种方式

使用sys作为登录名 必须加入 as sysdba

使用system就不需要

 


 

SQL * PLUS 连接问题:

【ORA-1256:TNS:协议适配器错误】

- 1、监听程序是否正常

- 2、OracleDB实例服务正常运行

- 3、修改注册表默认SID存在的Oracle数据库 


访问远程Oracle数据库:

配置本地网络服务

本地服务名配置

添加操作

远程的目标主机服务名称【也就是数据库名称】

选择TCP协议

远程主机的IP地址 和 端口号【端口号根据远程主机设置的而定,默认1521】

建议测试一下

 

服务名,指的是这个远程访问的服务标识,可自定义命名

建议标识【远程的主机名_数据库名】这样配置

不要配置第二个服务名

配置完成

一定要点选这个完成,不然前面的步骤就算作废

 

我们打开PLSQL访问就多了一个我们设置的服务库

使用手动文件配置的方法:

12c的路径是

C:\\app\\product\\库版本\\db_home1\\network\\admin

这里发现19c直接是放在目录中的【network\\admin】

C:\\OracleDB\\network\\admin

找到发现这个文件

打开文件格式如下:

第一个就是我们刚刚自己配置的远程服务名

# tnsnames.ora Network Configuration File: C:\\OracleDB\\NETWORK\\ADMIN\\tnsnames.ora
# Generated by Oracle configuration tools.

NO_ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.127)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

其格式分析也很简单

NO_ORCL = 设置的远程服务访问标识
  (DESCRIPTION = 描述:
    (ADDRESS_LIST = 地址列表:协议是TCP 主机地址是192.168.1.127 端口号1521
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.127)(PORT = 1521))
    )
    (CONNECT_DATA = 连接数据:访问数据库服务名称【数据库名】
      (SERVICE_NAME = orcl)
    )
  )

 

以上是关于OracleDB 01 概述和基本操作的主要内容,如果未能解决你的问题,请参考以下文章

01 Oracle DB 体系结构

执行存储过程 NJS-012 时出现 node-oracledb 错误

SQLAlchemy 在 Oracle DB 中批量插入 blob 数据

学习笔记:python3,代码片段(2017)

用片段替换某些东西

Python - 模块