8ku:oracle11g 迁移至达梦8数据库环境

oracle 11g 迁移至达梦8数据库环境

  • 一.搭建oracle数据库环境
  • 二、搭建DM8数据库环境
  • 三、迁移数据库
  • 四、校验数据库

一.搭建oracle数据库环境

1.1 查看防火墙状态:

service iptables status禁止防火墙在系统启动时启动chkconfig --level 2345 iptables off

1.2 安装设置的环境变量

vi /etc/sysctl.conf fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmmni = 4096kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 1024 65500 net.core.rmem_default = 1048576 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 kernel.shmall = 42949672960 sysctl -p

1.3 创建用户和组

groupadd -g 1001 oinstallgroupadd -g 2001 dba useradd -u 3001 -g oinstall -G dba oracle #id oracle #passwd oracle mkdir -p /u01/app/oracle/product/11.2.0/db_1 chown oracle:oinstall /u01/app -R chmod 775 /u01/app/oracle -R

1.4 为Oracle用户设置Shell限制

1)vi /etc/security/limits.conf oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle soft stack 32768 2)vi /etc/pam.d/login session required /lib/security/pam_limits.so

1.5 为Oracle用户设置环境变量

vi ~/.bash_profile ORACLE_SID=orcl ORACLE_BASE=/u01/app/oracle ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 PATH=$ORACLE_HOME/bin:$HOME/bin:$PATH NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" export ORACLE_SID ORACLE_BASE ORACLE_HOME export PATH NLS_LANG source ~/.bash_profile 使配置生效

1.6 解决依赖包关系

yum install binutils-2.* compat-libstdc++-33* elfutils-libelf-0.* elfutils-libelf-devel-* gcc-4.* gcc-c++-4.* glibc-2.* glibc-common-2.* glibc-devel-2.* glibc-headers-2.* ksh-2* libaio-0.* libaio-devel-0.* libgcc-4.* libstdc++-4.* libstdc++-devel-4.* make-3.* sysstat-7.* unixODBC-2.* unixODBC-devel-2.* pdksh*这些依赖包必须要安装,因为版本不同,在oracle安装时会提示缺少依赖包,忽略后可以正常安装使用Oracle。

1.7 解压安装包

unzip p10404530_112030_Linux-x86-64_1of7.zip unzip p10404530_112030_Linux-x86-64_2of7.zip./runInstall 进行安装

1.8 安装完成数据库之后创建表空间以及用户

Create tablespace e3_data datafile '/home/app/oracle/oradata/orcl/e3_data01.dbf'size 5000m autoextend on next 10m maxsize unlimited/create tablespace e3_indx datafile'/home/app/oracle/oradata/orcl/e3_indx01.dbf'size 5000m autoextend on next 10m maxsize unlimited/create temporary tablespace e3_temp tempfile '/home/app/oracle/oradata/orcl/e3_temp01.dbf' size 2048m autoextend on next 10m maxsize unlimited/alter database default temporary tablespace e3_temp/alter database default tablespace e3_data/create user TEST identified by TEST123 default tablespace e3_data;grant connect,resource,imp_full_database,exp_full_database to TEST; grant select on dba_data_files to TEST; grant select on dba_free_space to TEST; alter user TEST quota unlimited on e3_data;alter user TEST quota unlimited on e3_indx;grant execute on sys.dbms_reputil to TEST; grant create session to TEST; create user test1 identified by test1123 default tablespace e3_data;grant connect to e3web;

1.9 导入测试数据(这份数据是以前测试用例)

imp TEST/TEST123@orcl file=/home/soft/1.dmp log=/tmp/impTEST.log ignore=y full=y buffer=20480000

二、搭建DM8数据库环境

2.1 初始化数据库

在初始化达梦数据库时需要注意以下几点(1)关于页大小 PAGE_SIZE。Oracle 也叫块大小(block),在 DM 数据库中,页大 小可以为 4KB、8KB、16KB 或者 32KB,从 Oracle 移植到 DM,建议设置页大小为 8KB,一旦创建好了数据库,在该库的整个生命周期内,页大小都不能够改变。除了每个字段的最 大长度限制外,每条记录总长度不能大于页面大小的一半。如果系统中存在或者以后可能存 在含有较长的字符串类型的表,建议该参数设置为 16 或者 32。页大小设置越大,最后数 据文件的物理大小就会越大,系统运行时,每次从磁盘调入内存的数据单位也就越大,所以 此处要慎重。 (2)关于簇大小 EXTENT_SIZE。数据文件使用的簇大小,即每次分配新的段空间时连 续的页数,只能是 16 页或 32 页,缺省使用 16 页,从 ORACLE 移植到 DM 使用默认值就 可。 (3)关于大小写敏感 CASE_SENSITIVE。DM 为了兼容不同的数据库,在初始化数据 库的时候有一个参数字符串比较大小写敏感,用于确定数据库对象及数据是否区分大小写, 默认为区分,不可更改。建议 MYSQL 和 SQLSERVER 迁移过来的系统,使用大小写不敏感, ORACLE 迁移过来的系统,使用大小写敏感,以便和原来系统匹配。 (4)关于字符集 CHARSET。建议采用默认值 GB18030,如果需要国际字符可以采用 Unicode,GB18030 数字字母占 1 个字节,普通汉字占 2 个字节,部分繁体及少数民族文 字占 4 字节,Unicode 在达梦中采用 UTF-8 编码格式,欧洲的字母字符占 1 到 2 个字节, 亚洲的大部分字符占 3 个字节,附加字符为 4 个字节。如果只存储中文和字母数字,一般 来说 GB18030 更节省空间一些。 初始化:./dminit path=/home/dmdba/orcl_to_dm/ page_size=32 CHARSET=0

