您好,登錄后才能下訂單哦!
不知道大家之前對類似如何實現遷移RDS for MySQL數據到本地 MySQL的文章有無了解,今天我在這里給大家再簡單的講講。感興趣的話就一起來看看正文部分吧,相信看完如何實現遷移RDS for MySQL數據到本地 MySQL你一定會有所收獲的。
首先需要下載跟線上阿里云的數據庫同樣版本的數據庫安裝包或者說二進制編碼包(已編譯,可以直接使用)
鏈接如下:
http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
解壓縮:
root@ubuntu:/data#tar -xzvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
root@ubuntu:/data# mv mysql-5.6.36-linux-glibc2.5-x86_64 mysql
root@ubuntu:/data#cd mysql
root@ubuntu:/data/mysql#
root@ubuntu:/data/mysql# ls //解壓縮出來的文件如下所示,不用源碼編譯安裝,直接使用即可;
bin COPYING data docs include lib man my.cnf my-new.cnf mysql-test README scripts share sql-bench support-files
接下來就是解壓縮線上數據庫的備份文件:
root@ubuntu:/data/mysql#cd ../
root@ubuntu:/data# tar -xzvf h7351_data_20170804032.tar.gz -C /data/mariadb/
待得解壓縮完成后,恢復數據文件:
首先需要安裝innobackupex命令,所以要安裝這個包文件:
root@ubuntu:/data#apt-get install percona-xtrabackup
root@ubuntu:/data#innobackupex --defaults-file=./backup-my.cnf --apply-log --ibbackup xtrabackup_56 ./ //必須要加上后面的--ibbackup xtrabackup_56,我這里是56,因為我的數據庫版本是5.6版本的;
最后系統顯示 innobackupex: completed OK!,則數據恢復成功。
數據恢復成功之后,修改恢復數據mariadb目錄下文件(包含mariadb目錄)的屬主和屬組:
新建mysql用戶:
root@ubuntu:/data#useradd mysql
root@ubuntu:/data# chown -R mysql.mysql mariadb/ //修改解壓縮后的數據文件的屬主和屬組,以級聯的方式,把mariadb目錄下的所有文件修改屬主和屬組為mysql
初始化之前需要修改配置文件;
root@ubuntu:~#cd /data/mariadb //數據庫的數據文件解壓縮的目錄
root@ubuntu:/data/mysql/scripts# cd /data/mariadb/
root@ubuntu:/data/mariadb# vi backup-my.cnf //我的配置文件如下:
把將解壓文件 backup-my.cnf 中的 innodb_fast_checksum、innodb_page_size、innodb_log_block_size 注釋掉,并且添加 datadir=/data/mariadb
# This MySQL options file was generated by innobackupex.
# The MySQL server
[mysqld]
innodb_checksum_algorithm=innodb
#innodb_log_checksum_algorithm=innodb
innodb_data_file_path=ibdata1:200M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=1572864000
#innodb_fast_checksum=false
#innodb_page_size=16384
#innodb_log_block_size=512
innodb_undo_directory=.
innodb_undo_tablespaces=0
datadir=/data/mariadb
#rds_encrypt_data=false
#innodb_encrypt_algorithm=aes_128_ecb
初始化操作:
進入剛解壓的mysql安裝的位置/data/mysql
root@ubuntu:~# cd /data/mysql/
root@ubuntu:/data/mysql# ls
bin COPYING data docs include lib man my.cnf my-new.cnf mysql-test README scripts share sql-bench support-files
root@ubuntu:/data/mysql# cd scripts/
root@ubuntu:/data/mysql/scripts#
root@ubuntu:/data/mysql/scripts# ./mysql_install_db --user=mysql --datadir=/data/mariadb --basedir=/data/mysql --defaults-file=/data/mariadb/backup-my.cnf //這里需要指定配置文件,不然它會在初始化的時候去到/etc/目錄下查找
出現OK即表示初始化成功;
接下來就是創建快捷方式啦:
root@ubuntu:/data/mariadb# cd /data/mysql/support-files/ //進入mysql安裝位置的這個目錄
root@ubuntu:/data/mysql/support-files# ls
binary-configure magic my-default.cnf mysqld_multi.server mysql-log-rotate mysql.server
root@ubuntu:/data/mysql/support-files# cp mysql.server /etc/init.d/mysqld //復制啟動文件到/etc/init.d/目錄下
root@ubuntu:/data/mysql/support-files#vi /etc/init.d/mysqld //做一下修改,具體修改的位置如下:
basedir=/data/mysql
datadir=/data/mariadb
修改完成后保存退出,還需要注意一個地方,就是配置文件,如果啟動的時候不指定配置文件,那么它就會調用/etc/my.cnf文件,所以需要指定,有兩種方法,一種是直接在/etc/init.d/mysqld中修改,如:
#conf=/etc/my.cnf
conf=/data/mariadb/backup-my.cnf
另一種方法就是:直接復制解壓文件mariadb目錄下的backup-my.cnf文件到/etc/my.cnf,如
root@ubuntu:/data/mariadb# cp backup-my.cnf /etc/my.cnf //這樣就可以不用修改/etc/init.d/mysqld文件中的conf
啟動mysql:
root@ubuntu:/data/mariadb#/etc/init.d/mysqld start //未報錯,即表示是正常的
root@ubuntu:/data/mariadb#ps aux | grep mysql //查看是否有mysql進程
root 5706 0.0 0.0 4464 1624 pts/0 S 09:53 0:00 /bin/sh /data/mysql/bin/mysqld_safe --datadir=/data/mariadb --pid-file=/data/mariadb/ubuntu.pid
mysql 5900 0.3 7.2 1572664 586972 pts/0 Sl 09:53 0:08 /data/mysql/bin/mysqld --basedir=/data/mysql --datadir=/data/mariadb --plugin-dir=/data/mysql/lib/plugin --user=mysql --log-error=/data/mariadb/ubuntu.err --pid-file=/data/mariadb/ubuntu.pid
root 6009 0.0 0.0 13464 2124 pts/1 S+ 10:29 0:00 grep --color=auto mysql
root@ubuntu:/data/mariadb#
附上阿里云文檔上的操作:
操作步驟
本例以本地云服務器為 RHEL6/x64 系統,備份文件存儲路徑為 /home/mysql/ 為例。
下載云數據庫 物理備份文件 并上傳至目標云服務器。備份文件獲取方法請參見 下載備份數據。如果目標云服務器可以訪問源實例,您也可以使用 wegt "url" 下載備份文件。其中 url 為備份文件下載地址。
切換路徑到備份文件所在路徑。
cd /home/mysql/
解壓備份文件。
tar vizxf filename.tar.gz
其中,filename.tar.gz 為備份文件名。
檢查解壓后文件包含的數據庫是否正確。
cd filename/
ll
系統顯示如下,其中 db0dz1rv11f44yg2、mysql 和 test 為云數據庫中存在的數據庫。
-rw-r--r-- 1 root root 269 Aug 19 18:15 backup-my.cnf
drwxr-xr-x 2 root root 4096 Aug 21 10:31 db0dz1rv11f44yg2
-rw-rw---- 1 root root 209715200 Aug 7 10:44 ibdata1
drwxr-xr-x 2 root root 4096 Aug 21 10:31 mysql
drwxr-xr-x 2 root root 4096 Aug 21 10:31 test
-rw-r--r-- 1 root root 10 Aug 19 18:15 xtrabackup_binary
-rw-r--r-- 1 root root 23 Aug 19 18:15 xtrabackup_binlog_info
-rw-r--r-- 1 root root 77 Aug 19 18:15 xtrabackup_checkpoints
-rw-r--r-- 1 root root 2560 Aug 19 18:15 xtrabackup_logfile
-rw-r--r-- 1 root root 72 Aug 19 18:15 xtrabackup_slave_info
恢復數據文件。
innobackupex --defaults-file=./backup-my.cnf --apply-log ./
系統顯示 innobackupex: completed OK!,則數據恢復成功。
修改配置文件。將解壓文件 backup-my.cnf 中的 innodb_fast_checksum、innodb_page_size、innodb_log_block_size 注釋掉,并且添加 datadir=/home/mysql,如下所示。
# This MySQL options file was generated by innobackupex-1.5.1.
# The MySQL Server
[mysqld]
innodb_data_file_path=ibdata1:200M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=524288000
#innodb_fast_checksum=0
#innodb_page_size=16364
#innodb_log_block_size=512
datadir=/home/mysql/
重裝 MySQL 系統庫,取得數據庫的 root 權限。
rm -rf mysql
mysql_install_db --user=mysql --datadir=/home/mysql/
系統顯示如下,則 mysql 系統庫重裝成功。
Installing MySQL system table...
OK
Filling help table...
OK
修改文件屬主。
chown -R mysql:mysql /home/mysql/
啟動 mysqld 進程。
mysqld_safe --defaults-file=/home/mysql/backup-my.cnf &
使用客戶端登錄數據庫。
mysql –u root –p
驗證數據庫是否完整。
show databases;
系統顯示入選,則數據庫恢復成功。
+--------------------+
| Database |
+--------------------+
| information_schema |
| db0dz1rv11f44yg2 |
| mysql |
| performance_schema |
| test |
+--------------------+
利用邏輯備份文件導出
本例以本地云服務器為 RHEL6/x64 系統,備份文件存儲路徑為 /home/mysql/ 為例。
操作步驟
下載云數據庫 邏輯備份文件 并上傳至目標云服務器。備份文件獲取方法請參見 下載備份數據。如果目標云服務器可以訪問源實例,您也可以使用 wegt "url" 下載備份文件。其中 url 為備份文件下載地址。
切換路徑到備份文件所在路徑。
cd /home/mysql/
解壓備份文件。
tar vizxf filename.tar.gz
其中,filename.tar.gz 為備份文件名。
解壓 sql 壓縮文件。
gunzip filename.sql.gz
其中,filename.sql.gz 為 sql 壓縮文件名。
執行邏輯導入操作,將數據導入目標數據庫。
mysql -u userName -p -h hostName -P port dbName < filename.sql
其中,filename.sql 為解壓后的 sql 文件。
看完如何實現遷移RDS for MySQL數據到本地 MySQL這篇文章,大家覺得怎么樣?如果想要了解更多相關,可以繼續關注我們的行業資訊板塊。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。