表空间

Oracle管理表空间和数据文件详解

依然范特西╮ 提交于 2020-01-12 06:45:32
管理表空间和数据文件 介绍 表空间是数据库的逻辑组成部分 从物理上将:数据库数据存放在数据文件中 从逻辑上将:数据库则是存放在表空间中 表空间由一个或是多个数据文件组成 数据库的逻辑结构 介绍: Oracle中逻辑结构包括表空间、段、区、块 说明: 数据库由表空间构成 而表空间又是由段构成 而段又是由区构成 而区又是由Oracle块构成 这样的一种结果,可以提高数据库的效率 表空间 介绍: 表空间用于从逻辑上组织数据库的数据 数据库逻辑上是由一个或是多个表空间组成的 表空间的作用: 1、控制数据库占用的磁盘空间 2、dba可以将不同数据类型部署到不同的位置。这样有利于提高i/o性能,同时利于备份和恢复等管理操作 建立表空间 建立表空间是使用create tablespace命令完成的,要注意时,一般情况下,建立表空间是特权用户或是dba来执行的,如果用其它用户来创建表空间,则用户必须要具有create tablespace的系统权限 建立数据表空间 在建立数据库后,为便于管理表,最好建立自己的表空间 create tablespace 表空间名 datafile '数据文件路径' size 数据文件的大小 uniform size 区的大小; create tablespace tangtao001 datafile 'd:\t001.dbf' size 20m uniform

Oracle 创建用户,表空间

时光怂恿深爱的人放手 提交于 2020-01-11 21:09:02
1.首先,创建(新)用户: create user username identified by password; username:新用户名的用户名 password: 新用户的密码 也可以不创建新用户,而仍然用以前的用户,如:继续利用scott用户 2.创建表空间: create tablespace tablespacename datafile 'd:\data.dbf' size xxxm; tablespacename:表空间的名字 d:\data.dbf':表空间的存储位置 xxx表空间的大小,m单位为兆(M) 3.将空间分配给用户: alert user username default tablespace tablespacename; 将名字为tablespacename的表空间分配给username 4.给用户授权: grant create session,create table,unlimited tablespace to username; 5.然后再以楼主自己创建的用户登录,登录之后创建表即可。 conn username/password; /* create tablespace OnlineVisaSystem_tableSapce logging datafile 'D:\OnlineVisaSystem.dbf' size

oracle创建表空间、创建用户

a 夏天 提交于 2020-01-11 21:01:47
create user user_name identified by user_name create temporary tablespace user_name_temp tempfile '/oradata/ORA11G/user_name_temp.dbf' size 50m autoextend on next 50m maxsize unlimited --maxsize 2048m extent management local; create tablespace user_name_tb logging datafile '/oradata/ORA11G/user_name_tb2.dbf' size 32m autoextend on next 32m maxsize unlimited extent management localdefault compress; --有特殊字符需要加双引号create user user_name identified by "123!" default tablespace user_name_tb temporary tablespace user_name_temp; grant create session to user_name; grant unlimited tablespace to user_name

Oracle数据库备份、恢复常见问题

不羁岁月 提交于 2020-01-11 16:57:56
数据库备份恢复基本问题 一、问:Oracle11g数据库数据量有50T,每天增量50g左右,该如何制定备份方案,如何验证备份的有效性? 答: 50T的数据也不大,运营商的地市级市数据基本都在100T以上了,只要备份环境允许的话,也能在12h内备份完成。 以一次全备份来算,在12h内备份完成,那么平均备份速度最低是 5010241024/12/3600=1210MB/S 按照LTO 5 drive的速度(140MB/S)来算,备份最低的drive数量:1210/140=9 为了保障dive尽量保持最大IO,建议额外关注几点: 1,datafile较小的话,聚合成较大的bakcup piece 2,调整read/write blocksize减少读写次数,可酌情调整至MB大小 3,调整备份脚本,一个channel对应一个backup session,每个channel尽量保障只有一个大块backup piece写入 4,关闭备份软件和drive的多路复用功能,保证每个dive上只有一个session写入 5,备份尽量走单独的HBA卡,不要和业务或存储共用 备份策略的话,一个完整的备份周期肯定是FULL+INCR+INCR比较符合实际情况,如果条件允许Synthetic Full也是一个很不错的选择。归档看需求,4h或者6h备份频率都可以。 相关案例: 某地市数据库,大概数据量90T

