久久久精品网站,成人伊人网,色吧av色av,亚洲AV永久无码精品秋霞电影影院

win10 1433

前沿拓展:


一、工具介紹1、功能描述

一句話,dbswitch工具提供源端數(shù)據(jù)庫(kù)向目的端數(shù)據(jù)庫(kù)的批量遷移同步功能,支持?jǐn)?shù)據(jù)的全量和增量方式同步。包括:

結(jié)構(gòu)遷移

支持字段類型、主鍵信息、建表語(yǔ)句等的轉(zhuǎn)換,并生成建表SQL語(yǔ)句。

支持基于正則表達(dá)式轉(zhuǎn)換的表名與字段名映射轉(zhuǎn)換。

數(shù)據(jù)同步。

基于JDBC的分批次讀取源端數(shù)據(jù)庫(kù)數(shù)據(jù),并基于insert/copy方式將數(shù)據(jù)分批次寫入目的數(shù)據(jù)庫(kù)。

支持有主鍵表的 增量變更同步 (變化數(shù)據(jù)計(jì)算Change Data Calculate)功能(千萬(wàn)級(jí)以上數(shù)據(jù)量的性能尚需在生產(chǎn)環(huán)境驗(yàn)證)

2、功能設(shè)計(jì)win10 1433

結(jié)構(gòu)設(shè)計(jì)模塊結(jié)構(gòu)設(shè)計(jì)模塊結(jié)構(gòu)功能└── dbswitch
├── dbswitch-common // dbswitch通用定義模塊
├── dbswitch-pgwriter // PostgreSQL的二進(jìn)制寫入封裝模塊
├── dbswitch-dbwriter // 數(shù)據(jù)庫(kù)的通用批量Insert封裝模塊
├── dbswitch-core // 數(shù)據(jù)庫(kù)元數(shù)據(jù)抽取與建表結(jié)構(gòu)語(yǔ)句轉(zhuǎn)換模塊
├── dbswitch-sql // 基于calcite的DML語(yǔ)句轉(zhuǎn)換與DDL拼接模塊
├── dbswitch-dbcommon // 數(shù)據(jù)庫(kù)**作通用封裝模塊
├── dbswitch-dbchange // 基于全量比對(duì)計(jì)算變更(變化量)數(shù)據(jù)模塊
├── dbswitch-dbsynch // 將dbchange模塊計(jì)算的變更數(shù)據(jù)同步入庫(kù)模塊
├── dbswitch-data // 工具入口模塊,讀取配置文件中的參數(shù)執(zhí)行異構(gòu)遷移同步
├── dbswitch-admin // 在以上模塊的基礎(chǔ)上引入Quartz的調(diào)度服務(wù)與接口
├── dbswitch-admin-ui // 基于Vue2的前段WEB交互頁(yè)面
├── package-tool // 基于maven-assembly-plugin插件的項(xiàng)目打包模塊二、編譯打包

本工具純Java語(yǔ)言開發(fā),代碼中的依賴全部來(lái)自于開源項(xiàng)目。

1、編譯打包環(huán)境要求:JDK:>=1.8 (建議用JDK 1.8)maven:>=3.6

Maven 倉(cāng)庫(kù)默認(rèn)在國(guó)外, 國(guó)內(nèi)使用難免很慢,可以更換為阿里云的倉(cāng)庫(kù)。 參考教程: 配置阿里云的倉(cāng)庫(kù)教程

編譯命令:

(1) windows下:

雙擊build.cmd腳本文件即可編譯打包

(2) Linux下:

git clone https://gitee.com/inrgihc/dbswitch.git
cd dbswitch/
sh ./build.sh

(3) Docker下:

git clone https://gitee.com/inrgihc/dbswitch.git
cd dbswitch/
sh ./docker-maven-build.sh

特別注意: 在Java9及以上版本默認(rèn)情況下不允許應(yīng)用程序查看來(lái)自JDK的所有類,但在dbswitch中利用反射計(jì)算對(duì)象的字節(jié)大小,所以需要在JVM啟動(dòng)時(shí)需要增加如下參數(shù):

–add-opens java.base/jdk.internal.loader=ALL-UNNAMED –add-opens jdk.zipfs/jdk.nio.zipfs=ALL-UNNAMED2、安裝部署

(1) 當(dāng)編譯打包命令執(zhí)行完成后,會(huì)在dbswitch/target/目錄下生成dbswitch-relase-x.x.x.tar.gz的打包文件,將文件拷貝到已安裝JRE的部署機(jī)器上解壓即可。

