Oracle基本概述 - 入门篇(一)

官方文档:https://docs.oracle.com/en/database/oracle/oracle-database/index.html

Oracle的数据类型

在这里插入图片描述

Oracle数据字典

Oracle存放关于数据库内部信息[内部表],用来描述数据库内部的运行和管理情况[变化]。

Oracle数据字典的名称由前缀和后缀组成,用下划线“_”连接

  • dba_:包含数据库实例的所有对象信息(全局信息)
  • v$_:当前实例的动态视图,包含系统管理和系统优化等所使用的视图
  • user_:记录用户的对象信息(用户拥有的)
  • gv_:分布式环境下所有实例的动态视图,包含系统管理和系统优化使用的视图
  • all_:记录用户的对象信息机被授权访问的对象信息(用户有权限的)
#查看数据字典信息(dict)
select * from dict;

1.基本数据字典

主要包括描述逻辑存储结构和物理存储结构的数据表,还包括一些描述其他数据对象信息的表

  • dba_tablespaces:关于表空间的信息
  • dba_ts_quotas:所有用户表空间限额
  • dba_free_space:所有表空间中的自由分区
  • dba_segments:描述数据库中所有段的存储空间
  • dba_extents:数据库中所有分区的信息
  • dba_tables:数据库中所有数据表的描述
  • dba_tab_columns:所有表、视图以及簇的列
  • dba_views:数据库中所有视图的信息
  • dba_synonyms:关于同义词的信息查询
  • dba_constraints:所有用户表的约束信息
  • dba_indexs:关于数据库中所有索引的描述
  • dba_ind_columns:在所有表及簇上压缩索引的列
  • dba_triggers:所有用户的触发器信息
  • dba_source:所有用户的存储过程信息
  • dba_data_files:查询关于数据库文件的信息
  • dba_tab_grants/privs:查询关于对象授权的信息
  • dba_objects:数据库中所有的对象
  • dba_users:关于数据库中所有用户的信息

2.常用动态性能视图

这些视图提供关于内存和磁盘的运行情况,只读,且信息在数据库运行期间会不断地更新

  • v$database:描述关于DB的相关信息
  • v$datafile:DB使用的数据文件信息
  • v$log:从控制文件中提取有关重做日志组的信息
  • v$logfile:有关实例重置日志组文件名及其位置的信息
  • v$archived_log:记录归档日志文件的基本信息
  • v$archived_dest:记录归档日志文件的路径信息
  • v$controlfile:描述控制文件的相关信息
  • v$instance:记录实例的基本信息
  • v$system_parameter:显示实例当前有效的参数信息
  • v$sga:显示实例的SGA大小
  • v$sgastat:统计SGA使用情况的信息
  • v$parameter:记录初始化参数文件中所有项的值
  • v$lock:通过访问DB会话,设置对象锁的所有信息
  • v$session:有关会话的信息
  • v$sql:记录SQL语句的详细信息
  • v$sqltext:记录SQL语句的语句信息
  • v$bgprocess:显示后台进程信息
  • v$process:当前进程信息

3.使用指南

#查看 表/视图 结构
desc 表/视图
#再用SELECT或SHOW查看对应的信息

#查看当前数据库的startup状态
select instance_name,status from v$instance;

#查看Diag Alert日志所在位置
#11g
select * from v$diag_info;
#10g
show parameter dump;
tail -f xxoo.log

用户与权限

  • SYSTEM:默认用户,拥有DBA角色
  • SCOTT:测试用户
  • SYS:用户具有管理系统的最高权限,

SYSDBA与SYSOPER属于系统权限/管理权限。 SYSDBA拥有最高的系统权限,SYS用户必须以SYSDBA来登录;普通用户以SYSOPER登录后的用户名为:PUBLIC

sqlplus / as sysdba

Oracle网络管理

  • 查看DB状态:select status from v$instance;
  • 查看当前操作系统的进程:ps -ef | grep LOCAL
  • 创建监听:netmgr
  • 监听器启动/停止/查看状态:lsnrctl start/stop/status 监听配置文件:/xxoo/listener.ora sqlplus 帐号/密码@IP:Port/ServiceName
  • 简化监听的 IP:端口/服务名,修改tnsnames.ora配置文件,netmgr命令可视化操作

Oracle字符集

查看当前DB的字符集:

select* from nls_database_parameters where parameter like '%CHARACTERSET';

修改当前会话的字符集:

export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK';
export NLS_LANG='AMERICN_AMERICA.AL32UTF8';
export NLS_LANG='AMERICN_AMERICA.ZHS16GBK';

Oracle精细化审计

#查看当前DB策略
show parameter audit
#修改策略为DB_EXTENDED
alter system set audit_trail='DB_EXTENDED' scope=spfile;
#重启生效:
shutdown immediate
startup

Oracle闪回技术

数据库改动前的镜像放到undo表空间,类似于回收站

显示时间节点

set time on
set timing
闪回表(Table Level)
查看回收站是否开启:show parameter recycle
查看回收站文件:show recyclebin
恢复删除的表:flashback table "RECYCLEBIN NAME" to before drop;
删除表并删除回收站的表:drop table TABLENAME purge;
清空回收站:purge recyclebin
闪回时间戳(Transaction Level)

查询表时添加时间戳查询

闪回DB(Database Level)

误删user或误truncate表

查看归档状态:archive log list
查看视图相关信息:show parameter recover
设置闪回区域大小:alter system set DB_RECOVERY_FILE_DEST_SIZE=2G;
设置闪回路径:alter system set DB_RECOVERY_FILE_DEST='/home/oracle/flash'
开启闪回功能:alter database FLASHBACK ON;

归档:alter system switch logfile;

建表-commit-truncate(不进回收站)

记录要闪回的时间点SCN:select current_scn from v$database;

强行将DB开启到mount阶段:startup mount force;
闪回DB:flashback database to scn CURRENT_SCN;
开启DB:alter database open resetlogs;
end
  • 作者:suoyue_zhan(联系作者)
  • 发表时间:2021-06-30 02:03:28
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 转载声明:如果是转载栈主转载的文章,请附上原文链接
  • 公众号转载:请在文末添加作者公众号二维码(公众号二维码见右边,欢迎关注)
  • 评论