iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >怎么使用Oracle数据库的逻辑备份工具
  • 930
分享到

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

2024-04-02 19:04:59 930人浏览 薄情痞子
摘要

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

这篇文章主要介绍“怎么使用oracle数据库的逻辑备份工具”,在日常操作中,相信很多人在怎么使用Oracle数据库的逻辑备份工具问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Oracle数据库的逻辑备份工具”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Oracle数据库可以通过数据泵expdp工具进行数据的导出、导入。在介绍工具使用之前,先说个注意事项,在Oracle11g之后新创建的表在没有插入数据时,是不会分配segment的,也就是说不会分配空间,而使用expdp导出时,这类空表就不会被导出,导致数据库结构不完整(此情况不包含原先有数据后来被清空的表)。因此为了不会遗漏数据,在导出时先对空表进行一次处理(手动分配空间):
1.通过user_tables查询那些表时没有数据的(注意:为了提高准确性,可以先对用户下的所有表进行一次表分析analysis table),然后通过下面语句直接生成手动分配segment的语句:

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

PS:当然以上语句会把原先有数据后被清空的表也查询出来,但为了一个一个排除麻烦,就直接再从新分配一次segment。

2.批量执行生成的语句即可。

一、以上处理完成后,下面说一下expdp导出工具的使用:

1.expdp工具导出的文件只能存放在数据库服务器本地,是无法远程导出到其他服务器的(exp工具导出通过本地远程到数据库服务器,将导出文件直接放到本地:),只能导出存放到数据库服务器本地,然后才能传到你想存放的备份服务器。
expdp工具使用需要在数据库中创建directory映射到指定存放dmp文件的系统目录:

# 创建dmp文件存放系统目录(当然创建的目录Oracle用户要有权限读写):[oracle@local ~]$ mkdir /data/dmpfile
# 使用sys用户(或者有DBA权限的用户)登录数据库[oracle@local ~]$ sqlplus /  as sysdba
# 查看当前实例是否是要进行用户导出的实例名
SQL> select instance_name from v$instance; # 创建directory名称为expdp,映射目录是刚才创建的目录/data/dmpfile   
SQL> create directory expdp as '/data/dmpfile';  # 将该目录读写权限授予用户或者直接授予public,表示所有用户都可使用,不用每次不同用户都授权一次。
SQL> Grant read,write on directory expdp to PUBLIC;# 推出数据库
SQL> exit
# 导出指定用户数据进行备份[oracle@local ~]$ expdp username/userpassWord directory=expdp dumpfile=orcl_full20200216.dmp loggile=orcl_full20200216.log

2.impdp是数据泵的导入工具,要进行dmp文件导入时,需要将dmp文件放到执行导入操作的数据库服务器上,dmp存放的目录是导入directory映射的目录,当然系统Oracle用户要有读写权限:

# 在导入数据库服务器上创建dmp文件存放系统目录(当然创建的目录Oracle用户要有权限读写):[oracle@localhost ~]$ mkdir /data/dmpfile2[oracle@localhost ~]$ mv orcl_full20200216.dmp /data/dmpfile2
# 使用sys用户(或者有DBA权限的用户)登录数据库[oracle@localhost ~]$ sqlplus /  as sysdba
# 查看当前实例是否是要进行导入的数据库
SQL> select instance_name from v$instance; # 创建directory名称为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数据库的逻辑备份工具”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么使用Oracle数据库的逻辑备份工具

