热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

备份和恢复-mysql教程

备份定义:备份是一份数据副本。这个数据副本包含着数据库的主要部分,例如控制文件和数据文件。备份就像是一项安全措施,他可以防止意外的数据丢失,即便原始数据丢失了,我们也可以通过备份来重新构建数据。备份分为物理备份和逻辑备份。物理备份,将实际

备份定义:备份是一份数据副本。这个数据副本包含着数据库的主要部分,例如控制文件和数据文件。备份就像是一项安全措施,他可以防止意外的数据丢失,即便原始数据丢失了,我们也可以通过备份来重新构建数据。 备份分为物理备份和逻辑备份。物理备份,将实际

备份定义:备份是一份数据副本。这个数据副本包含着数据库的主要部分,例如控制文件和数据文件。备份就像是一项安全措施,他可以防止意外的数据丢失,即便原始数据丢失了,我们也可以通过备份来重新构建数据。

备份分为物理备份和逻辑备份。物理备份,将实际组成的数据库的操作系统文件从一处拷贝到另外一处的备份过程,可以使用Oracle的恢复管理器(recovery Manager,RMAN)或操作系统命令进行数据的物理备份。

根据数据库的备份策略可分为:全部数据库备份和部分数据库备份。

全部数据库备份:包含所有数据库文件和至少一个控制文件。部分数据库备份:可能包括0个或多个表空间,或者0个或多个数据文件,归档日志后控制文件。

根据备份类型可以分为完全备份和增量备份。完全备份,在对数据文件进行备份是将数据文件的所有数据块全部备份出来,不论该数据块是否被修改过。增量备份,自上一次备份后,数据文件中发生变化的数据块的一个副本。

根据实施物理备份时的数据库状态分为冷备份和热备份。冷备份又称为一直备份和脱机备份,在数据库没有打开的情况下创建的。热备份是不一致备份或联机备份,当数据库中可读写的数据库文件和控制文件的系统改变号(SCN)在不一致的条件下备份。

逻辑备份与恢复,就是对数据库实施导入和导出,导出,数据库的逻辑备份,实质是读取一个数据库记录集并将这个记录写入一个文件,这些记录的导出与其物理位置无关。

导入,数据库的逻辑恢复,实质是读取被导出的二进制转储文件并将其恢复到数据库。

逻辑备份创建数据库对象的逻辑拷贝并存入一个二进制转储文件,这种二进制转储文件一般都是.dmp文件。

恢复定义:就是当发生故障后,利用已备份的数据文件或者控制文件,重新建立一个完整的数据库。恢复分为实例恢复和介质恢复。实例恢复是当Oracle实例出现失败后,Oracle自动进行的恢复。介质恢复是当存放数据库的介质出现故障时所做的恢复。

数据泵是一种在数据库之间或在数据库与操作系统文件之间传输数据或元数据的高速机制。

数据泵可以用来在两个数据库之间或者单个数据库内把数据库从一个用户复制到另外一个用户,他还可以用来把整个数据库的逻辑结构副本、一个用户列表、一个库表列表或一个表空间列表提取到可移植的操作系统。

数据泵工具可以从命令行实用程序expdp和impdp中调用,或者通过PL/SQL程序包DBMS_DATAPUMP调用。

数据泵技术的特定:1、导入/导出的所有工作都由数据库实例完成。2、可以使用DBMS_DATAPUMPPL/SQL建立、检测和调整数据泵任务。3、可以对IMPDP/EXPDP导入/导出任务进行重新启动(类似于网络下载的断点续传)

如果要将数据导出到一个文件中,首先要做的就是为输出路径建立一个数据库的DIRECTORY对象,然后还要给将要进行数据导入和导出的用户授予访问权限。

使用CREATE DITECTORY创建目录对象window环境下:CREATEDIRECTORY pbdir AS ‘D:\datadump’; Unix环境下:CREATEDIRECTORY pbdir AS ‘/oracle/datapump/dumps’;

为用户授权:grant read,write on directorypbdir to pb;授完权后用户可以使用数据泵导入和导出操作了。

