\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.使用归档日志能够实现联机或脱机时点恢复(即可以恢复到指