本文链接: https://www.lsjlt.com/news/63035.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么使用Oracle数据库的逻辑备份工具
    这篇文章主要介绍“怎么使用Oracle数据库的逻辑备份工具”,在日常操作中,相信很多人在怎么使用Oracle数据库的逻辑备份工具问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2022-10-18
  • 【MySQL】数据库逻辑备份工具--mydumper
    [root@wallet01 ~]# yum install -y glib2-devel mysql-devel zlib-devel \ pcre-devel openssl-devel cmake ...
    99+
    2022-10-18
  • MySQL数据库逻辑备份工具mysqldump介绍
    下文给大家带来有关MySQL数据库逻辑备份工具mysqldump介绍内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完MySQL数据库逻辑备份工具mysqldump...
    99+
    2022-10-18
  • 数据库逻辑备份与恢复是怎样的
    本篇文章为大家展示了数据库逻辑备份与恢复是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。(一)问题:初次接触数据库备份与恢复,目前是应用在这样一个场景:我们平...
    99+
    2022-10-19
  • 怎么用Java程序调用expdp数据泵实现自动逻辑备份Oracle数据库
    本篇内容主要讲解“怎么用Java程序调用expdp数据泵实现自动逻辑备份Oracle数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Java程序调用e...
    99+
    2022-10-18
  • PG数据库管理_备份工具的使用
    原文:https://blog.51cto.com/lishiyan/2655168...
    99+
    2018-03-09
    PG数据库管理_备份工具的使用 数据库入门 数据库基础教程
  • 使用xtrabackup工具实现对MySQL数据库备份
    下文给大家带来有关使用xtrabackup工具实现对MySQL数据库备份内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完使用xtrabackup工具实现对MySQ...
    99+
    2022-10-18
  • 怎么使用Oracle进行数据库备份与还原
    本文小编为大家详细介绍“怎么使用Oracle进行数据库备份与还原”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用Oracle进行数据库备份与还原”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Oracle中...
    99+
    2023-07-05
  • 使用mysqldump怎么备份MySQL数据库
    今天就跟大家聊聊有关使用mysqldump怎么备份MySQL数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  一、数据备份的重要性  工作中,...
    99+
    2022-10-18
  • 怎么使用Xtrabackup备份MySQL数据库
    这篇文章主要为大家展示了“怎么使用Xtrabackup备份MySQL数据库”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么使用Xtrabackup备份MySQ...
    99+
    2022-10-18
  • mysql数据库怎么用工具和命令行实现导出导入备份
    这篇文章主要讲解了“mysql数据库怎么用工具和命令行实现导出导入备份”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql数据库怎么用工具和命令行实现导...
    99+
    2022-10-18
  • MySQL数据库中备份相关的两种工具--mysqlbinlog和mysqldump使用详解
    一、mysqldump对数据库做完整备份命令格式:#mysqldump  -h服务器ip  -u用户名  -p密码备份对象> /dbdir/文件名.sql &n...
    99+
    2022-10-18
  • ORACLE使用冷备份数据库迁移的方法
    实验对象:两台linux单机的oracle 12C 数据库(大版本和小版本都一致),数据迁移采取冷备份的方式。目标机器的路径跟源库不一致,需要重建controlfile。迁移步骤首先关闭监听,和kill掉连...
    99+
    2022-10-18
  • 使用shell脚本怎么备份数据库
    今天就跟大家聊聊有关使用shell脚本怎么备份数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Shell 脚本 Shell 脚本(shell script),是一种为 shell...
    99+
    2023-06-09
  • Linux中使用数据备份同步工具Rsync的操作方法
    Linux中使用数据备份同步工具Rsync的操作方法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。对于运维人员来说,数据备份是最重要的工作之一,rsync就是一款通过网络备...
    99+
    2023-06-12
  • 使用golang怎么实现mysql数据库备份
    这期内容当中小编将会给大家带来有关使用golang怎么实现mysql数据库备份,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。map & json,在处理主键与外键...
    99+
    2022-10-18
  • 使用shell脚本自动备份MySQL数据库的具体操作
    不知道大家之前对类似使用shell脚本自动备份MySQL数据库的具体操作的文章有无了解,今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完使用shell脚本自动备份MySQL数据库的...
    99+
    2022-10-18
  • Python数据库ORM工具sqlalchemy怎么安装使用
    今天就跟大家聊聊有关Python数据库ORM工具sqlalchemy怎么安装使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。SQLAlchemy是...
    99+
    2022-10-19
  • 怎么使用Navicat软件对数据库定时备份
    本篇内容主要讲解“怎么使用Navicat软件对数据库定时备份”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Navicat软件对数据库定时备份”吧!使用N...
    99+
    2022-10-18
  • Beekeeper Studio开源数据库管理工具怎么使用
    本篇内容主要讲解“Beekeeper Studio开源数据库管理工具怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Beekeeper Studio开源数据库管理工具怎...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作