恢复方法分类:完全恢复,将数据库恢复到数据库失败时的状态。不完全备份,将数据库恢复到数据库失败前的某一时刻的状态。

Expdp的导出方式:

数据库方式

整个数据库被导出到操作系统文件中,包括用户账户、公用的同义词、角色及资源

用户模式

可以导出一个或多个用户下的所有数据和元数据

表导出

导出的数据包括用于一组表的所有数据和元数据

表空间方式

导出时提取用于一个表空间中所有对象的数据和元数据,另外还提取依赖于指定表空间列表中所有对象的任何依赖对象。

对于索引之类的某些对象,在导出时只会导出元数据。由数据泵导出程序所创建的文件称为转储文件。

完整的数据库导出要求用户拥有EXP_FULL_DATABASE角色。

windows环境下:使用SYSTEM用户实施完全数据库导出

d:expdpsystem/passwd directory = pbdir dumpfile=alldb.dmp full=y;

unix环境下:$ expdp system/passwd directory=pbdirdumpfile=alldb.dmp full=y;

其中system/passwd是用户和密码;directory:导出数据的目录;dumpfile:转储文件名称;full=y;表示实施的是完全数据库。

用户模式导出方式:可以省略full=y参数,使用schemas=schema_list参数来表示要导出的用户列表,如果有多个用户,则用户之间用逗号分隔。要想导出多个用户,必须具有EXP_FULL_DATABASE角色权限。

例如:expdp pb/123456 directory = pdbirdumpfile = pb.dmp schemas = pb;

表导出方式:需要使用tables = table_list参数取代schemas或full参数。其中table_list是一个用逗号分隔的待导出的表列表。

示例:expdp pb/123456 directory=pbdirdumpfile = pb_tables.dmp tables=person,student nologfile=y cOntent= data_only

nologfile=y表示不会将操作日志写入磁盘,不过仍会在终端显示出来。cOntent= data_only:表示只导出表中的数据而不导出元数据;如果是cOntent= metadata_only,则表示只导出元数据而不导出表中的数据。如果不写这个参数,则二者全部导出。

表空间导出方式:要求数据库用户拥有EXP_FULL_DATABASE角色权限

要想用表空间方式执行表空间导出,需要使用参数tablespaces=tablespace_list指定要导出的表空间

示例:expdp system/passwddirectory=pbdir dumpfile=person_ts.dmp tablespaces=person;

只有用户导入不能导入表和表空间模式导出的数据。

读取导出文件pb.dmp,并且提取所有的DDL,将其放入到pb.sql文件中,不对操作日志进行写入磁盘操作。

d:>impdpsystem/passwd full=y directory=pbdir dumpfile=pb.dmp nologfile=y sqlfile=pb.sql

system/passwd:用户名和密码。directory:数据库目录对象。dumpfile:指定转储文件。full=y表示实施的是全部导入。nologyfile=y:表示不进行写日志操作。sqlfile:表示将元数据(如DDL语句)写入到指定的文件中。

使用exp导出整个数据库,要导出整个数据库仍然需要用户具有EXP_FULL_DATABASE角色权限。

示例:exp userid=pb/123456 direct=yfull=y rows=y file=d:\exp\pb.dmp log=d:\exp\pb.log。

userid:导出操作的用户名和密码;direct:是否按照直接路径导出;full=y:表示试试的是全部数据库导出操作;rows=y表示连同基表中的数据一同导出;file:导出文件,注意,这里不是使用数据泵是的数据库目录对象,而是操作系统的文件目录。log:导出操作日志文件。

导出某个用户的全部数据:与导出整个数据库相比,只是少了参数full=y。导出某个用户中的表,与导出某个用户全部数据相比只是多了tables=(person,student)语句。

使用imp导入整个数据库:imp pb/123456 file=d:\exp\pb.dmp log=d:\exp\pb.log full=y ignore=y;

参数ignore表示可以忽略导入过程中产生的错误。

指定用户的导入:如果导入时设置full=y,那么在导入时就可以通过fromuser和touser实现将一个用户中的数据导入另一个用户中。

例如:imp pn/123456 file=d:\exp\pb.dmpfromuser=pb touser=pbdemo help=y;

