MySQL 软件包提供了一个名为 mysqlhotcopy 的 Perl程序帮助我们完成热备份。
举例:mysqlhotcopy -uuser -ppass dbname backupdir
用法: /usr/bin/mysqlhotcopy db_name[./table_regex/] [new_db_name | directory]
参数:
-u, --user=# 用户名
-p, --password=# 密码
-h, --host=# 主机
-P, --port=# 端口
-S, --socket=# 套接字位置
--allowold 假如备份目标存在将其命名为 _oldXXXX再继续
--addtodest 假如备份目标存在直接添加新文件,不重命名
--keepold不删除重命名为 _oldXXXX的文件
--noindices 不保留所有索引
--method=# 复制的方法 目前仅支持 cp
-q, --quiet 安静模式,除非发生错误
--debug 启动调试
-n, --dryrun 仅现实将要执行的动作但是不实际执行
--regexp=# 复制所有数据库名和指定内容正则匹配的数据库
--suffix=# 指定要复制的数据前缀
--checkpoint=# 将备份检测点插入到指定数据库的数据表中 形如:db.table
--flushlog 一旦所有标锁定就刷新日志
--resetmaster重置binlog一旦所有的被锁定
--resetslave 重置 master.info一旦所有的被锁定
--tmpdir=# 指定临时目录而不是 /tmp
--record_log_pos=# 记录主从状态到指定数据库的表中 形如:db.table
--chroot=# 当执行 MySQL *** 作的时候chroot到指定目录
手动热备份 MyISAM引擎的数据库
我们通过 锁表->复制备份->解锁 的流程进行
# mysql命令
flush tables with read lock
# 系统命令
cp -R /database/path/ /backup/path
# mysql命令
unlock tables
可能遇到的错误:
Can’t locate DBI.pm in @INC
解决:
perl -MCPAN -e “install DBI”
perl -MCPAN -e “install DBD::mysql”
This entry was written by zpz, posted on 2013 年 1 月 18 日 at 上午 11:52, filed under mysql and tagged Mysql备份, Mysql数据备份. Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment or leave a trackback: Trackback URL.
冷备份冷备份数据库是将数据库关闭之后备份所有的关键性文件包括数据文件、控制文件、联机REDO
LOG文件,将其拷贝到另外的位置。此外冷备份也可以包含对参数文件和口令文件的备份,但是这两种备份是可以根据需要进行选择的。冷备份实际也是一种物理备份,是一个备份数据库物理文件的过程。因为冷备份要备份除了重做日志以外的所有数据库文件,因此也被成为完全的数据库备份。
过程:
冷备份数据必须是数据库不在open状态下。 以下步骤会给出详细的过程:
◆(1): 关闭DB : shutdown immediate;
◆(2):copy
oradata目录下的所有文件, 包括数据文件, 控制文件,redo,等,还需要copy 密码文件 在目录ora92下 的database
中的pwd 文件.全部copy到一个安全目录中。在sql 下可以直接加一个 host 然后使用dos命令。如host copy
.............
◆(3):如果是 *** 作系统的重新安装,只要是同样系统,同样数据库版本,是可以做冷备恢复。一下谈的是系统的重新安装后的步骤。
◆(4):正常安装oracle软件,只需要安装软件,可以不用建实例,建实例的时间也比较长,也没有必要。 软件安装好以后,开始准备恢复。
◆(5):数据覆盖过去包括pwd文件,放在原来的目录,如果目录有所改变则需要另外建立控制文件,修改pfile。
◆(6):建立服务:使用oradim 命令 cmd下 oradim -new -sid erp 表示建立一个服务,sid为erp。关于oradim的命令另外给出专门解释。
◆(7):建立监听: net configuration assintant 来建立,或用脚本建立并且开启。
◆(8):打开数据库: 用oem也行,cmd下也行。
set oracle_sid=erp
sqlplus "/as sysdba"
startup
select * from v$instance
至此,冷备份恢复成功。即使你现在用oem打开数据库时发现提示找不到sid ,但实际上你已经成功了,此时只需要重启一下的你的服务器就可以了。
-------------------------------------------
热备份
热备份是在数据库运行的情况下,采用archive log mode方式备份数据库的方法。热备份要求数据库处于archive log模式下 *** 作,并需要大量的档案空间。一旦数据库处于archive loh
模式,就可以进行备份了,当执行备份时,只能在数据文件级或表空间进行。
过程:
1.准备工作
由于在备份过程中,数据库仍然是打开的,所以要求正在复制的各个数据文件管理的表空间必须处于备份模式。备份完后再脱离备份模式。因此备份前必须将ORACLE 数据库调整为归档模式。查看代码如下
查看当前数据库归档状态:ARCHIVE LOG LIST:以下为非归档
2数据库备份
2.1查询要备份表空间对应的数据文件的详细信息
select file_name from dba_data_files
where
tablespace_name='USERS'
2.2将表空间设为备份模式
ALTER TABLESPACE USERS BEGIN BACKUP
2.3查看处于备份模式的数据文件:
select * from v$backup
2.4使用 *** 作系统命令备份表空间的数据文件
HOST COPY f:\BAK\ HOST COPY f:\oracle\oradata\orcl\*.dbf//将前面ORACLE数据库热备份的文件拷贝到系统目录中
2.5将表空间设置为正常模式
ALTER TABLESPACE USERS END BACKUP
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)