gpt4 book ai didi

OracleDatabase——数据库表空间dmp导出与导入

转载 作者:我是一只小鸟 更新时间:2023-03-08 14:31:06 26 4
gpt4 key购买 nike

由于公司的程序一直部署在客户现场内网,内网调试难度高,一般是有备份还原数据库的需求,这里简记备份(导出)数据库dmp文件与恢复(导入)的步骤.

1、导出dmp文件

exp与expdp命令异同

相同点 :exp与expdp命令都是备份数据库的.

不同点 :

1、expdp效率更高,exp是串行备份的,但expdp是并行备份的.

2、二者导出机制不同,exp导出的是文本型,expdp导出的是二进制,所以expdp导出的dmp文件是要小于exp导出的.

3、二者导出的dmp需要对应不同的导入命令,exp对应imp,expdp对应impdp.

4、exp不需要指定逻辑目录对象(directory),而expdp需要指定.

5、exp/imp可在客户端执行,而expdp/impdp只能在服务端执行.

6、oracle11g后exp不导出空表,expdp可以.

exp导出指定用户(表、视图、存储过程、同义词)到dmp文件

一般适用于单个用户只有一个表空间的情况 。

                        
                          exp 用户名/密码@127.0.0.1:1521/ORCLCDB 
    file=备份文件.dmp 
    log=操作日志.log

                        
                      

expdp导出指定用户(表、视图、存储过程、同义词)到dmp文件

                        
                          #创建备份目录
mkdir -p /tmp/dbbackup
#登录sqlplus,创建逻辑目录DB_BACKUP,映射物理目录/tmp/dbbackup
create or replace directory DB_BACKUP as '/tmp/dbbackup';
#为备份的用户授权逻辑目录读写权限
grant read,write on directory DB_BACKUP to 备份的用户名;
#导出备份文件到/tmp/dbbackup下
expdp 用户名/密码@127.0.0.1:1521/orclcdb 
    directory=DB_BACKUP
    dumpfile=备份文件.dmp
    schemas=用户名
    logfile=备份日志.txt
    cluster=N
    exclude=grant
    exclude=STATISTICS
    compression=ALL

                        
                      

2、导入dmp文件

确定dmp文件是用exp与是expdp导出的

由于exp与expdp导出的文件都是dmp,而这两者导出的dmp格式不同,导入命令也不同(exp导出的用imp导入,expdp导出的用impdp导入),需要进行区分,以下是简单区分的办法:

                        
                          #如果显示以TEXPORT开头,则是EXP导出的;如果是乱码则是expdp导出的。
head -n 1 备份文件.dmp

                        
                      

同表空间不同用户恢复表空间命令

exp导出dmp使用imp恢复,方法如下:

                        
                          imp 目标用户名/密码@127.0.0.1:1521/ORCLCDB 
	fromuser=源用户名 touser=目标用户名 
	file=备份文件.dmp 
	log=恢复日志.log 
	ignore=y

                        
                      

expdb导出dmp使用impdp恢复,方法如下:

                        
                          impdp 目标库用户名/密码@127.0.0.1:1521/ORCLCDB 
    remap_schema=源用户名:目标用户名
    directory=dmp文件所在的目录
    dumpfile=备份库文件名.dmp
    logfile=日志.txt

                        
                      

不同表空间不同用户恢复表空间命令

exp导出dmp使用imp恢复,方法如下:

                        
                          #全局替换dmp文件中表空间名,减少导出时需transport_tablespace的麻烦
sed -i "s/源表空间名/目标表空间名/g" 备份库文件名.dmp
#导入
imp 目标用户名/密码@127.0.0.1:1521/ORCLCDB 
	fromuser=源用户名 touser=目标用户名 
	file=备份文件.dmp 
	log=恢复日志.log 
	ignore=y

                        
                      

expdb导出dmp使用impdp恢复,方法如下:

                        
                          #创建备份目录
mkdir -p /tmp/dbbackup
#登录sqlplus,创建逻辑目录DB_BACKUP,映射物理目录/tmp/dbbackup
create or replace directory DB_BACKUP as '/tmp/dbbackup';
#为备份的用户授权逻辑目录读写权限
grant read,write on directory DB_BACKUP to 备份的用户名;
#导入
impdp 目标库用户名/密码@127.0.0.1:1521/ORCLCDB 
    remap_tablespace=源表空间:目标表空间
    remap_schema=源用户名:目标用户名
    directory=DB_BACKUP
    dumpfile=备份库文件名.dmp
    logfile=日志.txt

                        
                      

最后此篇关于OracleDatabase——数据库表空间dmp导出与导入的文章就讲到这里了,如果你想了解更多关于OracleDatabase——数据库表空间dmp导出与导入的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com