1、创建syncData.sh脚本
#!/bin/bash
. /etc/profile
# 读库的IP
r_ip="127.0.0.1"
# 读库的端口
r_port="3306"
# 读库的数据库名称
r_dbname="datax"
# 读库的账号
r_username="root"
# 读库的密码
r_password="123456"
# 写库的IP
w_ip="127.0.0.1"
# 写库的端口
w_port="3306"
# 写库的数据库名称
w_dbname="datax2"
# 写库的账号
w_username="root"
# 写库的密码
w_password="123456"
# DataX全量同步(多个文件直接写多个执行命令)
python /opt/datax/bin/datax.py /opt/datax/job/table1.json -p "-Dr_ip=$r_ip -Dr_port=$r_port -Dr_dbname=$r_dbname -Dr_username=$r_username -Dr_password=$r_password -Dw_ip=$w_ip -Dw_port=$w_port -Dw_dbname=$w_dbname -Dw_username=$w_username -Dw_password=$w_password"
python /opt/datax/bin/datax.py /opt/datax/job/table2.json -p "-Dr_ip=$r_ip -Dr_port=$r_port -Dr_dbname=$r_dbname -Dr_username=$r_username -Dr_password=$r_password -Dw_ip=$w_ip -Dw_port=$w_port -Dw_dbname=$w_dbname -Dw_username=$w_username -Dw_password=$w_password"
赋权:
chmod 777 syncData.sh
table1.json示例如下:
{
"job": {
"content": [
{
"reader": {
"name": "oraclereader",
"parameter": {
"column": ["ID","APP_NAME","DISPLAY_NAME"],
"connection": [
{
"jdbcUrl": ["jdbc:oracle:thin:@${r_ip}:${r_port}:ORCL"],
"table": ["T_APP"]
}
],
"password": "${r_password}",
"username": "${r_username}"
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"column": ["id","app_name","display_name"],
"connection": [
{
"jdbcUrl": "jdbc:mysql://${w_ip}:${w_port}/${w_dbname}",
"table": ["t_app"]
}
],
"password": "${w_username}",
"username": "${w_password}",
"preSql":[],
"session":[],
"writeMode": "insert"
}
}
}
],
"setting": {
"speed": {
"channel": "6"
}
}
}
}
然后执行sh文件即可
./syncData.sh
编写定时任务
crontab -e
每天5点执行,并输出到日志文件中
0 5 * * * /opt/datax/bin/syncData.sh > /opt/datax/log/syncData_$(date +\%Y\%m\%d).log 2>&1