Data Migration to AWS RDS - 数据库迁移总结
来源:互联网 发布:c语言生成什么文件 编辑:程序博客网 时间:2024/05/06 19:27
前言:
这篇主要记录下迁移数据到RDS中的一些问题和解决方法,希望帮助后面的小伙伴提高效率。
Tips:
1、明确RDS虽然有副本,但恢复需要重建db_instance,这意味着要改URL,影响应用配置;
2、事先要确定好存储空间是否够用,避免导入一半遇到存储问题;
3、导入的两种方法,"mysql -e << a.sql" 和 “ source a.sql"两种方式 ,两种有些差别,遇错中断不中断啥的,注意一下;
4、对于innodb,“select sum(table_rows) from tables where TABLE_SCHEMA='xsydb3'” 得到的是一个近似值,下面会分享一个按表统计记录数的脚本;
5、重命名database是件很麻烦的事;
6、中国区暂不支持SSE;
脚本1:db_count.sh
db=$1
com="mysql -hXXXX.XXXX.rds.cn-north-1.amazonaws.com.cn -uMMM -p $db "
sum=0
array=(`$com -e "show tables;"|grep -v Tables_in|awk -F "|" '{printf $1 " "}'`)
for i in "${array[@]}"
do
c=`$com -e "select count(*) from $i"|grep -o '[0-9]\+'`
sum=`expr $sum + $c`
echo $i: $c
done
echo "total num of $db: $sum"
脚本2:db_import.sh
#!/bin/sh
#ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;
db=$1
dbfile=$2
imeron=`date`
dumpfile="/mnt/data/info/$dbfile"
ddl="set names utf8; "
#ddl="$ddl set global net_buffer_length=1000000;"
#ddl="$ddl set global max_allowed_packet=1000000000; "
ddl="$ddl SET foreign_key_checks = 0; "
ddl="$ddl SET UNIQUE_CHECKS = 0; "
ddl="$ddl SET AUTOCOMMIT = 0; "
ddl="$ddl CREATE DATABASE IF NOT EXISTS $db; "
ddl="$ddl ALTER DATABASE $db CHARACTER SET utf8 COLLATE utf8_general_ci; "
ddl="$ddl USE $db; "
ddl="$ddl source $dumpfile; "
ddl="$ddl SET foreign_key_checks = 1; "
ddl="$ddl SET UNIQUE_CHECKS = 1; "
ddl="$ddl SET AUTOCOMMIT = 1; "
ddl="$ddl COMMIT ; "
echo "====$db=== Import started"
mysql -hXXXXX.XXXX.rds.cn-north-1.amazonaws.com.cn -uUSER -p -e "$ddl"
# store end date to a variable
imeron2=`date`
echo "====$db=== Start import:$imeron"
echo "====$db=== End import:$imeron2"
com="mysql -hXXXXX.XXXX.rds.cn-north-1.amazonaws.com.cn -uUSER -p $db "
sum=0
array=(`$com -e "show tables;"|grep -v Tables_in|awk -F "|" '{printf $1 " "}'`)
for i in "${array[@]}"
do
c=`$com -e "select count(*) from $i"|grep -o '[0-9]\+'`
sum=`expr $sum + $c`
echo $i: $c
done
echo "total num of $db: $sum"
脚本3:db_rename.sh
#!/bin/bash
# Rename the database in RDS
# example: sh .r sales_db_sales sales_db_sales_001
db1=$1
db2=$2
com="mysql -hXXXXX.XXXX.rds.cn-north-1.amazonaws.com.cn -uUSER -p "
$com -e "CREATE DATABASE IF NOT EXISTS $db2 "
array=(`$com $db1 -e "show tables;"|grep -v Tables_in|awk -F "|" '{printf $1 " "}'`)
for table in "${array[@]}"
do
$com -e "RENAME TABLE \`$db1\`.\`$table\` to \`$db2\`.\`$table\`"
done
******* 爱分享 ******
- Data Migration to AWS RDS - 数据库迁移总结
- AWS RDS Rename DataBase - RDS重命名数据库
- migration数据库迁移
- 数据库迁移工具DataX-Migration
- RTC Repository数据迁移 (Data Migration)
- Converting Your AWS EC2 & RDS Instances To Amazon VPC
- AWS RDS MySQL 从外部 数据库同步数据到RDS slave环境搭建
- Core Data 学习:轻量级版本迁移(Lightweight Migration)
- 数据库迁移/数据库版本管理(Database Migration/VCS for database)
- Laravel数据库迁移(Database Migration)操作实例
- aws的rds导出问题
- Core Data--Data Migration
- 亚马逊AWS学习——为oracle类型的RDS数据库部署数据
- 【学习笔记】AWS体验之创建RDS实例/创建数据库支持中文编码
- 迁移文件(migration)
- oclint规则 Migration(迁移)
- rails 中的迁移Migration
- RDS (Radio Data System)
- 《快学Scala》 第2章 控制结构和函数
- 阅读《Android 从入门到精通》(6)——按钮
- javascript。。。。。。。
- 可以这样去理解group by和聚合函数
- caishuzi
- Data Migration to AWS RDS - 数据库迁移总结
- 9 Palindrome Number
- LeetCode_OJ【262】Trips and Users
- [BLE--Link Layer]Link层控制之连接参数请求
- 下划线命名法 vs 驼峰命名法
- oracle升级版本矩阵图
- [bash]sed流编辑器及其基本命令
- plus.storage.getItem异常(数字报错或页面跳转后参数值有缓存,不变化)
- nohup日志