# mogdb-all-in-one-sh **Repository Path**: darkathena/mogdb-all-in-one-sh ## Basic Information - **Project Name**: mogdb-all-in-one-sh - **Description**: 在Kylin v10 sp3上,一键化安装MogDB 5.2版本及ORACLE兼容性插件,并配置好兼容性参数。附带一键从ORACLE迁移的脚本 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-25 - **Last Updated**: 2024-10-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MogDB all in one 脚本说明 >注: 本安装脚本仅在Kylin v10 sp3测试通过,其他操作系统可能需要进行部分手动修改 >software中的软件包请先根据download_url.yaml自行下载 [TOC] ## 准备 1. 脚本授权 ``` chmod +x *.sh && chmod +x scripts/*.sh ``` 2. 配置本地yum源 3. 检查机器名`hostname`,如果是localhost.localdomain,则需要修改机器名,修改方式如下,机器名`db-node-1`可根据需要自行修改 ``` hostnamectl set-hostname db-node-1 ``` ## 一、全新安装 1. 修改config/install-config.yaml文件 2. 执行install.sh ## 二、从ORACLE全量迁移 1. 将mtk的license.json文件放到config/目录下 2. 注意Oracle端的用户需要有`dba`权限或者数据字典查询权限 ``` grant connect,resource to mtk_mig; grant select any dictionary to mtk_mig; grant select any table to mtk_mig; grant select_catalog_role to mtk_mig; ``` 3. 修改config/mtk-config.json ,填写ORACLE及MogDB的连接地址、端口、数据库名、用户名、密码,并填写需要迁移的schema名称 4. 执行migrate.sh >关于迁移参数的配置说明: >"clientCharset": "AL32UTF8" 设置客户端字符集为UTF8,可以让迁移报告中的对象代码里的中文正确显示 >"charAppendEmptyString": true 在字符串类型的字段末尾拼一个 `||''`,以自动去掉末尾的半个汉字 >"skipExistPLSQL": true, 跳过存在的plsql,即执行时使用`create` 而不是`create or replace` >"truncTable": true, 迁移数据前先对目标表`truncate` >"igErrorData": true, 忽略导入报错的数据,对于未导入的数据,生成csv文本文件 >"enableOgBlobClob": true, 对于源端为`BLOB/CLOB`类型的字段,目标端也同样迁移为`BLOB/CLOB`。不开启时,目标端迁移为`BYTEA/TEXT` >"convertPackageMethod": "package", 对于`package` ,在目标端也迁移为`package` >"largeSequence": "off", 对于源端最大值超过 `9223372036854775807` 的序列,在目标端是否迁移成`large sequence` >"compatibleIlLegaLChars": true, 对于非法字符是否允许导入,导入会改写成`?` >"noRewritePLSQL": true, 不对plsql对象进行任何改写 ## 三、仅迁移数据 1. 执行 `二、从ORACLE全量迁移` 的1、2、3 2. 执行 `./migrate.sh onlydata` ## 四、仅重新创建DB 1. 确认config/install-config.yaml 中的biz_dbname的值为需要重建的库 2. 执行 recreate-db.sh ,根据提示,输入y后回车确认 ## 五、卸载指定集群 1. 执行 `ptk ls` 查看当前安装的集群名称 2. 执行 `ptk cluster stop -n 集群名称` 停止当前集群 3. 执行 `ptk uninstall -n 集群名称` 卸载集群 ## 六、修改SQL跟踪级别 1. 修改config/install-config.yaml 中的track_level参数为0或1或2 2. 执行scripts/set-track-level.sh ## 七、文件目录结构说明 ``` mogdb-all-in-one-sh │ migrate.sh #一键迁移脚本 │ install.sh #一键安装脚本 │ readme.md #说明文件 │ ├─config #配置文件目录 │ install-config.yaml #数据库实例安装配置文件 │ mtk-config.json #精简迁移配置文件 │ software-config-arm64.yaml #arm64架构软件安装包文件名配置文件 │ software-config-x86_64.yaml #x86_64架构软件安装包文件名配置文件 │ download_url.yaml #软件包下载地址 │ ├─dependencies #依赖库(均来自kylin官方yum源) │ jq*.rpm #json数据解析工具,本工具解析配置文件使用 │ libnsl*.rpm #网络通信接口(oracle客户端使用) │ numactl*.rpm #numa控制组件 │ ├─scripts #脚本目录 │ check-data.sh #检查迁移后的数据一致性 │ check-metadata.sh #检查迁移后的元数据一致性 │ create-database.sh #创建数据库脚本 │ create-user.sh #创建用户脚本 │ init-env.sh #初始化环境变量脚本 │ install-mogdb.sh #安装实例脚本 │ install-oracle-fdw.sh #安装oracle_fdw以启用到oracle的dblink │ install-ptk-checkos.sh #安装PTK和进行操作系统检查脚本 │ mig-privilege.sh #权限迁移脚本 │ recompile.sh #失效对象重编译脚本 │ recreate-db.sh #重建数据库脚本 │ set-global-param.sh #设置数据库全局参数脚本 │ set-track-level.sh #修改sql跟踪级别 │ ├─software #软件安装包目录 │ ├─arm64 | | ptk*.tar.gz #PTK | | mogdb*-all.tar.gz #数据库安装包 | | whale.*tar.gz #whale插件 | | oracle_fdw*.tar.gz #oracle_fdw插件 | | compat-tools*.zip # | | mtk*.tar.gz #mtk迁移工具 | | mvd*.tar.gz #mvd数据核对工具 | | mogha*.tar.gz #mogha高可用组件 | | instance-client*.zip #oracle客户端 | | │ └─x86_64 │ ptk*.tar.gz #PTK │ mogdb*-all.tar.gz #数据库安装包 │ whale*.tar.gz #whale插件 │ oracle_fdw*.tar.gz #oracle_fdw插件 │ compat-tools*.zip # │ mtk*.tar.gz #mtk迁移工具 │ mvd*.tar.gz #mvd数据核对工具 │ mogha*.tar.gz #mogha高可用组件 | instance-client*.zip #oracle客户端 | ├─workspace #工作目录 ├─mtk ├─ptk └─oracle-client ```