就是将pb用户中的数据导入到了pbdemo用户中。

椐]枫熼枫鷌妜犊楗╧yOracle以循环方式,写入联机重做日志文件。

热备份要备份的文件:1、所有数据文件,一个表空间一个表空间备份(设置表空间为备份状态、备份表空间的数据文件、恢复表空间为正常状态。)2、所有归档的重做日志文件(临时停止归档进程、记录下归档重做日志文件、重启归档进程、备份归档的重做日志文件)3、一个控制文件(通过alter database命令进行)

热备份优点:1、提供了完全的时间点恢复。2、在文件系统备份是允许数据库保持打开状态。

热备份缺点:1、难于维护且不能出错。2、若热备份不成功,则多得到的结果不可能用于时间点的恢复。
推荐阅读
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 迎接云数据库新时代:程序员如何应对变革?
    在数据无处不在的时代,数据库成为了管理和处理数据的核心工具。从早期的信息记录方式到现代的云数据库,数据库技术经历了巨大的变革。本文将探讨云数据库的特点及其对程序员的影响。 ... [详细]
  • 本文详细列举了软件开发中常见的功能测试要点,涵盖输入框、搜索、添加/修改、删除、文件上传下载等多个方面,旨在帮助测试人员全面覆盖测试需求,确保软件质量。 ... [详细]
  • iTOP4412开发板QtE5.7源码编译指南
    本文详细介绍了如何在iTOP4412开发板上编译QtE5.7源码,包括所需文件的位置、编译器设置、触摸库编译以及QtE5.7的完整编译流程。 ... [详细]
  • 本文介绍了Java语言开发的远程教学系统,包括源代码、MySQL数据库配置以及相关文档,适用于计算机专业的毕业设计。系统支持远程调试,采用B/S架构,适合现代教育需求。 ... [详细]
  • 本文探讨了如何利用 Hibernate 进行高效的批量更新和删除操作,包括直接使用 Hibernate API 的方法及其局限性,以及如何通过 JDBC 或存储过程实现更优的性能。 ... [详细]
  • 探索Squid反向代理中的远程代码执行漏洞
    本文深入探讨了在网站渗透测试过程中发现的Squid反向代理系统中存在的远程代码执行漏洞,旨在帮助网站管理者和开发者了解此类漏洞的危害及防范措施。 ... [详细]
  • 本文总结了MySQL的一些实用技巧,包括查询版本、修改字段属性、添加自动增长字段、备份与恢复数据库等操作,并提供了一些常见的SQL语句示例。 ... [详细]
  • 在服务器虚拟化领域,用户面临多种选择,尤其是来自同一供应商的不同产品。正确评估这些选项对于项目的成功至关重要。本文将深入探讨VMware提供的两款主要虚拟化平台——免费的VMware Server和付费的ESX Server之间的区别,旨在为决策提供专业指导。 ... [详细]
  • 本文探讨了随着并发需求的增长,MySQL数据库架构如何从简单的单一实例发展到复杂的分布式系统,以及每一步演进背后的原理和技术解决方案。 ... [详细]
  • 本文探讨了Java编程中MVC模式的优势与局限,以及如何利用Java开发一款基于鸟瞰视角的赛车游戏。 ... [详细]
  • python开发mysql:单表查询&多表查询
    一单表查询,以下是表内容二多表查询,一下是表内容三总结&表创建过程单 ... [详细]
  • MacOS 重装指南
    本文详细介绍了如何通过U盘启动并重新安装MacOS,包括遇到安装问题时的解决方案。 ... [详细]
  • Windows 环境下安装 Git 并连接 GitHub 的详细步骤
    本文详细介绍了如何在 Windows 系统中安装 Git 工具,并通过配置 SSH 密钥实现与 GitHub 的安全连接。包括下载、安装、环境配置及验证连接等关键步骤。 ... [详细]
  • 本文总结了WebSphere应用服务器出现宕机问题的解决方法,重点讨论了关键参数的调整,包括数据源连接池、线程池设置以及JVM堆大小等,旨在提升系统的稳定性和性能。 ... [详细]
author-avatar
Superficial1987542_y3
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有