Oracle技术分享 - DAY 1

Oracle技术分享 - DAY 1

数据库版本 Oracle 19C

工具相关

  • Enterprise Manager Cloud Control (B/S架构)
  • SQL Developer
  • SQL Plus

网页相关

  • 文档中心:docs.oracle.com
  • metalink帮助中心:support.oracle.com

手册相关

以下手册名字,均来自 docs.oracle.com

运维

  • Database Administrator's Guide 数据库管理手册
  • Database Reference 数据库状态相关信息

开发

  • Database Development Guide 数据库开发参考手册(重要)
  • SQL Language Reference SQL语言参考手册
  • Database PL/SQL Packages and Types Reference PLSQL程序包
  • Oracle Database Data Warehousing Guide 数据仓库参考手册
  • Database PL/SQL Packages and Types Reference Oracle标准PLSQL程序包参考手册

数据库原理

  • Database Concepts

性能优化

  • Database Performance Tuning Guide 数据库性能优化指南
  • SQL Tuning Guide SQL调优指南

Database Reference

数据字典

查询结果来自于磁盘

  • cdb_[table_name] (多租户环境下)

  • dba_[table_name]

  • all_[table_name]

  • user_[table_name]

动态性能

查询结果来自于内存

  • v$[table_name]

初始化参数

创建数据库实例

设置环境变量

执行

1
vi .bash_profile

添加Oracle环境变量,并保存退出

【注意】可以使用 shift + 双击z键 ,与:wq 等效

Oracle技术分享DAY1.png

再次执行命令,使环境变量生效

【注意】使用 . + 空格 等同于 source

1
. ./.bash_profile

最终结果如下图所示

Oracle技术分享DAY1.png

通过图形化界面创建

【注意】以下没有特别说明,均适用默认配置

选中 创建数据库 并点击下一步

选中 高级配置

来到如下图界面

Oracle技术分享DAY1.png

  • 一般用途或事务处理:指OLTP类型的业务,适用于高并发,事务量大的情况。
  • 数据仓库:对于分析、读取数据需求量大的情况,如运行报表等。

选中定制数据库,并点击下一步

Oracle技术分享DAY1.png

  • SID:数据库唯一标示
  • 创建为容器数据库:12C以后的多租户的新特性

设置默认端口和监听

Oracle技术分享DAY1.png

最终结果如下

Oracle技术分享DAY1.png

Oracle 内存数据库

Oracle Database In-Memory

在线实验室 https://apexapps.oracle.com/pls/apex/dbpm/r/livelabs/home

选择DBA

Oracle技术分享DAY1.png

选择内存数据库

Oracle技术分享DAY1.png

点击 Reserve WorkShop

Oracle技术分享DAY1.png

启动puttyGen生成public key,然后复制到oracle表单中

Oracle技术分享DAY1.png

等待环境加载

Oracle技术分享DAY1.png

点击此处进入,获取环境信息

Oracle技术分享DAY1.png

环境信息如下,并把ip和username填入xshell

Oracle技术分享DAY1.png

然后在xshell中导入密钥,注意私钥必须为 OpenSSH 格式

Oracle技术分享DAY1.png

Oracle实验

启动数据库实例,并查看实例状态

select status from v$instance;

Oracle技术分享DAY1.png

查看监听状态 & 启动监听

lsnrctl status

lsnrctl start

切换Oracle SID

export ORACLE_SID=TEST

无需用户名&密码进入数据库

当使用Oracle用户组和Oracle用户安装数据库时,以最高系统权限进入数据库(操作系统权限验证)

sqlplus / as sysdba

使用SQL Developer管理插件

查看数据库状态

路径:查看 -> DBA

Oracle技术分享DAY1.png

左下角会出现新的页签,点击绿色加号添加数据库

Oracle技术分享DAY1.png

查看数据库状态

Oracle技术分享DAY1.png

创建表空间

Oracle技术分享DAY1.png

查看数据库报告

路径:查看 -> 报告

Oracle技术分享DAY1.png

以查看用户锁为例

路径:数据字典报告 -> 数据库管理 -> 锁定 -> 按用户统计的锁

Oracle技术分享DAY1.png

数据库文件

查看数据库文件,进入目录

/u01/app/oracle/oradata/

ls

测试环境如下图:

Oracle技术分享DAY1.png

控制文件

control.ctl

不同的环境,可能有多个控制文件,采用多路复用技术

Oracle技术分享DAY1.png

重做日志

redo.log

多组日志文件日志内容都相同,循环复入,写满切换。

Oracle技术分享DAY1.png

数据文件

dbf 结尾

Oracle技术分享DAY1.png

逻辑结构

块 -> 区 -> 段 -> 表空间 -> 数据库

段:存放数据的对象,如表段、索引段等

块:Oracle数据库存储的最小单元,默认大小为8k

参数文件

进入Oracle安装目录下的 dbs 目录

以实验环境为例

cd /u01/app/oracle/product/19.3.0/dbhome_1/dbs

参数文件如下图

Oracle技术分享DAY1.png

在Oracle启动实例时,会先启动进程加载参数文件,然后根据参数加载实例

【注意】服务器参数文件必须为spfile[SID].ora,其中SID必须一致

查看数据库实例,可以根据下划线结尾,获取SID

ps -ef | grep smon

Oracle技术分享DAY1.png

此时可以知道,SID=TEST

服务名和SID的区别?

SID是数据库实例的唯一识别号。如果是ORACLE RAC下,多个实例就会有多个SID。而SERVER_NAME是数据库实例的名称,用于标示外部系统,我数据库叫”SERVICE_NAME”。对于外部系统而言,既可以用SID进行连接,也可以用SERVER_NAME进行连接。同一个实例下,SID和SERVER_NAME是唯一对应的。

停库指令

1.立即停止

shutdown immediate

2.内存断电停止

shutdown abort

这种停止方式会导致数据不一致。

内存数据库、SQL调优

总结

1.Oracle学习工具

Oracle技术分享DAY1.png

2.Oracle体系结构

Oracle技术分享DAY1.png

0%