表空间

PostgreSQL-表空间

半世苍凉 提交于 2019-11-27 08:02:52
表空间 基本概念 不同的数据库表空间有不同的定义。 在 postgres 中,表空间 允许在文件系统中定义数据库对象存储的位置,实质上就是指定了一个目录。 与数据库的关系 在 postgres 中,一个表空间可以让多个数据库使用,而一个数据库也可以使用多个表空间,属于“多对多”的关系 在 oracle 中,一个表空间只属于一个数据库,而一个数据库可以使用多个表空间,属于“一对多”的关系 应用场景 1. 存储磁盘没有空间时,可以使用表空间把数据存到其他地方; 如数据库一般装在root下,root相当于是一个磁盘分区,当root满时,可以使用表空间把数据存到 home 分区。 2. 利用表空间对数据库进行性能优化 如频繁使用的数据表或者索引放在高性能的硬盘上,而较少使用的放在普通硬盘上。 初始表空间 postgres 自带了两个表空间,pg_default, pg_global 表空间pg_default是用来存储系统目录对象、用户表、用户表index、和临时表、临时表index、内部临时表的默认空间。对应存储目录$PADATA/base/ 表空间pg_global用来存放系统字典表;对应存储目录$PADATA/global/ pg_tblspc 就是表空间,初始是空的,当手动增加表空间时,该目录下会自动生成一个软连接,指向表空间设定的路径。 设定表空间的一系列命令

Oracle Storage in Action : 删除物理数据文件

做~自己de王妃 提交于 2019-11-27 06:23:01
ALTER TABLESPACE XH_DM DROP DATAFILE 'F:\DEV\ORACLE-DATA\ORCL\XH_DM_1.DBF'; SQL> ALTER TABLESPACE XH_DM 2 DROP DATAFILE 'F:\DEV\ORACLE-DATA\ORCL\XH_DM_1.DBF'; ALTER TABLESPACE XH_DM * ERROR at line 1: ORA-03262: the file is non-empty 1 -- Oracle Storage 删除一个无效的数据文件,及上面的无效表 2 -- 1. 查看文件ID 3 select file_id , file_name ,tablespace_name from dba_data_files order by file_id ; 4 5 6 -- 2. G根据ID查找文件上存储的段,表,分区名称 7 select owner,SEGMENT_NAME, FILE_ID from dba_extents where file_id = 9 ; 8 9 10 -- 3. 彻底删除表,如果表内容有效,先移动表到其他表空间 e.g. ALTER TABLE SQL_LOG MOVE TABLESPACE USERS; 11 drop table temp_user_extent

OCP 11g 第一章练习

一曲冷凌霜 提交于 2019-11-27 06:22:54
练习 1-1 研究所在环境的DBMS 这是一个书面练习,没有具体的解决方案. 确定自己所在环境使用的应用程序, 应用服务器 , 和数据库. 然后集中精力研究数据库, 体验一下数据库的规模和忙碌程度. 考虑用户数量,数据易失性以及数据量. 最后考虑他们对组织的重要程度: 就每个应用程序和数据库而言, 允许多长的停机时间? 允许损失多少数据? 可以使用财务数字定量分析吗? 利用研究结果,可以了解DBA角色的重要性. 练习 1-2 确定数据库是单实例,还是分布式系统的一部分 在本练习中,读者将运行查询来确定数据库是独立系统,还是更大的分布式环境的一部分. 可以使用Sql Developer 或 SQL & Plus. 如果您还不能使用Oracle数据库,但又要做此练习, 那么可以调至第二章,在完成安装后再回到此练习. 1. 作为用户SYSTEM连接到数据库 2. 确定实例是否是RAC数据库的一部分 SQL> select parallel from v$instance; PARALLEL --------- NO 如果是单实例数据库,那么将返回NO. 3. 确认数据库是否通过备用数据库的保护来防止数据丢失, UNPROTECTED 表示未受到保护. SQL> select protection_level from v$database; PROTECTION_LEVEL ------

叶问16

