怎么使用Oracle数据库的逻辑备份工具

技术怎么使用Oracle数据库的逻辑备份工具这篇文章主要介绍“怎么使用Oracle数据库的逻辑备份工具”,在日常操作中,相信很多人在怎么使用Oracle数据库的逻辑备份工具问题上存在疑惑,小编查阅了各式资料,整理出简单好

本文主要介绍“如何使用Oracle数据库的逻辑备份工具”。在日常操作中,相信很多人对于如何使用Oracle数据库的逻辑备份工具都有疑问。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮你解答“如何使用Oracle数据库的逻辑备份工具”的疑惑!接下来,请和边肖一起学习!

Oracle数据库可以通过data pump expdp工具导出和导入数据。在介绍工具使用之前,我们先关注一下。当Oracle11g之后新创建的表中没有插入数据时,就不会分配段,也就是说不会分配空间。使用expdp导出时,这种空表不会被导出,导致数据库结构不完整(这种情况下不包括数据后来被清空的表)。因此,为了不遗漏数据,导出时首先处理空表(手动分配空间):

1.通过user_tables查询那些表时,没有数据(注意:为了提高准确性,可以对用户下的所有表进行一次分析,然后通过以下语句直接生成手动分配段的语句:

选择“alter table ”| | table _ name | |“allocateextent ”;from user _ table where num _ rows=0;PS:当然,上面的语句也会找出原始数据后已经清空的表,但为了一个个摆脱麻烦,直接重新分配段。

2.分批执行生成的语句。

1.以上处理完成后,我们来谈谈expdp导出工具的使用:

1.1.expdp工具导出的文件只能在数据库服务器本地存储,不能远程导出到其他服务器(exp工具远程导出到数据库服务器本地,直接将导出的文件放在本地:),只能在数据库服务器本地导出存储,然后传输到要存储的备份服务器。

使用expdp工具需要将数据库中创建的目录映射到存储dmp文件的指定系统目录:

#创建dmp文件存储系统的目录(当然,Oracle用户应该有读写创建目录的权限):[Oracle @ local ~]$ mkdir/data/DMP file

#使用sys用户(或具有dba权限的用户)登录到数据库[Oracle @ local ~]$ sqlplus/assysdba

#检查当前实例是否是用户导出的实例名称。

SQLselectinstance _ namefromv $实例;#创建的目录名称为expdp,映射目录为刚创建的目录/数据/dmpfile。

sqlcreatedorientyexpdpas '/data/DMP file ';#将该目录的读写权限授予用户或直接授予公众,意味着所有用户都可以使用,不同用户不必每次授权一次。

SQLGrantread,writerondirectoryexpdptoppublic;#启动数据库

SQLexit

#导出指定的用户数据进行备份[Oracle @ local ~]$ expdpussername/用户密码目录=expdpdumpfile=orcl _ full 20200216 . dmploggile=orcl _ full 20200216 . log 2 . impdp是数据泵的导入工具。导入dmp文件时,需要将dmp文件放在执行导入操作的数据库服务器上。存储dmp的目录是导入目录映射的目录。当然,系统Oracle用户应该有:的读写权限。

#在导入数据库服务器上创建dmp文件存储系统的目录(当然,Oracle用户创建的目录应该有读写权限):[Oracle @ localhost ~]$ mkdir/data/DMP file 2[Oracle @ localhost ~]$ mvorcl _ full2020216.dmp/data/dmpfile 2

#使用sys用户(或具有dba权限的用户)登录到数据库[Oracle @ localhost ~]$ sqlplus/assysdba

#检查当前实例是否是要导入的数据库。

SQLselectinstance _ namefromv $实例;#创建的目录名称是expdp,映射目录只是

才创建的目录/data/dmpfile2  
SQL> create directory expdp2 as '/data/dmpfile2';  # 将该目录读写权限授予用户或者直接授予public,表示所有用户都可使用,不用每次不同用户都授权一次。
SQL> Grant read,write on directory expdp2 to PUBLIC;# 推出数据库
SQL> exit
# 导出指定用户数据进行备份[oracle@localhost ~]$ impdp username/userpassword directory=expdp2 dumpfile=orcl_full20200216.dmp loggile=orcl_full20200216.log

三、数据泵工具使用注意事项

1.expdp数据泵工具时向上兼容的,比如Oracle 11G使用expdp导出的dmp文件,可以直接导入Oracle 12C数据库中,但是Oracle 12C导出的dmp文件是不能直接导入Oracle 11G中的。在expdp导出时导出语句还要加一个参数,比如Oracle 12C导出dmp文件导入Oracle 11G数据库中,在导出语句后加上 VERSION=11.1.0.0.0.:

[oracle@local ~]$ expdp username/userpassword directory=expdp dumpfile=orcl_full20200216.dmp loggile=orcl_full20200216.log VERSION=11.1.0.0.0

2.字符集要一致,数据库字符集导入的数据库要与导出的数据库一致,保证数据正常导入。
查询数据库字符集的方法:

select userenv('language') from dual;

3.导出和导入前创建的存放dmp文件的目录,oracle系统用户必须有读写权限,为了避免此类错误,可记住一点,所有操作都在oracle系统用户下操作,如果使用了root用户来创建存放dmp文件的目录,在创建后一定要进行属主属组修改授权,例如:

[root@local ~]# mkdir /data/dmpfile[root@local ~]# chown oracle:oinstall /data[root@local ~]# cd /data[root@local ~]# chown oracle:oinstall /dmpfile

注意:不要轻易使用chown -R /data/dmpfile的方式进行授权,如果/data目录下有其他服务部署,此方法会导致/data下其他部署服务出现问题,为了防止这种错误,一步一步授权比较保险。

4.使用expdp进行数据迁移时,导入的数据库要创建与导出数据库相同表空间,尤其是一个表空间有多个数据文件的,必须要一致,防止导入时数据无法存入数据库报错。

5.从大数据量的库中导出一部分数据时候,虽然导出的数据量很小,但是在导入的时候经常报错表空间不足,原因是导出的数据中含有表空间的元数据(比如表占用的空间大小),
需要在导出的时加上compress 参数。

6.特殊的导出方式:
(1)按照查询语句导出:

[oracle@local ~]$ expdp username/userpassword directory=expdp dumpfile=orcl_full20200216.dmp loggile=orcl_full20200216.log QUERY=employees:"WHERE department_id > 10"

(2)指定表名或者指定多个表导出:

# 导出所有sys开头的表[oracle@local ~]$ expdp username/userpassword directory=expdp dumpfile=orcl_full20200216.dmp loggile=orcl_full20200216.log tables=(username.sys%)# 导出指定的多个表[oracle@local ~]$ expdp username/userpassword directory=expdp dumpfile=orcl_full20200216.dmp loggile=orcl_full20200216.log tables=(BTRULES, CDRULES, CXRULES, DTBTRULES, HLXRULES)

(3)规定dmp大小方式导出:

# 每个dmp大小为2G[oracle@local ~]$ expdp username/userpassword directory=expdp dumpfile=full_xzxt_%U.dmp filesize=2G  loggile=orcl_full20200216.log

(4)只导出表结构

[oracle@local ~]$ expdp username/userpassword directory=expdp dumpfile=orcl_full20200216.dmp loggile=orcl_full20200216.log content=metadata_only

(5)只导出表结构

[oracle@local ~]$ expdp username/userpassword directory=expdp dumpfile=orcl_full20200216.dmp loggile=orcl_full20200216.log content=data_only

(6)导入不同用户,导出用户为scott,导入用户为zhang:

[oracle@local ~]$ impdp zhang/zhang directory=expdp dumpfile=scott.dmp logfile=scott.log schemas=scott remap_schema=scott:zhang

到此,关于“怎么使用Oracle数据库的逻辑备份工具”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/71157.html

(0)

相关推荐

  • 如何以Windows Service的方式运行Python程序

    技术如何以Windows Service的方式运行Python程序这期内容当中小编将会给大家带来有关如何以Windows Service的方式运行Python程序,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文

    攻略 2021年11月2日
  • 支付宝申请商家二维码,怎么开通支付宝商家收钱码

    技术支付宝申请商家二维码,怎么开通支付宝商家收钱码需要开通支付宝商家收钱码支付宝申请商家二维码,需要自己是支付宝商家,方法如下: 1、首先在手机上找到并打开支付宝APP客户端。 2、然后在支付宝页面中选择红色箭头所指处的

    生活 2021年10月24日
  • 分析型数据仓库中如何实现读写分离

    技术分析型数据仓库中如何实现读写分离这篇文章主要为大家展示了“分析型数据仓库中如何实现读写分离”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“分析型数据仓库中如何实现读写分离”

    攻略 2021年11月23日
  • 【P6】Verilog搭建流水线MIPS-CPU,全指令55条)

    技术【P6】Verilog搭建流水线MIPS-CPU,全指令55条) 【P6】Verilog搭建流水线MIPS-CPU(全指令55条)我开P6是过P5了吗笑死,P5又挂了,还是经典的blezalc指令,

    礼包 2021年12月16日
  • 碳酸钙与稀盐酸反应的化学方程式,盐酸与碳酸钙的反应方程式

    技术碳酸钙与稀盐酸反应的化学方程式,盐酸与碳酸钙的反应方程式由于碳酸钙与稀盐酸反应生成氯化钙、二氧化碳和水碳酸钙与稀盐酸反应的化学方程式:  所以碳酸钙与稀盐酸反应的现象是:  碳酸钙逐渐减少,有气泡产生。如果CaCO3

    生活 2021年10月20日
  • Oracle数据库的内存结构是什么

    技术Oracle数据库的内存结构是什么这篇文章主要介绍“Oracle数据库的内存结构是什么”,在日常操作中,相信很多人在Oracle数据库的内存结构是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望

    攻略 2021年11月4日