Oracle 部署及基础使用

1. Oracle 简介

Oracle Database,又名 Oracle RDBMS,简称 Oracle Oracle系统,即是以Oracle关系数据库为数据存储和管理作为构架基础,构建出的数据库管理系统。是目前最流行的客户/服务器(client/server)或B/S体系结构的数据库之一,比如 SilverStream 就是基于数据库的一种中间件。Oracle 数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系型数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能,只要在一种机型上学习了 操作Oracle 的知识,便能在各种类型的机器上使用它。

名词了解

f5fff16a339e479c98474620b033412c.jpg
数据文件(dbf)
数据文件是数据库的物理存储单位,而表空间 TableSpace 则是数据库的逻辑组成部分。数据库的数据是存储在表空间中的,而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。
表空间
表空间是 Oracle 对物理数据库上相关数据文件(ORA 或者 DBF 文件)的逻辑映射。一个数据库在逻辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关联的一组结构。每个数据库至少有一个表空间(称之为 system 表空间)。每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据库文件(datafile)。一个数据文件只能属于一个表空间。
用户
用户是在实例下建立的。不同实例中可以建相同名字的用户。注意!表的数据,是由用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件中。由于 Oracle 的数据库不是普通的概念,oracle 是由用户和表空间对数据进行管理和存放的。但是表不是由表空间去查询的,而是由用户去查的。因为不同用户可以在同一个表空间建立同一个名字的表!这里区分就是用户了!
1600135725454050.png

关于数据库语言的分类

DDL:数据库定义语言:create、drop
DML:数据库的操作语言:insert、update、delete
DQL:数据库的查询语言:select
DCL:数据库的控制语言:grant、revoke

2. docker 部署 Oracle

2.1 拉取镜像

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

2.2 启动容器

docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
docker ps 查看容器启动成功
image.png

2.3 配置

# 进入oracle容器环境中  
docker exec -it oracle11g bin/bash
# 切换到 oracle 数据库的 root 用户下(密码为:helowin)  
su root
# 编辑 profile 文件
vi /etc/profile
# 添加 ORACLE 环境变量参数后保存退出
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
# 创建软连接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
# 配置文件生效
source ~/.bash_profile
# 切换到 oracle 用户
su - oracle 

su - oracle    #相当于重新登陆,此时用户的环境变量等信息会发生改变
su oracle      #切换到oracle身份后用户的环境变量仍然是原先用户的环境变量

image.png

2.4 登录

依次输入
sqlplus /nolog
conn /as sysdba
image.png

2.5 设置密码

将 system 和 sys 两个账户的密码设为 123456

alter user system identified by 123456;
alter user sys identified by 123456;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

解锁 scott 用户,同时将其密码设置为 123456

alter user scott account unlock;
alter user scott identified by 123456;
commit;

配置完毕后,连续执行多个 exit 即可退出容器。

2.6 连接测试

使用 Navicat 连接下部署好的 Oracle 数据库,连接成功即可。image.png

3. Oracle 基础使用

常用命令

3.1 控制

# 登陆 sqlplus:
sqlplus /nolog

# 使用 sysdba 连接 oracle:
connect /as sysdba

# 使用自定义 u1 连接 oracle:
connect u1 /123456

# 开启数据库:
startup

# 关闭数据库:
shutdown immediate;

# 查看数据库状态:
select * from v$instance;

# 监听状态($ORACLE_HOME/bin):
lsnrctl status

# 开启监听:
lsnrctl start

# 关闭监听:
lsnrctl stop

3.2 查询

# 查询当前数据库: 
select name from v$database;

# 查询数据库名:
select name,dbid from v$database;

# 查询当前实例名: 
select instance_name from v$instance;

# 查询表空间:
select default_tablespace, d.username from dba_users d;

# 查看数据库用户:
select * from dbs_users;

# 查询表空间路径:
select status,fuzzy,tablespace_name,name from v$datafile_header;

# 显示当前连接用户:
show user;

# 显示系统下所有用户:
select * from all_users;

