MySql数据库迁移

时间:2016-02-01 13:24:50

标签: mysql database google-cloud-sql

我们有一个包含大约4亿条记录的大型MySql表,它运行在google cloud sql版本1(MySql版本5.5)上。

现在google已经推出了新版本的cloud sql(MySql 5.6版),因此我们希望将数据库迁移到这个新的sql版本中。这个新版本仅适用于新实例。这意味着版本1在机器1上,版本2在机器2上。

在此过程中,我们也进行了少量架构更改,请检查以下内容。

旧架构

CREATE TABLE page_views_old (
  domain varchar(50) DEFAULT NULL,
  guid varchar(100) DEFAULT NULL,
  sid varchar(100) DEFAULT NULL,
  url varchar(2500) DEFAULT NULL,
  ip varchar(20) DEFAULT NULL,
  is_new varchar(20) DEFAULT NULL,
  ref varchar(2500) DEFAULT NULL,
  user_agent varchar(255) DEFAULT NULL,
  stats_time datetime DEFAULT NULL,
  country varchar(50) DEFAULT NULL,
  region varchar(50) DEFAULT NULL,
  city varchar(50) DEFAULT NULL,
  city_lat_long varchar(50) DEFAULT NULL,
  email varchar(100) DEFAULT NULL
)

新架构

CREATE TABLE page_views_new (
  domain varchar(50) DEFAULT NULL,
  guid binary(16) NOT NULL,
  sid binary(16) NOT NULL,
  url varchar(2500) DEFAULT NULL,
  ip varbinary(16) NOT NULL,
  is_new tinyint(4) NOT NULL,
  ref varchar(2500) DEFAULT NULL,
  user_agent varchar(255) DEFAULT NULL,
  stats_time datetime DEFAULT NULL,
  country char(2) NOT NULL,
  region varchar(6) NOT NULL,
  city varchar(50) DEFAULT NULL,
  city_lat_long varchar(50) DEFAULT NULL,
  email varchar(100) DEFAULT NULL,
  id int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (id)
)

如上所述,我们将数据类型varchar更改为二进制,将varchar更改为varbinary,将varchar更改为tinyint,将ip更改为二进制等。所以我的问题是将这个数据库加载到新实例的最佳方法是什么。我在这里没有提到我们也需要添加一些索引。

我解决这个问题的方法

1.获取完整数据库的转储。

2.进入新实例。

3.使用alter table语句逐个修改列。

4.让它活着。

请问您能说明这种方法是否存在任何问题,并建议我采用最佳方法。请提及架构是否存在任何问题。

由于

0 个答案:

没有答案