您的位置:

mysql数据库灾难恢复计划(数据库恢复策略)

本文目录一览:

mysql data数据怎么恢复

简单情况下:进入原来mysql安装路径下的data文件夹下,找到相应的库和ibdata1,进行copy,就可回复原来的数据。

复杂情况下:

从另一台机上把MySQL数据库的mysql文件夹拷贝到本地机上,目的是恢复本地机对数据的访问和操作。经过如下几种情况的操作。

1. 在本地重装MySQL(安装目录D:\Program Files\MySQL\MySQL Server 5.0),直接把mysql文件夹拷贝至D:\Program Files\MySQL\MySQL Server 5.0\。结果,失败:数据库连接错误。

2. 卸载后重装MySQL,将D:\Program Files\MySQL\MySQL Server 5.0\下的数据备份,只把mysql\data文件夹全部内容拷贝到D:\Program Files\MySQL\MySQL Server 5.0\data下。结果,失败:数据库连接错误。将备份的数据还完覆盖。结果,失败,还是连接不上数据库。

3. 卸载后重装MySQL,将mysql\data文件夹里的cf1,last文件夹(这两个是原来MySQL里的数据库)拷贝进D:\Program Files\MySQL\MySQL Server 5.0\data。连接成功,在Navicat for MySQL里看到数据库cf1和last,但是不能访问,因为数据全为零。明白了原来data里以数据库命名的文件存储的是数据库的表结构,不是元数据。下一步,把data文件夹里的ibdata1文件(3.4G大,明显存储了元数据)拷贝到D:\Program Files\MySQL\MySQL Server 5.0\data里,代替原来的ibdata1文件。重启电脑,打开Navicat for MySQL,连接成功,数据可以访问操作。

至此,操作终于成功。其实当初在那台机上把数据导出来,而不是现在直接把文件夹mysql复制过来会更容易恢复。但那台机已经重装了系统,也就是说MySQL失效了。

mysql 如何备份和还原数据库

目前 MySQL 支持的免费备份工具有:mysqldump、mysqlhotcopy,还可以用 SQL 语法进行备份:BACKUP TABLE 或者 SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件。MyISAM 表是保存成文件的形式,因此相对比较容易备份,上面提到的几种方法都可以使用。Innodb 所有的表都保存在同一个数据文件 ibdata1 中(也可能是多个文件,或者是独立的表空间文件),相对来说比较不好备份,免费的方案可以是拷贝数据文件、备份 binlog,或者用 mysqldump。

1、mysqldump

1.1 备份

mysqldump 是采用SQL级别的备份机制,它将数据表导成 SQL 脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法。现在来讲一下 mysqldump 的一些主要参数:

•--compatible=name

它告诉 mysqldump,导出的数据将和哪种数据库或哪个旧版本的 MySQL 服务器相兼容。值可以为 ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options 等,要使用几个值,用逗号将它们隔开。当然了,它并不保证能完全兼容,而是尽量兼容。

•--complete-insert,-c

导出的数据采用包含字段名的完整 INSERT 方式,也就是把所有的值都写在一行。这么做能提高插入效率,但是可能会受到 max_allowed_packet 参数的影响而导致插入失败。因此,需要谨慎使用该参数,至少我不推荐。

•--default-character-set=charset

指定导出数据时采用何种字符集,如果数据表不是采用默认的 latin1 字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。

•--disable-keys

告诉 mysqldump 在 INSERT 语句的开头和结尾增加 /*!40000 ALTER TABLE table DISABLE KEYS */; 和 /*!40000 ALTER TABLE table ENABLE KEYS */; 语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合 MyISAM 表。

•--extended-insert = true|false

默认情况下,mysqldump 开启 --complete-insert 模式,因此不想用它的的话,就使用本选项,设定它的值为 false 即可。

•--hex-blob

使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响到的字段类型有 BINARY、VARBINARY、BLOB。

•--lock-all-tables,-x

在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭 --single-transaction 和 --lock-tables 选项。

•--lock-tables

它和 --lock-all-tables 类似,不过是锁定当前导出的数据表,而不是一下子锁定全部库下的表。本选项只适用于 MyISAM 表,如果是 Innodb 表可以用 --single-transaction 选项。

•--no-create-info,-t

只导出数据,而不添加 CREATE TABLE 语句。

•--no-data,-d

不导出任何数据,只导出数据库表结构。

•--opt

