表空间

Oracl基础知识(一)

故事扮演 提交于 2020-03-20 07:42:49
概述   Oracle功能繁多,接触Oracle不深,将接触到的基础知识整理下来,以便不时之需。整理的内容主要有Expdp指令实现数据库备份,Impdp指令实现数据库还原,以及用户、表空间的定义。整理的数据来源多为网上优秀的博客和论坛,内容如有相同之处,纯属转载。 Expdp指令数据备份导出    expdp工具导出的方式有很多种,使用方便,直接在CMD命令行中输入导出指令即可,这里仅仅介绍按用户名导出数据库文件。如果是普通用户进行数据导出和导入时候,需要授权用户读写目录权限:   最好以system等管理员赋予: grant read,write on directory dpdata1 to scott;   1、导出指令格式:        A、导出全部数据库格式 :               [expdp 用户名/密码 dumpfile=导出文件名.dmp directory=文件目录];      B、导出指定表空间 :               [expdp 用户名/密码@SID名称 dumpfile=导出文件名.dmp directory=文件目录 TABLESPACES=表空间A,表空间B];               (备注:该导出方式包括表空间和用户,所以还原数据的时候,需要对应的表空间和用户)      C、导出指定用户的数据 :            

oracle表按日期分区创建、新增、修改、删除

情到浓时终转凉″ 提交于 2020-03-19 00:34:54
Oracle11G分区表   当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。 作用:   Oracle的表分区功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。通常,分区可以使某些查询以及维护操作的性能大大提高。此外,分区还可以极大简化常见的管理任务,分区是构建千兆字节数据系统或超高可用性系统的关键工具。   分区功能能够将表、索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区。每个分区有自己的名称,还可以选择自己的存储特性。从数据库管理员的角度来看,一个分区后的对象具有多个段,这些段既可进行集体管理,也可单独管理,这就使数据库管理员在管理分区后的对象时有相当大的灵活性。但是,从应用程序的角度来看,分区后的表与非分区表完全相同,使用 SQL DML 命令访问分区后的表时,无需任何修改。 什么时候用:   1、表的大小超过2GB。   2、表中包含历史数据,新的数据被增加都新的分区中。 优点:   1、改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。   2、增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;   3、维护方便

【故障处理】ORA-30012的解决过程

