首页 > 数据库 > 数据库开发技术 > XXXX客服系统数据库修改数据库字符集
在经过长达1个月的测试后我们终于决定将现网数据库字符集由 US7ASCII修改为 ZHS16GBK。
修改方案如下:
1. 停止并重启数据库监听器,查看监听器是否可以正常重启,最后再关闭。
分别登陆41.1与41.2
Lsnrctl
Stop
Start
Stop
2. 校验完成后,通过配置PFILE方式停止数据库的双机模式
在41.1上用oracle用户登陆和执行:
sqlplus "/as sysdba"
Create pfile =”/home/oracle/pfile.ora”from spfile;
修改PFILE中的“*.cluster_database=false;”
在41.1和41.2上用oracle用户登陆和执行:
sqlplus "/as sysdba"
Shutdown immediate;
3. 使用实例独占资源的模式启动数据库到MOUNT模式,并按照脚本修改数据库的参数,为修改字符集做准备
在41.1上用oracle用户登陆和执行:
sqlplus "/as sysdba"
Startup nomount pfile=”/home/oracle/pfile.ora”
Alter database mount exclusive;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
Alter database open;
4. 修改数据库字符集
注意:确认所有JOB全部BROKEN,ORACLE没有被任何用户连接!
使用alter database character set ZHS16GBK;
提醒报错后,再使用
alter database character set INTERNAL_USE ZHS16GBK;
5. 登陆数据库查看数据情况,主要查看CLOG型字段与VARCHAR2
SELECT * FROM T_WF_ERRORLOG;
SELECT * FROM T_WF_SERVICEINFO;
6. 确认数据库编码没有问题后,修改数据库配置文件,重新使用spfile模式启动数据库双机。
在41.1和41.2上用oracle用户登陆和执行:
sqlplus "/as sysdba"
startup;
7. 修改数据库参数,将数据库参数配置成升级前的状态
8. ALTER SYSTEM DISABLE RESTRICTED SESSION;
9. ALTER SYSTEM SET JOB_QUEUE_PROCESSES=10;
10. ALTER SYSTEM SET AQ_TM_PROCESSES=1;
11. 启动ORALCE主、副节点的监听器
Lsnrctl start
14,windows机器上如图修改注册表:NLS_LANG=AMERICAN_AMERICA. ZHS16GBK
用oracle用户登陆执行如下:
vi .tcshrc
修改字符集为setenv NLS_LANG “AMERICAN_AMERICA. ZHS16GBK”
source .tcshrc
用iuas用户登陆执行如下:
vi /home/iuas/iuas/bin/iuas_init.csh
修改字符集为:setenv NLS_LANG "AMERICAN_AMERICA. ZHS16GBK "
source iuas/bin/iuas_init.csh
用oracle用户登陆执行如下:
vi .profile
修改:NLS_LANG=AMERICAN_AMERICA.US7ASCII
为:NLS_LANG=AMERICAN_AMERICA. ZHS16GBK
保存修改执行:
. ./.profile
用iuas用户登陆执行如下:
vi /home/iuas/iuas/bin/iuas_init.csh
修改字符集为:setenv NLS_LANG "AMERICAN_AMERICA. ZHS16GBK "
source iuas/bin/iuas_init.csh
在修改字符集后出现大范围的乱码,或丢失大量数据,或导致数据库无法正常运行,或造成报表导出数据乱码,或导致业务组件出现乱码。
停止并重启数据库监听器,查看监听器是否可以正常重启,最后再关闭。
分别登陆41.1与41.2
Lsnrctl
Stop
Start
Stop
19.校验完成后,通过配置PFILE方式停止数据库的双机模式
在41.1上用oracle用户登陆和执行:
sqlplus "/as sysdba"
Create pfile =”/home/oracle/pfile.ora”from spfile;
修改PFILE中的“*.cluster_database=false;”
在41.1和41.2上用oracle用户登陆和执行:
sqlplus "/as sysdba"
Shutdown immediate;
20.使用实例独占资源的模式启动数据库到MOUNT模式,并按照脚本修改数据库的参数,为修改字符集做准备
在41.1上用oracle用户登陆和执行:
sqlplus "/as sysdba"
Startup nomount pfile=”/home/oracle/pfile.ora”
Alter database mount exclusive;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
21.修改数据库字符集
注意:确认所有JOB全部BROKEN,ORACLE没有被任何用户连接!
使用alter database character set US7ASCII;
提醒报错后,再使用
alter database character set INTERNAL_USE US7ASCII;
22. 修改oracle用户的环境变量NLS_LANG
在41.1和41.2上用oracle用户登陆在/home/oracle执行:
vi .profile
修改:NLS_LANG=AMERICAN_AMERICA. ZHS16GBK
为:NLS_LANG=AMERICAN_AMERICA. US7ASCII
保存修改执行:
. ./.profile
23. 登陆数据库查看数据情况,主要查看CLOG型字段与VARCHAR2
SELECT * FROM T_WF_ERRORLOG;
SELECT * FROM T_WF_SERVICEINFO;
24. 确认数据库编码没有问题后,修改数据库配置文件,重新使用spfile模式启动数据库双机。
在41.1和41.2上用oracle用户登陆和执行:
sqlplus "/as sysdba"
startup;
25. 修改数据库参数,将数据库参数配置成升级前的状态
ALTER SYSTEM DISABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESS=10;
ALTER SYSTEM SET AO_TM_PROCESS=1
26. 启动ORALCE主、副节点的监听器
Lsnrctl start
[@more@]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26018160/viewspace-1052893/ ,如需转载,请注明出处,否则将追究法律责任。