rac 环境下修改oracle数据库字符集为GBK
由于数据库导入数据报字符集错误,所以修改字符集合导出数据字符集一致
1、首先要查询当前RAC环境的字符集
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
--------------------------------------------------------------------------------
AMERICAN_AMERICA.WE8ISO8859P1
2. 修改RAC的spfile中cluster_database为false非RAC(如果不修下面会报错)
SQL>alter system set cluster_database=false scope=spfile sid='rac2';
3、停止数据库(rac1和rac2都要停止)
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
4、启动数据库(只在rac1上面操作)
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 1577058304 bytes
Fixed Size 2084264 bytes
Variable Size 436208216 bytes
Database Buffers 1124073472 bytes
Redo Buffers 14692352 bytes
SQL> Alter database mount exclusive;
Database altered.
SQL> Alter system enable restricted session;
System altered.
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
System altered.
SQL> Alter database open;
Database altered.
5、修改字符集
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER DATABASE character set INTERNAL_USE zhs16gbk;
sql> alter system set cluster_database=true scope=spfile sid='RAC2'; (把cluster_database改为true)
6、验证(两个节点都要测)
SQL> SHUTDOWN IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.
Total System Global Area 1577058304 bytes
Fixed Size 2084264 bytes
Variable Size 436208216 bytes
Database Buffers 1124073472 bytes
Redo Buffers 14692352 bytes
Database mounted.
Database opened.
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
--------------------------------------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
7、最后倒入数据导入成功不报字符集错误了
注:非RAC环境也可以用上面的方法修改只不过不需要修改spfile中的cluster_database