sybase修改字符集
更新时间:2024-04-19 06:09:01 阅读量: 综合文库 文档下载
Sybase数据库 进入isql模式:
在dos界面中输入:isql –Usa –P111111 –Szhouyx 分别代表用户名 密码 服务器名
修改字符集
Sybase修改字符集(cp850 to cp936)
最重要的命令是:C:\\sybase\\charsets \\cp936>charset -Usa -Psybase -Sdiren binary.srt cp936
新中大软件字符集 转换为cp936技术说明
一、为什么要修改现在使用的数据库的字符集?
安装ASE数据库默认的字符集为CP850,其对 于中文的字符集(GB2312)比较少,很多汉字无法保存,导致在备份恢复时出错。
二、替换数据库字符集比较好的时间是什么时候? 建议在业务不繁忙进行该项工作。
三、确认修改数据库字符集的时间后,你的重要工作是什么? 注意:全部备份你的数据库,并且你要确保你的备份是有效的。
四、修改数据库字符集的整个思路是什么?
1、确认服务器停止 对外服务前,完整地备份你的数据库。
2、将原来cp850或iso-1字符集的数据库数据bcp out到你指定的文件目录下。 3、重新 构造你的服务器,配置你的服务器字符集为cp936。 4、重新建立并规划你的数据库。
5、将bcp out出来的数据bcp in 到新的数据库里(该数据库的字符集环境为cp936)。 6、修改并配合应用程序使其能够正常运行。确保对客户端最小化影响。
五、 修改的操作步骤
以下假设:
Sybase server 名:asesrv (在Dsedit中设置) Sybase sa的口令:sybase 生产库名:test
操作的目录:d:\\shen
建议:按照以上假设,只需要将所有的生产库名test替换成你的生产库名字!
1、停止数据库服务器对外服务,注意并不是停止你的服务器的 服务。检查一下master库的大小,不能小于40M。
2、备份你的数据库,注意是全部备份。建议你将你的数据库做一次DBCC。 1>dump database test to “d:\\shen\\test.dmp” 2>go
3、生成批处 理文件
3.1 生成用户表BCP OUT批处理文件bcpout.bat
3.1.1 修改bcpout.txt文件,使其符合你的实际情况,bcpout.txt文件内容为:
select 'bcp test..' + name + ' out ' + '\from sysobjects where type='U' order by name go
3.1.2 在DOS命令下执行以下命令:
? d:\\ren\\>isql -U sa -Psybase -Sasesrv -Dtest -ibcpout.txt -obcpout.bat
3.1.3 编辑结果文件bcpout.bat,将开头和结尾多余部分去掉,并查找到“GG_XTHP”,将该行删除(系统帮助表,因为包含有Text字段不能正常 bcp in/out)。
3.2 生成用户表BCP IN批处理文件bcpin.bat
3.2.1 修改bcpin.txt文件,使其符合你的实际情况,bcpin.txt文件内容为:
select 'bcp test..' + name + ' in ' + '\from sysobjects where type='U' order by name go
3.2.2 在DOS命令下执行以下命令:
? d:\\ren\\>isql -U sa -Psybase -Sasesrv -Dtest -ibcpin.txt -obcpin.bat
3.2.3 编辑结果文件bcpin.bat,将开头和结尾多余部分去掉,并查找到“GG_XTHP”,将该行删除(系统帮助表,因为包含有Text字段不能正常 bcp in/out)。
4、导出数据
? 在DOS命令下执行4.1.3的结果文件bcpout.bat,得到数据。 ? d:\\shen\\>bcpout > bcpout_error.txt
? 导出结束后,检查输出文件bcpout_error.txt,看看有没有错误。
5、采用DBArtisan 7.2.1工具Extract以下文件,请严格按照以下顺序。
5.1 Check_Constraints.sql(导出后drop)
5.2 Foreign_keys.sql(导出后drop)
5.3 Indexes.sql(导出后drop)
5.4 Primary_Keys.sql (导出后drop),注意:可能出现FP_SNJZFP、SB_DZSBQKB不能drop,不必理会。
5.5 Procedures.sql
5.6 Triggers.sql(导出后drop)
5.7 Tables.sql
5.8 Views.sql
5.9 Sybase账号,导出可以参考以下命令:
? D:\\shen\\>bcp master..syslogins out syslogins.dat -c -Usa -Psybase -Sasesrv -F4
6、 在isql状态下查看原来数据库字符集使用情况,服务器和客户端的都要查看,方法是: ? 获得服务器端的字符集情况: ? 1>sp_helpsort ? 2>go
? 输出结果应为: Character Set = 2, cp850
Code Page 850 (Multilingual) character set. Sort order = 50, bin_cp850
Binary Sort order for Code Page 850 (cp850).
获得客户端字符集情况: 1>select @@client_csname 2>go
输出结果应为:iso_1
说明:很多时候应用程序报错,客户端和服务器端字符集不相匹配。
7、查看原来数据库设备使用情况(主要是起参考作用),并做详细记载: 1>sp_helpdb test 2>go
检查点:确认你的以上准备工作已经全部做好。
8、在 Sybase Central中将原来的生产数据库删除。
************************************************************** 经 过测试确认:数据库设备不需要删除,Sybase服务不需要重建!
注意:如果决定不重建Sybase服务,请直接跳过第9步直接到第10步! **************************************************************
9、 删除生产库设备,删除注册表相关键,重建Sybase服务。
9.1 删除生产库设备
9.2 停止Sybase服务,运行Sybase服务器配置工具,Remove Adaptive Server删除服务器diren,删除生产库物理文件,删除C:\\sybase\\data目录下文 件:master.dat,sybprocs.dat。
9.3 清理注册表信息(为了保证本次修改后的数据库服务器asesrv和原来的一样,将原来的相关服务器asesrv删除)。
\\\\HKEY_LOCAL_MACHINE\\SOFTWARE\\SYBASE\\Server\\DIREN \\\\HKEY_LOCAL_MACHINE\\SOFTWARE\\SYBASE\\Server\\DIREN_BS \\\\HKEY_LOCAL_MACHINE\\SOFTWARE\\SYBASE\\Server\\DIREN_HS \\\\HKEY_LOCAL_MACHINE\\SOFTWARE\\SYBASE\\Server\\DIREN_MS \\\\HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment下相关键。
\\\\HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services下以下键: SYBSQL_DIREN
?? SYBXPS_DIREN_XP ?? SYBBCK_DIREN_BS ?? SYBMON_DIREN_MS ?? SYBHIS_DIREN_HS
? ControlSet001以及ControlSet002等中的CurrentControlSet键中的相应键也要删除(如果有的话)。
9.4 运行Sybase服务器配置工具重新build server,使用原来数据库服务器名字。
9.5 重新设置服务器参数,调整master库大小,增加tempdb库大小。
10、将数据库的缺省字符集设置为cp936: C:\\>cd sybase
C:\\sybase>cd charsets
C:\\sybase\\charsets>cd cp936
C:\\sybase\\charsets\\cp936>charset -Usa -Psybase -Sasesrv binary.srt cp936
你将看到下面的信息,表示这时你已经成功添加了cp936字符集到你的系统中。 Loading file 'binary.srt'. Found a [sortorder] section. This is Class-1 sort order.
Finished loading the Character Set Definition. Finished loading file 'binary.srt'. 1 sort order loaded successfully
11、接着是将添加的 cp936设置为你的缺省值。方法是: C:\\sybase\\charsets\\cp936>isql -Usa -Psybase -Sasesrv 1> select name,id from syscharsets 2> go
ascii_8????????????????????????? 0 iso_1??????????????????????????? 1 cp850??????????????????????????? 2 bin_iso_1?????????????????????? 50 bin_cp850?????????????????????? 50 bin_cp936?????????????????????? 50 cp936????????????????????????? 171 这样知道你的cp936的ID号是171
12、将刚才新build的server的数据库缺省的字符集设置为cp936 ? 1> sp_configure 'default character set id',171 ? 2> go
? In changing the default sort order, you have also reconfigured SQL Server's default character set. ? Parameter Name???????????????? Default???? Memory Used Config Value Run Value ? ------------------------------ ----------- ----------- ------------ -----------
? default character set id???????????????? 1?????????? 0???????? 171??????????????? 2 ? (1 row affected)
? Configuration option changed. Since the option is static, Adaptive Server must? be rebooted in? order for the change to take effect. ? (return status = 0) 13、重新启动服务器两次(参考使用DOS命令net start SYBSQL_asesrv)。第一次启动报错“服务器SYBSQL_asesrv不能启动,请检查它的配置”很正常,第二次正确启动,表明你的设置成功 了。
14、在DOS下用edit修改客户端缺省字符集文件c:\\sybase\\locales\\locales.dat ? c:\\sybase\\locales\\>edit locales.dat
? 首先找到[NT]操作系统分组,然后定位到该分组最后一行“local = default, us_english, iso_1”,将其修改为:“local = default, us_english, cp936”。 ? 参考步骤6,确认服务器端和客户端字符集均已修改正确。
15、在Sybase Central中,重新建立新的空数据库,仔细规划好生产数据库数据设备和日志设备的大小。以前觉得数据库设备分配不合理的,在这时你可以重新考虑设备的 分配。
16、使用先前准备好的建库对象脚本建立表及其其他对象信息。将先前bcp出的数据bcp in到新的数据库中去,请严格按照如下顺序。索引在你数据导入完成后执行,效率会更高。
注意:生产库数据库选项“允许选择进入/批量复 制”、“缺省允许为空”要打勾;每做一步后,查看一下输出文件,看看有没有错误。
16.1 D:\\shen\\>isql -Usa -Psybase -Sasesrv -D test -i Tables.sql -o Tables_error.txt
16.2 D:\\shen\\>isql -Usa -Psybase -Sasesrv -D test -i Views.sql -o Views_error.txt
16.3 D:\\shen\\>bcpin > bcpin_error.txt
16.4 D:\\shen\\>isql -Usa -Psybase -Sasesrv -D test -i Primary_Keys.sql -o Primary_Keys_error.txt
16.5 D:\\shen\\>isql -Usa -Psybase -Sasesrv -D test -i Foreign_keys.sql -o Foreign_keys_error.txt
16.6 D:\\shen\\>isql -Usa -Psybase -Sasesrv -D test -i Indexes.sql -o Indexes_error.txt
16.7 D:\\shen\\>isql -Usa -Psybase -Sasesrv -D test -i Check_Constraints.sql -o Check_Con_error.txt
16.8 D:\\shen\\>isql -Usa -Psybase -Sasesrv -D test -i Procedures.sql -o Procedures_error.txt
16.9 D:\\shen\\>isql -Usa -Psybase -Sasesrv -D test -i Triggers.sql -o Triggers_error.txt
16.10 将logins bcp进入到系统表,保证原来的合法帐号被成功加入。注意:首先要设置/取消?allow updates to system tables?。 ? D:\\shen\\> isql -Usa -Psybase -Sdiren
? 1> sp_configure \? 2>go
? 1> delete from syslogins where suid >=6????? //删除非SYBASE系统用户。 ? 2>go
? D:\\shen\\>bcp master..syslogins in syslogins.dat -c -Usa -Psybase -Sdiren
? D:\\shen\\> isql -Usa -Psybase -Sdiren
? 1> sp_configure \? 2>go
16.11 增加用户别名
16.11.1 修改syslogins.txt文件,使其符合你的实际情况,syslogins.txt文件内容为: use master go
select 'sp_addalias ' + name + ', dbo' + ' go'
from syslogins where suid>3 go
16.11.2 在DOS命令下执行以下命令:
? D:\\ren>isql -Usa -Psybase -isyslogins.txt -osysloginsalias.txt
16.11.3 编辑结果文件sysloginsalias.txt,将开头和结尾多余部分去掉。
16.11.4在DOS命令下执行以下命令(注意增加 了-Dtest):
? D:\\ren>isql -Usa -Psybase -Dtest -isysloginsalias.txt -osysloginsalias_error.txt
17、取消生产库数据库选项“允许选择进入/批量复制” 、“缺省允许为空”。
六、 客户端的修改
注:也可以设置好注册表信息后,生成一个文件,由各个操作员自己执行即可。
在DOS下用edit修改客户端缺省字符 集文件c:\\sybase\\locales\\locales.dat ? c:\\sybase\\locales\\>edit locales.dat
? 首先找到[NT]操作系统分组,然后定位到该分组最后一行“local = default, us_english, iso_1”,将其修改为:“local = default, us_english, cp936”。
6. 附:如何安装cp936字符集
以在Windows平台安装cp936字符集为例,说明如何 安装使用服务器中没有被默认安装的字符集。(在ASE 12.5.0.3版本中安装GB18030字符集的方法类似)
(这里SYBASE的安装路径为c:\\sybase)
1.c:\\>cd \\sybase\\charsets\\cp936
2.c:\\sybase\\charsets\\cp936> charset -Usa -Psa_pass -Sserver_name binary.srt cp936 3.在SQL环境中
1>select name,id from syscharsets 2>go
找到name为cp936对应的id(假设为171) 4.设置缺省字符集
1>sp_configure \2>go
5.重启server两次
(注:第一次启动后,server会自动宕掉,需要第二次重启后才能使用)
正在阅读:
sybase修改字符集04-19
中考英语总复习第一部分考点知识过关第一讲七上Modules1 - 4(含Starter)精练(含新题)(新版)外研版01-11
(完整版)商业银行个人理财业务的风险分析与规避策略研究毕业论03-16
建立《××商学院培训课程体系》的方案06-30
八年级数学上册知识点归纳勾股定理的逆定理03-14
新中国成立以来经济发展成就10-22
公民参与城市治理的困境与纾解策略03-03
人教版初中数学目录03-08
危险性较大工程施工安全管理制度04-19
水井、水箱(池)清洗消毒操作规范11-21
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 字符集
- 修改
- sybase
- 人体解剖学复习题1(中专)
- 三相正弦变频电源的软件设计论文 - 图文
- 不要在网上迷路
- 暖通与燃气数值化测量技术2007
- 5瑜伽师地论 有寻有伺等三地第三
- 义务教育阶段学生营养餐改善计划台
- 丙烯酸甲酯生产工艺路线选择
- 模块3 实操题电大计算机
- 全国2011年4月高等教育自学考试 通信概论试题及答案
- TLC点板遇到问题解决办法
- 人教版小学语文六年级上册《 1 山中访友》 赛课导学案 - 2
- 00—1合作新员工服务规范试题(A卷)
- 伴性遗传教学设计1 - 图文
- 房屋建设工程管理与实务2次
- 连续信号与系统的S域分析
- 全质办工作标准
- 质量管理与可靠性工程课程实验指导书2011
- 《铁路边的孩子们》阅读题目(1)
- 第 8 讲 应用题入门之消费中的数学问题
- 东师学前儿童卫生学18春在线作业3