动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息



本月文章推荐
.优化Oracle库表设计的若干方法(1).
.数据库在ORACLE控制台进去不了.
.在DB2中如何實現Oracle的相關功能.
.在Oracle 10g和9i上一些新的特性.
.MdkLinux 初体验.
.常用的数据字典.
.Oracle数据库中如何使用超过2G的.
.Oracle 9i 概要文件的管理.
.oralce在红旗linux上的简单安装.
.如何查看用户表上的约束内容?.
.Oracle的几种字符类型的区别与使.
.优化心得摘抄.
.查找bad sql的方法.
.在Windows下管理Oracle9i 服务的.
.Oracle中十进制与十六进制转换程.
.通过意向锁多粒度封锁机制进行并.
.用imp 工具进行数据库备份及恢复.
.ORACLE关系数据库设计.
.在非归档模式下如何更改数据文件.
.Microsoft Access秘密、技巧和陷.

Oracle备份的分类总结分析

发表日期:2008-2-9 |



  简单的按照备份进行的方式,可以分为逻辑备份、冷备份(脱机备份)、热备份(联机备份),其实冷备份与热备份又可以合称为物理备份
  按照备份的工具,可以分为EXP/IMP备份、OS拷贝、RMAN、第三方工具,如VERITAS
  以下我们将从多个角度来说明以上的各种备份方式
  
   1、EXP/IMP逻辑备份
  导入/导出是Oracle幸存的最古老的两个命令行工具了,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,非凡是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理冲突等中有不小的功劳。当然,我们也可以把它作为小型数据库的物理备份后的一个逻辑辅助备份,也是不错的建议。
  
  对于越来越大的数据库,非凡是TB级数据库和越来越多数据仓库的出现,EXP/IMP越来越力不从心了,这个时候,数据库的备份都转向了RMAN和第三方工具。下面我们还是简要介绍一下EXP/IMP的使用。
  i、使用方法
  Exp parameter_name=value
  Or Exp parameter_name=(value1,value2……)
  只要输入参数help=y就可以看到所有帮助
  如:
  C:\\>set nls_lang=simplified chinese_china.zhs16gbk
  C:\\>exp -help
  Export: Release 8.1.6.0.0 - ProdUCtion on 星期四 4月 10 19:09:21 2003
  (c) Copyright 1999 Oracle Corporation. All rights reserved.
  
  通过输入 EXP 命令和用户名/口令,您可以
  在用户 / 口令之后的命令:
  
  实例: EXP SCOTT/TIGER
  或者,您也可以通过输入跟有各种参数的 EXP 命令来控制“导出”的运行方式。
  要指定参数,您可以使用要害字:
  
  格式: EXP KEYWord=value 或 KEYWORD=(value1,value2,...,valueN)
  实例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
  或 TABLES=(T1: P1,T1: P2),假如 T1 是分区表
  USERID 必须是命令行中的第一个参数。
  要害字 说明(默认)    要害字   说明(默认)
  --------------------------------------------------------------------------
  USERID  用户名/口令      FULL     导出整个文件 (N)
  BUFFER  数据缓冲区的大小     OWNER    所有者用户名列表
  FILE   输出文件 (EXPDAT.DMP)  TABLES    表名列表
  COMPRESS 导入一个范围 (Y)  RECORDLENGTH IO 记录的长度
  GRANTS 导出权限 (Y)      INCTYPE   增量导出类型
  INDEXES 导出索引 (Y)      RECORD    跟踪增量导出 (Y)
  ROWS  导出数据行 (Y)     PARFILE   参数文件名
  CONSTRAINTS 导出限制 (Y)  CONSISTENT  交叉表一致性
  LOG   屏幕输出的日志文件  STATISTICS 分析对象 (ESTIMATE)
  DIRECT  直接路径 (N)       TRIGGERS   导出触发器 (Y)
  FEEDBACK 显示每 x 行 (0) 的进度
  FILESIZE 各转储文件的最大尺寸
  QUERY  选定导出表子集的子句
  
  下列要害字仅用于可传输的表空间
  TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
  TABLESPACES 将传输的表空间列表
  在没有警告的情况下成功终止导出。
  C:\\>
  帮助已经很具体的说明了参数的意义和使用方法,并列举了几个简单的例子,注重的是,从8i开始,已经开始支持数据子集的方法,就是可以指定自己的Where条件,可以从表中导出一行或多行数据。
  
  注重上面的set nls_lang=simplified chinese_china.zhs16gbk,通过设置环境变量,可以让exp的帮助以中文显示,假如set nls_lang=American_america.字符集,那么你的帮助就是英文的了。
  增量和累计导出必须在全库方式下才有效,而且,大多数情况下,增量和累计导出并没有想象中的那么有效。