oracle表空间不足时的处理方法

我的梦境 提交于 2020-01-11 16:03:49
由于数据文件路径下的空间不足或表空间不足时,需要更换或扩展或新增表空间时,以下简单介绍下几种处理方式(数据文件/opt/oracle/oradata/testdb.dbf,原大小为100M) 一、扩大表空间现有数据文件的大小(当表空间不足,但是数据文件所在目录空间足够时) 1、oracle用户登录数据库服务器,用sysdba连接数据库 >sqlplus / as sysdba 2、扩大现有数据文件的大小 sql>alter database datafile '/opt/oracle/oradata/testdb.dbf' resize 1000M; 二、增加新的数据文件(表空间不足或数据文件所在目录空间不足时都可使用此方法) 1、oracle用户登录数据库服务器,用sysdba连接数据库 >sqlplus / as sysdba 2、增加新的数据文件 sql>alter tablespace tablespacename add datafile '/opt/oracle/oradata/testdb01.dbf' size 900M autoextend on maxsize 2G; 当数据文件所在目录空间不足,可以在其他路径下增加数据文件,例如 sql>alter tablespace tablespacename add datafile '/home/oracle

Oracle恢复手册

我怕爱的太早我们不能终老 提交于 2020-01-11 13:01:57
一、前言 常言道-“有备无患”,备份对于一套数据库来说十分重要,当遇到天灾人祸的时候有效的备份是数据库最后的希望,也是DBA从业人员自救的最后手段。一款不错的备份软件,一个适用的备份策略,对于数据保护来说是十分必要的,对于数据库系统要定时做有效的全备,以便随时恢复到任意时间点。在不同环境下有多种恢复环境,不同环境也会使用不同的方式来恢复,有时候方式不止一种。总之,有效的备份和不同环境下的恢复手段对于DBA从业人员来说是十分重要的。 二、Oracle备份 1、Oracle冷备 冷备是指Oracle数据库处于冷状态(即停机状态)的备份,此类型的备份操作简单,但是不能恢复到任意时间点、每次备份需要停机且数据量大的话停机时间长,恢复不灵活不适用核心7*24小时的生产Oracle数据库。备份只需将数据库停机复制数据文件、控制文件和参数文件即可,生产环境使用罕见此处不再讨论。 [oracle@edsir4p1-PROD1 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Sat Dec 14 08:39:25 2019 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g

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 RMAN 恢复数据库到不同主机(一)

随声附和 提交于 2020-01-11 07:12:23
一、RMAN 备份的内容 RMAN做数据库全备时包含了 数据文件、归档日志、控制文件和参数文件和备份日志,如下: arch_20160223_08qukp2t_1_1 arch_20160223_0bqukp92_1_1 ctl_c- 3234695588-20160223-01 rmanbak-20160223-0852.log scp_20160223_09qukp2u_1_1 scp_20160223_0aqukp2u_1_1 二、测试环境 OS:CentOS release 6.4 (Final) Database:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production 原平台与当前平台环境一致,但是oracle数据库目录结构不一致。 三、开始恢复 1、 确认原数据库的DBID(通过RMAN的备份日志,或者通过RMAN备份的控制文件名来识别),同时确认一下原数据库的实例名; 2、 将 RMAN备份的内容拷贝到目标数据库上; 3、 设置好环境变量: [oracle@dg1 ~]$ export NLS_DATA_FORMAT='YYYY-MM-DD HH24:MI:SS' [oracle@dg1 ~]$ export ORACLE_SID=scp [oracle@dg1 ~]$

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

MySQL表空间迁移

偶尔善良 提交于 2020-01-10 21:00:52
文章目录 有cfg文件时表空间迁移 无cfg文件时表空间迁移 有cfg文件时表空间迁移 在源表上显示建表语句: mysql> use test mysql> show create table t1; +-------+---------------------------------------------------------------------------------------+ | Table | Create Table | +-------+---------------------------------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+---------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) 在目标表上创建一样的表: mysql> CREATE TABLE `t1` ( -> `a` int(11) DEFAULT