oracle数据转储

上传人:豆浆 文档编号:2038972 上传时间:2017-07-19 格式:DOC 页数:10 大小:53.50KB
返回 下载 相关 举报
oracle数据转储_第1页
第1页 / 共10页
oracle数据转储_第2页
第2页 / 共10页
oracle数据转储_第3页
第3页 / 共10页
oracle数据转储_第4页
第4页 / 共10页
oracle数据转储_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《oracle数据转储》由会员分享,可在线阅读,更多相关《oracle数据转储(10页珍藏版)》请在金锄头文库上搜索。

1、Oracle 的存储对于 Oracle 数据库而言,所有的数据逻辑上都分别存放在若干个表空间中,而在物理上,是由若干个数据文件组成。表空间中的数据库对象的物理存储直接映射表空间底层的数据文件。Oracle 的对象中,凡是需要独立占有物理存储空间的又称为段。所有的表、索引、快照、簇、回滚段、临时段都属于段的概念,它们占有某个或多个数据中一定的数据空间、也就是占有一定的磁盘空间。区间是段的管理划分、一个段由一个或若干个区间组成、所谓的段或对象扩展(表、索引的增长)就是按照段的存储参数增加新的区间。区间是一组连续的数据块集合。区间对性能的影响一般发生在对整个段的读取时(如全表扫描) ,对于数据库中的

2、一个表而言,如果区间数量限制在 4000 以内大多数数据库的维护操作会执行的最好。数据块是 Orcle 数据库的磁盘存取单元,当操作一个数据库时,Oracle使用数据块存储和提取磁盘上的数据、一次读/写一个或若干个块。在一个数据库中可以建立多个数据库实例(一般为一个) ,一个数据库实例下可以建立多个用户,如 sys,system 等,在同一个用户下又以建立多个表空间,这些表空间分别存储不同的数据,如数据表空间,索引表空间,也可以同时拥有多个数据表空间,一个表空间下可以包含多个数据文件,这些数据文件可以分别存储在物理位置不同的磁盘空间上。如现在湖南数据库用户名 ld_data,它包含数据表空间

3、ld_data 和 hn_data,索引表空间 ld_ind 和 hn_ind,同时这些表空间下又包含若干个不同的数据文件。影响数据库存储速度因素一个 sql 语句执行速度的快慢出取决于他所提取的数据量以外还和所得取得数据的分布情况、所设据表的索引情况以及读取得列的数据类型等多个因素有关。在读取相同数据量的情况下,应尽量少的访问数据块,即减少语句的跨数据块操作。读取得快越少越能减少操作时间。对于巨型的表而言采用分区存放,把具有相同特征的数据尽量的集中存放是最佳的选择。索引也是提高 sql 语句运行速度的关键因素。对于读取表中数据的命令,索引可以提高他们的响应时间,这就意味着select,upd

4、ate,delete 命令都可以更快的运行(如果该表有对应这些命令列的索引) 。但是增加索引并不意味着增加 insert 命令的输入速度,相反还有降低它的速度。索引本身实际上是一个表,因此当对表添加记录时,oracle 必须做两次插入操作,这样便导致了增加一个索引时插入操作要花费两倍多的时间。就算是查询语句当他所涉及的记录达到所以记录的 50%以上时,他也将使用全表扫描。所以建立索引也应权衡利弊。对于表中的不同的数据类型读取速度也是不同的。如读取char类型要比varchar2的速度快,因为char使用一个固定的存储长度。湖南娄底数据库存储现在湖南数据库存储模式如下:用户默认表空间用户 密码

5、权限数据表空间 索引表空间 临时表空间LD_DATA LD CONNECT LD_DATA LD_IND LD_TEMPLD_DATA_HIS LD_HIS CONNECT HIS_DATA HIS_IND HIS_TEMP表空间与数据文件表空间 数据文件 备注ld_data01.oraLD_DATA(LD_DATA_HIS) ld_data02.ora 默认数据表空间ld_ind01.oraLD_IND(LD_IND_HIS) ld_ind02.ora 默认索引表空间hn_data01.orahn_data02.orahn_data03.orahn_data04.orahn_data05.o

6、raHN_DATA(HN_DATA_HIS)hn_data06.ora数据表空间主要存放经常变化的巨型表(局部表空间)hn_ind01.oraHN_IND(HN_IND_HIS) hn_ind02.ora对应 hn_Data 的索引表空间(局部表空间)LD_TEMP ld_temp 临时表空间hn_view01.oraHN_VIEWhn_view02.ora上传视图日志表空间Lsj_view01.ora(县区/地市名称简写)+_view如:lsj_view Lsj_view02.ora对应各地的物化视图表空间数据转储数据转储的目的是将数据库中长时间不用而又具有参考价值的历史数据转储到其他的物理