ORACLE从9i开始,不再支持增量导出和累计导出。
  
  ii、表空间传输
  表空间传输是8i新增加的一种快速在数据库间移动数据的一种办法,是把一个数据库上的格式数据文件附加到另外一个数据库中,而不是把数据导出成Dmp文件,这在有些时候是非常管用的,因为传输表空间移动数据就象复制文件一样快。
  关于传输表空间有一些规则,即:
  
  •源数据库和目标数据库必须运行在相同的平台上。
  •源数据库与目标数据库必须使用相同的字符集。
  •源数据库与目标数据库一定要有相同大小的数据块(9i已经不用)
  •目标数据库不能有与迁移表空间同名的表空间
  •SYS的对象不能迁移
  •必须传输自包含的对象集
  •有一些对象,如物化视图,基于函数的索引等不能被传输
  
  可以用以下的方法来检测一个表空间或一套表空间是否符合传输标准:
  exec sys.dbms_tts.transport_set_check(‘tablespace_name’,true);
  select * from sys.transport_set_violation;
  假如没有行选择,表示该表空间只包含表数据,并且是自包含的。对于有些非自包含的表空间,如数据表空间和索引表空间,可以一起传输。
  
  以下为简要使用步骤,假如想参考具体使用方法,也可以参考ORACLE联机帮助。
  a.设置表空间为只读(假定表空间名字为APP_Data 和APP_Index)
  alter tablespace app_data read only;
  alter tablespace app_index read only;
  b.发出EXP命令
  SQL>host exp userid=”””sys/password as sysdba”””
  transport_tablespace=y tablespace=(app_data, app_index)
  以上需要注重的是
  •为了在SQL中执行EXP,USERID必须用三个引号,在UNIX中也必须注重避免“/”的使用
  •在816和以后,必须使用sysdba才能操作
  •这个命令在SQL中必须放置在一行(这里是因为显示问题放在了两行)
  c.拷贝数据文件到另一个地点,即目标数据库
  可以是cp(unix)或copy(windows)或通过FTP传输文件(一定要在bin方式)
  d.把本地的表空间设置为读写
  e.在目标数据库附加该数据文件
  imp file=expdat.dmp userid=”””sys/password as sysdba”””
  transport_tablespace=y
  “datafile=(c:\\temp\\app_data,c:\\temp\\app_index)”
  f.设置目标数据库表空间为读写
  alter tablespace app_data read write;
  alter tablespace app_index read write;
  
  iii、导出/导入与字符集
  明白ORACLE的多国语言设置,ORACLE多国语言设置是为了支持世界范围的语言与字符集,一般对语言提示,货币形式,排序方式和CHAR,VARCHAR2,CLOB,LONG字段的数据的显示等有效。ORACLE的多国语言设置最主要的两个特性就是国家语言设置与字符集设置,国家语言设置决定了界面或提示使用的语言种类,字符集决定了数据库保存与字符集有关数据(如文本)时候的编码规则。正如刚才上面的一个小例子,环境变量NLS_LANG的不同,导致EXP帮助发生变化,这就是多国语言设置的作用(NLS_LANG包含国家语言设置与字符集设置,这里起作用的是国家语言设置,而不是字符集)。
  
  ORACLE字符集设定,分为数据库字符集和客户端字符集环境设置。在数据库端,字符集在创建数据库的时候设定,并保存在数据库props$表中,对于8i以上产品,已经可以采用“Alter database character set 字符集”来修改数据库的字符集,但也仅仅是从子集到超集,不要通过update props$来修改字符集,假如是不支持的转换,可能会失去所有与字符集有关的数据,就是支持的转换,也可能导致数据库的不正常工作。字符集分为单字节字符集与多字节字符集,US7ASCII就是典型的单字节字符集,在这种字符集中length=lengthb,而ZHS16GBK就是常用的双字节字符集,在这里lengthb=2*length。
  
  在客户端的字符集环境比较简单,主要就是环境变量或注册表项NLS_LANG,注重NLS_LANG的优先级别为:参数文件à注册表à环境变量àalter session。NLS_LANG的组成为“国家语言设置.字符集”,如nls_lang=simplified chinese_china.zhs16gbk。客户端的字符集最好与数据库端一样(国家语言设置可以不一样,如zhs16gbk的字符集,客户端可以是nls_lang =simplified chinese_china.zhs16gbk或Ameircan_America.zhs16gbk,都不影响数据库字符的正常显示),假如字符集不一样,而且字符集的转换也不兼容,那么客户端的数据显示与导出/导入的与字符集有关的数据将都是乱码。
  
  使用一点点技巧,就可以使导出/导入在不同的字符集的数据库上转换数据。这里需要一个2进制文件编辑工具即可,如uedit32。用编辑方式打开导出的dmp文件,获取2、3字节的内容,如00 01,先把它转换为10进制数,为1,使用函数NLS_CHARSET_NAME即可获得该字符集:
  SQL> select nls_charset_name(1) from dual;
  NLS_CHARSET_NAME(1)
  -------------------
  US7ASCII
  可以知道该dmp文件的字符集为US7ASCII,假如需要把该dmp文件的字符集换成ZHS16GBK,则需要用NLS_CHARSET_ID获取该字符集的编号:
  SQL> select nls_charset_id('zhs16gbk') from dual;
  NLS_CHARSET_ID('ZHS16GBK')
  --------------------------
  852
  把852换成16进制数,为354,把2、3字节的00 01换成03 54,即完成了把该dmp文件字符集从us7ascii到zhs16gbk的转化,这样,再把该dmp文件导入到zhs16gbk字符集的数据库就可以了。
(注重,十进制数与十六进制之间的转换,想明白其中的道理)
  
  iv、跨版本使用Exp/Imp
  Exp/Imp很多时候,可以跨版本使用,如在版本7
上一篇:在报表视图中实现分类显示 人气:333
下一篇:9i新特性之二安全篇 人气:469
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-24 Sablog-X v2.0 预览版
2008-7-24 帝国备份王EmpireBak 2008 正式版
2008-7-24 网趣网上购物系统时尚版 v8.2
2008-7-24 纵横B2B电子商务系统XYECS!B2B v
2008-7-24 e路小说小偷 v1.2.0723
2008-7-24 凌风美女图片站程序 v2.2
2008-7-24 TOM15电影收索程序
2008-7-24 清风信息自动采集生成系统 v1.0
2008-7-24 QQ邮箱编辑器 v1.0 (小小菜刀ASP
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