这只是一个快捷选项,等同于同时添加 --add-drop-tables --add-locking --create-option --disable-keys --extended-insert --lock-tables --quick --set-charset 选项。本选项能让 mysqldump 很快的导出数据,并且导出的数据能很快导回。该选项默认开启,但可以用 --skip-opt 禁用。注意,如果运行 mysqldump 没有指定 --quick 或 --opt 选项,则会将整个结果集放在内存中。如果导出大数据库的话可能会出现问题。

•--quick,-q

该选项在导出大表时很有用,它强制 mysqldump 从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中。

•--routines,-R

导出存储过程以及自定义函数。

•--single-transaction

该选项在导出数据之前提交一个 BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表,例如 InnoDB 和 BDB。本选项和 --lock-tables 选项是互斥的,因为 LOCK TABLES 会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用 --quick 选项。

•--triggers

同时导出触发器。该选项默认启用,用 --skip-triggers 禁用它。

其他参数详情请参考手册,我通常使用以下 SQL 来备份 MyISAM 表:

/usr/local/mysql/bin/mysqldump -uyejr -pyejr --default-character-set=utf8 --opt --extended-insert=false \

--triggers -R --hex-blob -x db_name db_name.sql

使用以下 SQL 来备份 Innodb 表:

/usr/local/mysql/bin/mysqldump -uyejr -pyejr --default-character-set=utf8 --opt --extended-insert=false \

--triggers -R --hex-blob --single-transaction db_name db_name.sql

1.2 还原

用 mysqldump 备份出来的文件是一个可以直接倒入的 SQL 脚本,有两种方法可以将数据导入。

•直接用 mysql 客户端

例如:

/usr/local/mysql/bin/mysql -uyejr -pyejr db_name db_name.sql

•用 SOURCE 语法

其实这不是标准的 SQL 语法,而是 mysql 客户端提供的功能,例如:

SOURCE /tmp/db_name.sql;

这里需要指定文件的绝对路径,并且必须是 mysqld 运行用户(例如 nobody)有权限读取的文件。

2、 mysqlhotcopy

2.1 备份

mysqlhotcopy 是一个 PERL 程序,最初由Tim Bunce编写。它使用 LOCK TABLES、FLUSH TABLES 和 cp 或 scp 来快速备份数据库。它是备份数据库或单个表的最快的途径,但它只能运行在数据库文件(包括数据表定义文件、数据文件、索引文件)所在的机器上。mysqlhotcopy 只能用于备份 MyISAM,并且只能运行在 类Unix 和 NetWare 系统上。

mysqlhotcopy 支持一次性拷贝多个数据库,同时还支持正则表达。以下是几个例子:

root#/usr/local/mysql/bin/mysqlhotcopy -h=localhost -u=yejr -p=yejr db_name /tmp (把数据库目录 db_name 拷贝到 /tmp 下)

root#/usr/local/mysql/bin/mysqlhotcopy -h=localhost -u=yejr -p=yejr db_name_1 ... db_name_n /tmp

root#/usr/local/mysql/bin/mysqlhotcopy -h=localhost -u=yejr -p=yejr db_name./regex/ /tmp

更详细的使用方法请查看手册,或者调用下面的命令来查看 mysqlhotcopy 的帮助:

perldoc /usr/local/mysql/bin/mysqlhotcopy

注意,想要使用 mysqlhotcopy,必须要有 SELECT、RELOAD(要执行 FLUSH TABLES) 权限,并且还必须要能够有读取 datadir/db_name 目录的权限。

2.2 还原

mysqlhotcopy 备份出来的是整个数据库目录,使用时可以直接拷贝到 mysqld 指定的 datadir (在这里是 /usr/local/mysql/data/)目录下即可,同时要注意权限的问题,如下例:

root#cp -rf db_name /usr/local/mysql/data/

root#chown -R nobody:nobody /usr/local/mysql/data/ (将 db_name 目录的属主改成 mysqld 运行用户)

3、 SQL 语法备份

3.1 备份

BACKUP TABLE 语法其实和 mysqlhotcopy 的工作原理差不多,都是锁表,然后拷贝数据文件。它能实现在线备份,但是效果不理想,因此不推荐使用。它只拷贝表结构文件和数据文件,不同时拷贝索引文件,因此恢复时比较慢。例子:

BACK TABLE tbl_name TO '/tmp/db_name/';

注意,必须要有 FILE 权限才能执行本SQL,并且目录 /tmp/db_name/ 必须能被 mysqld 用户可写,导出的文件不能覆盖已经存在的文件,以避免安全问题。