(2) 基于docker-compose提供linux聯(lián)網(wǎng)環(huán)境下的一鍵安裝,安裝命令見 發(fā)行版鏈接地址

文檔詳見: build-docker/install/README.md

三、工具使用

dbswitch工具提供基于conf/config.yml配置的dbswitch-data模塊啟動(dòng)方式和基于conf/application.yml的dbswitch-admin模塊的WEB端使用方式;

1、基于conf/config.yml配置的dbswitch-data模塊啟動(dòng)命令**作方式(1)、配置文件

配置文件信息請(qǐng)見部署包中的:conf/config.yml(注:也同時(shí)支持使用conf/config.properties配置文件名的properties格式),示例配置如下:

dbswitch:
source:
# source database connection information
## support MySQL/MariaDB/DB2/DM/Kingbase8/Oracle/SQLServer/PostgreSQL/Greenplum etc.
## support multiple source database connection
– url: jdbc:oracle:thin:@172.17.2.10:1521:ORCL
driver-class-name: 'oracle.jdbc.driver.OracleDriver'
username: 'system'
password: '123456'
# source database configuration parameters
## fetch size for query source database
fetch-size: 10000
## schema name for query source schemas, separate by ','
source-schema: 'TANG'
## table type which include or exclude,option: TABLE,VIEW
table-type: 'TABLE'
## table name include from table lists, separate by ','
source-includes: ''
## table name exclude from table lists, separate by ','
source-excludes: ''
## table name convert mapper by regular expression
regex-table-mapper:
– from-pattern: '^'
to-value: 'T_'
## columns name convert mapper by regular expression like regex-table-mapper
regex-column-mapper:

target:
# target database connection information
## Best support for Oracle/PostgreSQL/Greenplum/DM etc.
url: jdbc:postgresql://172.17.2.10:5432/test
driver-class-name: org.postgresql.Driver
username: tang
password: 123456
# target database configuration parameters
## schema name for create/insert table data
target-schema: public
## whether drop-create table when target table exist
target-drop: true
## whether create table support auto increment for primary key field
create-table-auto-increment: false
## whether use insert engine to write data for target database
## Only useful for PostgreSQL/Greenplum database
writer-engine-insert: false
## whether use change data synchronize to target database table
change-data-sync: true

配置參數(shù)

配置說(shuō)明

示例

備注

dbswitch.source[i].url

來(lái)源端JDBC連接的URL

jdbc:oracle:thin:@10.17.1.158:1521:ORCL

可為:oracle/mysql/mariadb/sqlserver/postgresql/db2/dm/kingbase8/highgo

dbswitch.source[i].driver-class-name

來(lái)源端數(shù)據(jù)庫(kù)的驅(qū)動(dòng)類名稱

oracle.jdbc.driver.OracleDriver

對(duì)應(yīng)數(shù)據(jù)庫(kù)的驅(qū)動(dòng)類

dbswitch.source[i].username

來(lái)源端連接帳號(hào)名

tangyibo

無(wú)

dbswitch.source[i].password

來(lái)源端連接帳號(hào)密碼

tangyibo

無(wú)

dbswitch.source[i].fetch-size

來(lái)源端數(shù)據(jù)庫(kù)查詢時(shí)的fetch_size設(shè)置

10000

需要大于100有效

dbswitch.source[i].source-schema

來(lái)源端的schema名稱

dbo,test

多個(gè)之間用英文逗號(hào)分隔

dbswitch.source[i].table-type

來(lái)源端表的類型

TABLE

可選值為:TABLE、VIEW ,分別代表物理表和試圖表

dbswitch.source[i].source-includes

來(lái)源端schema下的表中需要包含的表名稱

users1,orgs1

支持多個(gè)表(多個(gè)之間用英文逗號(hào)分隔);支持支持正則表達(dá)式(不能含有逗號(hào))

dbswitch.source[i].source-excludes

來(lái)源端schema下的表中需要過濾的表名稱

users,orgs

不包含的表名稱,多個(gè)之間用英文逗號(hào)分隔

dbswitch.source[i].regex-table-mapper

基于正則表達(dá)式的表名稱映射關(guān)系

[{"from-pattern": "^","to-value": "T_"}]

為list類型,元素存在順序關(guān)系

dbswitch.source[i].regex-column-mapper

基于正則表達(dá)式的字段名映射關(guān)系

