常用数据库日常备份恢复管理手册.docx
- 文档编号:14529214
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:37
- 大小:1.03MB
常用数据库日常备份恢复管理手册.docx
《常用数据库日常备份恢复管理手册.docx》由会员分享,可在线阅读,更多相关《常用数据库日常备份恢复管理手册.docx(37页珍藏版)》请在冰点文库上搜索。
常用数据库日常备份恢复管理手册
常用主流数据库备份手册
一、MYSQL数据库的备份和恢复:
1.操作系统与环境:
服务器系统平台:
WindowsServer/Linux
数据库版本:
MySQLcommunity5.0~MySQLcommunity5.5
数据库的引擎:
InnoDB
2.技术分析:
MYSQL数据库是开源数据库的一种,在业界内使用范围极广,性能与稳定性都较为优秀,且免费使用的一种数据库。
MYSQL数据库是由多个引擎来负责具体的存储工作,其中INNODB引擎支持事务,行锁,高并发读写,支持MVCC多版本控制等特性,备份时可以完好的保证数据一致性。
3.INNODB引擎介绍:
InnoDB给MySQL提供了具有事务(transaction)、回滚(rollback)和崩溃修复能力(crashrecoverycapabilities)、多版本并发控制(multi-versionedconcurrencycontrol)的事务安全(transaction-safe(ACIDcompliant))型表。
InnoDB提供了行级锁(lockingonrowlevel),提供与Oracle类似的不加锁读取(non-lockingreadinSELECTs)。
InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读。
这些特色增加了多用户部署和性能。
没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。
InnoDB也支持FOREIGNKEY强制。
在SQL查询中,你可以自由地将InnoDB类型的表与其它MySQL的表的类型混合起来,甚至在同一个查询中也可以混合。
这些特性均提高了多用户并发操作的性能表现。
在InnoDB表中不需要扩大锁定(lockescalation),因为InnoDB的行级锁定(rowlevellocks)适宜非常小的空间。
InnoDB是MySQL上第一个提供外键约束(FOREIGNKEYconstraints)的表引擎。
4.mysqldump工具介绍:
mysqldump工具可以把整个数据库装载到一个单独的文本文件中。
这个文件包含有所有重建您的数据库所需要的SQL命令。
这个命令取得所有的模式(Schema,后面有解释)并且将其转换成DDL语法(CREATE语句,即数据库定义语句),取得所有的数据,并且从这些数据中创建INSERT语句。
这个工具将您的数据库中所有的设计倒转。
因为所有的东西都被包含到了一个文本文件中。
这个文本文件可以用一个简单的批处理。
Mysqldump工具随着MYSQL数据库安装后附带的官方备份工具。
4.1mysqldump部分参数介绍:
--all-databases导出全部数据库。
--add-drop-database每个数据库创建之前添加drop数据库语句。
--add-drop-table每个数据表创建之前添加drop数据表语句。
--add-locks在每个表导出之前增加LOCKTABLES并且之后UNLOCKTABLE。
--comments附加注释信息。
默认为打开,可以用--skip-comments取消
--compress在客户端和服务器之间启用压缩传递所有信息
--databases导出几个数据库。
参数后面所有名字参量都被看作数据库名。
--delete-master-logsmaster备份后删除日志.这个参数将自动激活--master-data。
--events导出事件。
--flush-logs开始导出之前刷新日志。
--host需要导出的主机信息
--lock-all-tables提交请求锁定所有数据库中的所有表,以保证数据的一致性。
--lock-tables开始导出前,锁定所有表。
用READLOCAL锁定表以允许MyISAM表并行插入。
--no-create-db只导出数据,而不添加CREATEDATABASE语句。
--single-transaction该选项只适用于事务表,例如InnoDB,因为然后它将在发出BEGIN而没有阻塞任何应用程序时转储一致的数据库状态。
--tables覆盖--databases(-B)参数,指定需要导出的表名。
--triggers导出触发器。
该选项默认启用,用--skip-triggers禁用它。
--user指定连接的用户名。
--where只转储给定的WHERE条件选择的记录。
注意:
参数配合的不同,将会影响到备份出来数据的有效性或恢复时的效果,在不知道该参数具体意义的情况下,请谨慎使用。
5.备份恢复策略与步骤:
5.1备份案例:
5.1.1WindowsServer版本:
a)确定备份目录,并进入windows的cmd命令行模式,进入到MYSQL安装目录下的BIN目录。
b)mysqldump–uroot–p123456–E–R--single-transaction–Bv3x>d:
\backup\v3x_20121116.sql
c)可以对备份出来的SQL文件进行ZIP或RAR压缩保存,以节约磁盘空间。
5.1.2Linux版本:
a)确定备份目录有相应的写入权限。
b)mysqldump–uroot–p123456–E–R--single-transaction–Bv3x>/mysql_backup/v3x_20121116.sql
c)可以对备份出来的SQL文件进行gzip压缩保存,以节约磁盘空间。
5.2恢复案例:
5.2.1WindowsServer版本:
a)确认恢复时间点,因为使用某日期存档的备份恢复后,会覆盖现有的数据,现有数据将会丢失。
b)确定备份目录,并进入windows的cmd命令行模式,进入到MYSQL安装目录下的BIN目录。
c)执行恢复命令:
mysql–uroot–p123456 \backup\v3x_20121016.sql 5.2.2Linux版本: a)确认恢复时间点,因为使用某日期存档的备份恢复后,会覆盖现有的数据,现有数据将会丢失。 b)执行恢复命令: mysql–uroot–p123456 注: 以上通过备份命令的参数备份出来的文件,在恢复时会覆盖以v3x为命名的库,恢复时请注意。 6.Binlog的介绍: Binlog日志是MYSQL数据库中的二进制日志,它包含了MYSQL数据库所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句。 二进制日志的主要目的是在恢复使能够最大可能地更新数据库,因为二进制日志包含备份后进行的所有更新,以及二进制日志还可用于在主复制服务器上记录所有将发送给从服务器的语句。 注意: 使用MYSQL默认配置文档是,binlog日志是处于打开状态,在没有特别的事件里,请保持binlog的打开状态。 应当尽可能的保留、保护binlog日志,不应随便更改生产操作系统的时间,不应随意删除未做全日备份前的binlog日志。 Binlog将可以为恢复数据使用。 二、 ORACLE数据库的备份和恢复: 1.操作系统与环境: 服务器系统平台: WindowsServer/LINUX 数据库版本: ORACLE9I,ORACLE10G,ORACLE11G 2.技术分析: 在ORACLE10G、11G数据库的备份方法中,可以使用ORACLE自带的EXPDP及IMPDP作为备份工具来备份当前数据。 在ORACLE9I版本中,可以使用EXP/IMP方式备份。 在ORACLE数据库的数据体系里,归档日志(ArchiveLog)是非活动的重做日志备份。 通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH进程会将重做日志的内容保存到归档日志中。 当数据库出现介质失败时,使用数据文件备份的恢复,加上归档日志和重做日志可以完全恢复数据库。 3.备份工具介绍: ORCALE10G开始提供了新的导入导出工具,数据泵,备份速度快,优于原先的EXP、IMP的备份工具,是主要的逻辑备份的方法。 数据泵提供的主要特性(包括,但不限于): 1.支持并行处理导入、导出任务 2.支持暂停和重启动导入、导出任务 3.支持通过DatabaseLink的方式导出或导入远端数据库中的对象 4.支持在导入时通过Remap_schema、Remap_datafile、Remap_tablespace几个参数实现导入过程中自动修改对象属主、数据文件或数据所在表空间。 5.导入/导出时提供了非常细粒度的对象控制。 通过Include、Exclude两个参数,甚至可以详细制定是否包含或不包含某个对象。 3.1EXPDP命令行部分参数介绍: 1.DIRECTORY: 指定转储文件和日志文件所在的目录DIRECTORY=directory_object,Directory_object用于指定目录对象名称.需要注意,目录对象是使用CREATEDIRECTORY语句建立的对象,而不是OS目录,Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dump 2.DUMPFILE: 用于指定转储文件的名称,默认名称为expdat.dmp,DUMPFILE=[directory_object: ]file_name[,….]。 Directory_object用于指定目录对象名,file_name用于指定转储文件名.需要注意,如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对。 Expdpscott/tigerDIRECTORY=dump1DUMPFILE=dump2: a.dmp 3.FILESIZE: 指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制) filesize=100M 4.FULL 指定数据库模式导出,默认为N。 FULL={Y|N}。 为Y时,标识执行数据库导出。 5.JOB_NAME: 指定要导出作用的名称,默认为SYS_XXX。 JOB_NAME=jobname_string。 SELECT*FROMDBA_DATAPUMP_JOBS;--查看存在的job 6.LOGFILE: 指定导出日志文件文件的名称,默认名称为export.log LOGFILE=[directory_object: ]file_name Directory_object用于指定目录对象名称,file_name用于指定导出备份状态日志文件名。 如果不指定directory_object.导出时会自动使用DIRECTORY的相应选项值。 Expdpv3x_user/123456DIRECTORY=dumpDUMPFILE=a.dmplogfile=a.log 7.PARALLEL 指定执行导出操作的并行进程个数,默认值为1 注: 并行度设置不应该超过CPU数的2倍,如果cpu为2个,可将PARALLEL设为2,在导入时速度比PARALLEL为1要快。 而对于导出的文件,如果PARALLEL设为2,导出文件只有一个,导出速度提高不多,因为导出都是到同一个文件,会争抢资源。 所以可以设置导出文件为两个,如下所示: expdpv3x_user/123456directory=backup_dirdumpfile=v3x_20121016_01.dmp,v3x_20121016_02.dmpparallel=2 8.SCHEMAS 该方案用于指定执行方案模式导出,默认为当前用户方案。 9.TABLES 指定表模式导出。 TABLES=[schema_name.]table_name[: partition_name][,…] Schema_name用于指定方案名,table_name用于指定导出的表名,partition_name用于指定要导出的分区名。 10.TABLESPACES 指定要导出表空间列表。 3.2IMDP命令行部分参数介绍: 1、REMAP_DATAFILE 该选项用于将源数据文件名转变为目标数据文件名,在不同平台之间搬移表空间时可能需要该选项. REMAP_DATAFIEL=source_datafie: target_datafile 2、REMAP_SCHEMA 该选项用于将源方案的所有对象装载到目标方案中. REMAP_SCHEMA=source_schema: target_schema 3、REMAP_TABLESPACE 将源表空间的所有对象导入到目标表空间中 REMAP_TABLESPACE=source_tablespace: target: tablespace 4、REUSE_DATAFILES 该选项指定建立表空间时是否覆盖已存在的数据文件.默认为N REUSE_DATAFIELS={Y|N} 3.3EMP命令行部分参数介绍: 1.FULL 这个用于导出整个数据库,在ROWS=N一起使用时,可以导出整个数据库的结构。 2.FILL和LOG 这两个参数分别指定备份的DMP名称和LOG名称,包括文件名和目录。 3.CONSISTENT 该选项用于指定是否使用SETTRANSACTIONREADONLY语句确保取得一致时间点的数据,默认值为n,当设置为y时,所有被导出表会在同一个事物内完成导出。 从而确保取得一致时间点的数据,当设置该选项为n时,每个被导出表会使用独立事物导出。 注意,当多出数据库时,为了避免snapshottooold错误,不要讲选项consistent设置为y。 4.CONSTRAINTS 用于指定是否要导出导入表的约束,默认值为y。 当设置选项为y时,会导出导入表的约束;当设置该选项为n时,不会导出表的约束。 5.DIRECT 用于指定是否使用直接导出方式,默认值为n,当设置该选项为y时,会采用直接导出方式;当设置该选项为n时,会采用常规导出方式。 注意,直接导出速度要优于常规导出,但要求客户端和服务器端的字符集必须完全一致。 6.FILESIZE 用于指定导出文件的最大尺寸,如果不指定filesize选项,则所有对象和数据会被存放到一个导出文件中。 通过指定filesize选项,可以讲数据库对象分布到多个导出文件中。 7.GRANTS 该选项用于指定是否要导出导入对象权限信息,默认值为y,当设置该选项为y时,会导出导入与对象权限相关的对象权限信息;当设置为n时,不会导出导入与对象相关的对象权限信息。 8.OWNER 用于指定用户导出模式。 注意,普通用户只能导出其自身方案,如果要导出其他用户方案,则要求用户必须具有EXP_FULL_DATABASE或则dba角色。 9.QUERY 用于指定where条件子句,从而导出表的部分数据。 注意,当使用直接导出方式时,不能使用该选项。 10.TABLES 用于指定表模式导出导入。 11.TABLESPACES 指定要导出导入的表空间列表 12.TRIGGERS 用于指定是否要导出触发器,默认值为y,当设置该选项为y时,会到处触发器;当设置选项为n时,不会导出触发器。 3.4IMP命令行部分参数介绍: 1.BUFFER 于用指定在提取行数据室的缓冲区尺寸,通过设置该选项,可以确定导出导入时的数组提取尺寸。 可以按照公式(rows_in_array*maximum_row_size)确定buffer选项的设置,注意,buffer选项只适用于常规导出。 2.COMMIT 该选项用指定在再每次数组插入完成之后是够提交数据,默认值为n。 当设置为y时,每次数据插入完成之后会提交数据;当设置该选项为n时,在装载了表的所有数据之后才会提交。 3.COMPILE 该选项用于指定在导入包,过程,和函数时是否进行编译,默认值为y。 当设置该选项为y时,会立即编译被导入的包、过程、函数。 当设置该选项为n时,不会编译被导入的包、过程和函数。 4.DATAFILES 当设置TRANSPORT_TABLESPACE为Y时,该选项用于指定要搬移到目标数据库的数据文件列表。 5.DESTROY 该选项用于指定在导入时是否要覆盖已经存在的数据文件,默认值为n。 当设置该选项为y时,导入时会覆盖已经存在的数据文件;当设置该选项为n时,如果存在同名文件,则导入失败并显示错误信息。 6.QUERY 用于指定where条件子句,从而导出表的部分数据。 注意,当使用直接导出方式时,不能使用该选项。 7.ROWS 该选项用于指定是否需要导出导入表行数据,默认值为y。 当设置该选项为y时,会导出导入表行数据;当设置该选项为n时,只会导出导入表结构。 而不会导出导入表数据。 8.SHOW 用于指定显示导出文件内容,默认值为n,当设置该选项为y时,会显示导出文件的内容。 4.数据备份和恢复步骤: 4.1EXPDP备份案例(仅为ORACLE10G及以上版本): 4.1.1Linux平台: a)登陆ORACLE实例命令行模式: 在操作系统命令行里切换至oracle用户(参考oracle安装使用手册),输入登陆实例的命令: $sqlplus/assysdba b)输入创建备份目录的命令: c)如有必要将users表空间授权: SQL>alteruserv3x_userquotaunlimitedonusers; d)执行备份的账号给予备份目录授权。 e)执行导出(本案例为单个备份文件,实际请依据操作系统情况决定备份文件数量): 返回操作系统命令行里,切换至oracle用户(参考oracle安装使用手册),输入备份命令: 4.1.2WindowsServer平台: a)登陆ORACLE实例,创建用作备份的目录。 b)执行备份的账号给予备份目录授权: c)如有必要将users表空间授权: SQL>alteruserv3x_userquotaunlimitedonusers; d)执行导出: (本案例为单个备份文件,实际请依据操作系统情况决定备份文件数量) 返回操作系统命令行里,切换至oracle用户(参考oracle安装使用手册),输入备份命令: 假设v3x_user为要备份的库。 4.2EXP备份案例(仅为ORACLE9i,LINUX/WIN操作系统的方法基本相同): 4.2.1Linux平台: (假设备份所有属于v3x_user用户的表) a)登陆ORACLE9i实例命令行模式: sqlplus/assysdba b)将v3x_user授权exp_full_database: c)退出实例命令行模式后输入备份命令: (本案例为单个备份文件,实际请依据操作系统情况决定备份文件数量) expv3x_user/123456@oracle237owner=v3x_userfile=/backup_dir/v3x_20121016.dmplog=/backup_dir/output_v3x_20121016.log 4.2.2WindowsServer平台: (假设备份所有属于v3x_user用户的表) 5.登陆ORACLE9i实例命令行模式: sqlplus/assysdba 6.将v3x_user授权exp_full_database: a)退出实例命令行模式后输入备份命令: (本案例为单个备份文件,实际请依据操作系统情况决定备份文件数量) expv3x_user/123456@oracle237owner=v3x_userfile=d: \backup_dir\v3x_20121016.dmplog=d: \backup_dir\output_v3x_20121016.log 1.1IMPDP恢复案例(ORACLE10G及以上使用,LINUX/WIN操作系统的方法基本相同): a)执行恢复: (将之前备份出来备档进行恢复) 在操作系统的命令行里输入: b)如更改了用户: $impdpv3x_newuser/123456@oracle237dumpfile=v3x_20121016.dmpdirectory=backup_dirREMAP_SCHEMA=v3x_user: v3x_newuser c)检查导入的表是否已存在。 1.2IMP恢复案例(仅为ORACLE9i,LINUX/WIN操作系统的方法基本相同): a)登陆ORACLE9i实例命令行模式: sqlplus/assysdba b)执行恢复: impv3x_user/123456@oracle237file=/backup_dir/v3x_20121016.dmplog=/backup_dir/input_v3x_20121016.logfromuser='V3X_USER'touser='V3X_USER' 2.归档日志的介绍: 在Oracle中,数据一般是存放在数据文件中,事务的记录是存放在重做日志里的。 在线重做日志大小毕竟是有限的,当都写满了的时候,就面临着2个选择,第一个就是把以前在线重做日志从头擦除开始继续写,第二种就是把以前的在线重做日志先进行备份,然后对被备份的日志擦除开始写新的在线RedoFile。 这种备份的在线重做日志就是归档日志。 而数据库如果采用这种生成归档日志的模式的话,就是归档日志模式(ARCHIVELOG模式),反之如果不生成归档日志,就是非归档日志模式(NOARCHIVELOG模式)。 有了归档日志有什么好处了。 比如在这个月1号的时候备份了一次数据,然后过了10天,这10天生成了成百上千个在线重做日志,突然发现其中有一个数据磁盘出问题了,不能用了,那我该如何是好呢。 2.1归档日志用途: a.恢复数据库 b.更新standby数据库 c.使用LogMiner提取历史日志的相关信息 2.2日志的两种模式介绍 2.2.1非归档模式 a.不适用与生产数据库 b.创建数据库时,缺省的日志管理模式为非归档模式 c.当日志切换,检查点产生后,联机重做日志文件即可被重新使用 d.联机日志被覆盖后,介质恢复仅仅支持到最近的完整备份 e.不支持联机备份表空间,一个表空间损坏将导致整个数据库不可用,需要删除掉损坏的表空间或从备份恢复。 f.对于操作系统级别的数据库备份需要将数据库一致性关闭应当备份所有的数据文件、控制文件(单个)、参数文件、密码文件、联机日志文件(可选) 2.2.2归档模式 a.能够对联机日志文件进行归档,生产数据库强烈建议归档 b.在日志切换时,下一个即将被写入日志组必须归档完成之后,日志组才可以使用 c.归档日志的Logsequencenumber信息会记录到控制文件之中 d.必须有足够的磁盘空间用于存放归档日志 e.Oracle9i需要设置参数log_archive_start=true才能够进行自动归档备份与恢复 f.支持热备份,且当某个非系统表空间损坏,数据库仍然处于可用状态,且支持在线恢复 g.使用归档日志能够实现联机或脱机时点恢复(即可以恢复到指
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 常用 数据库 日常 备份 恢复 管理 手册