℡╲_俬逩灬. 提交于 2019-11-27 05:40:36
《叶问》是知数堂新设计的互动栏目,不定期给大家提供技术知识小贴士,形式不限,或提问、或讨论均可,并在当天发布答案,让大家轻轻松松利用碎片时间就可以学到最实用的知识点。 2019年06月04日,周二 MySQL错误日志出现[Note] InnoDB: Discarding tablespace of table db.table: Data structure corruption产生可能的原因及解决办法? 一、产生原因 从错误日志即可判断出表空间ibd文件发生了物理损坏,那么其中的可能包括如下: 1、数据库服务器异常down机/断电等 2、kill -9强制关闭mysqld 3、表空间导出导入过程中发生的ibd文件损坏 4、人为损坏ibd文件 5、底层物理I/O设备损坏,导致文件损坏 二、解决办法 1、从其他实例(如slave)上进行表空间传输进行导入或进行SQL导出导入 2、从历史备份中进行全量+增量恢复完整的ibd文件后再进行表空间传输或进行SQL导出导入 3、尝试innodb force recovery从1-6逐一尝试启动数据库,启动后通过mysqldump重新将表导出导入 4、考虑使用工具undrop-for-innodb从index page尝试数据恢复 来源: https://www.cnblogs.com/allenhu320/p/11347953.html

Oracle中的一些基本操作

混江龙づ霸主 提交于 2019-11-27 05:38:42
  关于Oracle中的一些基本操作,包括表空间操作,用户操作,表操作 1 --创建表空间 2 create tablespace itheima 3 datafile 'I:\oracle\table\itheima.dbf' 4 size 100m 5 autoextend on 6 next 10m; 7 --删除表空间 8 drop tablespace itheima; 9 10 --创建用户 11 create user itheima 12 identified by itheima 13 default tablespace itheima; 14 15 --给用户授权 16 --oracle数据库中常用角色 17 connect --连接角色 18 resource --开发者角色 19 dba --超级管理员角色 20 21 --给itheima角色授予dba角色 22 grant dba to itheima; 23 24 --切换到itheima用户下 25 --session->logoff->logon 26 27 --创建一个person表 28 create table person( 29 pid number(20), 30 pname varchar2(10) 31 ); 32 33 34 --修改表结构 35 --添加一列 36 alter

怎么删除表空间对应的某一个数据文件

核能气质少年 提交于 2019-11-27 05:35:19
如果想要删除表空间的数据文件,最好且最安全的办法是,删除表空间后重建 步骤如下:   1,导出该表空间中的所有内容;   2,删除表空间:DROP TABLESPACE <tablespace_name> INCLUDING CONTENTS;   3,重新创建新的表空间及其数据文件;   4,将导出的数据导入表空间; 但是在实际应用环境中,数据文件往往比较大,表空间重建显得不太实际。 目标:删除表空间的一个数据文件 测试环境:Oracle 11.2.0.4.0 64bit 注意:此方法仅用来删除误加的表空间数据文件,如果该数据文件中已有数据,删除会导致表空间数据的不完整,建议使用上述方法删除。 首先, ALTER DATABASE DATAFILE '***.DBF' OFFLINE DROP ,这个命令用来将该数据文件从逻辑上删除,此时该文件的online_status为 recover 状态 SQL> SELECT file_id, file_name, status, online_status FROM Dba_Data_Files; FILE_ID FILE_NAME STATUS ONLINE_STATUS ---------- ----------------------------------------------------------------------

Oracle的表空间、用户和表的区别和联系

好久不见. 提交于 2019-11-27 05:15:57
Oracle的表空间、用户和表的区别和联系 Oracle数据库是通过表空间来存储实际存在的那些表、索引、视图的, 表空间分类: 临时表空间: 用于存储数据库中单持久性模型对象,如表、索引、视图等,其数据在物理上对应一个或者多个数据文件。永久表空间也是我们实际中用的最多的一个类型的表空间。 永久表空间: 不能进行永久对象的存储。其主要用途在于存储临时表的数据、提供空间进行排序操作、创建索引等。 撤销表空间:撤销表空间主要用于DML语句的数据管理,当执行insert,update,delete的时候,旧的数据就会存放到undo表空间。 undo表空间的4个常见   事务回滚 数据库恢复 读一致性   闪回查询 一个数据库实例可以含有多个表空间,一个表空间又可以存储多张表 每一个用户一般来说都有一个默认的永久的表空间和一个临时的表空间 一个用户可以拥有一个活多个表空间的权限   不同的创建表的语句的作用可能不同:       create table test( id int); 这样创建的表, 将创建在 用户的默认表空间下。       create table test1 ( id int ) tablespace Test01 ; 这样创建的表, 将创建在 Test01表空间下。 来源: https://www.cnblogs.com/isme-zjh/p/11346354

