소스 검색

添加 db 初始化, 备份, 还原相关脚本

reghao 3 주 전
부모
커밋
39ce9e8956
4개의 변경된 파일218개의 추가작업 그리고 0개의 파일을 삭제
  1. 31 0
      db/exec_tnb_backup.sh
  2. 38 0
      db/exec_tnb_backup_restore.sh
  3. 36 0
      db/exec_tnb_dump.sh
  4. 113 0
      db/exec_tnb_init.sh

+ 31 - 0
db/exec_tnb_backup.sh

@@ -0,0 +1,31 @@
+#!/bin/bash
+
+###############################################################################
+# 备份整个数据库结构和数据
+###############################################################################
+
+base_dir='/home/reghao/data/bak/'
+dest_dir=${base_dir}/`date +'%Y%m%d'`
+mkdir -p ${dest_dir}
+cd ${dest_dir}
+
+host='192.168.0.209'
+username='test'
+password='Test_123456'
+db1='tnb_account_tdb'
+db2='tnb_content_tdb'
+db3='tnb_oss_tdb'
+db4='nacos_config'
+for((i=1; i<=4; i++));
+do
+    db_name=$(eval echo \${db$i})
+    echo "dump ${db_name} at "`date +'%Y-%m-%d %H:%M:%S'`
+    # 导出整个数据库结构和数据
+	# mysqldump -h${host} -u${username} -p${password} --lock-all-tables --flush-logs ${db_name} > ${db_name}.sql
+    docker exec -i mysql80 mysqldump -h${host} -u${username} -p${password} --lock-all-tables --flush-logs --set-gtid-purged=OFF ${db_name} > ${db_name}.sql
+    echo "${db_name} data dumped at "`date +'%Y-%m-%d %H:%M:%S'`
+done
+
+# 导出单个表结构和数据
+# docker exec -i mysql80 mysqldump -h${host} -u${username} -p${password} --lock-all-tables --flush-logs --set-gtid-purged=off ${db1} vod_video_post > vod_video_post1.sql
+# docker exec -i mysql80 mysql -h${host} -u${username} -p${password} ${db1} < vod_video_post1.sql

+ 38 - 0
db/exec_tnb_backup_restore.sh

@@ -0,0 +1,38 @@
+#!/bin/bash
+
+###############################################################################
+# 还原整个数据库数据
+###############################################################################
+
+base_dir='/home/reghao/data/bak/20260523/'
+cd ${base_dir}
+
+host='192.168.0.209'
+username='test'
+password='Test_123456'
+
+db1='tnb_account_tdb'
+db2='tnb_content_tdb'
+db3='tnb_oss_tdb'
+db4='nacos_config'
+
+# 还原整个数据库数据
+echo "restore ${db1} at "`date +'%Y-%m-%d %H:%M:%S'`
+# mysql -h${host} -u${username} -p${password} ${db1} < ${db1}.sql
+docker exec -i mysql80 mysql -h${host} -u${username} -p${password} ${db1} < ${db1}.sql
+echo "${db1} data restored at "`date +'%Y-%m-%d %H:%M:%S'`
+
+echo "restore ${db2} at "`date +'%Y-%m-%d %H:%M:%S'`
+# mysql -h${host} -u${username} -p${password} ${db2} < ${db2}.sql
+docker exec -i mysql80 mysql -h${host} -u${username} -p${password} ${db2} < ${db2}.sql
+echo "${db2} data restored at "`date +'%Y-%m-%d %H:%M:%S'`
+
+echo "restore ${db3} at "`date +'%Y-%m-%d %H:%M:%S'`
+# mysql -h${host} -u${username} -p${password} ${db3} < ${db3}.sql
+docker exec -i mysql80 mysql -h${host} -u${username} -p${password} ${db3} < ${db3}.sql
+echo "${db3} data restored at "`date +'%Y-%m-%d %H:%M:%S'`
+
+echo "restore ${db4} at "`date +'%Y-%m-%d %H:%M:%S'`
+# mysql -h${host} -u${username} -p${password} ${db4} < ${db4}.sql
+docker exec -i mysql80 mysql -h${host} -u${username} -p${password} ${db4} < ${db4}.sql
+echo "${db4} data restored at "`date +'%Y-%m-%d %H:%M:%S'`

+ 36 - 0
db/exec_tnb_dump.sh