SELECT INTO OUTFILE 则是把数据导出来成为普通的文本文件,可以自定义字段间隔的方式,方便处理这些数据。例子:

SELECT INTO OUTFILE '/tmp/db_name/tbl_name.txt' FROM tbl_name;

注意,必须要有 FILE 权限才能执行本SQL,并且文件 /tmp/db_name/tbl_name.txt 必须能被 mysqld 用户可写,导出的文件不能覆盖已经存在的文件,以避免安全问题。

3.2 恢复

用 BACKUP TABLE 方法备份出来的文件,可以运行 RESTORE TABLE 语句来恢复数据表。例子:

RESTORE TABLE FROM '/tmp/db_name/';

权限要求类似上面所述。

用 SELECT INTO OUTFILE 方法备份出来的文件,可以运行 LOAD DATA INFILE 语句来恢复数据表。例子:

LOAD DATA INFILE '/tmp/db_name/tbl_name.txt' INTO TABLE tbl_name;

权限要求类似上面所述。倒入数据之前,数据表要已经存在才行。如果担心数据会发生重复,可以增加 REPLACE 关键字来替换已有记录或者用 IGNORE 关键字来忽略他们。

补充:

shell mysqldump --quick db_name | gzip db_name.contents.gz(该例子中创建的文件是压缩格式)。

恢复/转移到另一台的命令如下:

shell gunzip db_name.contents.gz | mysql db_name以上命令,适用于*nix 操作系统的机器

4、 启用二进制日志(binlog)

采用 binlog 的方法相对来说更灵活,省心省力,而且还可以支持增量备份。

启用 binlog 时必须要重启 mysqld。首先,关闭 mysqld,打开 my.cnf,加入以下几行:

server-id = 1

log-bin = binlog

log-bin-index = binlog.index

然后启动 mysqld 就可以了。运行过程中会产生 binlog.000001 以及 binlog.index,前面的文件是 mysqld 记录所有对数据的更新操作,后面的文件则是所有 binlog 的索引,都不能轻易删除。关于 binlog 的信息请查看手册。

需要备份时,可以先执行一下 SQL 语句,让 mysqld 终止对当前 binlog 的写入,就可以把文件直接备份,这样的话就能达到增量备份的目的了:

FLUSH LOGS;如果是备份复制系统中的从服务器,还应该备份 master.info 和 relay-log.info 文件。

备份出来的 binlog 文件可以用 MySQL 提供的工具 mysqlbinlog 来查看,如:

/usr/local/mysql/bin/mysqlbinlog /tmp/binlog.000001

该工具允许你显示指定的数据库下的所有 SQL 语句,并且还可以限定时间范围,相当的方便,详细的请查看手册。

恢复时,可以采用类似以下语句来做到:

/usr/local/mysql/bin/mysqlbinlog /tmp/binlog.000001 | mysql -uyejr -pyejr db_name

把 mysqlbinlog 输出的 SQL 语句直接作为输入来执行它。

如果你有空闲的机器,不妨采用这种方式来备份。由于作为 slave 的机器性能要求相对不是那么高,因此成本低,用低成本就能实现增量备份而且还能分担一部分数据查询压力,何乐而不为呢?

5、 直接备份数据文件

相较前几种方法,备份数据文件最为直接、快速、方便,缺点是基本上不能实现增量备份。为了保证数据的一致性,需要在靠背文件前,执行以下 SQL 语句:

FLUSH TABLES WITH READ LOCK;也就是把内存中的数据都刷新到磁盘中,同时锁定数据表,以保证拷贝过程中不会有新的数据写入。这种方法备份出来的数据恢复也很简单,直接拷贝回原来的数据库目录下即可。

注意,对于 Innodb 类型表来说,还需要备份其日志文件,即 ib_logfile* 文件。因为当 Innodb 表损坏时,就可以依靠这些日志文件来恢复。

6、 备份策略

对于中等级别业务量的系统来说,备份策略可以这么定:第一次全量备份,每天一次增量备份,每周再做一次全量备份,如此一直重复。而对于重要的且繁忙的系统来说,则可能需要每天一次全量备份,每小时一次增量备份,甚至更频繁。为了不影响线上业务,实现在线备份,并且能增量备份,最好的办法就是采用主从复制机制(replication),在 slave 机器上做备份。

7、 数据维护和灾难恢复