oracle数据库与其他数据库区别

限于喜欢 提交于 2019-11-27 05:13:11
本文用的是Oracle 10g数据库,利用PL/SQL Developer的集成开发环境(安装可以自行百度) Oracle数据库 ---> 数据库实例 ---> 表空间(逻辑单位)(用户) ---> 数据文件(物理单位) 可以理解为下面 地球 ---> 一个国家 ---> 省份(逻辑单位)(公民) ---> 山川河流(物理单位) 通常情况下,Oracle数据库只会有一个实例ORCL, 新建一个项目: MYSQL : 创建一个数据库,创建相应的表 Oracle: 创建一个表空间,创建用户,用户去创建表 Oracle和MYSQL的差别 Oracle是多用户的, MYSQL是多数据库的 1. 遵循SQL标准 2. 不同厂商,不同的数据库产品,但是有自己的方言 3. 使用自己的方言,也能够完成相同的功能 4. Oracle安全级别要高,MYSQL开源免费 select * from tab; /* 数据库 ---> 数据库实例 ---> 表空间(逻辑单位)(用户) ---> 数据文件(物理单位) 地球 ---> 一个国家 ---> 省份(逻辑单位)(公民) ---> 山川河流(物理单位) 通常情况下,ORacle数据库只会有一个实例ORCL, 新建一个项目: MYSQL : 创建一个数据库,创建相应的表 Oracle: 创建一个表空间,创建用户,用户去创建表 Oracle和MYSQL的差别

Oracle数据库(一)

≡放荡痞女 提交于 2019-11-27 05:05:25
Oracle数据库JDBC连接  Driver : oracle.jdbc.driver.OracleDriver  url : jdbc:oracle:thin:@localhost:1521:orcl  user   : xxx  password : xxx与MySQL不同的是:oracle需要手动提交事物。安装Oracle时,在口令管理中,需要选择将SCOTT取消√,并且设置密码(敏感Scott用户), 在设置SYS 与SYSTEM密码 -- 1、使用sys管理员创建一个独立的表空间(选中SQL Window选项,在弹出的窗口中编辑) -- 表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。 --所有的数据库对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间 create tablespace tableNameSpace -- 单独的表空间名称 datafile 'D:\LiQiang-Space\oracleTableSpace\tableNameSpace.DBF' -- tableNameSpace表空间所在的路径 size 100m -- tableNameSpace表的大小 autoextend on -- 自动扩容 next 32m maxsize 2048m -- 当满100m,自动增加32m,最大的空间2048m extent

Oracle删除所有表

若如初见. 提交于 2019-11-27 04:47:32
Oracle删除当前用户下所有的表的方法 1、如果有删除用户的权限,则可以: drop user user_name cascade; 加了cascade就可以把用户连带的数据全部删掉。 删除后再创建该用户。 –创建管理员用户 create user 用户名 identified by 密码 default tablespace space_data(表空间名称) temporary tablespace space_temp(临时表空间名称); –授权 grant connect,dba to 用户名; –修改限额 ALTER USER “用户名” QUOTA UNLIMITED ON SPACE_DATA(表空间名称); –查看所有用户对象 select uo.object_name,uo.object_type from user_objects uo where uo.object_type<>‘LOB’ order by uo.object_type desc 2、如果没有删除用户的权限,则可以执行: select ‘drop table ‘||table_name||’;’ from cat where table_type=‘TABLE’ 将会输出一批删除表的sql语句,这些SQL语句执行一下就可以了。(需要有drop table的权限) 来源: https:/