@@ -0,0 +1,36 @@
+#!/bin/bash
+
+base_dir='/home/reghao/Dropbox/tnb'
+dest_dir='/home/reghao/Dropbox/tnb1'
+cd ${base_dir}
+
+#######################################################################################################################
+# 导出数据库
+#######################################################################################################################
+host='192.168.0.209'
+username='test'
+password='Test_123456'
+db1='tnb_account_tdb'
+db2='tnb_content_tdb'
+db3='tnb_oss_tdb'
+db4='nacos_config'
+
+# 导出数据库结构
+mysqldump -h${host} -u${username} -p${password} --lock-all-tables --flush-logs --set-gtid-purged=off -d ${db1} > ${db1}.sql
+mysqldump -h${host} -u${username} -p${password} --lock-all-tables --flush-logs --set-gtid-purged=off -d ${db2} > ${db2}.sql
+mysqldump -h${host} -u${username} -p${password} --lock-all-tables --flush-logs --set-gtid-purged=off -d ${db3} > ${db3}.sql
+mysqldump -h${host} -u${username} -p${password} --lock-all-tables --flush-logs --set-gtid-purged=off -d ${db4} > ${db4}.sql
+
+# 导出表数据
+mysqldump -h${host} -u${username} -p${password} --lock-all-tables --flush-logs --set-gtid-purged=off ${db1} user_registry > user_registry.sql
+mysqldump -h${host} -u${username} -p${password} --lock-all-tables --flush-logs --set-gtid-purged=off ${db1} user_vip_plan > user_vip_plan.sql
+
+mysqldump -h${host} -u${username} -p${password} --lock-all-tables --flush-logs --set-gtid-purged=off ${db2} file_store_config > file_store_config.sql
+mysqldump -h${host} -u${username} -p${password} --lock-all-tables --flush-logs --set-gtid-purged=off ${db2} vod_video_category > vod_video_category.sql
+
+mysqldump -h${host} -u${username} -p${password} --lock-all-tables --flush-logs --set-gtid-purged=off ${db3} file_store_node > file_store_node.sql
+mysqldump -h${host} -u${username} -p${password} --lock-all-tables --flush-logs --set-gtid-purged=off ${db3} file_store_volumes > file_store_volumes.sql
+mysqldump -h${host} -u${username} -p${password} --lock-all-tables --flush-logs --set-gtid-purged=off ${db3} file_upload_channel > file_upload_channel.sql
+mysqldump -h${host} -u${username} -p${password} --lock-all-tables --flush-logs --set-gtid-purged=off ${db3} file_user_key > file_user_key.sql
+mysqldump -h${host} -u${username} -p${password} --lock-all-tables --flush-logs --set-gtid-purged=off ${db3} file_user_node > file_user_node.sql
+mysqldump -h${host} -u${username} -p${password} --lock-all-tables --flush-logs --set-gtid-purged=off ${db3} file_meta --where="file_type=1000" > file_meta.sql

+ 113 - 0
db/exec_tnb_init.sh