7、空间上去,以便提高当前数据库的访问性能。一般采用将历史数据转储到历史库中,这样既可以提高运行库的性能,同时又为以后进行数据仓库等业务提供了详尽的历史数据奠定基础。数据转储根据对转储数据的不同要求大体可分为单表转储、部分数据转储、整库转储等等,针对服务器硬件环境的不同转储的方式也不尽相同,如:不同用户转储和同一用户下不用物理空间转储等。1、 相同用户下数据转储相同用户下的数据转储主要针对个别数据量大的表进行转储,针对个别表建立历史备份表,将表中的数据可以按照某种条件进行定时的转储到历史备份表中,转储的方式可以采用数据库的触发器进行定时自动操作,也可以利用客户端程序进行转储。这种方式转储的数据仍然

8、占用原有用户的数据文件空间,所以他更适合那种以磁盘阵列存放数据大型数据库。例:1) 建立一个表空间create tablespace new_tablespacename datafile D:oradatadata.ora size 500M ;2) 针对原有表建立备份表原有表:- Create tablecreate table BZ_BMMC(FGSBH VARCHAR2(10) not null,BMBH VARCHAR2(10) not null,BMMC VARCHAR2(20) not null,BZ VARCHAR2(30)tablespace LD_TABpctfree 10

9、pctused 40initrans 1maxtrans 255storage(initial 5Kminextents 1maxextents unlimited);- Create/Recreate primary, unique and foreign key constraints alter table BZ_BMMCadd primary key (FGSBH,BMBH)using index tablespace LD_INDpctfree 10initrans 2maxtrans 255storage(initial 5Kminextents 1maxextents unlim

10、ited);备份表建立脚本:- Create tablecreate table BZ_BMMC(FGSBH VARCHAR2(10) not null,BMBH VARCHAR2(10) not null,BMMC VARCHAR2(20) not null,BZ VARCHAR2(30)tablespace new_tablespacename pctfree 10pctused 40initrans 1maxtrans 255storage(initial 5Kminextents 1maxextents unlimited);- Create/Recreate primary, uni

11、que and foreign key constraints alter table BZ_BMMCadd primary key (FGSBH,BMBH)using index tablespace new_tablespacenamepctfree 10initrans 2maxtrans 255storage (initial 5Kminextents 1maxextents unlimited);这样将备份表建立在同一用户下的不同的表空间(不同的数据文件,不用的物理存储位置,减少原有数据文件的I/O操作冲突)3) 建立后台过程CREATE OR REPLACE PROCEDURE p

12、ro_delrow istemp_date date;beginselect sysdate - 30 into temp_date from dual;insert into tablename_bak select * from tablename where tablename.clounm_name temp_date;delete from tablenamewhere cloumn_name temp_data;end;运行后台过程,完成原有表向备份表的数据转储4) 采用客户端程序进行转储向前面一样建立备份表后,可以采用客户端程序方式对原有表中的数据分时断、分类型备份,这样可以使转

13、储更灵活。如PowerBuilder 的数据管道。2、 不同用户下数据转储不同用户的数据转储即可以是对全库的数据转储也可以是对个别表的数据转储。两个用户既可以在同一台服务器上也可以在不同的服务器上,可以采用首次对全库进行转储备份,以后的备份可以对变化的业务数据进行转储备份,转储的方式可以采用数据库得到入到储功能,也可采用触发器的方式将历史数据倒入历史备份库,同时将当前运行库中的历史数据清除,保障运行库中有运行所需要的数据也保障其数据量不会太大,使数据库达到最佳运行状态。例:1) 、首先建立备份用户数据表空间/索引表空间create tablespace tablespacename dataf

14、ile d:oradatadata.ora size 500M; 表空进大小根据数据量的大小而定临时表空间CREATE TEMPORARY TABLESPACE tempspace TEMPFILE D:ORADATAtemp.ora SIZE 200M; 建立用户create user username identified password default tablespace tablespacename temporary tablespace tempspace;权限分配grant connect,resource,exp_full_database,imp_full_databas

15、e to username;grant select any table to username;2)原有数据倒出/倒入在客户端机器上执行下面的命令对原有数据库到处exp username/passwork file=d:backupdata.dmp log=d:backuplog.log 倒出后文件放在 d:backup 目录下,运行下面命令将倒出数据倒入新建的备份用户中imp system/manager file=d:backupdata/d, grants=n indexes=y fromuser=username touser=newusername log=d:log.log成功倒入之后便完成了对原有库的第一次完全转储此时可以对原有用户下的表中的历史数据进行清理,delete tablename where .;以后可以对部分表采用以上方式进行分时段的数据转储。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号