将Oracle数据库迁移到达梦数据库
公司某产品在项目现场上常用到的数据库有Oracle和达梦。
做性能测试需要根据项目现场预埋大量的基础数据和业务数据,耗费时间、精力。故完成Oracle数据库的性能测试之后,采用直接将Oracle数据库迁入达梦数据库的方式,节约时间。
1. 环境说明
源数据库 Oracle:V11.2.0.4
目标数据库 DM:V8
2. 迁移工具介绍
达梦数据库自带的DTS工具,迁移方式分为两种,如下:
①windows系统:安装达梦客户端,使用【DM数据迁移工具】
②linux系统:进入达梦安装路径的tool目录,执行./dts打开【DTS迁移工具】
因数据库部署在阿里云服务器,本文采用linux系统环境的迁移方式进行数据迁移(执行./dts调出图形化界面前可能会存在其它问题,解决办法可参考:https://www.cnblogs.com/silgen/p/16668902.html)。
如果是公司内网环境,建议采用达梦windows客户端【DM数据迁移工具】迁移数据。
3. 迁移前准备
3.1 创建达梦用户及表空间
- # 创建表空间
[root@ufdb165 bin]# ./disql
disql V8
username:SYSDBA
password:
Server[LOCALHOST:5236]:mode is normal, state is open
login used time : 2.881(ms)
SQL> create tablespace cwy_init datafile '/u01/dmdbms/data/DAMENG/cwy_init.dbf' size 5120 autoextend on next 1024;
executed successfully
used time: 78.379(ms). Execute id is 4.
- # 创建用户并赋权
- SQL> CREATE USER cwy_init IDENTIFIED by init_123456789 DEFAULT TABLESPACE cwy_init;
- SQL> grant dba to cwy_init;
3.2 调整达梦数据库参数(针对Oracle数据迁移)
Compatibility | 使用效果及建议 |
COMPATIBLE_MODE |
是否兼容其他数据库模式。 |
CALC_AS_DECIMAL | 整数相除是否保留小数位,修改为 1 |
ORA_DATE_FMT |
是否兼容 ORACLE 的 DATE 类型格式。0:不兼 容;1:兼容。 |
修改方式,如下:
- ALTER SYSTEM SET 'COMPATIBLE_MODE'=2 SPFILE;
- ALTER SYSTEM SET 'CALC_AS_DECIMAL'=1 SPFILE;
修改完成后需要重启数据库后才能生效。
- # 查看修改后的参数值
- select para_name,para_value from v$dm_ini where para_name = 'CALC_AS_DECIMAL' OR para_name = 'COMPATIBLE_MODE';
4. 数据迁移
4.1 进入tool目录,执行./dts,启动迁移工具
- [root@ufdb165 ~]# cd /u01/dmdbms/tool
- [root@ufdb165 tool]# ./dts
4.2 新建工程
选择【新建工程】按钮,在弹出的新建工程页面填写相应的工程名
4.3 新建迁移
在工程列表的“迁移”标签右键选择新建迁移,并输入迁移名称和迁移描述。在选中新建的迁移后可以看到迁移工具的欢迎界面。
4.4 选择迁移方式
在欢迎界面点击下一步,然后选择数据源和目的库,选择要迁移的方式
4.5 输入Oracle数据库信息
进入连接oracle数据库界面,输入数据源(Oracle 数据库)的信息:主机名 (IP) 、端口,服务名(Oracle 默认服务名 ORCL),角色(默认),用户名和口令。
此时Oracle要保持开启状态,并且Oracle 监听已启动。
4.6 输入DM数据库信息
进入连接DM数据库界面,输入目的数据库(DM数据库)的信息:主机名 (IP) 、端口(DM 默认端口 5236),用户名和口令
要确保DM数据库保持开启状态。
4.7 选择源模式和目的模式
找到你要迁移的Oracle数据库中那个用户下的数据,再选择要导入的达梦数据库用户,然后点击【下一步】
- 迁移的对象包括:模式及模式对象、目录、公共同义词、上下文等,根据不同数据源,支持迁移不同的对象。
- 模式及模式对象包括:模式、表、视图、物化视图、序列、存储过程/函数、包、类、同义词以及自定义类型,根据数据源不同,支持的模式及模式对象也不同。
4.8 选择迁移对象
此处选择要迁移的具体表格、视图、存储过程等,可根据名称具体选择。
4.9 审阅迁移任务
本步骤只做演示记录,为节省迁移时间,选择5个表作为迁移。
4.10 完成迁移
迁移过程中如果存在报错,请导出错误日志进行分析,判断是否对业务环境有造成不良影响。
拓展
1. 搜集全库统计信息
执行如下sql,收集全库统计信息
- DBMS_STATS.GATHER_SCHEMA_STATS('用户名',100,TRUE,'FOR ALL COLUMNS SIZE AUTO');
2. 优化配置
达梦官方给出一个自动调整内存配置的sql,具体如下:
- declare
- exec_mode int:= 0; --0表示直接执行脚本修改参数,1表示不直接修改参数,打印设置参数的语句,设置为1后,必须调整v_mem_mb和v_cpus
- mem_per int:= 100; --默认所有的内存归达梦数据库使用,如实际不能100%可用,可以调整此参数
- v_mem_mb int:= 16000; --根据机器实际内存调整此参数
- v_cpus int:= 8; --根据机器CPU核数调整此参数
- tname varchar(100);
- MEMORY_POOL int;
- MEMORY_N_POOLS int;
- MEMORY_TARGET int;
- BUFFER INT;
- MAX_BUFFER INT;
- RECYCLE int;
- CACHE_POOL_SIZE int;
- BUFFER_POOLS int;
- RECYCLE_POOLS int;
- SORT_BUF_SIZE int;
- SORT_BUF_GLOBAL_SIZE INT;
- DICT_BUF_SIZE INT;
- HJ_BUF_SIZE INT;
- HAGR_BUF_SIZE INT;
- HJ_BUF_GLOBAL_SIZE INT;
- HAGR_BUF_GLOBAL_SIZE INT;
- --SORT_FLAG INT;
- SORT_BLK_SIZE INT;
- RLOG_POOL_SIZE INT;
- TASK_THREADS INT;
- IO_THR_GROUPS INT;
- FAST_POOL_PAGES INT :=3000;
- FAST_ROLL_PAGES INT :=1000;
- CNT INT;
- begin
- CNT :=0;
- if exec_mode=0 then
- SELECT TOP 1 N_CPU,TOTAL_PHY_SIZE/1024/1024 INTO v_cpus,v_mem_mb FROM V$SYSTEMINFO;
- end if;
- v_mem_mb := v_mem_mb * (mem_per/100.0);
- v_mem_mb=round(v_mem_mb,-3);
- IF v_mem_mb <= 2000 THEN
- goto return_2000;
- END IF;
- IF v_mem_mb > 512000 THEN
- v_mem_mb :=v_mem_mb*0.8;
- END IF;
- MEMORY_TARGET=round(cast(v_mem_mb * 0.12 as int),-3);
- TASK_THREADS :=4;
- IO_THR_GROUPS :=4;
- IF v_cpus < 8 THEN
- TASK_THREADS :=4;
- IO_THR_GROUPS :=2;
- END IF;
- IF v_cpus >= 64 THEN
- v_cpus := 64;
- TASK_THREADS :=16;
- IO_THR_GROUPS :=8;
- END IF;
- BUFFER := round(cast(v_mem_mb * 0.4 as int),-3);
- MAX_BUFFER := BUFFER;
- RECYCLE :=cast(v_mem_mb * 0.04 as int);
- IF v_mem_mb < 70000 THEN
- with t as
- (
- select rownum rn from dual connect by level <= 100
- ) ,
- t1 as
- (
- select * from t where rn > 1 minus
- select
- ta.rn * tb.rn
- from
- t ta,
- t tb
- where
- ta.rn <= tb.rn
- and ta.rn > 1
- and tb.rn > 1
- )
- select top 1 rn into BUFFER_POOLS from t1 where rn > v_mem_mb/800 order by 1;
- --设置根据内存情况RECYCLE_POOLS参数
- with t as
- (
- select rownum rn from dual connect by level <= 100
- ) ,
- t1 as
- (
- select * from t where rn > 1 minus
- select
- ta.rn * tb.rn
- from
- t ta,
- t tb
- where
- ta.rn <= tb.rn
- and ta.rn > 1
- and tb.rn > 1
- )
- select top 1 rn into RECYCLE_POOLS from t1 where rn > v_mem_mb/800/3 order by 1;
- ELSE
- BUFFER_POOLS := 101;
- RECYCLE_POOLS := 41;
- END IF;
- --修改内存池
- IF v_mem_mb >= 16000 THEN
- IF v_mem_mb= 16000 THEN
- MEMORY_POOL := 1500;
- SORT_BUF_GLOBAL_SIZE := 1000;
- MEMORY_N_POOLS := 3;
- CACHE_POOL_SIZE := 512;
- ELSE
- MEMORY_POOL := 2000;
- SORT_BUF_GLOBAL_SIZE := 2000;
- MEMORY_N_POOLS := 11;
- CACHE_POOL_SIZE := 1024;
- END IF;
- FAST_POOL_PAGES :=9999;
- -- SORT_FLAG = 0;
- SORT_BLK_SIZE=1;
- SORT_BUF_SIZE := 10;
- RLOG_POOL_SIZE := 1024;
- HJ_BUF_GLOBAL_SIZE := LEAST(cast(v_mem_mb * 0.0625 as int),10000);
- HAGR_BUF_GLOBAL_SIZE := LEAST(cast(v_mem_mb * 0.0625 as int),10000);
- HJ_BUF_SIZE :=250;
- HAGR_BUF_SIZE :=250;
- RECYCLE :=round(RECYCLE,-3);
- IF v_mem_mb >= 64000 THEN
- FAST_POOL_PAGES :=99999;
- FAST_ROLL_PAGES :=9999;
- BUFFER :=BUFFER-3000;
- MAX_BUFFER :=BUFFER;
- CACHE_POOL_SIZE := 2048;
- RLOG_POOL_SIZE := 2048;
- -- SORT_FLAG = 1;
- SORT_BLK_SIZE=1;
- SORT_BUF_SIZE=50;
- SORT_BUF_GLOBAL_SIZE= cast(v_mem_mb * 0.02 as int);
- HJ_BUF_GLOBAL_SIZE := cast(v_mem_mb * 0.15625 as int);
- HAGR_BUF_GLOBAL_SIZE := cast(v_mem_mb * 0.04 as int);
- HJ_BUF_SIZE :=512;
- HAGR_BUF_SIZE :=512;
- MEMORY_N_POOLS := 59;
- END IF;
- DICT_BUF_SIZE := 50;
- HJ_BUF_GLOBAL_SIZE :=round(HJ_BUF_GLOBAL_SIZE,-3);
- HAGR_BUF_GLOBAL_SIZE :=round(HAGR_BUF_GLOBAL_SIZE,-3);
- SORT_BUF_GLOBAL_SIZE :=round(SORT_BUF_GLOBAL_SIZE,-3);
- RECYCLE :=round(RECYCLE,-3);
- ELSE
- MEMORY_POOL :=GREAT(cast(v_mem_mb * 0.0625 as int),100);
- MEMORY_POOL :=round(MEMORY_POOL,-2);
- MEMORY_N_POOLS := 1;
- CACHE_POOL_SIZE := 200;
- RLOG_POOL_SIZE := 256;
- SORT_BUF_SIZE := 10;
- SORT_BUF_GLOBAL_SIZE := 500;
- DICT_BUF_SIZE := 50;
- -- SORT_FLAG = 0;
- SORT_BLK_SIZE=1;
- HJ_BUF_GLOBAL_SIZE := GREAT(cast(v_mem_mb * 0.0625 as int),500);
- HAGR_BUF_GLOBAL_SIZE := GREAT(cast(v_mem_mb * 0.0625 as int),500);
- HJ_BUF_SIZE := GREAT(cast(v_mem_mb * 0.00625 as int),50);
- HAGR_BUF_SIZE :=GREAT(cast(v_mem_mb * 0.00625 as int),50);
- END IF;
- IF exec_mode=0 THEN
- --修改cpu相关参数
- SP_SET_PARA_VALUE(2,'WORKER_THREADS',v_cpus);
- SP_SET_PARA_VALUE(2,'TASK_THREADS',TASK_THREADS);
- SP_SET_PARA_VALUE(2,'IO_THR_GROUPS',IO_THR_GROUPS);
- --修改内存池相关参数
- SP_SET_PARA_VALUE(2,'MAX_OS_MEMORY', mem_per);
- SP_SET_PARA_VALUE(2,'MEMORY_POOL', MEMORY_POOL);
- SP_SET_PARA_VALUE(2,'MEMORY_N_POOLS', MEMORY_N_POOLS);
- SP_SET_PARA_VALUE(2,'MEMORY_TARGET', MEMORY_TARGET);
- --修改内存检测参数为1
- SP_SET_PARA_VALUE(2,'MEMORY_MAGIC_CHECK', 1);
- --非DSC环境将ENABLE_FREQROOTS设置为1,注意DM7 v$instance视图没有dsc_role字段,DM7这部分可以删掉
- if exists(select 1 from v$instance where dsc_role = 'NULL') then
- SP_SET_PARA_VALUE(2,'ENABLE_FREQROOTS', 1);
- end if;
- --修改缓冲区相关参数
- SP_SET_PARA_VALUE(2,'BUFFER', BUFFER);
- SP_SET_PARA_VALUE(2,'MAX_BUFFER', MAX_BUFFER);
- SP_SET_PARA_VALUE(2,'BUFFER_POOLS', BUFFER_POOLS);
- SP_SET_PARA_VALUE(2,'RECYCLE', RECYCLE);
- SP_SET_PARA_VALUE(2,'RECYCLE_POOLS', RECYCLE_POOLS);
- --修改fast_pool相关参数
- SP_SET_PARA_VALUE(2,'FAST_POOL_PAGES', FAST_POOL_PAGES);
- SP_SET_PARA_VALUE(2,'FAST_ROLL_PAGES', FAST_ROLL_PAGES);
- --修改HASH相关参数
- SP_SET_PARA_VALUE(1,'HJ_BUF_GLOBAL_SIZE', HJ_BUF_GLOBAL_SIZE);
- SP_SET_PARA_VALUE(1,'HJ_BUF_SIZE', HJ_BUF_SIZE );
- SP_SET_PARA_VALUE(1,'HAGR_BUF_GLOBAL_SIZE',HAGR_BUF_GLOBAL_SIZE);
- SP_SET_PARA_VALUE(1,'HAGR_BUF_SIZE', HAGR_BUF_SIZE );
- --修改排序相关参数
- -- SP_SET_PARA_VALUE(2,'SORT_FLAG',SORT_FLAG);
- SP_SET_PARA_VALUE(2,'SORT_BLK_SIZE',SORT_BLK_SIZE);
- SP_SET_PARA_VALUE(2,'SORT_BUF_SIZE', SORT_BUF_SIZE);
- SP_SET_PARA_VALUE(2,'SORT_BUF_GLOBAL_SIZE', SORT_BUF_GLOBAL_SIZE);
- --修改其他内存参数
- SP_SET_PARA_VALUE(2,'RLOG_POOL_SIZE', RLOG_POOL_SIZE);
- SP_SET_PARA_VALUE(2,'CACHE_POOL_SIZE', CACHE_POOL_SIZE);
- SP_SET_PARA_VALUE(2,'DICT_BUF_SIZE', DICT_BUF_SIZE);
- SP_SET_PARA_VALUE(2,'VM_POOL_TARGET', 16384);
- SP_SET_PARA_VALUE(2,'SESS_POOL_TARGET', 16384);
- --修改实例相关参数
- SP_SET_PARA_VALUE(2,'USE_PLN_POOL', 1);
- SP_SET_PARA_VALUE(2,'ENABLE_MONITOR', 1);
- SP_SET_PARA_VALUE(2,'SVR_LOG', 0);
- SP_SET_PARA_VALUE(2,'TEMP_SIZE', 1024);
- SP_SET_PARA_VALUE(2,'TEMP_SPACE_LIMIT', 102400);
- SP_SET_PARA_VALUE(2,'MAX_SESSIONS', 3000);
- SP_SET_PARA_VALUE(2,'MAX_SESSION_STATEMENT', 20000);
- SP_SET_PARA_VALUE(2,'PK_WITH_CLUSTER', 0);
- SP_SET_PARA_VALUE(2,'ENABLE_ENCRYPT',0);
- --修改优化器相关参数
- SP_SET_PARA_VALUE(2,'OLAP_FLAG',2);
- SP_SET_PARA_VALUE(2,'VIEW_PULLUP_FLAG',1);
- SP_SET_PARA_VALUE(2,'OPTIMIZER_MODE',1);
- SP_SET_PARA_VALUE(2,'ADAPTIVE_NPLN_FLAG',0);
- --开启并行PURGE
- SP_SET_PARA_VALUE(2,'PARALLEL_PURGE_FLAG',1);
- --开启手动并行
- SP_SET_PARA_VALUE(2,'PARALLEL_POLICY',2);
- --UNDO_RETENTION如果放大,可以适当调大UNDO_EXTENT_NUM。负载高的时候,减少文件系统的申请/释放操作。
- SP_SET_PARA_VALUE(2,'UNDO_EXTENT_NUM',16);
- --开启SQL 注入HINT功能
- SP_SET_PARA_VALUE(2,'ENABLE_INJECT_HINT',1);
- ELSE
- --修改cpu相关参数
- PRINT 'SP_SET_PARA_VALUE(2,''WORKER_THREADS'','||v_cpus||');';
- PRINT 'SP_SET_PARA_VALUE(2,''TASK_THREADS'','||TASK_THREADS||');';
- PRINT 'SP_SET_PARA_VALUE(2,''IO_THR_GROUPS'','||IO_THR_GROUPS||');';
- --修改内存池相关参数
- PRINT 'SP_SET_PARA_VALUE(2,''MAX_OS_MEMORY'', '||mem_per||');';
- PRINT 'SP_SET_PARA_VALUE(2,''MEMORY_POOL'', '||MEMORY_POOL||');';
- PRINT 'SP_SET_PARA_VALUE(2,''MEMORY_N_POOLS'', '||MEMORY_N_POOLS||');';
- PRINT 'SP_SET_PARA_VALUE(2,''MEMORY_TARGET'', '||MEMORY_TARGET||');';
- --修改缓冲区相关参数
- PRINT 'SP_SET_PARA_VALUE(2,''BUFFER'', '||BUFFER||');';
- PRINT 'SP_SET_PARA_VALUE(2,''MAX_BUFFER'', '||MAX_BUFFER||');';
- PRINT 'SP_SET_PARA_VALUE(2,''BUFFER_POOLS'', '||BUFFER_POOLS||');';
- PRINT 'SP_SET_PARA_VALUE(2,''RECYCLE'', '||RECYCLE||');';
- PRINT 'SP_SET_PARA_VALUE(2,''RECYCLE_POOLS'', '||RECYCLE_POOLS||');';
- --修改fast_pool相关参数
- PRINT 'SP_SET_PARA_VALUE(2,''FAST_POOL_PAGES'', '||FAST_POOL_PAGES||');';
- PRINT 'SP_SET_PARA_VALUE(2,''FAST_ROLL_PAGES'', '||FAST_ROLL_PAGES||');';
- --修改内存检测参数为1
- PRINT 'SP_SET_PARA_VALUE(2,''MEMORY_MAGIC_CHECK'', 1);';
- --非DSC环境将ENABLE_FREQROOTS设置为1,注意DM7 v$instance视图没有dsc_role字段,DM7这部分可以删掉
- if exists(select 1 from v$instance where dsc_role = 'NULL') then
- PRINT 'SP_SET_PARA_VALUE(2,''ENABLE_FREQROOTS'', 1);';
- end if;
- --修改HASH相关参数
- PRINT 'SP_SET_PARA_VALUE(1,''HJ_BUF_GLOBAL_SIZE'', '||HJ_BUF_GLOBAL_SIZE||');';
- PRINT 'SP_SET_PARA_VALUE(1,''HJ_BUF_SIZE'', '||HJ_BUF_SIZE||');';
- PRINT 'SP_SET_PARA_VALUE(1,''HAGR_BUF_GLOBAL_SIZE'','||HAGR_BUF_GLOBAL_SIZE||');';
- PRINT 'SP_SET_PARA_VALUE(1,''HAGR_BUF_SIZE'', '||HAGR_BUF_SIZE||');';
- --修改排序相关参数
- -- PRINT 'SP_SET_PARA_VALUE(2,''SORT_FLAG'','||SORT_FLAG||');';
- PRINT 'SP_SET_PARA_VALUE(2,''SORT_BLK_SIZE'','||SORT_BLK_SIZE||');';
- PRINT 'SP_SET_PARA_VALUE(2,''SORT_BUF_SIZE'', '||SORT_BUF_SIZE||');';
- PRINT 'SP_SET_PARA_VALUE(2,''SORT_BUF_GLOBAL_SIZE'', '||SORT_BUF_GLOBAL_SIZE||');';
- --修改其他内存参数
- PRINT 'SP_SET_PARA_VALUE(2,''RLOG_POOL_SIZE'', '||RLOG_POOL_SIZE||');';
- PRINT 'SP_SET_PARA_VALUE(2,''CACHE_POOL_SIZE'', '||CACHE_POOL_SIZE||');';
- PRINT 'SP_SET_PARA_VALUE(2,''DICT_BUF_SIZE'', '||DICT_BUF_SIZE||');';
- PRINT 'SP_SET_PARA_VALUE(2,''VM_POOL_TARGET'', 16384);';
- PRINT 'SP_SET_PARA_VALUE(2,''SESS_POOL_TARGET'', 16384);';
- --修改实例相关参数
- PRINT 'SP_SET_PARA_VALUE(2,''USE_PLN_POOL'', 1);';
- PRINT 'SP_SET_PARA_VALUE(2,''ENABLE_MONITOR'', 1);';
- PRINT 'SP_SET_PARA_VALUE(2,''SVR_LOG'', 0);';
- PRINT 'SP_SET_PARA_VALUE(2,''TEMP_SIZE'', 1024);';
- PRINT 'SP_SET_PARA_VALUE(2,''TEMP_SPACE_LIMIT'', 102400);';
- PRINT 'SP_SET_PARA_VALUE(2,''MAX_SESSIONS'', 1500);';
- PRINT 'SP_SET_PARA_VALUE(2,''MAX_SESSION_STATEMENT'', 20000);';
- PRINT 'SP_SET_PARA_VALUE(2,''PK_WITH_CLUSTER'', 0);';
- PRINT 'SP_SET_PARA_VALUE(2,''ENABLE_ENCRYPT'',0);';
- --修改优化器相关参数
- PRINT 'SP_SET_PARA_VALUE(2,''OLAP_FLAG'',2);';
- PRINT 'SP_SET_PARA_VALUE(2,''VIEW_PULLUP_FLAG'',1);';
- PRINT 'SP_SET_PARA_VALUE(2,''OPTIMIZER_MODE'',1);';
- PRINT 'SP_SET_PARA_VALUE(2,''ADAPTIVE_NPLN_FLAG'',0);';
- --开启并行PURGE
- PRINT 'SP_SET_PARA_VALUE(2,''PARALLEL_PURGE_FLAG'',1);';
- --开启手动并行
- PRINT 'SP_SET_PARA_VALUE(2,''PARALLEL_POLICY'',2);';
- --UNDO_RETENTION如果放大,可以适当调大UNDO_EXTENT_NUM。负载高的时候,减少文件系统的申请/释放操作。
- PRINT 'SP_SET_PARA_VALUE(2,''UNDO_EXTENT_NUM'',16);';
- --开启SQL 注入HINT功能
- PRINT 'SP_SET_PARA_VALUE(2,''ENABLE_INJECT_HINT'',1);';
- END IF;
- select MEMORY_TARGET+BUFFER+RECYCLE+HJ_BUF_GLOBAL_SIZE+HAGR_BUF_GLOBAL_SIZE+CACHE_POOL_SIZE
- +DICT_BUF_SIZE+SORT_BUF_GLOBAL_SIZE+RLOG_POOL_SIZE;
- exception
- when others then
- raise_application_error (-20001,substr( ' 执行失败, '||SQLCODE||' '||SQLERRM||' '||dbms_utility.format_error_backtrace , 1, 400));
- <<return_2000>> null;
- end;
- /
将Oracle数据库迁移到达梦数据库的更多相关文章
- 将ACCESS数据库迁移到SQLSERVER数据库
原文:将ACCESS数据库迁移到SQLSERVER数据库 将ACCESS数据库迁移到SQLSERVER数据库 ACCESS2000文件 用ACCESS2007打开,并迁移到SQLSERVER2005里 ...
- Oracle数据库迁移至PostgreSQL数据库问题及解决
Oracle数据库迁移PostgreSQL数据库问题及解决 目录 如何计划迁移数据库(现状及问题分析) 统计系统表及表功能 解耦公共表 建立数据库 迁移表结构 导入表数据 改SQL语法 保证数据时效性 ...
- ubuntu系统lamp环境搭建、数据库迁移、设置数据库外部访问
sudo passwd root设置两次密码su输入设置的密码exit (退出root帐号) 1.sudo apt-get update 2.sudo apt-get install apache2 ...
- MySQL数据库迁移与MySQL数据库批量恢复
目录 一.MySQL数据库迁移或备份 1. 了解使用InnoDB引擎创建数据库所产生的文件 2. 迁移数据库步骤 1. 从A服务器迁移至B服务器 2. MySQL重装并导入之前数据库 二.MySQL数 ...
- linux安装国产数据库(金仓数据库,达梦数据库,南大通用数据库)
今天在公司做的任务是,在Linux的环境下安装三种数据库,结果一种数据库也没有安装好,首先遇到的问题是安装南大通用数据库遇到安装的第五步,就出现问题了,问题是Gbase SDK没有安装成功,以及Gba ...
- 基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操作
由于一个客户朋友的需求,需要我的Winform开发框架支持国产达梦数据库的操作,这个数据库很早就听过,但是真正一般项目用的很少,一般在一些特殊的项目可能需要用到.由于我的Winform开发框架,是基于 ...
- 达梦数据库(DaMeng)如何删除IDENTITY自增属性字段
今天工作中使用到达梦数据库,要求删除具有IDENTITY自增属性的字段. 直接执行删除:ALTER TABLE <表名> DROP COLUMN <列名> CASCADE; 删 ...
- linux安装node和达梦数据库8
PS.本次测试只是为了项目需要,但是在部署和启动程序的时候发生了一系列的报错,由此记录下来为日后作参考 安装达梦数据库 1. 达梦数据库(DM8)简介 达梦数据库管理系统是武汉达梦公司推出的具有完全自 ...
- linux安装达梦数据库8
PS.本次测试只是为了项目需要,但是在部署和启动程序的时候发生了一系列的报错,由此记录下来为日后作参考 安装达梦数据库 1. 达梦数据库(DM8)简介 达梦数据库管理系统是武汉达梦公司推出的具有完全自 ...
随机推荐
- apk编辑器测评
hi你好,我今天要介绍的就是apk编辑器 这里我用的是apk编辑器专业版 APK编辑器 关于 APK 编辑器智友汉化组论坛:bbs.zhiyoo.com修改应用程序名称美化 UI: 更改背景图片删除广 ...
- window桌面背景图片
通过修改注册表项: \HKEY_CURRENT_USER\Control Panel\Desktop下的几个值,及可以将我们想要的图片设置成桌面的背景图 TileWallpaper Wallpap ...
- KingbaseES的SQL语句-CTE递归
背景 从上下级关系表中,任意一个节点数据出发,可以获得该节点的上级或下级.CTE的递归语法,或者 connect by 与 start with的 查询语法,能够实现这个需求. 当我们需要制作上下级关 ...
- 重新扫描磁盘.bat
工作需要,需要常常扫描磁盘, 以前是先调用磁盘管理器,然后使用alt+a,再按r,完成对磁盘的扫描 但是速度慢效率低 昨天帮朋友装台式电脑系统的时候,他说要给磁盘分区, 发现磁盘内有卷被占用,无法删除 ...
- 从零打造“乞丐版” React(一)——从命令式编程到声明式编程
这个系列的目的是通过使用 JS 实现"乞丐版"的 React,让读者了解 React 的基本工作原理,体会 React 带来的构建应用的优势 1 HTML 构建静态页面 使用 HT ...
- 《吐血整理》高级系列教程-吃透Fiddler抓包教程(23)-Fiddler如何优雅地在正式和测试环境之间来回切换-上篇
1.简介 在开发或者测试的过程中,由于项目环境比较多,往往需要来来回回地反复切换,那么如何优雅地切换呢?宏哥今天介绍几种方法供小伙伴或者童鞋们进行参考. 2.实际工作场景 2.1问题场景 (1)已发布 ...
- ProxySQL查看所有的全局变量及更新操作
mysql> select * from global_variables; +--------------------------------------------------------- ...
- 开启tcp_timestamps和tcp_tw_recycle造成NAT转发连接不上
文章转载自:https://segmentfault.com/a/1190000022264813
- frps服务端与nginx可共用443端口
转载自: https://www.ioiox.com/archives/78.html frps服务器上的nginx frps.ini配置 由于nginx占用80/443端口,frps.ini中的 v ...
- 我是加工厂,想管理生产财务采购销售这块,什么样的ERP会好用点??
最能够贴合你的业务需求和自己员工的使用习惯的才会更好用,最好能简单快捷的进行低成本个性化定制的那种应该比较适合你这种加工厂,没有完全相同的两家企业,更别说他们的发展走向,即使同一家企业不同发展阶段.时 ...