@@ -0,0 +1,113 @@
+#!/bin/bash
+
+sql_dir='/home/reghao/Dropbox/sql/'
+# host='127.0.0.1'
+host='192.168.0.211'
+username='test'
+password='Test_123456'
+env_dest='rdb'
+env_src='rdb'
+
+db1='tnb_account_'${env_dest}
+db2='tnb_content_'${env_dest}
+db3='tnb_oss_'${env_dest}
+db4='nacos_config'
+
+#######################################################################################################################
+# 删除已存在的数据库
+#######################################################################################################################
+sql1="DROP DATABASE IF EXISTS ${db1};"
+sql2="DROP DATABASE IF EXISTS ${db2};"
+sql3="DROP DATABASE IF EXISTS ${db3};"
+sql4="DROP DATABASE IF EXISTS ${db4};"
+
+echo 'drop database if exists...'
+# mysql -h${host} -u${username} -p${password} << EOF
+# ${sql1}
+# ${sql2}
+# ${sql3}
+# ${sql4}
+# EOF
+docker exec -it mysql80 mysql -h${host} -u${username} -p${password} -e "${sql1}"
+docker exec -it mysql80 mysql -h${host} -u${username} -p${password} -e "${sql2}"
+docker exec -it mysql80 mysql -h${host} -u${username} -p${password} -e "${sql3}"
+docker exec -it mysql80 mysql -h${host} -u${username} -p${password} -e "${sql4}"
+
+#######################################################################################################################
+# 创建数据库
+#######################################################################################################################
+sql1="CREATE DATABASE ${db1} DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;"
+sql2="CREATE DATABASE ${db2} DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;"
+sql3="CREATE DATABASE ${db3} DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;"
+sql4="CREATE DATABASE ${db4} DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;"
+
+echo 'create database...'
+# mysql -h${host} -u${username} -p${password} << EOF
+# ${sql1}
+# ${sql2}
+# ${sql3}
+# ${sql4}
+# EOF
+docker exec -it mysql80 mysql -h${host} -u${username} -p${password} -e "${sql1}"
+docker exec -it mysql80 mysql -h${host} -u${username} -p${password} -e "${sql2}"
+docker exec -it mysql80 mysql -h${host} -u${username} -p${password} -e "${sql3}"
+docker exec -it mysql80 mysql -h${host} -u${username} -p${password} -e "${sql4}"
+
+#######################################################################################################################
+# 初始化数据库
+#######################################################################################################################
+cd ${sql_dir}
+db11='tnb_account_'${env_src}
+db12='tnb_content_'${env_src}
+db13='tnb_oss_'${env_src}
+db14='nacos_config'
+
+echo 'import database data...'
+# mysql -h${host} -u${username} -p${password} ${db11} < ${db1}.sql
+# mysql -h${host} -u${username} -p${password} ${db21} < ${db2}.sql
+# mysql -h${host} -u${username} -p${password} ${db31} < ${db3}.sql
+# mysql -h${host} -u${username} -p${password} ${db41} < ${db4}.sql
+docker exec -i mysql80 mysql -h${host} -u${username} -p${password} ${db1} < ${db11}.sql
+docker exec -i mysql80 mysql -h${host} -u${username} -p${password} ${db2} < ${db12}.sql
+docker exec -i mysql80 mysql -h${host} -u${username} -p${password} ${db3} < ${db13}.sql
+docker exec -i mysql80 mysql -h${host} -u${username} -p${password} ${db4} < ${db14}.sql
+
+#######################################################################################################################
+# 清空数据表
+#######################################################################################################################
+sql1a="select CONCAT('truncate table tnb_account_tdb.',TABLE_NAME,';') FROM information_schema.TABLES WHERE TABLE_SCHEMA='tnb_account_tdb'"
+sql2a="select CONCAT('truncate table tnb_content_tdb.',TABLE_NAME,';') FROM information_schema.TABLES WHERE TABLE_SCHEMA='tnb_content_tdb'"
+sql3a="select CONCAT('truncate table reghao_bnt_tdb.',TABLE_NAME,';') FROM information_schema.TABLES WHERE TABLE_SCHEMA='reghao_bnt_tdb'"
+sql4a="select CONCAT('truncate table reghao_oss_tdb.',TABLE_NAME,';') FROM information_schema.TABLES WHERE TABLE_SCHEMA='reghao_oss_tdb'"
+
+echo 'truncate database tables...'
+result1a=$(mysql -h${host} -u${username} -p${password} -s -e "${sql1a}")
+mysql -h${host} -u${username} -p${password} -s -e "${result1a}"
+
+result2a=$(mysql -h${host} -u${username} -p${password} -s -e "${sql2a}")
+mysql -h${host} -u${username} -p${password} -s -e "${result2a}"
+
+result3a=$(mysql -h${host} -u${username} -p${password} -s -e "${sql3a}")
+result3a1="SET FOREIGN_KEY_CHECKS = 0;"${result3a}"SET FOREIGN_KEY_CHECKS = 1;"
+mysql -h${host} -u${username} -p${password} -s -e "${result3a1}"
+
+result4a=$(mysql -h${host} -u${username} -p${password} -s -e "${sql4a}")
+mysql -h${host} -u${username} -p${password} -s -e "${result4a}"
+
+#######################################################################################################################
+# 还原表数据到数据库
+#######################################################################################################################
+echo 'import table data...'
+mysql -h${host} -u${username} -p${password} ${db11} < user_registry.sql
+
+mysql -h${host} -u${username} -p${password} ${db21} < file_store_config.sql
+mysql -h${host} -u${username} -p${password} ${db21} < vod_video_category.sql
+
+mysql -h${host} -u${username} -p${password} ${db31} < file_store_node.sql
+mysql -h${host} -u${username} -p${password} ${db31} < file_store_volumes.sql
+mysql -h${host} -u${username} -p${password} ${db31} < file_upload_channel.sql
+mysql -h${host} -u${username} -p${password} ${db31} < file_user_key.sql
+mysql -h${host} -u${username} -p${password} ${db31} < file_user_node.sql
+mysql -h${host} -u${username} -p${password} ${db31} < file_meta.sql
+
+echo 'database init done...'