`
guoyanxi
  • 浏览: 275708 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

migrate from win to linux(遇到的问题)

    博客分类:
  • db2
阅读更多
之前写过一篇在自己虚拟机简单测试的步骤
http://guoyanxi.iteye.com/blog/1056773

当然其中都是非常简单和理想化的环境,这篇文章打算记录其中遇到的问题

如果有机会应该还会写一篇总结出来,方便以后查阅

问题1.文本文件格式
--简单版当中写过如何处理,这里再复述一下

--使用db2look.sql ddl文件导入数据库结构  
[db2inst2@localhost tmp]$ db2 -tvf db2look.sql;  
  
DB21007E  End of file reached while reading the command.  
--报出DB21007E错误,这个是本次实验当中唯一一个问题  
--原因在于  
[db2inst2@localhost tmp]$ file db2look.sql   
db2look.sql: ASCII English text, with CRLF line terminators  
--使用dos2unix进行格式转换  
[db2inst2@localhost tmp]$ dos2unix db2look.sql   
dos2unix: converting file db2look.sql to UNIX format ...  
dos2unix: problems renaming './d2utmpMZpuAR' to 'db2look.sql'  
          output file remains in './d2utmpMZpuAR'  
dos2unix: problems converting file db2look.sql  
  
--再检查格式,ok  
[db2inst2@localhost tmp]$ file d2utmpMZpuAR  
d2utmpMZpuAR: ASCII English text



至于去M字符,可以看
http://guoyanxi.iteye.com/blog/1091512


问题2.SQL0670N , SQL0204N 表空间不一致问题

SQL0670N 是表空间page size不一致
--默认create database是使用4K的大小

$ db2pd -alldbs -tablespace

Database Partition 0 -- Database DELPHI2 -- Active -- Up 0 days 00:00:08 -- Date 06/14/2011 09:42:36

Tablespace Configuration:
Address            Id    Type Content PageSz ExtentSz Auto Prefetch BufID BufIDDisk FSC NumCntrs MaxStripe  LastConsecPg Name
0x070000004169B4A0 0     DMS  Regular 4096   4        Yes  4        1     1         Off 1        0          3            SYSCATSPACE
0x070000004169CC00 1     SMS  SysTmp  4096   32       Yes  32       1     1         On  1        0          31           TEMPSPACE1
0x07000000416A0340 2     DMS  Large   4096   32       Yes  32       1     1         Off 1        0          31           USERSPACE1

--可以在建立的时候指定页面大小,注意数字后有一个空格

db2 => create database delphi2 on /db/a1inlean/db2data/DELPHI2 pagesize 16 k

--这时候page size 应该就是16K了,同时,以后建立新的表空间的时候,默认也是使用这个新的page size

$ db2pd -alldbs -tablespace

Database Partition 0 -- Database DELPHI2 -- Active -- Up 0 days 00:02:06 -- Date 06/14/2011 09:58:36

Tablespace Configuration:
Address            Id    Type Content PageSz ExtentSz Auto Prefetch BufID BufIDDisk FSC NumCntrs MaxStripe  LastConsecPg Name
0x070000005169BD20 0     DMS  Regular 16384  4        Yes  4        1     1         Off 1        0          3            SYSCATSPACE
0x070000005169D480 1     SMS  SysTmp  16384  32       Yes  32       1     1         On  1        0          31           TEMPSPACE1
0x07000000516A0BC0 2     DMS  Large   16384  32       Yes  32       1     1         Off 1        0          31           USERSPACE1



--不指定page size建立新的表空间
$ db2 create user TEMPORARY tablespace TEMPSPACE pagesize
DB20000I  The SQL command completed successfully.

$ db2pd -alldbs -tablespace

Database Partition 0 -- Database DELPHI2 -- Active -- Up 0 days 00:06:21 -- Date 06/14/2011 10:11:15

Tablespace Configuration:
Address            Id    Type Content PageSz ExtentSz Auto Prefetch BufID BufIDDisk FSC NumCntrs MaxStripe  LastConsecPg Name
0x070000005169BD20 0     DMS  Regular 16384  4        Yes  4        1     1         Off 1        0          3            SYSCATSPACE
0x070000005169D480 1     SMS  SysTmp  16384  32       Yes  32       1     1         On  1        0          31           TEMPSPACE1
0x07000000516A0BC0 2     DMS  Large   16384  32       Yes  32       1     1         Off 1        0          31           USERSPACE1
0x0700000054696F80 3     DMS  Large   16384  4        Yes  4        1     1         Off 1        0          3            SYSTOOLSPACE
0x0700000054685160 4     SMS  UsrTmp  16384  32       Yes  32       1     1         On  1        0          31           TEMPSPACE



SQL0204N  "<name>" is an undefined name.
这里是指指定的表空间不存在

按照原数据库建立一模一样的表空间就好了


问题3.SQL0668N , 导入后数据完整性问题


db2 => select count(*) from "AKATARIYA"."T_NODE_EVENT"

1          
-----------
SQL0668N  Operation not allowed for reason code "1" on table 
"AKATARIYA.T_NODE_EVENT".  SQLSTATE=57016
db2 => ? 57016

SQLSTATE 57016: The table cannot be accessed, because it is inactive.

--是因为db2move其实是使用load进行数据载入,所以需要set integrity

--使用这个查询确定哪些表需要处理
db2 => Select TABSCHEMA,tabname from syscat.tables where status='C' 

TABSCHEMA                                                                                                                        TABNAME                                                                                                                         
-------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------
AKATARIYA                                                                                                                        T_SCHEMA_PATCH                                                                                                                  
AKATARIYA                                                                                                                        T_USER                                                                                                                          
AKATARIYA                                                                                                                        T_USER_PROFILE                                                                                                                  
AKATARIYA                                                                                                                        T_GROUP            

--可以逐一进行set integrity
db2 => set integrity for AKATARIYA.T_GROUP IMMEDIATE CHECKED



但是有的时候时候会遇到SQL3608N

SQL3608N  Cannot check a dependent table "AKATARIYA.T_PERMISSION_ACTOR_MAP"
using the SET INTEGRITY statement while the parent table or underlying table
"AKATARIYA.T_ACTOR" is in the Set Integrity Pending state or if it will be put
into the Set Integrity Pending state by the SET INTEGRITY statement. 
SQLSTATE=428A8

当然可以按照顺序逐一处理,也可以使用下面的方法偷懒

db2 => set integrity for AKATARIYA.T_FIELD_TYPE ALL IMMEDIATE UNCHECKED  

DB20000I  The SQL command completed successfully.


但是当然会存在约束冲突的风险

不过这里是从原有数据库导入全新的数据库(空的),问题不大

分享到:
评论

相关推荐

    Migrate from Oracle 9i RAC to 10g RAC

    #### 标题解析:Migrate from Oracle 9i RAC to 10g RAC 标题明确了本文档的主要内容是关于如何从Oracle 9i Real Application Clusters (RAC) 数据库迁移至Oracle 10g RAC数据库的过程。这涉及到数据库架构、软件...

    migrate from on-premises to Azure SQL Database Managed Instance

    migrate from on-premises to Azure SQL Database Managed Instance

    Upgrade, Migrate & Consolidate to Oracle Database 12c

    Upgrade, Migrate & Consolidate to Oracle Database 12c: Strategies, General Preparation Steps, Upgrade & Migration Cases; Fallback Strategies; New Features in Oracle 12c; Performance Management.

    Paragon.Migrate.OS.to.SSD.v4.0.x64.HAPPY.NEW.YEAR-DVT.zip

    标题中的“Paragon Migrate OS to SSD v4.0 x64”是一款专门用于操作系统迁移的软件工具,由Paragon Software公司开发。该版本号“v4.0”表明这是该软件的第四次主要更新,而“x64”则表示它支持64位操作系统。后缀...

    3364574-2_1645_How to Migrate from On-premises to Office 365.pdf

    How to Migrate from On-premises to Office 365, https://docs.microsoft.com/zh-cn/sharepointmigration/introducing-the-sharepoint-migration-tool

    Migrate ARM Compiler 5 to ARM Compiler 6 中文翻译版

    Migrate ARM Compiler 5 to ARM Compiler 6 中文翻译版本

    Migrate from Box to Dropbox-crx插件

    【标题】:“Migrate from Box to Dropbox-crx插件”是一种专为用户设计的工具,旨在帮助他们方便地将数据从Box云存储平台迁移至Dropbox。这款扩展程序解决了用户在多个云服务之间同步和迁移数据时可能遇到的困扰,...

    jquery-migrate-3.0.0.zip

    例如,如果你的项目中还依赖于jQuery 1.x时代的某些功能,而在升级到jQuery 3.x时遇到了问题,jQuery Migrate就能派上用场。它会提醒开发者哪些代码需要更新,或者直接提供一个临时的解决方案,使得代码在新版本中...

    SAP S_4HANA Migration Cockpit - Migrate your Data to SAP S_4HANA.pdf

    SAP S_4HANA Migration Cockpit - Migrate your Data to SAP S_4HANA.pdf

    Nginx From Beginner to Pro(Apress,2016)

    Teaches you to start up Nginx and quickly take your expertise to a level where you can comfortably work with various aspects of the web ...Learn how and what to migrate from IIS & Apache web servers.

    A Guide for Migrating From Oracle to MySQL

    With the rapid growth of MySQL in the database market, many corporations, government agencies, educational institutions, and others have begun to migrate away from their expensive and proprietary ...

    jquery-migrate3.4版本

    jQuery Migrate 是一个插件,它的主要目的是帮助开发者平滑地过渡到较新版本的 jQuery,解决老版本代码在新版本中可能遇到的兼容性问题。在jQuery Migrate 3.4.0版本中,我们看到了对旧API和功能的维护,以及对现代...

    How to Migrate Email to the Cloud-EN.pdf

    How to Migrate Email to the Cloud-EN.pdf

    How to Migrate Email to the Cloud-CN.pdf

    How to Migrate Email to the Cloud-CN.pdf

    jquery-migrate

    4. **移除jQuery Migrate**: 一旦所有问题都被修复,你可以安全地从项目中移除jQuery Migrate,以减少不必要的代码体积。 ### 实际应用示例 例如,如果你的代码中使用了`.live()`方法来绑定事件,而在jQuery 1.9及...

    jquery-migrate-1.2.1.js文件

    `jquery-migrate-1.2.1.js` 文件是jQuery的一个辅助工具,它主要用于帮助开发者解决在升级到较新版本的jQuery时可能遇到的向后兼容性问题。这个插件的主要目的是为了警告开发者那些在新版本中已经被废弃或者更改的...

    jquery-migrate-3.0.0.js

    本文将深入探讨jQuery Migrate 3.0.0的核心概念和作用,以及它如何帮助我们处理兼容性问题。 jQuery Migrate 3.0.0是jQuery团队发布的一个辅助工具,其主要目的是帮助开发者识别和修复那些在最新jQuery版本中已被...

    jquery-migrate-3.0.1.js jar包

    - 虽然jQuery Migrate可以帮助解决兼容性问题,但它并不能涵盖所有可能的问题,有些API的改变可能需要手动调整。 - 长期依赖jQuery Migrate不利于代码的维护和优化,因此应尽早进行迁移工作。 - 在生产环境中,除非...

    jquery-migrate-1.2.1.min.js

    在某些情况下,当 `jqPrint` 与较新的 jQuery 版本一起使用时,可能会遇到兼容性问题,因为 `jqPrint` 可能依赖于在新版本中被移除的函数或方法。`jQuery Migrate` 的作用就是在此时显现,它通过恢复这些已被移除的...

Global site tag (gtag.js) - Google Analytics