Oracle基本概述 - 入门篇(一)
日期: 2021-06-30 分类: 个人收藏 926次阅读
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;
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
精华推荐