常⽤数据库⽇常备份恢复管理⼿册
常⽤主流数据库备份⼿册
⽬录
⼀、MYSQL数据库的备份和恢复: (3)
1.操作系统与环境: (3)
2.技术分析: (3)
3.INNODB引擎介绍: (3)
5.备份恢复策略与步骤: (4)
5.1备份案例: (4)
5.2恢复案例: (5)
6.Binlog的介绍: (5)
⼆、ORACLE数据库的备份和恢复: (6)
1.操作系统与环境: (6)
2.技术分析: (6)
3.备份⼯具介绍: (6)
3.1EXPDP命令⾏部分参数介绍: (6)
3.2IMDP命令⾏部分参数介绍: (8)
3.3EMP命令⾏部分参数介绍: (8)
3.4IMP命令⾏部分参数介绍: (10)
4.数据备份和恢复步骤: (10)
4.1EXPDP备份案例(仅为ORACLE 10G及以上版本): (10)
4.2EXP备份案例(仅为ORACLE 9i,LINUX/WIN操作系统的⽅法基本相同): (12)
1.1IMPDP恢复案例(ORACLE 10G及以上使⽤,LINUX/WIN操作系统的⽅法基本相同): (12)
1.2IMP恢复案例(仅为ORACLE 9i,LINUX/WIN操作系统的⽅法基本相同): (13)
2.归档⽇志的介绍: (13)
2.1归档⽇志⽤途: (13)
2.2⽇志的两种模式介绍 (13)
2.3改变⽇志操作模式: (14)
2.4执⾏⼿⼯归档 (15)
2.5更改归档位置/⽬录: (15)
2.6显⽰归档进程信息: (15)
3.控制⽂件介绍: (16)
三、MS SQL SERVER数据库的备份和恢复: (18)
1.操作系统与环境: (18)
2.技术分析: (18)
3.备份⼯具介绍: (18)
4.数据备份和恢复步骤: (18)
4.1数据库完整备份案例: (18)
4.2恢复案例: (21)
4.3数据差异备份案例: (23)
4.4数据差异备份后恢复的案例: (25)
四、PostgreSQL数据库的备份和恢复: (28)
1.操作系统与环境: (28)
2.技术分析: (28)
3.备份⼯具介绍: (28)
3.1pg_dump部分参数介绍: (28)
4.数据备份和恢复步骤: (29)
4.1数据备份案例: (29)
4.2数据恢复案例: (34)
⼀、MYSQL数据库的备份和恢复:
1.操作系统与环境:
服务器系统平台:Windows Server / Linux
数据库版本:MySQL community 5.0 ~ MySQL community 5.5
数据库的引擎:InnoDB
2.技术分析:
MYSQL数据库是开源数据库的⼀种,在业界内使⽤范围极⼴,性能与稳定性都较为优秀,且免费使⽤的⼀种数据库。MYSQL 数据库是由多个引擎来负责具体的存储⼯作,其中INNODB引擎⽀持事务,⾏锁,⾼并发读写,⽀持MVCC多版本控制等特性,备份时可以完好的保证数据⼀致性。
3.INNODB引擎介绍:
InnoDB给MySQL 提供了具有事务(transaction)、回滚(rollback)和崩溃修复能⼒(crash recovery capabilities)、多版本并发控制(multi-versioned concurrency control)的事务安全(transaction-safe (ACID compliant))型表。InnoDB提供了⾏级锁(locking on row level),提供与Oracle 类似的不加锁读取(non-locking read in SELECTs)。InnoDB锁定在⾏级并且也在SELECT语句提供⼀个Oracle风格⼀致的⾮锁定读。这些特⾊增加了多⽤户部署和性能。没有在InnoDB中扩⼤锁定的需要,因为在InnoDB中⾏级锁定适合⾮常⼩的空间。InnoDB也⽀持FOREIGN KEY强制。在SQL查询中,你可以⾃由地将InnoDB类型的表与其它MySQL的表的类型混合起来,甚⾄在同⼀个查询中也可以混合。这些特性均提⾼了多⽤户并发操作的性能表现。在InnoDB表中不需要扩⼤锁定(lock escalation),因为InnoDB的⾏级锁定(row level locks)适宜⾮常⼩的空间。InnoDB是MySQL 上第⼀个提供外键约束(FOREIGN KEY constraints)的表引擎。
mysqldump⼯具可以把整个数据库装载到⼀个单独的⽂本⽂件中。这个⽂件包含有所有重建您的数据库所需要的SQL命令。这个命令取得所有的模式(Schema,后⾯有解释)并且将其转换成DDL 语法(CREATE语句,即数据库定义语句),取得所有的数据,并且从这些数据中创建INSERT语句。
这个⼯具将您的数据库中所有的设计倒转。因为所有的东西都被包含到了⼀个⽂本⽂件中。这个⽂
本⽂件可以⽤⼀个简单的批处理。Mysqldump⼯具随着MYSQL数据库安装后附带的官⽅备份⼯具。
4.1mysqldump部分参数介绍:
--all-databases导出全部数据库。
--add-drop-database每个数据库创建之前添加drop数据库语句。
--add-drop-table每个数据表创建之前添加drop数据表语句。
--add-locks在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。
--comments附加注释信息。默认为打开,可以⽤--skip-comments取消
--compress在客户端和服务器之间启⽤压缩传递所有信息
--databases导出⼏个数据库。参数后⾯所有名字参量都被看作数据库名。
--delete-master-logs master备份后删除⽇志. 这个参数将⾃动激活--master-data。
--events导出事件。
--flush-logs开始导出之前刷新⽇志。
--host需要导出的主机信息
--lock-all-tables提交请求锁定所有数据库中的所有表,以保证数据的⼀致性。
--lock-tables开始导出前,锁定所有表。⽤READ LOCAL锁定表以允许MyISAM表并⾏插⼊。
--no-create-db只导出数据,⽽不添加CREATE DA TABASE 语句。
--single-transaction该选项只适⽤于事务表,例如InnoDB,因为然后它将在发出BEGIN⽽没有阻塞任何应⽤程序时转储⼀致的数据库状态。
--tables覆盖--databases (-B)参数,指定需要导出的表名。
--triggers导出触发器。该选项默认启⽤,⽤--skip-triggers禁⽤它。
--user指定连接的⽤户名。
--where只转储给定的WHERE条件选择的记录。
注意:参数配合的不同,将会影响到备份出来数据的有效性或恢复时的效果,在不知道该参数具体意义的情况下,请谨慎使⽤。
5.备份恢复策略与步骤:
5.1备份案例:
5.1.1Windows Server版本:
a)确定备份⽬录,并进⼊windows的cmd命令⾏模式,进⼊到MYSQL安装⽬录下的BIN⽬录。
b)mysqldump–uroot–p123456 –E –R --single-transaction–B v3x > d:\backup\v3x_20121116.sql
c)可以对备份出来的SQL⽂件进⾏ZIP或RAR压缩保存,以节约磁盘空间。linux递归删除目录命令
5.1.2Linux 版本:
a)确定备份⽬录有相应的写⼊权限。
b)mysqldump–uroot–p123456 –E –R --single-transaction–B v3x > /mysql_backup/v3x_20121116.sql
c)可以对备份出来的SQL⽂件进⾏gzip压缩保存,以节约磁盘空间。
5.2恢复案例:
5.2.1Windows Server版本:
a)确认恢复时间点,因为使⽤某⽇期存档的备份恢复后,会覆盖现有的数据,现有数据将会丢失。
b)确定备份⽬录,并进⼊windows的cmd命令⾏模式,进⼊到MYSQL安装⽬录下的BIN⽬录。
c)执⾏恢复命令:mysql–uroot–p123456 < d:\backup\v3x_20121016.sql
5.2.2Linux 版本:
a)确认恢复时间点,因为使⽤某⽇期存档的备份恢复后,会覆盖现有的数据,现有数据将会丢失。
b)执⾏恢复命令:mysql–uroot–p123456 < /mysql_backup/v3x_20121016.sql
注:以上通过备份命令的参数备份出来的⽂件,在恢复时会覆盖以v3x为命名的库,恢复时请注意。
6.Binlog的介绍:
Binlog⽇志是MYSQL数据库中的⼆进制⽇志,它包含了MYSQL数据库所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何⾏的⼀个DELETE)的所有语句。
⼆进制⽇志的主要⽬的是在恢复使能够最⼤可能地更新数据库,因为⼆进制⽇志包含备份后进⾏的所有更新,以及⼆进制⽇志还可⽤于在主复制服务器上记录所有将发送给从服务器的语句。
注意:使⽤MYSQL默认配置⽂档是,binlog⽇志是处于打开状态,在没有特别的事件⾥,请保持binlog的打开状态。应当尽可能的保留、保护binlog⽇志,不应随便更改⽣产操作系统的时间,不应随意删除未做全⽇备份前的binlog⽇志。Binlog将可以为恢复数据使⽤。
⼆、ORACLE数据库的备份和恢复:
1.操作系统与环境:
服务器系统平台:Windows Server / LINUX
数据库版本:ORACLE 9I, ORACLE 10G, ORACLE 11G
2.技术分析:
在ORACLE 10G、11G数据库的备份⽅法中,可以使⽤ORACLE⾃带的EXPDP及IMPDP作为备份⼯具来备份当前数据。在ORACLE 9I版本中,可以使⽤EXP/IMP⽅式备份。
在ORACLE数据库的数据体系⾥,归档⽇志(Archive Log)是⾮活动的重做⽇志备份。通过使⽤归档⽇志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进⾏⽇志切换式,后台进程ARCH进程会将重做⽇志的内容保存到归档⽇志中。当数据库出现介质失败时,使⽤数据⽂件备份的恢复,加上归档⽇志和重做⽇志可以完全恢复数据库。
3.备份⼯具介绍:
ORCALE 10G开始提供了新的导⼊导出⼯具,数据泵,备份速度快,优于原先的EXP、IMP的备份⼯具,是主要的逻辑备份的⽅法。
数据泵提供的主要特性(包括,但不限于):
1.⽀持并⾏处理导⼊、导出任务
2.⽀持暂停和重启动导⼊、导出任务
3.⽀持通过Database Link的⽅式导出或导⼊远端数据库中的对象
4.⽀持在导⼊时通过Remap_schema、Remap_datafile、Remap_tablespace⼏个参数实现导⼊过程
中⾃动修改对象属主、数据⽂件或数据所在表空间。
5.导⼊/导出时提供了⾮常细粒度的对象控制。通过Include、Exclude两个参数,甚⾄可以详细制
定是否包含或不包含某个对象。
3.1E XPDP命令⾏部分参数介绍:
1.DIRECTORY:
指定转储⽂件和⽇志⽂件所在的⽬录DIRECTORY=directory_object,Directory_object⽤于指定⽬录对象名称.需要注意,⽬录对象是使⽤CREATE DIRECTORY语句建⽴的对象,⽽不是OS⽬录,
Expdpscott/tiger DIRECTORY=dump DUMPFILE=a.dump
2.DUMPFILE:
⽤于指定转储⽂件的名称,默认名称为expdat.dmp,DUMPFILE=[directory_object:]file_name [,….]。Directory_object⽤于指定⽬录对象名,file_name⽤于指定转储⽂件名.需要注意,如果不指定directory_object,导出⼯具会⾃动使⽤DIRECTORY选项指定的⽬录对。Expdpscott/tiger DIRECTORY=dump1 DUMPFILE=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 * FROM DBA_DATAPUMP_JOBS;--查看存在的job
6.LOGFILE:
指定导出⽇志⽂件⽂件的名称,默认名称为export.log
LOGFILE=[directory_object:]file_name
Directory_object⽤于指定⽬录对象名称,file_name⽤于指定导出备份状态⽇志⽂件名。如果不指定directory_object.导出时会⾃动使⽤DIRECTORY的相应选项值。
Expdpv3x_user/123456 DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log
7.PARALLEL
指定执⾏导出操作的并⾏进程个数,默认值为1
注:并⾏度设置不应该超过CPU数的2倍,如果cpu为2个,可将PARALLEL设为2,在导⼊时速度⽐PARALLEL为1要快。
⽽对于导出的⽂件,如果PARALLEL设为2,导出⽂件只有⼀个,导出速度提⾼不多,因为导出都是到同⼀个⽂件,会争抢资源。所以可以设置导出⽂件为两个,如下所⽰:
expdp v3x_user/123456 directory=backup_dirdumpfile=v3x_20121016_01.dmp,v3x_20121016_02.dmp parallel=2
8.SCHEMAS
该⽅案⽤于指定执⾏⽅案模式导出,默认为当前⽤户⽅案。
9.TABLES
指定表模式导出。TABLES=[schema_name.]table_name[:partition_name][,…]
Schema_name⽤于指定⽅案名,table_name⽤于指定导出的表名,partition_name⽤于指定要导出的分区名。
10.TABLESPACES
指定要导出表空间列表。
3.2I MDP命令⾏部分参数介绍:
1、REMAP_DATAFILE
该选项⽤于将源数据⽂件名转变为⽬标数据⽂件名,在不同平台之间搬移表空间时可能需要该选项.
REMAP_DATAFIEL=source_datafie:target_datafile
2、REMAP_SCHEMA
该选项⽤于将源⽅案的所有对象装载到⽬标⽅案中.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。