# 显示用户空间下所有表格:
select table_name from user_tables;

# 显示用户下表格中的数据:
select * from "HFTEST"."stu";

3.3 创建

# 创建表空间:
create TableSpace 表空间名称 DataFile 表空间数据文件路径 Size 初始大小 AutoExtend on;

# 创建用户:
create user 用户名 identified by 密码 default tablespace 表空间;

# 用户授权:
Grant connect, backup any table, select any dictionary, dba to 用户;

3.4 删除

# 删除用户:
drop user 用户名 cascade;

# 删除表空间:
Drop tablespace 表空间名 including contents and datafiles CASCADE CONSTRAINTS;

# 删除表:
drop table "stu";

4. 操作示例

4.1 数据库状态检查

su - oracle  #进入 oracle 系统账户
sqlplus /nolog  #登录sqlplus
connect /as sysdba  #用sysdba连接Oracle
startup  #启动数据库
select status from v$instance;  #查询数据库状态

image.png

4.2 创建用户

# 创建授权高级权限用户(既可以备份又可以恢复数据库)
create user zhangsan identified by 123456;  #创建
grant dba,sysdba to zhangsan;  #授权

4.3 检查监听

在容器内的终端界面输入lsnrctl status
如未出现如下界面则需要开启监听。
image.png

4.4 检查归档模式

查看是否开启归档模式

su - oracle  # 进入 oracle 系统账户
sqlplus /nolog  # 登录sqlplus
connect /as sysdba  # 用sysdba连接Oracle
archive log list  # 查看 

如果没有开启归档模式,则显示:No Archive Mode

shutdown immediate;        # 关闭数据库
startup mount;             # 启动数据库实例到mount状态
alter database archivelog; # 启动归档模式
alter database open;       # 打开数据库并将其装入
archive log list;          # 配置完成之后再次检查归档日志类型

1675067508066.jpg

参考文档:
docker部署oracle_今朝花落悲颜色的博客-CSDN博客
Oracle数据库入门教程(作者原创)_划水的阿瞒的博客-CSDN博客
全网Oracle基础最全教程_oracle数据库入门教程_QZero_0的博客-CSDN博客

参考文档:
EXP、IMP、EXPDP、IMPDP命令_exp命令_O.OY的博客-CSDN博客
Navicat连接Oracle报错:ORA-01031:insufficient privileges解决办法及连接设置_navicat ora01031_搬砖界的一个小学生的博客-CSDN博客

相关推荐

  1. redis的部署基本使用

    2024-03-20 02:32:01       19 阅读
  2. Oracle/DM序列基本使用

    2024-03-20 02:32:01       56 阅读
  3. NGINX 使用部署文档

    2024-03-20 02:32:01       65 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-20 02:32:01       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-20 02:32:01       97 阅读
  3. 在Django里面运行非项目文件

    2024-03-20 02:32:01       78 阅读
  4. Python语言-面向对象

    2024-03-20 02:32:01       88 阅读

热门阅读

  1. 抽象类abstract

    2024-03-20 02:32:01       44 阅读
  2. 安达发|APS高级计划与排产软件在家具业的新趋势

    2024-03-20 02:32:01       42 阅读
  3. 02 Statement和PreparedStatement

    2024-03-20 02:32:01       39 阅读
  4. SpringBoot项目串口通讯之jSerialComm

    2024-03-20 02:32:01       37 阅读
  5. 代码随想录算法训练营|一刷总结与反思

    2024-03-20 02:32:01       44 阅读
  6. 73_Pandas获取分位数/百分位数

    2024-03-20 02:32:01       31 阅读
  7. Flutter如何正确使用图片资源

    2024-03-20 02:32:01       37 阅读
  8. UDP协议

    UDP协议

    2024-03-20 02:32:01      38 阅读
  9. 程序员排查BUG指南

    2024-03-20 02:32:01       41 阅读
  10. 开发遇到的bug:设置好的请求头不起作用

    2024-03-20 02:32:01       43 阅读