场景:oracle数据库要进行迁移,字符集ZHS16GBK转换成AL32UTF8

供稿:hz-xin.com     日期:2025-01-09
oracle字符集转换,ZHS16GBK转换为AL32UTF8的数据迁移过程

这么着修改:

有一个配置文件名为dbappscfg.properties,修改该文件即可解决上述问题。这个文件的位置在$ORACLE_HOME\sysman\config目录下,用任何的文本编辑器打开该文件,在这个文件里面,找到这样一项

NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

set nls_lang = AMERICAN_AMERICA.ZHS16GBK

1、修改server端字符集(不建议使用)

  在oracle 8之前,可以用直接修改数据字典表props$来改变数据库的字符集。但oracle8之后,至少有三张系统表记录了数据库字符集的信息,只改props$表并不完全,可能引起严重的后果。正确的修改方法如下:

  $sqlplus /nolog

  SQL>conn / as sysdba;

以上方法测试不行,用scott/tiger登陆sqlplus然后connect sys/sys as sysdba,然后输入命令即可


  若此时数据库服务器已启动,则先执行SHUTDOWN IMMEDIATE命令关闭数据库服务器,然后执行以下命令:

  SQL>STARTUP MOUNT;

  SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;

  SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

  SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;

  SQL>ALTER DATABASE OPEN;

  SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK; //跳过超子集检测

  SQL>ALTER DATABASE national CHARACTER SET INTERNAL ZHS16GBK;

这一行不起作用,执行后出错ORA-00933: SQL 命令未正确结束,不过执行上一行命令已经生效,其他文章里未提到本行。


  SQL>SHUTDOWN IMMEDIATE;

  SQL>STARTUP

  

将目标库的字符串的字段类型加长,乘以1.5,向上取整。
导出的时候先导出只有表结构的dmp,再导出只含有数据的dmp,导入的时候先导入只有表结构的dmp,然后修改字符串的字段长度,再导入只含有数据的dmp。

你看看你的数据库字符集是什么?应该确保导入导出的字符集是一致的,确保数据库的数据库字符集和国家字符集都是一样的

场景:oracle数据库要进行迁移,字符集ZHS16GBK转换成AL32UTF8
将目标库的字符串的字段类型加长,乘以1.5,向上取整。导出的时候先导出只有表结构的dmp,再导出只含有数据的dmp,导入的时候先导入只有表结构的dmp,然后修改字符串的字段长度,再导入只含有数据的dmp。

Oracle数据库迁移的几种方式
如果需要处理的数据量较大,或者对迁移过程有更高的要求,可以考虑使用传输表空间的方式进行迁移。这种方式主要适用于Oracle数据库之间,能够高效地传输表空间数据。另外,通过创建数据库链接(dblink),也可以实现源数据库和目标数据库之间的数据复制。这种方式在不同数据库系统间迁移数据时非常有用。除此之...

Oracle10.2.0.1冷备迁移之_数据文件拷贝方式
为了将一台旧服务器上的Oracle 10.2.0.1数据库迁移到新服务器上,我们首先需要准备新服务器的环境并确认迁移前后的配置一致性。以下迁移步骤分为迁移前准备、新服务器配置、数据库软件安装与数据库迁移三个阶段。迁移前准备阶段包括确认新服务器的硬件配置与旧服务器相匹配,如操作系统版本、磁盘空间、C...

如何用Oracle导入导出工具来实现Oracle数据库移植?
以一个具体案例为例,一个单位拥有Oracle数据库的不同版本,包括Oracle 8.1.6 For NT、Oracle 8.0.5 For NT、Oracle 8.0.4 For Digital Unix、Oracle 7.3 For NT。考虑到Oracle 8.0.4 For Digital Unix运行于小型机环境,并且该单位的备份系统也是针对小型机设计,因此决定将这些数据库统一...

怎么将数据库从Oracle迁移到SQL Server,或从Oracle迁移到MySQL_百度知...
注意:OGG在Oracle迁移MySQL的场景下不支持DDL语句同步,因此表结构迁移完成后到数据库切换前尽量不要再修改表结构。 (三)数据迁移 数据同步的操作均采用OGG工具进行,考虑数据全量和增量的衔接,OGG需要先将增量同步的抽取进程启动,抓取数据库的redo log,待全量抽取结束后开启增量数据回放,应用全量和增量这段期间产生的日...

在oracle中如何将一个表中所有数据加到另一个表中
要将导出的dmp文件导入到Oracle数据库中,可以使用imp命令。具体来说,可以使用如下命令:imp user\/password@database file=d:\\p2p.dmp。如果你使用PL\/SQL进行导出,可以打开PL\/SQL,找到工具->导出表,选择Oracle导出,选择需要导出的表,然后点击输出文件,输入文件名称,点击导出即可。如果你需要导出PL\/...

怎样将数据从Oracle迁移到TiDB
迁移过程分为三个步骤:首先,需要将DDL(数据定义语言)转换,注意字段类型兼容性。然后,进行全量数据迁移,可以借助Oracle的OGG工具,通过初始装载和增量抽取实现。在迁移前,确保Oracle设置为归档模式、开启强制日志记录,并启用GoldenGate复制。目标端TiDB需要设置tidb_constraint_check_in_place参数以处理...

如何将ORACLE的数据迁移到MYSQL
你可以用工具 我给你建议一个开源的图像化界面的工具 kettle,这个工具使用简单可以做抽取和转换,而且支持很多的数据库。

Oracle RAC迁移至南大通用GBase 8c 解决方案
传统架构的数据库产品已无法满足百TB或PB级别大数据量和高并发业务场景的需求,核心业务系统中Oracle RAC架构对硬件设备的稳定性、性能要求极高,而迁移至国产服务器时性能和稳定性往往下降,Oracle RAC等传统数据库集群在业务发展下节点数量受限,某些互联网业务需要弹性扩缩的能力,传统数据库产品通常无法...

一文详解如何从 Oracle 迁移数据到 DolphinDB
ODBC 迁移与安装 ODBC 驱动:在 Centos 系统中,先安装 unixODBC 库,然后下载 Oracle ODBC 驱动进行安装。安装完成后,配置 ODBC 驱动与数据库连接文件,确保正确设置连接参数。数据同步与性能基准:利用 ODBC 插件或 DataX 驱动进行数据迁移,可实现从 Oracle 到 DolphinDB 的数据同步。通过测试不同方法...