本小妞迷上赌 提交于 2020-03-18 19:47:16
【故障处理】 ORA-30012 的解决过程 1 BLOG 文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识, ~O(∩_∩)O~ : ① ORA-30012 的解决过程 Tips : ① 本文在 itpub ( http://blog.itpub.net/26736162 )、博客园 ( http://www.cnblogs.com/lhrbest ) 和微信公众号( xiaomaimiaolhr ) 上 有同步更新 。 ② 文章中用到的所有代码 、 相关软件 、 相关资料 及本文的 pdf 版本都 请前往小麦苗的云盘下载 , 小麦苗的 云盘地址见: http://blog.itpub.net/26736162/viewspace-1624453/ 。 ③ 若网页文章代码格式有错乱, 请 下载 pdf 格式的文档来 阅读 。 ④ 在 本篇 BLOG 中 ,代码输出部分一般放在一行一列的表格中。其中, 需要特别关注的地方我都用 灰色背景和粉红色字体 来表示,比如 在 下边的例子中, thread 1 的最大归档日志号为 33 , thread 2 的最大归档日志号为 43 是需要特别关注的地方;而命令一般使用 黄色背景和红色字体 标注;对代码或代码输出部分的注释一般采用 蓝色字体 表示。 List

ERROR 1238 (HY000): Variable 'innodb_undo_tablespaces' is a read only variable

醉酒当歌 提交于 2020-03-17 11:03:03
mysql在5.6版本之后,就可以将undo表空间从系统表空间分离出来。如果在初始化mysql的时候,/etc/my.cnf文件中,并没有指定innodb_undo_tablespaces的数量,那么默认情况undo就是存放在系统表空间中。初始化成功之后,尝试修改innodb_undo_tablespaces参数,数据库就会报错 root@localhost [(none)]>set global innodb_undo_tablespaces=3; ERROR 1238 (HY000): Variable 'innodb_undo_tablespaces' is a read only variable 或者修改/etc/my.cnf文件,重新启动 [root@rsync-test03 data]# service mysqld start Starting MySQL..The server quit without updating PID file ([FAILED]sql/mysql3306/data/rsync-test03.pid).    官方文档解释:    来源: https://www.cnblogs.com/hanglinux/p/12508805.html

ORA-00742:Log read detects lost writein thread 1 sequence 1202 block 137840

对着背影说爱祢 提交于 2020-03-17 10:29:09
问题背景: 客户数据库环境遭遇断电宕机,启动数据库失败,协助查看。 报错如下: 1 Total System Global Area 6442450944 bytes 2 Fixed Size 8807168 bytes 3 Variable Size 1375735040 bytes 4 Database Buffers 5049942016 bytes 5 Redo Buffers 7966720 bytes 6 Database mounted. 7 ORA-00742: Log read detects lost write in thread 1 sequence 1202 block 137840 8 ORA-00312: online log 18 thread 1: '/u01/app/oracle/oradata/orcl/redo18.log' 9 10 11 alter pluggable database all open 12 * 13 ERROR at line 1: 14 ORA-01109: database not open 问题解决: 宕机过程中redolog丢失 1 SQL> RECOVER DATABASE UNTIL CANCEL; //尝试recover 2 ORA-01547: 警告: RECOVER 成功但 OPEN

Oracle表空间(tablespaces)

夙愿已清 提交于 2020-03-17 08:33:42
http://www.cnblogs.com/fnng/archive/2012/08/12/2634485.html   我们知道oarcle数据库真正存放数据的是数据文件(data files),Oarcle表空间(tablespaces)实际上是一个逻辑的概念,他在物理上是并不存在的,那么把一组data files 捻在一起就成为一个表空间。 表空间属性: 一个数据库可以包含多个表空间,一个表空间只能属于一个数据库 一个表空间包含多个数据文件,一个数据文件只能属于一个表空间 表这空间可以划分成更细的逻辑存储单元 Oracle数据库的存储结构:   从逻辑的角度来看,一个数据库(database)下面可以分多个表空间(tablespace);一个表空间下面又可以分多个段(segment);一个数据表要占一个段(segment),一个索引也要占一个段(segment )。 一个段(segment)由多个 区间(extent)组成,那么一个区间又由一组连续的数据块(data block)组成。这连续的数据块是在逻辑上是连续的,有可能在物理磁盘上是分散。   那么从物理的角度上看,一个表空间由多个数据文件组成,数据文件是实实在在存在的磁盘上的文件。这些文件是由oracle数据库操作系统的block 组成的。 Segment(段) :段是指占用数据文件空间的通称

oracle 数据库备份

我的未来我决定 提交于 2020-03-13 12:47:59
1、引言 Oracle数据库的备份方法很多,无论使用那种备份方法,备份的目的都是为了在出现故障后能够以尽可能小的时间和代价恢复系统。比如使用export实 用程序导出数据库对象、使用Oracle备份数据库、使用Oracle对称复制、使用Oracle并行服务器、使用Oracle冷备份、使用Oracle 热备份等各种备份方法都有其优缺点、适用的场合和相应的软硬件要求。本文主要就用export实用程序导出数据库对象、Oracle冷备份、Oracle 热备份这三种最基本的备份方法进行详细的探讨,分析各自的优缺点和适用的场合,并给出自动执行这些备份方案的脚本文件。 2、三种备份方案的比较 冷备份 冷备份是Oracle最简单的一种备份;执行冷备份前必须关闭数据库;然后使用操作系统实用工具或者第三方工具备份所有相关的数据库文件。 优点:能简单快速地备份。能简单快速地恢复。执行简单。 缺点:必须关闭数据库,不能进行点恢复。 热备份 热备份是当数据库正在运行时进行数据备份的过程。执行热备份的前提是:数据库运行在可归档日志模式。适用于24X7不间断运行的关键应用系统。 优点:备份时数据库可以是打开的。热备份可以用来进行点恢复。初始化参数文件、归档日志在数据库正常运行时是关闭的,可用操作系统命令拷贝。 缺点:执行过程复杂。由于数据库不间断运行,测试比较困难。不能用操作系统实用工具拷贝打开的文件

Oracle学习总结02

空扰寡人 提交于 2020-03-11 09:50:07
1-数据库服务器、实列、数据库的关系 数据库服务器包含实例和数据库,实例又包含了内存结构和后台进程。 2-内存结构 后台进程属于实例还是数据库? 实例是操作系统和Oracle数据库进行联系的标志,提供了一种访问数据库的方式,实例分成内存结构(SGA)和后台进程。 3-手画Oracle体系结构图 4-用户进程和服务器进程关系 用户在向数据库发出SQL命令之前,必须要与实例相连,用户进程(比如sqlplus)要先进行登录,登录成功后,Oracle在服务器运行的计算机上建立了服务器进程,两者为一对一的关系。用户进程通过连接Oracle服务器进程来连接数据库。 5-Oracle体系结构的三大主要组成? Oracle体系结构由内存结构、进程结构、存储结构。 6-逻辑存储结构中的数据库、表空间、段、区、数据块的关系? 在Oracle的逻辑存储结构中,数据库是由表空间组成,表空间由一些段组成,段由数据区组成,数据区由一个个的数据块组成。 7-sqlplus命令中 col name format a30 是什么意思? 设置显示字段的宽度,把column_name的列宽设置为30个字符。 8-数据块和数据区哪个是最小的单位?如何区分? 数据块是Oracle存储结构中最小的逻辑单位,是执行数据库输入输出操作的最小存储单位,一个数据块对应一个或多个物理块;而数据区(extend)是一些数据块组成

ORACLE UNDO表空间回收处理

谁说胖子不能爱 提交于 2020-03-10 09:31:29
ORACLE UNDO表空间回收处理 1、首先查询当前undo表空间的使用情况 SQL> select file_name,bytes/1024/1024 MB,autoextensible from dba_data_files where tablespace_name like 'UNDOTBS1'; FILE_NAME MB AUTOEX ---------------------------------------------------------------------------------------------------- ---------- ------ +MGMT/_MGMTDB/76C3BF7AF221EFDFE0530F0B08BCEB76/DATAFILE/undotbs2.285.1034609595 2048 NO 2、查看当前undo的参数 SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ---------------------- ------------------------------ temp_undo_enabled boolean FALSE undo_management string AUTO undo

ORACLE数据库字典表操作

大憨熊 提交于 2020-03-10 07:58:18
1、数据字典中用户表:dba_users; 2、数据字典中表空间表: dba_tablespaces; 3、oracle 查看用户所在的表空间:select username,default_tablespace from dba_users; 4、查看表空间的名字及大小:select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name; 来源: CSDN 作者: Joker_zy 链接: https://blog.csdn.net/Joker_zy/article/details/104746732