2.2 修改dm.ini参数

COMPATIBLE_MODE :是否兼容其他数据库模式。0:不兼容,1:兼容 SQL92 标准,2:兼容 ORACLE,3:兼容 MS SQL SERVER,4:兼容 MYSQL,5:兼容 DM6,6:兼容 Teradata,所以当从Oracle移植到DM7 时,修改值为2;当前先只修改此参数,后续具体情况具体分析。URL连接串添加:?comOra=true,示例如下:jdbc:dm://192.168.0.1:5236?comOra=trueCALC_AS_DECIMAL = 1COMPATIBLE_MODE=2PK_WITH_CLUSTER=0ENABLE_RQ_TO_NONREF_SPL=2ORDER_BY_NULLS_FLAG=1BLANK_PAD_MODE=1

2.3 创建用户表空间和用户

从 Oracle 移植到 DM8,要求必须创建新的用户和表空间,不要把数据迁移到系统管 理员 SYSDBA 用户下和 MAIN 表空间下。create tablespace "TEST" datafile '/home/dmdba/orcl_to_dm/DAMENG/TEST.DBF' size 2048 CACHE = NORMAL;create user "TEST" identified by "TEST123" limit failed_login_attemps 3, password_lock_time 1, password_grace_time 10 default tablespace "TEST" default index tablespace "TEST";grant "DBA","PUBLIC","RESOURCE","SOI","VTI" to "TEST" with admin option;

三、迁移数据库

3.1 创建迁移名称


3.2创建迁移方式

3.3 数据源连接信息


3.4 目标数据库连接信息


3.5 选择需要迁移的用户

目录、公共同义词、上下文可以不勾选;使用默认数据类型映射关系(M),字符长度*(L)注意在字符串截断问题上进行勾选设置

3.6选择迁移的对象


点击转换之后显示设置表隐射关系。注意勾选显示行记录,在普通表栏位可以选择读取和提交行数,可以适当进行调整数值大小,大字段表中数值调整小一点,提高效率。快速装载在大表迁移是尽量不选择勾选,以提高速度。同时在制定迁移策略得时候,可以将表数据进行分片。采取多个任务进行迁移数据得方式,提高速度效率

3.7创建迁移任务并形成迁移信息列表


3.8 开始迁移


迁移完成之后检查报错,发现全部是同义词报错信息,可以忽略,当然迁移完之后具体报错信息具体处理

四、校验数据库

4.1统计达梦数据库信息
–统计页大小
select page;
–通过编码格式
select unicode;
–统计大小写敏感参数
select case_sensitive;
–根据指定用户统计用户下的各对象类型和数目
select object_type,count() from all_objects where
owner=‘TEST’ group by object_type;
select object_type,count() from all_objects where
owner=‘E3WEB’ group by object_type;
–统计每个表的数据量到表数据记录表
create table dm_tables(tab_owner varchar(100),tab_name
varchar(100),tab_count int);
begin
for rec in (select owner,object_name from all_objects where
owner=‘OA8000_DM2015’ and object_type=‘TABLE’) loop
begin
execute immediate ‘insert into dm_tables select ‘’’|| rec.owner
||’’’,’’’|| rec.object_name ||’’’,count(*) from '|| rec.owner || ‘.’
|| rec.object_name;
exception when others then
print rec.owner || ‘.’ || rec.object_name || ‘get count error’;
end;
end loop;
end;

4.2数据库移植完毕后的收尾工作

4.2.1更新统计信息
数据核对完成无问题后,应进行一次全库的统计信息更新工作。统计信息更新脚本示例如下:
DBMS_STATS.GATHER_SCHEMA_STATS(
‘HNSIMIS’, --HNSIMIS 为模式名
100,
FALSE,
‘FOR ALL COLUMNS SIZE AUTO’);
更新统计信息的目的在于大批量迁移数据后,可能会导致数据库优化器根据错误的统计信息
得到错误的查询计划,严重影响查询性能。
4.2.2数据备份
再对数据更新完统计信息后,在数据量不大,磁盘空间足够的情况下应进行一次数据备份工
作。数据备份有两种方式:正常停止数据库后,拷贝备份 data 文件夹;或者开启归档日志
后,进行物理备份。
–命令行开启归档
–关闭或者开启归档
ALTER DATABASE ARCHIVELOG;

–调整数据库到mount状态
alter database mount;

–设置归档路径以及归档日志大小
ALTER DATABASE ADD ARCHIVELOG ‘DEST = /home/dmarch, TYPE = local, FILE_SIZE = 128, SPACE_LIMIT = 10240’;

–开启归档
alter database archivelog;

–查看归档状况
select arch_mode from v$database;
–进行全备
backup database full backupset ‘/home/dmbak/DB_FULL_20201111’;

4.2.3整理对象脚本
整理所有数据库对象脚本,这是为了对项目移植情况进行记录和备份,方便再次进行数据迁
移。备份的数据库对象脚本包括:序列定义及当前值,表定义,索引定义,视图定义,函数
定义,存储过程定义,包及包体定义、自定义类型和同义词定义。
脚本对象导出可通过达梦数据迁移 DTS 工具来进行。

更多资讯请上达梦技术社区了解: https://eco.dameng.com

相关推荐

相关文章