作为一名DBA(我目前还不是,呵呵),最重要的工作内容之一是保证数据表能安全、稳定、高速使用。因此,需要定期维护你的数据表。以下 SQL 语句就很有用:

CHECK TABLE 或 REPAIR TABLE,检查或维护 MyISAM 表

OPTIMIZE TABLE,优化 MyISAM 表

ANALYZE TABLE,分析 MyISAM 表

当然了,上面这些命令起始都可以通过工具 myisamchk 来完成,在这里不作详述。

Innodb 表则可以通过执行以下语句来整理碎片,提高索引速度:

ALTER TABLE tbl_name ENGINE = Innodb;

这其实是一个 NULL 操作,表面上看什么也不做,实际上重新整理碎片了。

通常使用的 MyISAM 表可以用上面提到的恢复方法来完成。如果是索引坏了,可以用 myisamchk 工具来重建索引。而对于 Innodb 表来说,就没这么直接了,因为它把所有的表都保存在一个表空间了。不过 Innodb 有一个检查机制叫 模糊检查点,只要保存了日志文件,就能根据日志文件来修复错误。可以在 my.cnf 文件中,增加以下参数,让 mysqld 在启动时自动检查日志文件:

innodb_force_recovery = 4

关于该参数的信息请查看手册。

有点长 慢慢看 对你应该有帮助

怎么恢复mysql数据库怎么恢复数据

简单情况下:进入原来mysql安装路径下的data文件夹下,找到相应的库和ibdata1,进行copy,就可回复原来的数据。

复杂情况下:

从另一台机上把MySQL数据库的mysql文件夹拷贝到本地机上,目的是恢复本地机对数据的访问和操作。经过如下几种情况的操作。

1. 在本地重装MySQL(安装目录D:\Program Files\MySQL\MySQL Server 5.0),直接把mysql文件夹拷贝至D:\Program Files\MySQL\MySQL Server 5.0\。结果,失败:数据库连接错误。

2. 卸载后重装MySQL,将D:\Program Files\MySQL\MySQL Server 5.0\下的数据备份,只把mysql\data文件夹全部内容拷贝到D:\Program Files\MySQL\MySQL Server 5.0\data下。结果,失败:数据库连接错误。将备份的数据还完覆盖。结果,失败,还是连接不上数据库。

3. 卸载后重装MySQL,将mysql\data文件夹里的cf1,last文件夹(这两个是原来MySQL里的数据库)拷贝进D:\Program Files\MySQL\MySQL Server 5.0\data。连接成功,在Navicat for MySQL里看到数据库cf1和last,但是不能访问,因为数据全为零。明白了原来data里以数据库命名的文件存储的是数据库的表结构,不是元数据。下一步,把data文件夹里的ibdata1文件(3.4G大,明显存储了元数据)拷贝到D:\Program Files\MySQL\MySQL Server 5.0\data里,代替原来的ibdata1文件。重启电脑,打开Navicat for MySQL,连接成功,数据可以访问操作。

至此,操作终于成功。其实当初在那台机上把数据导出来,而不是现在直接把文件夹mysql复制过来会更容易恢复。但那台机已经重装了系统,也就是说MySQL失效了。

系统崩溃后,关于MYSQL恢复数据库的问题!求救啊!

MySQL 在崩溃恢复时,会遍历打开所有 ibd 文件的 header page 验证数据字典的准确性,如果 MySQL 中包含了大量表,这个校验过程就会比较耗时。 MySQL 下崩溃恢复确实和表数量有关,表总数越大,崩溃恢复时间越长。另外磁盘 IOPS 也会影响崩溃恢复时间,像这里开发库的 HDD IOPS 较低,因此面对大量的表空间,校验速度就非常缓慢。另外一个发现,MySQL 8 下正常启用时居然也会进行表空间校验,而故障恢复时则会额外再进行一次表空间校验,等于校验了 2 遍。不过 MySQL 8.0 里多了一个特性,即表数量超过 5W 时,会启用多线程扫描,加快表空间校验过程。

如何跳过校验MySQL 5.7 下有方法可以跳过崩溃恢复时的表空间校验过程嘛?查阅了资料,方法主要有两种:

1. 配置 innodb_force_recovery可以使 srv_force_recovery != 0 ,那么 validate = false,即可以跳过表空间校验。实际测试的时候设置 innodb_force_recovery =1,也就是强制恢复跳过坏页,就可以跳过校验,然后重启就是正常启动了。通过这种临时方式可以避免崩溃恢复后非常耗时的表空间校验过程,快速启动 MySQL,个人目前暂时未发现有什么隐患。2. 使用共享表空间替代独立表空间这样就不需要打开 N 个 ibd 文件了,只需要打开一个 ibdata 文件即可,大大节省了校验时间。自从听了姜老师讲过使用共享表空间替代独立表空间解决 drop 大表时性能抖动的原理后,感觉共享表空间在很多业务环境下,反而更有优势。

临时冒出另外一种解决想法,即用 GDB 调试崩溃恢复,通过临时修改 validate 变量值让 MySQL 跳过表空间验证过程,然后让 MySQL 正常关闭,重新启动就可以正常启动了。但是实际测试发现,如果以 debug 模式运行,确实可以临时修改 validate 变量,跳过表空间验证过程,但是 debug 模式下代码运行效率大打折扣,反而耗时更长。而以非 debug 模式运行,则无法修改 validate 变量,想法破灭。

数据库管理员工作的基本职责说明

数据库管理员负责各系统数据的灾备工作,研究事务所的数据和信息安全。下面是我整理的数据库管理员工作的基本职责说明。

   数据库管理员工作的基本职责说明1

职责

1、负责数据库管理系统的运维管理,完成数据库安装、监控、备份、测试、恢复等基本工作,从而保证数据库管理系统的稳定性、安全性和高性能;

2、监视监控数据库的警告日志,定期做备份审查、归档和删除;

3、监控数据库的日常会话情况,及时发现异常会话进程并积极采取有效处理措施予以解决,从而避免对业务运营造成影响;

4、监控数据库的碎片和剩余表空间情况,及时掌握表空间的扩展速度以及剩余空间分布情况,根据变化动态调整数据库的存储方案以优化资源使用;若有需要提前做出存储介质扩容的方案规划和未来存储需求计划;

5、关注数据库管理系统SQL Server版本的升级信息和与SQL Server相关的漏洞补丁信息,在测试环境中确认不会对业务运营造成影响的前提下实施生产环境下的SQL Server版本升级和补丁补漏,并对整个升级补漏过程进行监控和日志审查,确认升级补漏真正成功完成;

6、制定数据库备份计划,制定灾难恢复计划中的数据恢复相关要求并定期演练,确保灾难出现时能对数据库数据进行有效恢复;

7、对数据库的备份策略要根据业务要求和实际情况进行更改,对数据库的日常备份作业执行进行监控和状态确认,对数据库的备份数据进行验证和介质存放管理,与数据库的设计厂商保持联络和维持技术沟通;

8、制定数据库用户管理要求,建立数据库底层结果和访问模型,制定数据库性能监控标准和指标;对通过数据库管理系统进行的任何针对数据库对象的更改进行统一管理;

9、使用SQL语句对数据库进行管理维护和性能优化;

10、当发现不同用户需求之间互相抵触进而造成进程死锁时,进行处理的同时协助相关人员协调用户需求,配合应用系统的数据库设计人员对系统资源进行合理分配;

11、负责数据库管理系统的管理用户批准和其对应的管理权限设置,采取措施防止数据库被未经授权的访问和破坏;

12、协助有关部门配合相关岗位完成U9系统的项目实施和应用升级、治木软件系统的项目实施和应用升级;

13、完成信息部经理交代的有关任务,协助公司各部门完成相关的工作;

任职要求

1、本科以上学历,计算机相关专业,具备专业的计算机应用知识,年龄不限,性别不限,有SQL Server认证者(MCSA)优先;

2、熟悉SQL Server数据库平台下的数据备份/数据恢复,了解数据库性能监控和优化,掌握SQL代码编写,对数据库安全性有一定认识,理解数据库设计,理解索引设计、索引维护和查询引擎, 懂得容量监控与规划;

3、思维清晰,具备优秀的沟通理解能力;逻辑推算及动手能力强,有独档一面的工作能力,且能承受较大的工作压力;

   数据库管理员工作的基本职责说明2

职责:

1.负责数据库的安装配置及升级改造,性能监控及优化,故障诊断和排除,数据迁移,数据库备份、复制、镜像等容灾方案的制定和实施,以及数据库的安全管理、帐户权限管理;

2.维护线上业务核心数据库的7*24安全、稳定运行;

3.负责数据库的架构规划、评估、实施,实现高可用、可扩展架构;

4.熟悉MySQL的运行机制和体系架构, 精通/熟悉SQL,熟悉数据库设计与优化;

