Мне нужно создать частичную реплику производственной базы данных (только экспортировать пару таблиц и представление, которое выравнивает БД. У него будет 100 столбцов и миллионы строк.) Как запланированное задание, которое может выполняться каждые 24 часа илибо воссоздать или синхронизировать данные.Я не эксперт по PowerShell или использованию MySQL, но вот базовый подход, который я предложил:
# Core settings
$mysqlpath = "C:\Program Files\MySQL\MySQL Server 5.7\bin"
$backuppath = <my_backup_path>
$config = <config_file_location>
$database = "source_database"
$target_database = "target_database"
$errorLog = <error_log_location>
$tables_to_backup = "<tables_views_passed_using_variable>"
$timestamp = Get-Date -format yyyyMMddHHmmss
$backupfile = $backuppath + $database + "_" + $timestamp +".sql"
CD $mysqlpath
# Take the backup of the tables
.\mysqldump.exe --defaults-extra-file=$config --log-error=$errorLog --result-file=$backupfile $database --tables $tables_to_backup
И вот где мои проблемы / вопросы:
1) Как пройтинесколько имен таблиц через переменную powershell?Если я непосредственно ввожу имя таблицы в строку с командой, она работает нормально, но если я использую переменную, она выдает ошибку, говоря, что таблица не найдена (она рассматривает несколько имен таблиц как одну таблицу).
2) Какможно использовать экспортированный резервный файл sql для создания базы данных?Будет ли это работать?
.\mysql --defaults-extra-file=$config --log-error=$errorLog $target_database < $backupfile
3) Как передать имя базы данных, которая будет создана при выполнении второго оператора mysql?
4) Это связано с производительностью - можетэта работа с представлением, о котором я говорил, - он выравнивает базу данных и, вероятно, будет содержать много данных.
Любая помощь / руководство будут высоко оценены.