日期:2014-05-16  浏览次数:20449 次

Oracle数据库导出备份和导入恢复

?
一、数据库导出数据步骤

??? 在Oracle服务器端或者安装了网络服务和实用工具的Oracle客户端打开Linux终端或者Windows命令提示符:
???? exp 要导出的用户名/密码@要导出的Oracle实例名 file=指定导出文件的全路径名 (注意:这是导出,请选择要导出的用户和实例名)


??? e.g.1:在实例名为orcl_win的服务器端有用户名和密码均为source的用户,将其数据导出到C:\sourcedatabase.dmp:
????????? exp source/source@orcl_win file=C:\sourcedatabase.dmp
??? e.g.2:在实例名为orcl_linux的服务器端有用户名和密码均为source的用户,将其数据导出到/data/sourcedatabase.dmp:
????????? exp source/source@orcl_linux file=/data/sourcedatabase.dmp
?
??? 当提示:“在没有警告的情况下成功终止导出。”,表明导出数据完毕。
??? 如果找不到exp命令,一般是没有配置好环境变量,需要检查系统或者用户的环境变量。
?
二、数据库恢复数据步骤(操作顺序依次为建立表空间、关联用户、导入备份数据)

??? Oracle版的NC数据库是存放在建立6个永久表空间里的,各表空间的名称必须为:
??? NNC_DATA01、NNC_DATA02、NNC_DATA03、NNC_INDEX01、NNC_INDEX02、NNC_INDEX03,
??? 各表空间占用磁盘的总合是依据标准配置或者实际项目情况而定,
??? 假定在“/u10201/oradata/erp/”里存放所有6个表空间,以下为建里表空间、建立用户和导入数据的步骤:
??? 具体使用时,需要修改成具体windows或者linux下存在全路径名,须和下面的脚本对应。
?
??? 1、建立规定的6个表空间:
???
??????? 在服务器上安装oracle9i后,首先运行SQLPlus Worksheet:
??????? “Oracle - OraHome”——“Application Development”——“SQLPlus Worksheet”:
??????? 直接连接到 数据库
??????? 用户名(U):system
??????? 口令(P):要导入的Oracle的system的密码
??????? 服务:要导入的Oracle的实例名,如sid_target
??????? 连接身份:SYSDBA
?
??????? 确定,连接成功后,根据实际情况修改以下脚本,拷入SQL*Plus WorkSheet:
???
??????? CREATE TABLESPACE NNC_DATA01 DATAFILE '/u10201/oradata/erp/nnc_data01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;???
??????? CREATE TABLESPACE NNC_DATA02 DATAFILE '/u10201/oradata/erp/nnc_data02.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
??????? CREATE TABLESPACE NNC_DATA03 DATAFILE '/u10201/oradata/erp/nnc_data03.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K ;
??????? CREATE TABLESPACE NNC_INDEX01 DATAFILE '/u10201/oradata/erp/nnc_index01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K ;???
??????? CREATE TABLESPACE NNC_INDEX02 DATAFILE '/u10201/oradata/erp/nnc_index02.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K ;
??????? CREATE TABLESPACE NNC_INDEX03 DATAFILE '/u10201/oradata/erp/nnc_index03.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
??
???
??????? 点击菜单worksheet,“执行(X)? F5”。
??????? 提示“表空间已创建。”,表明执行成功。
????????
??? 2、建立要导入的用户:
???
??? 建立用户ncuser,密码ncPaSsORd,关联表空间NNC_DATA01,并予以DBA授权,在worksheet里拷入:
???
??? CREATE USER ncuser IDENTIFIED BY ncPaSsORd DEFAULT TABLESPACE NNC_DATA01 TEMPORARY TABLESPACE TEMP;
??? GRANT connect,dba to ncuser with admin option;
?
??? 提示“用户已创建”;“授权成功。”表明执行成功。
??? 关闭窗口,退出worksheet。
?
??? 3、导入dmp数据
???
??? 在Oracle服务器端或者安装了网络服务和实用工具的Oracle客户端打开Linux终端或者Windows命令提示符:
?
??? imp 要导入的用户名/密码@要导入的Oracle实例名 file=指定导入文件的全路径名 full=y ignore=y? (注意:这是导入,请选择要导入的用户和实例名)
???
??? e.g.1:把刚才导出的sourcedatabase.dmp导入到刚才新建立的ncuser用户里:
??????? imp ncuser/ncPaSsORd@sid_target file=C:\sourcedatabase.dmp full=y ignore=y fromuser=source
???????
??? e.g.2:把刚才导出的sourcedatabase.dmp导入到刚才新建立的ncuser用户里:
??????? imp ncuser/ncPaSsORd@sid_target file=/home/oracle/sourcedatabase.dmp full=y ignore=y fromuser=source
???????
??? 当命令提示符里提示:“成功终止导入,但出现警告。”,表明导入数据完毕。
??? 其中full=y ignore=y为可选项,如果不知道原来的用户(fromuser)是谁,就需要只用full=y这个选项了。
?
??? 附:??? 导入实用程序有如下常用命令参数:
??? USERID??????? 指定执行导入的用户名和密码
??? BUFFER??????? 指定用来读取数据的缓冲区大小,以字节为单位
??? COMMIT??????? 指定是否在每个数组(其大小由BUFFER参数设置)插入后进行提交
??? FILE??????? 指定要导入的二进制文件名
??? FROMUSER??? 指定要从导出转储文件中导入的用户模式
??? TOUSER??????? 指定要将对象导入的用户名。FROMUSER与TOUSER可以不同
??? FULL??????? 指定是否要导入整个导出转储文件
??? TABLES??????? 指定要导入的表的列表
??? ROWS??????? 指定是否要导入表中的行
??? PARFILE??????? 指定传递给导入实用程序的参数文件名,此文件可以包含这里列出的所有参数
??? IGNORE??????? 导入时是否忽略遇到的错误,默认为N
??? TABLESPACES??? 按表空间方