51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2382|回复: 3
打印 上一主题 下一主题

oracle导入导出

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-10-24 20:33:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一.介绍
数据库逻辑备份方法
  ORACLE数据库的逻辑备份分为三种模式:表备份、用户备份和完全备份。

表模式
  备份某个用户模式下指定的对象(表)。业务数据库通常采用这种备份方式。
  若备份到本地文件,使用如下命令:
  exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0
  file=exp_icdmain_csd_yyyymmdd.dmp log=exp_icdmain_csd_yyyymmdd.log    tables= (icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo)
若直接备份到磁带设备,使用如下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 file=/dev/rmt0
log=exp_icdmain_csd_yyyymmdd.log tables=(icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo)注:在磁盘空间允许的情况下,应先备份到本地服务器,然后再拷贝到磁带。出于速度方面的考虑,尽量不要直接备份到磁带设备。
   
用户模式
  备份某个用户模式下的所有对象。业务数据库通常采用这种备份方式。
  若备份到本地文件,使用如下命令:
  exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0
    file=exp_icdmain_yyyymmdd.dmp log=exp_icdmain_yyyymmdd.log
  若直接备份到磁带设备,使用如下命令:
  exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0
  file=/dev/rmt0 log=exp_icdmain_yyyymmdd.log
注:如果磁盘有空间,建议备份到磁盘,然后再拷贝到磁带。如果数据库数据量较小,可采用这种办法备份。
   
完全模式
  备份完整的数据库。业务数据库不采用这种备份方式。备份命令为:
  exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 full=y
  file=exp_fulldb_yyyymmdd.dmp(磁带设备则为/dev/rmt0) log=exp_fulldb_yyyymmdd.log
对于数据库备份,建议采用增量备份,即只备份上一次备份以来更改的数据。
增量备份命令:
  exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 full=y inctype=incremental file=exp_fulldb_yyyymmdd.dmp(磁带设备则为/dev/rmt0) log=exp_fulldb_yyyymmdd.log

数据库的逻辑恢复分为表恢复、用户恢复、完全恢复三种模式。

  表模式
  此方式将根据按照表模式备份的数据进行恢复。
  恢复备份数据的全部内容若从本地文件恢复,使用如下命令:
   imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=exp_icdmain_csd_yyyymmdd.dmp log=imp_icdmain_csd_yyyymmdd.log
  若从磁带设备恢复,使用如下命令:
   imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0log=imp_icdmain_csd_yyyymmdd.log
恢复备份数据中的指定表若从本地文件恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=exp_icdmain_csd_yyyymmdd.dmp log=imp_icdmain_csd_yyyymmdd.log tables=commoninformation,serviceinfo
若从磁带设备恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0 log=imp_icdmain_csd_yyyymmdd.log tables=commoninformation,serviceinfo
   
用户模式
  此方式将根据按照用户模式备份的数据进行恢复。
  恢复备份数据的全部内容若从本地文件恢复,使用如下命令:
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=exp_icdmain_yyyymmdd.dmp log=imp_icdmain_yyyymmdd.log
若从磁带设备恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0
log=imp_icdmain_yyyymmdd.log
恢复备份数据中的指定表若从本地文件恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=exp_icdmain_yyyymmdd.dmp log=imp_icdmain_yyyymmdd.log tables=commoninformation,serviceinfo
若从磁带设备恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0 log=imp_icdmain_yyyymmdd.log tables=commoninformation,serviceinfo
   
完全模式
如果备份方式为完全模式,采用下列恢复方法:若从本地文件恢复,使用如下命令:
imp system/manager rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y volsize=0 full=y
file=exp_icdmain_yyyymmdd.dmp log=imp_icdmain_yyyymmdd.log
若从磁带设备恢复,使用如下命令:
imp system/manager rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y volsize=0 full=y
file=/dev/rmt0 log=imp_icdmain_yyyymmdd.log

二.语法与参数
   
