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 ReferenceSQL语言参考手册Database PL/SQL Packages and Types ReferencePLSQL程序包Oracle Database Data Warehousing Guide数据仓库参考手册Database PL/SQL Packages and Types ReferenceOracle标准PLSQL程序包参考手册
数据库原理
Database Concepts
性能优化
Database Performance Tuning Guide数据库性能优化指南SQL Tuning GuideSQL调优指南
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 等效

再次执行命令,使环境变量生效
【注意】使用 . + 空格 等同于 source
1 | . ./.bash_profile |
最终结果如下图所示

通过图形化界面创建
【注意】以下没有特别说明,均适用默认配置
选中 创建数据库 并点击下一步
选中 高级配置
来到如下图界面

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

- SID:数据库唯一标示
- 创建为容器数据库:12C以后的多租户的新特性
设置默认端口和监听

最终结果如下

Oracle 内存数据库
Oracle Database In-Memory
在线实验室 https://apexapps.oracle.com/pls/apex/dbpm/r/livelabs/home
选择DBA

选择内存数据库

点击 Reserve WorkShop

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

等待环境加载

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

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

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

Oracle实验
启动数据库实例,并查看实例状态
select status from v$instance;

查看监听状态 & 启动监听
lsnrctl status
lsnrctl start
切换Oracle SID
export ORACLE_SID=TEST
无需用户名&密码进入数据库
当使用Oracle用户组和Oracle用户安装数据库时,以最高系统权限进入数据库(操作系统权限验证)
sqlplus / as sysdba
使用SQL Developer管理插件
查看数据库状态
路径:查看 -> DBA

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

查看数据库状态

创建表空间

查看数据库报告
路径:查看 -> 报告

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

数据库文件
查看数据库文件,进入目录
/u01/app/oracle/oradata/
ls
测试环境如下图:

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

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

数据文件
以 dbf 结尾

逻辑结构
块 -> 区 -> 段 -> 表空间 -> 数据库
段:存放数据的对象,如表段、索引段等
块:Oracle数据库存储的最小单元,默认大小为8k
参数文件
进入Oracle安装目录下的 dbs 目录
以实验环境为例
cd /u01/app/oracle/product/19.3.0/dbhome_1/dbs
参数文件如下图

在Oracle启动实例时,会先启动进程加载参数文件,然后根据参数加载实例
【注意】服务器参数文件必须为spfile[SID].ora,其中SID必须一致
查看数据库实例,可以根据下划线结尾,获取SID
ps -ef | grep smon

此时可以知道,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学习工具

2.Oracle体系结构
