oracle表空间

Oracle 表空间不足的处理办法

谁说我不能喝 提交于 2020-01-11 08:20:45
-1、查看表在那个表空间 select tablespace_name,table_name from user_talbes where table_name='test'; --2、获取用户的默认表空间 select username, DEFAULT_TABLESPACE from dba_users where username='MXH'; --3、查看表空间所有的文件 select * from dba_data_files where tablespace_name='USERS'; --4、查看表空间使用情况: SELECT tbs 表空间名, sum(totalM) 总共大小M, sum(usedM) 已使用空间M, sum(remainedM) 剩余空间M, sum(usedM)/sum(totalM)*100 已使用百分比, sum(remainedM)/sum(totalM)*100 剩余百分比 FROM( SELECT b.file_id ID, b.tablespace_name tbs, b.file_name name, b.bytes/1024/1024 totalM, (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 usedM, sum(nvl(a.bytes,0)/1024/1024) remainedM,

oracle 表空间不足处理

依然范特西╮ 提交于 2020-01-11 03:07:54
linux环境将*.dmp文件导入数据库时,df -h 发现测试环境虚拟机空间不足,而数据文件xxx.dbf所占空间达到40G左右,果断删除表空间重建在导入。 一、查出存储数据表空间名称 select file_name,tablespace_name,autoextensible from dba_data_files; 二、删除表空间及其内容 alter tablespace USERS OFFLINE; drop tablespace including contents and datafiles -- 可选 CASCADE CONSTRAINT ; -- 可选 三、创建大表空间 Create bigfile tablespace USERS logging datafile '/home/oradata/xxx/xxx.dbf' size 50m autoextend on next 50m maxsize 51200 m extent management local; -- 存储区管理方法 四、将USERS设为默认表空间 alter database default tablespace USERS; 其他考虑实施方法: 一、若空间足够,可以在USERS表空间下在添加数据文件 alter tablespace USERS add datafile '/home

Oracle 12c数据库的创建

烈酒焚心 提交于 2020-01-10 11:32:56
Oracle 12c 数据库的创建 oracle建立数据库与My SQL、SQL Server等有所不同,在oracle中建立数据库,比较繁琐,并会在系统中创建很多服务,所以,建议如果不是必要的情况下,还是不要随便建数据库,在已建立的数据库中建立 表空间 就可以了,然后在表空间中建立相应的表。 关于表空间参见 安装Oracle 12C 安装使用入门 https://blog.csdn.net/cnds123/article/details/103904794 Oracle数据库的创建一般使用 DBCA (Database Configuration Assistant、数据库配置助手),它可以自动的完成数据库的一些基本配置。也可以使用create database语句创建数据库,但比前者麻烦。 本文介绍Oracle创建数据库有两种方法,1)使用DBCA 创建数据库 , 2 )手动创建数据库。 1)使用DBCA创建数据库 等待 完成。 登录测试: 登录后,可以查看oracle数据库全局数据库名和sid 查看全局数据库名: select name from v$database 查看sid: select instance_name from v$instance 2.手动创建数据库 mysql和sqlserver用起来比较类似,mysql和sqlserver通过 create

ORACLE下回收TEMP表空间

岁酱吖の 提交于 2020-01-10 00:52:02
释放临时表空间 alter tablespace temp shrink space;    --确定TEMP表空间的ts# SELECT TS#, NAME FROM SYS.TS$;    --执行清理操作 temp表空间的TS# 为 3*, So TS#+ 1= 4 BEGIN FOR CUR IN 1 .. 10 LOOP EXECUTE IMMEDIATE 'alter session set events ''immediate trace name DROP_SEGMENTS level 4'''; END LOOP; END; /    查看占用temp表空间对象; set lines 200 col username for a20 col b.BYTES_USED/1024/1024/1024||'G' for a30 SELECT a.username,a.sql_id,a.SEGTYPE,b.BYTES_USED/1024/1024/1024||'G',b.BYTES_FREE/1024/1024/1024 FROM V$TEMPSEG_USAGE a JOIN V$TEMP_SPACE_HEADER b ON a.TABLESPACE=b.tablespace_name; set line 232 set pagesize 49999 set wrap

[Oracle DBA学习笔记] STARTUP详解

柔情痞子 提交于 2020-01-08 21:35:05
说明:参考数据库版本:10.0.2 一、命令解析 STARTUP options | upgrade_options options 为:[FORCE] [RESTRICT] [PFILE=filename] [QUIET] [ MOUNT [dbname] | [ OPEN [open_options] [dbname] ] | NOMOUNT ], NOMOUNT、MOUNT、OPEN为startup的三个阶段,不能在命令中同时存在。其中,open_options为:READ {ONLY | WRITE [RECOVER]} | RECOVER。 upgrade_options 为:[PFILE=filename] {UPGRADE | DOWNGRADE} [QUIET] 1、 FORCE 解析:强制打开数据库,在open之前会先执行shutdown,相当于shutdown abort; startup open。在当前实例正在运行的情况下,如果不使用FORCE的话,startup时会报错。FORCE可以在调试环境或非生产环境中使用,需慎用。 2、 RESTRICT 解析:以此模式打开的数据库只有拥有RESTRICTED SESSION系统权限的用户才能连接。打开后,可以使用ALTER SYSTEM命令将该状态设为disable,以关闭restricted将数据库正常打开。

Oracle逻辑存储结构

旧时模样 提交于 2020-01-08 04:52:37
一、数据块(data blocks)   数据块是 Oracle 数据库逻辑存储结构中的最小单位,也是执行数据库输入输出的最小存储单位。通常 Oracle 数据块是操作系统块的整数倍。数据块的标准大小被写入到初始化参数 DB_BLOCK_SIZE 中, oracle 允许在同一个数据库中存在不同大小的数据块,与标准块大小不同的就是非标准块。 二、数据区( extent )   数据区是由一组连续的 Oracle 数据块所构成的 Oracle 存储结构,由一个或多个数据块组成。一个或多个数据区组成一个段,当段中所有空间被使用完后, Oracle 系统将自动为该段分配一个新的数据区,可见,数据区是 Oracle 存储分配的最小单位。   使用数据区的目的是用来保存特定数据类型的数据,也是表中数据增长的基本单位。在 Oracle 数据库中,分配存储空间就是以数据区为单位的,一个 Oracle 对象包含至少一个数据区。设置一个表或索引的存储参数包含设置它的数据区大小。 三、段( segment )   段是由一个或多个数据区构成的,它不是存储空间的分配单位,而是一个独立的逻辑存储结构,用于存储表、索引或簇等占用空间的数据对象。一个段只属于一个特定的数据对象,每当创建一个具有独立段的数据对象时, Oracle 将为它创建一个段。 1.数据段:数据段中保存的是表中的数据记录。建表时

oracle数据库连接非常慢,sqlplus很快,用客户端就很慢,十几秒才好

倾然丶 夕夏残阳落幕 提交于 2020-01-07 14:11:35
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> oracle数据库连接非常慢,sqlplus很快,用客户端就很慢,十几秒才好。然后服务器内存一下就飙升到了90%,最开始以为是表空间占满了,数据库连接数占满了。折腾了半天,重启,还是很慢。应用连接数据库,都启动不了。发现了问题! 在客户端连接服务器的时候,点击“登录”,需要10秒多钟才可以连接到数据库,连接后操作一切正常。 在客户端用tnsping服务器,如下: C:\Documents and Settings\Administrator>tnsping ORA11G 很长时间没有反应 原因在于:!!!! 这个文件 listener.log 过大导致oracle像是假死了。listener.org路径:$ORACLE_HOME\diag\tnslsnr\机器名\listener\trace 删除掉重建一个同名文件就好。 然后tnsping ORA11G.很快就OK了。 来源: oschina 链接: https://my.oschina.net/u/204616/blog/599363

oracle查询表空间的空间占用情况

人盡茶涼 提交于 2020-01-06 21:51:18
select a.tablespace_name,a.bytes bytes_used,b.largest,round(((a.bytes - b.bytes)/a.bytes)*100,2) percent_used from (select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a, (select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name) b where a.tablespace_name=b.tablespace_name order by ((a.bytes - b.bytes) / a.bytes) desc 查询所有表空间的总容量、已经使用、剩余、已经使用的百分比! select a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB", round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent

Oracle 数据泵expdq,impdq

匆匆过客 提交于 2020-01-06 16:57:55
使用数据泵技术实现逻辑备份 数据泵概述 数据泵(DATA PUMP)是一种在数据库之间、数据库与操作系统之间,高速传输数据的技术(10g推出)。 逻辑备份概述 逻辑备份是对数据库对象(如用户、表、存储过程等)利用EXPORT等工具进行导出 物理备份对比 物理备份是转储ORACLE物理文件(如数据文件、控制文件、归档日志文件等) 物理备份旨在完全恢复整个数据库,要求完全相同的备份环境和恢复环境 逻辑备份旨在备份数据本身,可移植性强,但是备份和恢复速度低下,大型业务系统一般不用 操作步骤 1.创建目录对象(在哪导入,导出到哪) CREATE DIRECTORY 目录名(dump_dir) as '绝对路径'; 2.dump_dir目录授予 GRANT read,write on directory 目录名 to 导入导出用户; SELECT * FROM DBA_DIRECTORIES; 查询所有已创建的目录 DROP directory 目录名; 删除目录 3.expdq导出(EXPDP和IMPDP是Oracle服务端的工具,退出sqlplus) 第一种:全量导出数据库: expdp 用户名/密码@orcl dumpfile=导出文件名.dmp directory=目录名 full=y logfile=日志名.log;(与dmp一个目录) 第二种:按用户导出: expdp 用户名

oracle查询表空间的空间占用情况

↘锁芯ラ 提交于 2020-01-05 00:33:27
select a.tablespace_name,a.bytes bytes_used,b.largest,round(((a.bytes - b.bytes)/a.bytes)*100,2) percent_used from (select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a, (select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name) b where a.tablespace_name=b.tablespace_name order by ((a.bytes - b.bytes) / a.bytes) desc 查询所有表空间的总容量、已经使用、剩余、已经使用的百分比! select a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB", round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent