加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

RAC环境下修改字符集

发布时间:2020-12-30 15:43:37 所属栏目:站长百科 来源:网络整理
导读:跟单实例几多有点区别 ORACLE 11g RAC 两节点 第一步 查察字符集 [email?protected]select userenv(‘language‘) from dual; USERENV(‘LANGUAGE‘) ---------------------------------------------------- AMERICAN_AMERICA.AL32UTF8 /* 也可以通过下面几

跟单实例几多有点区别
ORACLE 11g RAC 两节点
第一步 查察字符集
[email?protected]>select userenv(‘language‘) from dual;

USERENV(‘LANGUAGE‘)
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
/*
也可以通过下面几种方法查询当前字符集
SQL> SELECT parameter,value FROM v$nls_parameters WHERE parameter LIKE ‘%CHARACTERSET‘;

PARAMETER VALUE
---------------------------------------------------------------- ----------------------------------------------------------------
NLS_CHARACTERSET ZHS16GBK
NLS_NCHAR_CHARACTERSET AL16UTF16

下面2种功效一样
set pagesize 100
col value$ for a30
select name,value$ from props$ where name like ‘%NLS%‘;

select * from nls_database_parameters;
*/


第二步 封锁一个节点
[[email?protected] ~]# /u01/app/11.2.0/grid/bin/crsctl stop cluster

第三步 在另一个节点修改启动参数
TRUE改为false
[email?protected]>alter system set cluster_database=false scope=spfile;

[email?protected]>shutdown immediate;

/*
show parameter pfile; 若VALUE为空是pfile启动,要修改为SPFILE启动,空的话如下
SQL>CREATE SPFILE FROM PFILE;
SQL>shutdown immediate;
SQL>startup;
SQL>alter system set cluster_database=false scope=spfile;
SQL>shutdown immediate;
*/

第四步 修改参数

[email?protected]>startup mount;

[email?protected]>ALTER SYSTEM ENABLE RESTRICTED SESSION;

System altered.

[email?protected]>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

System altered.

[email?protected]>ALTER SYSTEM SET AQ_TM_PROCESSES=0;

System altered.

[email?protected]>ALTER DATABASE OPEN;

Database altered.


第五步 修改字符集

[email?protected]>ALTER DATABASE character set INTERNAL_USE ZHS16GBK;


第六步 规复RAC

[email?protected]>alter system set cluster_database=true scope=spfile;

[email?protected]>shutdown immediate;

[email?protected]>startup mount;

[email?protected]>ALTER SYSTEM DISABLE RESTRICTED SESSION;

[email?protected]>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=1;

[email?protected]>ALTER SYSTEM SET AQ_TM_PROCESSES=1;

[email?protected]>alter database open;

第七步 启动开始遏制的RAC节点,并验证
其它一个节点
[[email?protected] ~]# /u01/app/11.2.0/grid/bin/crsctl start cluster

[email?protected]>select userenv(‘language‘) from dual;

USERENV(‘LANGUAGE‘)
------------------------------------------------------------------------------------------------------------------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK


【留意事项】
修改字符集要审慎,不能回退,有须要的话备份下
DB中有CLOB范例字段不应承字符集转换,可以导出-删除-导入(转换完成后)
超集解:假如s1荟萃包括s2荟萃中的每一个元素,而且s1荟萃中有也许包括s2荟萃中不含有的元素时,那么称s1是s2的超等。声名AL32UTF8包括ZHS16GBK。

三次编码转换
1、执行exp时,数据库中数据的编码会转换为导出客户端编码
2、执行imp时,dmp文件的编码转换为导入客户端编码
3、导入客户端编码转换为方针端数据库的数据库编码
处理赏罚步伐:通过NLS_LANG机动配置,镌汰编码转换的次数,可能使得彼此的转换可以或许兼容,可以最洪流平镌汰乱码的呈现。假如已经有了exp导出的dmp文件,然后在导入进程中呈现乱码,一样平常处理赏罚提议nls_lang编码配置和dmp文件同等,让转换产生在导入客户端和数据库处事器间(要求:编码可以彼此转换)

结论1.不管是从AL32UTF8 到ZHS16GBK 照旧从ZHS16GBK 到AL32UTF8 ,中文都不会乱码,会自动转换(导出导入进程中无报错),可是对付其他国度说话会有题目(好比印度,日本等笔墨)。2.通过数据泵导出或导入的数据,与oracle用户操纵体系参数NLS_LANG无关,编码自动与数据库参数NLS_CHARACTERSET沟通。3.AL32UTF8 字符集一此中文占用3个字节,ZHS16GBK 字符集一此中文占用2个字节。假如确认应用措施只用到英文和中文,ZHS16GBK会越发节减存储。假如不确定,提议行使AL32UTF8.4.建表时指定列属性varchar(10),个中的10指的是字节,如果AL32UTF8 字符集,则只能存3此中文,如果ZHS16GBK字符集,则可以存5此中文。这会导致从ZHS16GBK字符集数据库通过数据泵导入到AL32UTF8字符集数据库进程中,有些列必要扩容。假如必要按字符指定列属性,应该为varchar2(10 char)。5.AL32UTF8是ZHS16GBK的超集,由于AL32UTF8包括了更多国度的笔墨。6.通过SecureCRT或xshell查察到中文乱码时,只必要查察数据库NLS_DATABSE_PARAMETERS中NLS_CHARACTERSET的字符集是什么,然后保持操纵体系用户NLS_LANG的配置和SecureCRT或xshell软件的编码配置与之同等即可。来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31441616/viewspace-2145085/,如需转载,请注明出处,不然将追究法令责任。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读