IMP格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)
    USERID 必须是命令行中的第一个参数。

   关键字 说明(默认)        关键字      说明(默认)
   --------------------------------------------------------------------------
   USERID   用户名/口令           FULL         导入整个文件 (N)
   BUFFER   数据缓冲区大小         FROMUSER     所有人用户名列表
   FILE     输入文件 (EXPDAT.DMP)    TOUSER       用户名列表
   SHOW     只列出文件内容 (N) TABLES      表名列表
   IGNORE   忽略创建错误 (N)    RECORDLENGTH IO 记录的长度
   GRANTS 导入权限 (Y)           INCTYPE      增量导入类型
   INDEXES 导入索引 (Y)          COMMIT       提交数组插入 (N)
   ROWS    导入数据行 (Y)        PARFILE      参数文件名
   LOG      屏幕输出的日志文件   CONSTRAINTS 导入限制 (Y)
   DESTROY                覆盖表空间数据文件 (N)
   INDEXFILE              将表/索引信息写入指定的文件
   SKIP_UNUSABLE_INDEXES 跳过不可用索引的维护 (N)
   FEEDBACK               每 x 行显示进度 (0)
   TOID_NOVALIDATE        跳过指定类型 ID 的验证
   FILESIZE               每个转储文件的最大大小
   STATISTICS             始终导入预计算的统计信息
   RESUMABLE              遇到与空格有关的错误时挂起 (N)
   RESUMABLE_NAME         用来标识可恢复语句的文本字符串
   RESUMABLE_TIMEOUT      RESUMABLE 的等待时间
   COMPILE                编译过程, 程序包和函数 (Y)

   下列关键字仅用于可传输的表空间
   TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)
   TABLESPACES 将要传输到数据库的表空间
   DATAFILES 将要传输到数据库的数据文件
   TTS_OWNERS 拥有可传输表空间集中数据的用户

==============================================
IMP格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
USERID 必须是命令行中的第一个参数。

   关键字 说明(默认)        关键字      说明(默认)
   --------------------------------------------------------------------------
   USERID   用户名/口令           FULL         导出整个文件 (N)
   BUFFER   数据缓冲区大小         OWNER     所有者用户名列表
   FILE       输出文件 (EXPDAT.DMP) TABLES       表名称列表
   COMPRESS   导入到一个区 (Y) RECORDLENGTH IO 记录的长度
   GRANTS 导出权限 (Y)           INCTYPE      增量导出类型
   INDEXES    导出索引 (Y)         RECORD       跟踪增量导出 (Y)
   DIRECT     直接路径 (N)            TRIGGERS     导出触发器 (Y)
   LOG        屏幕输出的日志文件 STATISTICS   分析对象 (ESTIMATE)
   ROWS    导出数据行 (Y)        PARFILE      参数文件名
   CONSISTENT 交叉表一致性    CONSTRAINTS 导出约束条件 (Y)

   FEEDBACK             每 x 行显示进度 (0)
   FILESIZE             每个转储文件的最大大小
   FLASHBACK_SCN        用于回调会话快照的 SCN
   FLASHBACK_TIME       用来获得最接近于指定时间的 SCN 的时间
   QUERY                用来导出表的子集的选择子句
   RESUMABLE            遇到与空格有关的错误时挂起 (N)
   RESUMABLE_NAME       用来标识可恢复语句的文本字符串
   RESUMABLE_TIMEOUT    RESUMABLE 的等待时间
   TTS_FULL_CHECK       对 TTS 执行完全或部分相关性检查
   TABLESPACES          要导出的表空间列表
   TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
   TEMPLATE 调用 iAS 模式导出的模板名称

三:参数说明
1. ignore参数
Oracle在恢复数据的过程中,当恢复某个表时,该表已经存在,就要根据ignore参数的设置来决定如何操作。若ignore=y,Oracle不执行CREATE TABLE语句,直接将数据插入到表中,如果插入的记录违背了约束条件,比如主键约束,则出错的记录不会插入,但合法的记录会添加到表中。若ignore=n,Oracle不执行CREATE TABLE语句,同时也不会将数据插入到表中,而是忽略该表的错误,继续恢复下一个表。
2. indexes参数
在恢复数据的过程中,若indexes=n,则表上的索引不会被恢复,但是主键对应的唯一索引将无条件恢复,这是为了保证数据的完整性。字符集转换对于单字节字符集(例如US7ASCII),恢复时,数据库自动转换为该会话的字符集(NLS_LANG参数);对于多字节字符集(例如ZHS16CGB231280),恢复时,应尽量使字符集相同(避免转换),如果要转换,目标数据库的字符集应是输出数据库字符集的超集。