[{"from-pattern": "#34;,"to-value": "_x"}]

為list類型,元素存在順序關(guān)系

dbswitch.target.url

目的端JDBC連接的URL

jdbc:postgresql://10.17.1.90:5432/study

可為:oracle/sqlserver/postgresql/greenplum,mysql/mariadb/db2/dm/kingbase8/highgo也支持,但字段類型兼容性問題比較多

dbswitch.target.driver-class-name

目的端 數(shù)據(jù)庫(kù)的驅(qū)動(dòng)類名稱

org.postgresql.Driver

對(duì)應(yīng)數(shù)據(jù)庫(kù)的驅(qū)動(dòng)類

dbswitch.target.username

目的端連接帳號(hào)名

study

無(wú)

dbswitch.target.password

目的端連接帳號(hào)密碼

123456

無(wú)

dbswitch.target.target-schema

目的端的schema名稱

public

目的端的schema名稱只能有且只有一個(gè)

dbswitch.target.target-drop

是否執(zhí)行先drop表第二create表命令,當(dāng)target.datasource-target.drop=true時(shí)有效

true

可選值為:true、false

dbswitch.target.create-table-auto-increment

是否執(zhí)啟用支持create表時(shí)主鍵自增

true

可選值為:true、false

dbswitch.target.writer-engine-insert

是否使用insert寫入數(shù)據(jù)

false

可選值為:true為insert寫入、false為copy寫入,只針對(duì)目的端數(shù)據(jù)庫(kù)為PostgreSQL/Greenplum的有效

dbswitch.target.change-data-sync

是否啟用增量變更同步,dbswitch.target.target-drop為false時(shí)且表有主鍵情況下有效,千萬(wàn)級(jí)以上數(shù)據(jù)量建議設(shè)為false

false

可選值為:true、false

注意:

(1)支持源端為多個(gè)數(shù)據(jù)源類型,如果dbswitch.source[i]為數(shù)組類型,i為編號(hào),從0開始的整數(shù);(2)如果dbswitch.source[i].source-includes不為空,則按照包含表的方式來(lái)執(zhí)行;(3)如果dbswitch.source[i].source-includes為空,則按照dbswitch.source[i].source-excludes排除表的方式來(lái)執(zhí)行。(4)如果dbswitch.target.target-drop=falsedbswitch.target.change-data-synch=true;時(shí)會(huì)對(duì)有主鍵表啟用增量變更方式同步(5)對(duì)于regex-table-mapperregex-column-mappe,為基于正則表達(dá)式替換的表名映射和字段名映射,均可以為空(代表原名映射,即源的表t_a映射到目的端也為t_a)

提示:如果要將源端所有表名(或者字段名)添加前綴,可以配置"from-pattern": "^","to-value": "T_";

(6)支持的數(shù)據(jù)庫(kù)產(chǎn)品及其JDBC驅(qū)動(dòng)連接示例如下:

MySQL/MariaDB數(shù)據(jù)庫(kù)

jdbc連接地址:jdbc:mysql://172.17.2.10:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&tinyInt1i**it=false&rewriteBatchedStatements=true&u**pression=true
jdbc驅(qū)動(dòng)名稱: com.mysql.jdbc.Driver

與:

jdbc連接地址:jdbc:mariadb://172.17.2.10:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&tinyInt1i**it=false&rewriteBatchedStatements=true&u**pression=true
jdbc驅(qū)動(dòng)名稱: org.mariadb.jdbc.Driver

Oracle數(shù)據(jù)庫(kù)

jdbc連接地址:jdbc:oracle:thin:@172.17.2.10:1521:ORCL 或 jdbc:oracle:thin:@//172.17.2.10:1521/ORCL
jdbc驅(qū)動(dòng)名稱:oracle.jdbc.driver.OracleDriver

SQL Server(>=2005)數(shù)據(jù)庫(kù)

jdbc連接地址:jdbc:sqlserver://172.17.2.10:1433;DatabaseName=test
jdbc驅(qū)動(dòng)名稱:com.microsoft.sqlserver.jdbc.SQLServerDriver

Sybase數(shù)據(jù)庫(kù)

jdbc連接地址:jdbc:sybase:Tds:172.17.2.10:5000/test
jdbc驅(qū)動(dòng)名稱:com.sybase.jdbc4.jdbc.SybDriver

PostgreSQL/Greenplum數(shù)據(jù)庫(kù)

jdbc連接地址:jdbc:postgresql://172.17.2.10:5432/test
jdbc驅(qū)動(dòng)名稱:org.postgresql.Driver

DB2數(shù)據(jù)庫(kù)

jdbc連接地址:jdbc:db2://172.17.2.10:50000/testdb:driverType=4;fullyMaterializeLobData=true;fullyMaterializeInputStreams=true;progressiveStreaming=2;progresssiveLocators=2;
jdbc驅(qū)動(dòng)名稱:com.ibm.db2.jcc.DB2Driver

達(dá)夢(mèng)DMDB數(shù)據(jù)庫(kù)

jdbc連接地址:jdbc:dm://172.17.2.10:5236
jdbc驅(qū)動(dòng)名稱:dm.jdbc.driver.DmDriver

人大金倉(cāng)Kingbase8數(shù)據(jù)庫(kù)

jdbc連接地址:jdbc:kingbase8://172.17.2.10:54321/MYTEST
jdbc驅(qū)動(dòng)名稱:com.kingbase8.Driver

神通Oscar數(shù)據(jù)庫(kù)

jdbc連接地址:jdbc:oscar://172.17.2.1:2003/OSRDB
jdbc驅(qū)動(dòng)名稱:com.oscar.Driver

南大通用GBase8a數(shù)據(jù)庫(kù)

jdbc連接地址:jdbc:gbase://172.17.2.1:5258/gbase
jdbc驅(qū)動(dòng)名稱:com.gbase.jdbc.Driver

翰高HighGo數(shù)據(jù)庫(kù)(可按PostgreSQL使用)

jdbc連接地址:jdbc:postgresql://172.17.2.10:5866/highgo
jdbc驅(qū)動(dòng)名稱:org.postgresql.Driver

Apache Hive數(shù)據(jù)庫(kù)

jdbc連接地址:jdbc:hive2://172.17.2.12:10000/default
jdbc驅(qū)動(dòng)名稱:org.apache.hive.jdbc.HiveDriver

注意:當(dāng)前只支持hive version 3.x的賬號(hào)密碼認(rèn)證方式。

SQLite數(shù)據(jù)庫(kù)

jdbc連接地址:jdbc:sqlite:/tmp/test.db 或者 jdbc:sqlite::resource:http://172.17.2.12:8080/test.db
jdbc驅(qū)動(dòng)名稱:org.sqlite.JDBC

注意:

(a) 本地文件方式:jdbc:sqlite:/tmp/test.db , 該方式適用于dbswitch為實(shí)體機(jī)器部署的場(chǎng)景。

(b) 遠(yuǎn)程文件方式: jdbc:sqlite::resource:http://172.17.2.12:8080/test.db ,該方式適用于容器方式部署的場(chǎng)景, 搭建文件服務(wù)器的方法可使 用如下docker方式快速部署(/home/sqlites為服務(wù)器上存放sqlite數(shù)據(jù)庫(kù)文件的目錄):

docker run -d –name http_file_server -p 8080:8080 -v /home/sqlites:/data inrgihc/http_file_server:latest

說(shuō)明:遠(yuǎn)程服務(wù)器文件將會(huì)被下載到本地System.getProperty("java.io.tmpdir")所指定的目錄下(linux為/tmp/,Windows為C:/temp/),并以 sqlite-jdbc-tmp-{XXX}.db的方式進(jìn)行文件命名,其中{XXX}為文件網(wǎng)絡(luò)地址(例如上述為http://192.168.31.57:8080/test.db) 的字符串哈希值, 如果本地文件已經(jīng)存在則不會(huì)再次進(jìn)行下載而是直接使用該文件(當(dāng)已經(jīng)下載過文件后,遠(yuǎn)程服務(wù)器即使關(guān)閉了,該sqlite的jdbc-url任然可 用,直至本地的sqlite-jdbc-tmp-XXX.db文件被人為手動(dòng)刪除)

(c) 不支持內(nèi)存及其他方式;本地文件方式可以作為源端和目的端,而遠(yuǎn)程服務(wù)器方式只能作為源端。

(d) SQLite為單寫多讀方式,禁止人為方式造成多寫導(dǎo)致鎖表。

(2)、啟動(dòng)方法linux系統(tǒng)下:cd dbswitch-release-X.X.X/
bin/datasync.shwindows系統(tǒng)下:切換到dbswitch-release-X.X.X/bin/目錄下,雙擊datasync.cmd腳本文件即可啟動(dòng)(3)、額外說(shuō)明1、對(duì)于向目的庫(kù)為PostgreSQL/Greenplum的數(shù)據(jù)離線同步默認(rèn)采用copy方式寫入數(shù)據(jù),說(shuō)明如下:(a) 如若使用copy方式寫入,配置文件中需配置為postgresql的jdbc url和驅(qū)動(dòng)類(不能為greenplum的驅(qū)動(dòng)包),(b) 如若使用insert方式寫入,需要在config.properties配置文件中設(shè)置如下參數(shù)為true:dbswitch.target.writer-engine-insert=true2、dbswitch離線同步工具支持的數(shù)據(jù)類型包括:整型、時(shí)間、文本、二進(jìn)制等常用數(shù)據(jù)類型;3、Oracle的表雖然設(shè)置了主鍵,如果主鍵約束實(shí)際為DISABLED狀態(tài),那在進(jìn)行結(jié)構(gòu)轉(zhuǎn)換時(shí)會(huì)按照沒有此主鍵處理。4、關(guān)于增量變更同步方式的使用說(shuō)明

步驟A:先通過設(shè)置dbswitch.target.target-drop=truedbswitch.target.change-data-sync=false;啟動(dòng)程序進(jìn)行表結(jié)構(gòu)和數(shù)據(jù)的全量同步;

步驟B:第二設(shè)置dbswitch.target.target-drop=false,dbswitch.target.change-data-sync=true;再啟動(dòng)程序?qū)Γㄓ兄麈I表)數(shù)據(jù)進(jìn)行增量變更同步。

注:如果待同步的兩端表結(jié)構(gòu)已經(jīng)一致或源端字段是目的端字段的子集,也可直接用步驟B配置進(jìn)行變更同步

2、基于conf/application.yml配置的dbswitch-admin模塊啟動(dòng)的WEB使用方式(1)、準(zhǔn)備一個(gè)MySQL(建議為:版本為 5.7+ )的數(shù)據(jù)庫(kù)(2)、配置conf/application.ymlserver:
port: 9088

spring:
application:
name: dbswitch-admin
tomcat:
uri-encoding: UTF-8
max-http-header-size: 8096
mvc:
throw-exception-if-no-handler-found: true
static-path-pattern: /statics/**
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://192.168.31.57:3306/dbswitch?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF8&useSSL=false
username: tangyibo
password: 123456
validation-query: SELECT 1
test-on-borrow: true
flyway:
locations: classpath:db/migration
baseline-on-migrate: true
table: DBSWITCH_SCHEMA_HISTORY
enabled: true

mybatis:
configuration:
lazy-loading-enabled: true
aggressive-lazy-loading: false
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

mapper:
wrap-keyword: "`{0}`"
enable-method-annotation: true

按照上述配置,修改conf/application.yml配置文件中的spring.datasource.urlspring.datasource.usernamespring.datasource.password三個(gè)字段值的配置。

(3)、啟動(dòng)dbswitch-admin系統(tǒng)linux系統(tǒng)下:cd dbswitch-release-X.X.X/
bin/startup.shwindows系統(tǒng)下:切換到dbswitch-release-X.X.X/bin/目錄下,雙擊startup.cmd腳本文件即可啟動(dòng)(4)、補(bǔ)充說(shuō)明dbswitch-admin的WEB端會(huì)根據(jù)用戶的配置調(diào)用dbswitch-data模塊執(zhí)行數(shù)據(jù)遷移同步;dbswitch-admin服務(wù)啟動(dòng)時(shí)會(huì)基于flyway自動(dòng)建庫(kù)建表,需要保證配置的mysql連接賬號(hào)具有建庫(kù)建表等權(quán)限;dbswitch離線同步工具提供各種數(shù)據(jù)庫(kù)間表結(jié)構(gòu)轉(zhuǎn)換RESTful在線API接口如下:(詳見接口文檔)WEB系統(tǒng)的訪問如下:

URL地址: http://127.0.0.1:9088 登陸賬號(hào):admin 登陸密碼:123456

Swagger在線接口地址: http://127.0.0.1:9088/swagger-ui/

注意:如果為服務(wù)器部署時(shí),需要將127.0.0.1替換為服務(wù)器的IP地址。

WEB系統(tǒng)的使用流程為:

建立源端數(shù)據(jù)庫(kù)的連接 -> 建立目的斷數(shù)據(jù)庫(kù)的連接 -> 配置任務(wù) -> 發(fā)布任務(wù) -> 手動(dòng)/系統(tǒng)調(diào)度執(zhí)行任務(wù) -> 查看調(diào)度記錄 -> 數(shù)據(jù)目錄查看數(shù)據(jù)結(jié)果

WEB系統(tǒng)的部分截圖:win10 1433

win10 1433

win10 1433

win10 1433

win10 1433

win10 1433

win10 1433

win10 1433

3、兩種方式的適用場(chǎng)景方式一:基于conf/config.yml配置的dbswitch-data模塊啟動(dòng)的命令**作方式式

優(yōu)點(diǎn):

當(dāng)需要配置的表或字段等數(shù)量較大時(shí),該方式便于在yml中配置;

只需一個(gè)配置文件即可進(jìn)行啟動(dòng)執(zhí)行任務(wù);

缺點(diǎn):

只能運(yùn)行單個(gè)任務(wù),任務(wù)執(zhí)行完立即停止;

不支持CRON表達(dá)式的周期執(zhí)行;

方式二:基于conf/application.yml配置的dbswitch-admin模塊啟動(dòng)的WEB使用方式

優(yōu)點(diǎn):

提供WEB**作來(lái)配置(方式一的YAML中的參數(shù)),只需點(diǎn)擊即可完成配置;

支持多個(gè)任務(wù)并發(fā)執(zhí)行(在硬件資源足夠的條件下)

支持CRON表達(dá)式的周期執(zhí)行

缺點(diǎn):

當(dāng)數(shù)據(jù)庫(kù)內(nèi)的表或字段數(shù)量較大時(shí),WEB方式卡頓嚴(yán)重;

多個(gè)任務(wù)并發(fā)執(zhí)行不易于分析任務(wù)錯(cuò)誤原因;

四、模塊集成開發(fā)說(shuō)明1、dbswitch安裝到本地倉(cāng)庫(kù)cd dbswitch && mvn clean install2、pom.xml中引入dbswitch模塊依賴<dependency>
<groupId>com.gitee.dbswitch</groupId>
<artifactId>dbswitch-data</artifactId>
<version>${dbswitch.version}</version>
</dependency>3、代碼集成開發(fā)// 構(gòu)造dbswitch所需的配置參數(shù),參數(shù)說(shuō)明請(qǐng)參考第三章第1小節(jié)
DbswichProperties properties = new DbswichProperties();
properties.setXXXX();

// 將參數(shù)傳遞給dbswitch啟動(dòng)同步方式執(zhí)行
MigrationService service = new MigrationService(properties);
service.run();五、常見問題解決(1)在Windows下,執(zhí)行startup.cmd或datasync.cmd腳本報(bào)錯(cuò)

解決辦法:將腳本的內(nèi)容**后,刪除原腳本文件,第二再創(chuàng)建一個(gè)同名腳本文件后,將原內(nèi)容粘貼進(jìn)去后,再執(zhí)行腳本。

(2)在Linux下,執(zhí)行startup.sh或datasync.sh腳本報(bào)錯(cuò)

解決辦法:用vi/vim工具打開腳本,第二命令模式下設(shè)置 set ff=unix后,第二保存退出,再執(zhí)行腳本。

最后

就先更到這里了,有需要異構(gòu)數(shù)據(jù)庫(kù)遷移同步工具的朋友關(guān)注+轉(zhuǎn)發(fā)+評(píng)論之后私信我【異構(gòu)數(shù)據(jù)庫(kù)】即可。

拓展知識(shí):

原創(chuàng)文章,作者:九賢生活小編,如若轉(zhuǎn)載,請(qǐng)注明出處:http://xiesong.cn/125540.html

久久99国产精品| 韩日亚洲无码av| 免费成人av免费播放| 91人妻一区二区三区蜜臀| h动漫在线观看| 开心亚洲综合| 18禁超污无遮挡无码网站免费| 无码S5区| 久久久久久久精| 青草视频a| 亚洲色伊人| 色婷婷欧美综合五月| 日韩色色网| 蜜桃不卡精品久久久| 国产片一区二区三区| 日韩三级内妇| 色一欲一性一乱一区二区三区| 中文字幕色在线视频| 国产精品沙发午睡系列999| 色婷婷一月| 最近免费韩国日本HD中文字幕| 亚洲国产精品玖玖| 久久精久久| 特a级视频网站| 波多野结衣AV手机在线观看| 婷婷婷婷婷婷五月| 久久精品国产亚洲AV无码娇色| 国产精品传媒二区| 亚洲春色在线视频| 欧美www.久久久| 无码人妻AV一| 人人操超碰在线| av无码xxx| 五月丁香五月婷| 色婷婷五月开心| 狠狠一区二区三区| 国产曹操影院| 日韩欧美中文综合| 骚逼福利视频aaa| 亚洲日韩成人电影| 日韩一区 国产一区|