database

mysql MHA solutions

参考:https://code.google.com/p/mysql-master-ha/wiki/Overview

一、官网场景—— 一主多从

1.主要使用场景:提供master容灾,在master宕机之后,以最短的时间自动将slave提升为master。

工作方式:在master dead之后,自动选择一个slave(可以配置一个优先slave)接管master业务。并配置其他slave切换replication到新的master。

2.除此之外还有:在线master切换(0.5s-2s的不可写时间)。

二、难点——当然也就是MHA试图解决的问题

以下是手工打造时的难点,而MHA进行了解决。

1.选最新的slave接管master。

最新不好检查及选择。

2.其他不是最新的slave的一致性问题。

其他slave切换到新master,会丢失与原master的transaction,造成binary log event不一致。

手工检查binlog是一件很复杂且不易操作的事情。

三、官网wiki提供的其他各种solution

参考:https://code.google.com/p/mysql-master-ha/wiki/Other_HA_Solutions#Master,_one_candidate_master,_and_multiple_slaves

待续…

mysql MHA configuration

一、编写MHA配置文件

1.全局配置文件

编辑:/etc/masterha_default.cnf

2.应用配置文件

每个slaver的配置文件单独编写。而且需要为多个app单独编写配置文件,并在配置文件中使用不同的物理路径。

app1

app2

二、其他配置

参考:https://code.google.com/p/mysql-master-ha/wiki/Requirements

运行masterha_manager来检查配置是否有缺漏。

1.ssh 免密码登陆

检查:

注: masterha_check_ssh 不加配置文件则会报错:

2.关闭自动清除relay log[1]

关闭原因:By default, relay logs on slave servers are automatically removed if SQL threads have finished executing them. But such relay logs might still be needed for recovering other slaves.

什么是relay log: relay-log日志记录的是从服务器I/O线程将主服务器的二进制日志读取过来记录到从服务器本地文件,然后SQL线程会读取relay-log日志的内容并应用到从服务器。

配置方法:

关闭之后要手工进行relay log文件的清理,使用Linux自己的cron。周期可以根据磁盘及文件保留期情况自行安排。

三、测试使用

1.测试master 不存在

关闭master

可以查看日志:

 

登陆slave机

可以代替master的功能接收数据。

2.重新启动原master

 

【注1】原master起来以后有个问题,就是其全局可写。如果这时有数据插进来,会造成新老master数据不一致。因此应该在重启原master后首先设置global read_only=1。然后将原master切为slave,从新master上同步所有数据。

【注2】同步数据时,原master会等到新master有一次数据操作时,统一将所有数据变化同步过来。这个时刻不是在配完slave后就完成,需等新master。

切换主从的blog:http://bananalighter.com/change-slaver2master/

参考:http://ylw6006.blog.51cto.com/470441/890360/

 

mysql MHA Install

一、MHA软件并没有实现主从复制的功能,所以:

1、可以用于现有系统

2、需要自己手动先把mysql的主从集群配起来

二、安装MHA

安装部分官方wiki:https://code.google.com/p/mysql-master-ha/wiki/Installation#Installation

1.安装MHA node(所有mysql server,包括master/slaver)

 

2.安装MHA Manager

参考:https://code.google.com/p/mysql-master-ha/wiki/Installation#Installing_MHA_Manager

MHA Manager提供了几个命令行管理工具,依赖于以下包(需要epel源):

  • MHA Node package
  • DBD::mysql
  • Config::Tiny
  • Log::Dispatch
  • Parallel::ForkManager
  • Time::HiRes (included from Perl v5.7.3)

安装完毕,接下来就是HA的配置。

下一篇:

参考:

https://code.google.com/p/mysql-master-ha/

https://code.google.com/p/mysql-master-ha/wiki/Tutorial

【从大坑中爬出】mysql将slave转为master

【从大坑中爬出】mysql将slave转为master

一、查看日志应用状态

(其实我也没看懂。。。)

二、修改/etc/my.cnf(参考master配置,此处祭出师父blog,略)

http://debugo.com/mysql-5-6-master-slave/

三、停slave,关掉只读

1.停slave

2.关只读

3.重置slave

四、如果未生效则重启下mysql进程试试

 