[ 本帖最后由 ham301 于 2009-10-24 20:34 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情

    2015-9-10 15:08
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2009-10-26 17:25:11 | 只看该作者
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2009-10-26 00:12:16 | 只看该作者
    前面两个都是转帖的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
     楼主| 发表于 2009-10-26 00:11:31 | 只看该作者

    o(∩_∩)o

    解决linux下oracle中文乱码的问题

    在Linux上安装过Oracle的时候汉字都是”口口”形乱码
    最初时间比较紧张只能用英文安装,后来经过反复试验和整理,现在可以完全解决linux下oracle中文乱码的问题,下面是整理后的文档:
    我想在linux 9 下也应该能够实现吧,这里主要还把系统添加了宋体和新宋体的字库,所以看着可能很麻烦
    需要软件,google找
    j2sdk-1_4_2_04-linux-i586.bin
    javacn.zip

    一.安装JDK
    在/tmp下建立一个临时的文件夹
    ---------------------------------------------------
    [root@tooth root]# cd /tmp
    [root@tooth root]# mkdir javacn
    [root@tooth root]# cd javacn
    ----------------------------------------------------

    将 j2sdk-1_4_2_02-linux-i586.bin并保存到/tmp/javacn
    给文件加上可执行的权限
    ----------------------------------------------------
    [root@tooth root]# chmod 755 j2sdk-1_4_2_02-linux-i586.bin
    ----------------------------------------------------

    执行文件安装JDK
    ----------------------------------------------------
    [root@tooth root]# ./j2sdk-1_4_2_02-linux-i586.bin
    ----------------------------------------------------
    ......(一大堆的license的信息)
    询问是否同意,当然选yes

    ----------------------------------------------------
    [root@tooth root]# mv j2sdk1.4.2_02 /usr/j2sdk
    ----------------------------------------------------

    现在JDK还不能算安装完成了,还要设置一下环境变量:

    ----------------------------------------------------
    [root@tooth root]# vi $HOME/.bash_profile
    在export PATH前加入下面一段
    JAVA_HOME=/usr/j2sdk
    export JAVA_HOME
    JRE=$JAVA_HOME/jre
    export JRE
    PATH=$JAVA_HOME/binJRE/binPATH
    ----------------------------------------------------
    存盘退出,执行[root@tooth root]# source .bash_profile 这样设置的环境变量就生效了
    二. 安装系统字体
    将附件文件解压到/tmp/javacn中,解压后的结果如下所示:
    ----------------------------------------------------
    [root@tooth root]# cd /tmp
    [root@tooth root]# cd javacn
    [root@tooth javacn]# ls -l
    ----------------------------------------------------
    -rw-r--r-- 1 root root 8102 1970-01-01 font.properties
    drwxr-xr-x 9 root root 4096 6月 24 15:36 j2sdk1.4.2_02
    -rw-r--r-- 1 root root 12642204 1970-01-01 SimSun18030.ttc
    -rw-r--r-- 1 root root 10500352 1970-01-01 simsun.ttc
    -rw-r--r-- 1 root root 7764 1970-01-01 sm.sh
    -rw-r--r-- 1 root root 260472 1970-01-01 tahomabd.ttf
    -rw-r--r-- 1 root root 265528 1970-01-01 tahoma.ttf

    下面需要将$JRE/lib中的font.properties文件改名备份,并将/tmp/javacn中的font.properties文件拷贝到$JRE/lib中

    ----------------------------------------------------
    [root@tooth root]# cd $JRE
    [root@tooth jre]# cd lib
    [root@tooth lib]# mv font.properties font.properties.bak
    [root@tooth lib]# cp /tmp/javacn/font.properties ./
    ----------------------------------------------------

    剩下的操作就是执行/tmp/javacn/sm.sh了。
    在执行sm.sh后系统后自动重启,所以在执行下面的操作前请一定保存正在进行的工作!

    ----------------------------------------------------
    [root@tooth root]# cd /tmp
    [root@tooth tmp]# cd javacn
    [[root@tooth javacn]# chmod 755 sm.sh
    [root@tooth javacn]# ./sm.sh
    ----------------------------------------------------
    此处操作系统会重新启动。
    三. 设置操作系统字体
    重新启动登录后,按如下步骤操作:
    (下面的步骤是KDE里的,GNOME里应该差不多)
    开始->控制中心->外观和主题->字体 可以将系统的字体修改为宋体simsun
    一. Red Hat系统
    1. 安装时选取简体中文安装,先复制simsun.ttc(宋体)simsun18030.ttc(新宋体)tahomabd.ttf tahoma.ttf到/usr/X11R6/lib/X11/fonts/TrueType下,并将所有ttc文件改为ttf文件;
    2. 2.然后进入/usr/X11R6/lib/X11/font/TrueType目录下,
    3. 运行ttmkfdir>fonts.dir命令;接着用vi编辑fonts.dir文件,将下面内容添加进去

    ----------------------------------------------------
    simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-ascii-0
    simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-iso10646-1
    simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-15
    simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-1
    simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-gb2312.1980-0
    simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0
    simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-m-0-gb2312.1980-0
    simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gbk-0
    ----------------------------------------------------
    然后执行 #cat fonts.dir>font.scale
    修改/etc/X11/XF86Config,
    [root@tooth X11]# vi XF86Config
    在Section“Files”加上下面这一行:FontPath “/usr/X11R6/lib/X11/fonts/TrueType”
    二.JDK
    1.先复制simsun.ttf(宋体)simsun18030.ttf(新宋体)tahomabd.ttf tahoma.ttf到$JAVA_HOME/jre/lib/fonts下,在将系统中刚刚生成的fonts.dir以及fonts.scale文件复制到$JAVA_HOME/jre/lib/fonts下即可.
    四. 安装Oracle
    此时切换到Oracle用户,运行./runInstaller,出来的界面应该是亲切的中文界面了,如果还是乱码请检查上面的步骤。
    到此oracle的安装过程已经不是乱码,可以显示中文

    oracle安装好后启动ocm等还会是乱码
    所以要修改他的jre文件

    先改dbca
    ----------------------------------------------------
    [oracle@tooth oracle]$ cd $ORACLE_HOME
    [oracle@tooth 9.2]$ cd bin
    [oracle@tooth bin]$ vi dbca
    ----------------------------------------------------
    将最后一段
    # Run DBCA
    $JRE_DIR/bin/jre -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASS
    PATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS
    改成:
    # Run DBCA
    java -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASS
    PATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS
    ==========================================
    再改oemapp
    [oracle@tooth bin]$ vi oemapp
    也是最后一段
    if [ "$1" = "ocmcli" ]
    then
    exec $JRE -DADMIN_WRL=$ADMIN_WRL -DORACLE_HOME=$ORACLE_HOME -DORBdisableLoca
    tor=true -Djdbc.backward_compatible_to_816=true $JREOPTIONS_STRING -$CLASSPATH_Q
    UAL $CLASSPATHADD oracle.sysman.vtx.vtxOemApp.OemApp $APPLICATION "$2" "$3" "$4"
    "$5" "$6" "$7" "$8" "$9"
    else
    exec $JRE -DADMIN_WRL=$ADMIN_WRL -DORACLE_HOME=$ORACLE_HOME -DORBdisableLoca
    tor=true -Djdbc.backward_compatible_to_816=true $JREOPTIONS_STRING -$CLASSPATH_Q
    UAL $CLASSPATHADD oracle.sysman.vtx.vtxOemApp.OemApp $APPLICATION $2 $3 $4 $5 $6
    $7 $8 $9
    fi

    改成:
    if [ "$1" = "ocmcli" ]
    then
    java -DADMIN_WRL=$ADMIN_WRL -DORACLE_HOME=$ORACLE_HOME -DORBdisableLoca
    tor=true -Djdbc.backward_compatible_to_816=true $JREOPTIONS_STRING -$CLASSPATH_Q
    UAL $CLASSPATHADD oracle.sysman.vtx.vtxOemApp.OemApp $APPLICATION "$2" "$3" "$4"
    "$5" "$6" "$7" "$8" "$9"
    else
    java -DADMIN_WRL=$ADMIN_WRL -DORACLE_HOME=$ORACLE_HOME -DORBdisableLoca
    tor=true -Djdbc.backward_compatible_to_816=true $JREOPTIONS_STRING -$CLASSPATH_Q
    UAL $CLASSPATHADD oracle.sysman.vtx.vtxOemApp.OemApp $APPLICATION $2 $3 $4 $5 $6
    $7 $8 $9
    Fi
    =======================================================
    最后,是netca
    [oracle@tooth bin]$ vi netca
    还是最后一段
    # Run Net Configuration Assistant
    cd $NETTOOLSDIR
    $JRE -classpath $CLASSPATH oracle.net.ca.NetCA $*
    exit $status

    改成
    # Run Net Configuration Assistant
    cd $NETTOOLSDIR
    java -classpath $CLASSPATH oracle.net.ca.NetCA $*
    exit $status

    个人已经实现oracle中文安装和oracle中文界面的设置,安装文档完全可以实现
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 23:31 , Processed in 0.072483 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表