5.对数据库新增内容进行数据分析和挖掘;

任职要求:

1.熟悉数据库管理工具,如Navicat等轻量化管理工具;

2.熟练使用MySql,Oracle等数据库相关工具;

3.参与MYSQL脚本管理、SQL Advisor、数据质量管理等工具与平台的开发与实现;

4.至少熟悉java或Python中的一种开发语言

   数据库管理员工作的基本职责说明3

职责:

1、负责公司数据库日常运行监控、管理和性能分析,并进行故障处理和优化。

2、快速处理解决数据库系统运行中出现的故障和问题,保证业务数据安全、可用;

3、负责Oracle数据库的日常运行维护、备份恢复、升级优化、扩容迁移和安全管理工作;

4、为架构/开发团队提供Oracle数据库相关的技术支持服务,包括对象设计、SQL编写规范制定、指导、审核等;

5、负责Oracle数据库平台架构和高可用方案的规划设计工作,并通过分析业务发展趋势,做出相应的容量规划;

6、负责Oracle数据库的业务数据分析与挖掘、性能分析与系统优化、问题跟踪与管理;

7、负责系统软、硬件的部署、监控以及调优,包括 JVM 的调优、中间件调优、底层硬件设备的优化;

8、撰写并维护工作相关的数据库设计文档;

任职要求:

1、计算机或者相关专业本科毕业,5年以上ORACLE数据库维护和优化经验;

2、有大型在线交易系统和企业应用系统(例如:ERP、SRM、WMS等)数据库规划设计和优化经验;

3、熟练安装搭建数据库服务器及集群系统、双机热备,包括SQL Server和Oracle;

4、精通 Oracle数据库原理和运行机制,具有丰富的管理与调优经验;

5、精通RAC、Data Guard、OGG配置管理以及故障排除;

6、熟悉linux ,AIX环境下数据库运行维护;熟悉VERITAS SF文件系统;

7、精通Oracle数据库11g/12c分库,分表,SQL解析,数据路由等。

8、为人正直,工作责任心强,良好的沟通和为人处事的能力、良好的团队合作精神;

9、持有OCP证书;

10、拥有Ansible、python经验者或拥有OCM等证书者优先考虑。

   数据库管理员工作的基本职责说明4

职责:

1、负责公司数据库架构规划、容量规划、系统调优;

2、负责数据库日常运维、故障处理,备份恢复、性能调优及补丁升级等;

3、规划、设计、评审和优化数据库设计方案;

4、配合研发制定数据库技术方案,分库分表策略,数据迁移方案 ;

5、指导开发人员完成数据库建模、数据库索引优化,数据库操作语句优化;

任职要求:

1、计算机相关专业本科及以上学历;

2、五年以上DBA相关经验;

3、精通MySQL数据库的在Linux下的安装布署、开发维护、管理及性能调优;

4、熟悉MySQL存储引擎InnoDB、能够进行SQL语句和读写分离的优化分析/设计,并具有高并发下读写分离维护经验。;

5、熟悉MySQL事务和锁,能进行锁分析和分析优化;

6、熟悉其他至少两种关系型数据库SQL Server/Oracle/Postgresql;

7、熟悉ETL概念及过程,有一定的存储过程或ETL相关的开发经验;

8、熟悉Linux,熟悉脚本编写,有自动化经验;掌握至少一门脚本语言(Shell、Python、Perl);

9、熟悉java开发优先考虑。

10、熟悉NoSql优先考虑。

   数据库管理员工作的基本职责说明5

职责:

1、负责系统数据库(Oracle、Mysql为主)的数据库规划、部署、优化、故障排查;日常运维及管理工作;

2、负责数据库的存储规划管理,协助系统规划设计、防火墙等网络安全设备的安装调试、故障排除、安装、配置、升级与迁移;

3、负责公司项目数据备份策略制定、实施等相关信息安全工作;

4、负责制定和实施数据库备份恢复策略;

5、负责数据库监控,性能检查和优化工作;

6、负责诊断、故障检测和解决任何数据库相关的问题,配合其他数据库相关管理和维护工作。

7、配合开发人员及其他项目组开展日常技术支持、故障排查、系统日常维护

任职资格:

1、熟悉数据库结构设计,对系统架构和数据库理论有较好的理解;

2、熟悉Oracle或Mysql数据库体系结构和性能优化;

3、熟悉SQL优化原理,具备较好的SQL优化能力;

4、熟悉一种或者多种主流的UNIX/LINUX系统;