参考:http://blog.itpub.net/758322/viewspace-714346

 

 

oracle数据库数据字典及动态性能视图

oracle数据库数据字典及动态性能视图

oracle官方:http://docs.oracle.com/cd/E11882_01/server.112/e40540/datadict.htm#CNCPT002

数据字典是只读的表和视图,动态性能视图在数据库运行时不断进行更新。

Overview of the Data Dictionary

数据字典提供数据库的管理元数据。包含以下信息:

  • 所有schema object(模式对象 注1)的定义,包含列的默认值及完整性约束。

  • schema object所分配及已使用的空间

  • 为oracle用户分配的用户、特权、角色,用户的审计信息

数据字典是oracle数据库进行数据管理的主要部分。例如,oracle执行以下内容:

  • 通过查询数据字典来获得用户、模式对象、存储结构

  • 每当下达一次DDL(数据定义语言)声明,更新一次数据字典

数据字典存在数据库表中,可以使用sql访问。

数据字典定义

数据字典由以下类型的对象组成:

  • 基本表

这些底层表存储数据库信息,只有数据库可以访问及修改这些表。一般用户不会访问这些表,因为数据格式化存储,并进行了加密

  • 视图

这些视图将基本表中的数据解析为有用信息,例如用户,表名。这些视图包含基本表中所有对象的命名和描述。一些视图可以被所有用户访问,一些视图则只提供给管理员使用。

数据字典视图按照用户分组管理。通常来说,三组视图通过其前缀区分。每一组视图只提供给其对应的用户查看。如下表:

Prefix User Access Contents Notes

DBA_

Database administrators

All objects

Some DBA_ views have additional columns containing information useful to the administrator.

ALL_

All users

Objects to which user has privileges

Includes objects owned by user. These views obey the current set of enabled roles.

USER_

All users

Objects owned by user

Views with the prefix USER_ usually exclude the column OWNER. This column is implied in the USER_ views to be the user issuing the query.

不是所有的视图都包含前述三个用户组的数据。例如,数据字典只包含DBA_LOCK而不包含ALL_LOCK视图。

系统自带的DICTIONARY视图包括所有数据字典视图的名字和简短说明。例:

原文链接

Linux连接mysql报错Accessdenied for user

Linux连接mysql报错Accessdeniedforu

关键点:改密码。。。。

问题根源:安装mysql server后未设置管理员用户名密码。

转载原文:http://blog.csdn.net/love__coder/article/details/6937708

一、停原服务

二、mysqlsafe启动

三、登陆&改密码

四、重启服务

 

oraclesys用户和system用户

oraclesys用户和system用户

原文:http://zhidao.baidu.com/link?url=YaJaenfeP9leY2rJaZ4fY_Kqn7rnGxY4PIg5WkCy6lYjpUUqfZG0bv49YxoVCQzjesdake23h1fHVURrLwHWh_

system是数据库内置的一个普通管理员,你手工创建的任何用户在被授予dba角色后都跟这个用户差不多。
sys用数据库的超级用户,数据库内很多重要的东西(数据字典表、内置包、静态数据字典视图等)都属于这个用户,sys用户必须以sysdba身份登录。

以上就是2个用户的区别。

另外你说的,system用户as sysdba登录时和sys一样的问题:
system用户以sysdba身份登录时就是sys,准确地说,任何用户以sysdba身份登录时都是sys,这一点,你登陆后执行show user可以验证。

oracleORACLE_SID使用上的意义

oracleORACLE_SID使用上的意义

一、使用数据库本机连接数据库时标识数据库实例

    也就是说,当使用sqlplus连接数据库的时候,ORACLE_SID是什么,就连到那个数据库实例。跟@的实例没有关系

二、ORACLE_SID用于数据库与操作系统交互

三、oracle_name与ORACLE_SID一一对应(instance_name是数据库参数)

参考:

http://wenku.baidu.com/link?url=7UR0ATcqpyftH-v4NGWKo_M1hPEkq12_GOvmCH8Vo8kjnKQgXfck4GBWzbkj8HNLYREHj2dqFup5yWuCDTZM3BfIENyW1jNVJJpkmv7Un_W

http://blog.csdn.net/studyvcmfc/article/details/5321073