- 博客(2)
- 资源 (5)
- 收藏
- 关注
原创 自己工作用到的几个TSM Server查询SQL
1,长期不活动磁带的数量-3年内 select count(VOLUME_NAME) as VOLUME_NUM from VOLUMEs - where STATUS='FULL' and LAST_WRITE_DATE<current_timestamp-3 years - and LAST_READ_DATE <current_timestamp-3 years 2.1,TSM...
2020-02-29 18:09:27
217
数据库服务器字符集更改步骤
10 数据库服务器字符集更改步骤
问题描述:
在客户端插入字符“咪咪”,从数据库中查询显示时出现乱码
处理步骤:
10.1 对数据库做全库导出,备份全库数据,以防故障发生
首先设定客户端的字符集,必须以ZHS16GBK的字符集导出,然后才能在更改失败后顺利倒入新建的库。
#setenv NLS_LANG "SIMPLIFIED CHINESE_CHINA.ZHS16GBK";
#stty -istrip -parity cs8;
#setenv LANG zh
拟在/sybdata(磁盘阵列)下建立一个目录orabak,用于存放dmp文件。
#mkdir /sybdata/orabak
#chown oracle:oinstall /sybdata/orabak
#su – oracle
#cd /sybdata/orabak
%exp system/manager@hnsdh file=hnsdh_2005-8-17 log=hnsdh_exp_2005-8-17 full=y
(此处命名为示例,以实施当日日期为准)
察看日志结尾,以判定导出是否成功。
#cat hnsdh_2005-8-17.dmp | od -x | head
看第二和第三个字节组成的十六进制数是多少可判断导出文件的字符集。
示例如下
#cat example.dmp | od -x | head
0000000 0303 5445 5850 4f52 543a 5630 392e 3032
。。。
0000220 646d 7000 0000 0000 0000 0000 0000 0000
十六进制的0354化为十进制为852,参造下表
NLS_CHARSET_ID NLS_CHARSET_NAME HEX_ID
-------------- ------------------------------ -------------
1 US7ASCII 1
2 WE8DEC 2
3 WE8HP 3
4 US8PC437 4
5 WE8EBCDIC37 5
6 WE8EBCDIC500 6
7 WE8EBCDIC1140 7
8 WE8EBCDIC285 8
...................
850 ZHS16CGB231280 352
851 ZHS16MACCGB231280 353
852 ZHS16GBK 354
853 ZHS16DBCS 355
860 ZHT32EUC 35c
861 ZHT32SOPS 35d
862 ZHT16DBT 35e
863 ZHT32TRIS 35f
864 ZHT16DBCS 360
865 ZHT16BIG5 361
866 ZHT16CCDC 362
867 ZHT16MSWIN950 363
868 ZHT16HKSCS 364
870 AL24UTFFSS 366
871 UTF8 367
872 UTFE 368
即可得出这个dmp文件的字符集为ZHS16GBK。
10.2 在数据库中直接更改字符集参数
操作步骤如下:
SQL> 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 session set events '10046 trace name context forever,level 12';
SQL> alter database character set INTERNAL_USE ZHS16GBK;
SQL> shutdown immediate
SQL> startup
察看系统字符集
SQL> SELECT * FROM NLS_DATABASE_PARAMETERS;
看NLS_CHARACTERSET的值为多少,如果为ZHS16GBK则说明改动成功。
如果执行正常,则按照下一节进行测试操作。
10.3 更改成功后的测试
测试1,在数据库服务器端下测试
%setenv NLS_LANG "SIMPLIFIED CHINESE_CHINA.ZHS16GBK";
%stty -istrip -parity cs8;
%setenv LANG zh
%sqlplus /nolog
SQL〉conn / as sysdba
SQL〉create table test_tq (a char(20));
SQL〉insert into test_tq
1>(a)
2>values ('洣洣');
SQL〉select * from test_tq;
如显示为
A
--------------------
洣洣
则成功。
测试2,Windows客户端环境下测试
运 行REGEDIT,第一步选HKEY_LOCAL_MACHINE,第二步选择SOFTWARE, 第三步选择 ORACLE, 第四步选择 NLS_LANG, 键 入 与服 务 器 端 相 同 的 字 符 集(本例为:AMERICAN_AMERICAN.US7ASCII)。
右击我的电脑,然后点击属性,“高级”页面下,点击“环境变量”,在系统变量中添加:
变量名:NLS_LANG
变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
运行cmd,输入echo %NLS_LANG%,查看系统变量设置时否成功
然后运行:
$sqlplus system/manager@hnsdh
SQL〉conn / as sysdba
SQL〉create table test_tq (a char(20));
SQL〉insert into test_tq
1>(a)
2>values ('洣洣');
SQL〉select * from test_tq;
如显示为
A
--------------------
洣洣
则成功。
10.4 更改不成功时的措施
新建数据库,设定字符集为ZHS16GBK,其他参数先照搬原来的,并倒入数据。建库时所需的具体参数在重建之前要搜集。注意在配置控制文件时设定最大数据文件数。
建好数据库以后,执行以下命令即可恢复数据库
%cd /sybdata/orabak
%imp system/manager@hnsdh full=y ignore=y file=hnsdh_2005-8-17 log=hnsdh_imp_2005 -8-17
2009-01-12
判断oracle版本位数的方法
12 判断oracle版本位数的方法
有2种方法,详情如下:
1) file $ORACLE_HOME/bin/oracle
/oracle92/app/oracle/product/9.2.0.1/bin/oracle: ELF 64-bit MSB executable SPARCV9 Version 1, dynamically linked, not stripped
2)SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
PL/SQL Release 9.2.0.6.0 - Production
CORE 9.2.0.6.0 Production
TNS for Solaris: Version 9.2.0.6.0 - Production
NLSRTL Version 9.2.0.6.0 – Production
2009-01-12
解决Oracle 9.2.0.6版本数据库由于ORA-07445宕机问题
1 解决Oracle 9.2.0.6版本数据库由于ORA-07445宕机问题
故障现象:
XX网数据库宕机,查看日志发现以下内容:
Wed Jun 8 20:24:17 2005
Errors in file /u02/app/oracle/admin/unicom/udump/unicom_ora_661.trc:
ORA-07445: \263\366\317\326\322\354\263\243: \272\313\320\304\327\252\264\242 [0000000101C3089C] [SIGSEGV] [Address not mappe
d to object] [0x000000000] [] []
Wed Jun 8 20:24:22 2005
Errors in file /u02/app/oracle/admin/unicom/bdump/unicom_pmon_11598.trc:
ORA-07445: exception encountered: core dump [0000000101C399A0] [SIGSEGV] [Address not mapped to object] [0x000000000] [] []
Wed Jun 8 20:24:23 2005
Errors in file /u02/app/oracle/admin/unicom/bdump/unicom_pmon_11598.trc:
ORA-07445: exception encountered: core dump [0000000101C399A0] [SIGSEGV] [Address not mapped to object] [0x000000000] [] []
ORA-00602: internal programming exception
ORA-07445: exception encountered: core dump [0000000101C399A0] [SIGSEGV] [Address not mapped to object] [0x000000000] [] []
Wed Jun 8 20:24:33 2005
CKPT: terminating instance due to error 472
Instance terminated by CKPT, pid = 11604
Wed Jun 8 21:04:47 2005
Starting ORACLE instance (normal)
解决办法:
Oracle工程师建议安装Oracle补丁p3949307_9206_SOLARIS64,经过测试,安装步骤如下: (注意,首先shutdown数据库)
1,解压补丁文件
unzip p3949307_9206_SOLARIS64.zip
解开后的目录是:4060756
2,修改oraclehomeproperties.xml文件,该文件在$ORACLE_HOME/inventory/ContentsXML目录下。
cp oraclehomeproperties.xml oraclehomeproperties.xmlb.bak
vi oraclehomeproperties.xml
更改数字453 ->23,存盘退出
3,修改PATH路径为
PATH=$ORACLE_HOME/bin:/usr/ccs/bin:${PATH}
4,执行opatch apply命令
cd 4060756
$ORACLE_HOME/OPatch/opatch apply
5,安装成功后会出现如下结果
Updating inventory...
/oracle92/app/oracle/product/9.2.0.1/OPatch/opatch.pl version: 1.0.0.0.51
Copyright (c) 2001-2004 Oracle Corporation. All Rights Reserved.
OPatch succeeded.
2009-01-12
Oracle 补丁p3948480_9206_SOLARIS64.zip的安装步骤
1.1 Oracle 补丁p3948480_9206_SOLARIS64.zip的安装步骤
升级说明:
是从Oracle 9.2.0.1.0升级到9.2.0.6.0,解决一系列bug问题。
安装步骤:
解压文件包
%unzip p3948480_9206_SOLARIS64.zip
%cd Disk1
停掉数据库
sql>shutdown immediate
启动安装程序
%./runInstaller
执行catpatch.sql脚本
%sqlplus /nolog
SQL>conn / as sysdba
SQL> SPOOL patch.log
SQL> startup migrate;
SQL>@?/rdbms/admin/catpatch.sql //执行catpatch.sql脚本
SQL> SPOOL OFF
执行utlrp.sql脚本
SQL> shutdown
SQL>startup
SQL>@?/rdbms/admin/utlrp.sql //执行utlrp.sql脚本
验证
select comp_name,version from dba_registry;
注意事项:
若不是在本地安装,指定X应用程序的所在主机。
• Bourne, Bash, or Korn shell:
• $ DISPLAY=local_host:0.0 ; export DISPLAY
• C shell:
• % setenv DISPLAY local_host:0.0
2009-01-12
informix9.3升级到informix9.4
引言
1 目的
informix9.3升级到informix9.4升级过程描述,作为对数据库升级过程的技术文档。
2 使用范围
本文档适用于指导系统工程部的工程师做informix数据库的升级。
3 参考文档
编号 资料名称 作者 出版单位
001 《IBM Informix migration Guide》 不详 IBM
4 过程描述
4.1 冷备份Informix程序目录
4.1.1 将/opt/informix目录打包tar,tar cvf ids93.tar /opt/informix/* ,备份到/backup和磁带库各一份。
4.1.2 将环境变量文件/opt/informix/.cshrc, /opt/informix/etc/sqlhosts, /opt/informix/etc/onconfig.sxdb等打包备份,备份到/backup和磁带库各一
4.2 检查和验证一致性
4.2.1 确定保留页
oncheck –cr
4.2.2 显示用户数据区域中每个Sb空间块的大小,已使用空间的总量和可用空间量。
oncheck –ce
4.2.3 确定系统目录表
oncheck –cc database_name
4.2.4 确定数据页和索引
oncheck –cDI database_name(若遇到无法修复的问题,请备份出数据删除重建表)
4.3 数据库的关闭和数据库的全备
4.3.1 数据库放到单用户模式下
onmode –sy
4.3.2 等待所有已连接到数据库的用户退出(需要开发部门配合结束采集程序)
4.3.2.1 将逻辑日志切换到下一个
onmode –l
4.3.3 执行完全检查点并释放逻辑日志文件
onmode –c
4.3.4 热备份Informix数据库
执行零级备份(到磁带库)$INFORMIXDIR/bin/onbar -b -w -L 0
4.3.5 备份逻辑日志
onbar –b –l
4.3.5.1 冷备份Informix数据库
cd /usr2/backup/dbexport
mkdir perf gmcookdb c_unicom workflow3 offcdb …
cd perf/
nohup dbexport -c -o ./ perf
dbexport -c -o /usr2/backup/dbexport/c_perf c_perf
SXdb2% dbexport -c -o /usr2/backup/dbexport/c_perf c_perf
-425 - Database is currently opened by another user.
-107 - ISAM error: record is locked.
SXdb2% dbexport -c -o /usr2/backup/dbexport/c_perf c_perf
-27002 - No connections are allowed in Dynamic Server quiescent mode.
**********************************************************
4.3.6 关闭数据库
onmode –yuk
4.4 操作系统环境检查
4.4.1 检查G网数据库服务器和应用服务器root和informix用户环境下是否有 自动执行的脚本,在对数据库进行操作
crontab –l(如果有注释掉)
4.4.2 检查G网数据库服务器,采集和应用服务器后台是否有进程对数据库进行操作
例如:
ps –ef |grep dbaccess
kill –9 PID
4.4.3 在G网数据库服务器上清除SNMP进程
ps –ef|grep snmp
kill –9 PID
注意操作系统环境检查需要开发部配合完成
4.5 数据库服务器上覆盖安装64位的Informix9.4步骤:
4.5.1 执行ids_install,选择①安装IDS 9.4;
4.5.2 将IDS2000.tar解包;
4.5.3 执行installserver安装IDS 9.40FC5,安装细节与《IDS 9.3安装启动说明书》相同。
4.5.4 启动Informix 9.4数据库,oninit(不加参数 -i)
4.6 验证新数据库的正确性
4.6.1 验证新数据库能购正常运行。大约耗时1个小时,影响现有系统。
4.7 启用新数据库
检验配置应用、采集、上报等程序连接新安装的Informix 9.4,启用新安装的Informix 9.4数据库。大约耗时1个小时,影响现有系统。
4.8 库更新操作
dbaccess ->Query-language->选择库->执行update statistics
5 升级失败,启用旧版本数据库
5.1 从Informix程序目录的打包备份中恢复
5.1.1 清空/opt/informix目录,从“4.1.1”中的冷备份ids93.tar中解包,将程序文件恢复至/opt/informix目录。
5.1.2 检查Informix 9.3的关键的环境变量和配置文件/opt/Informix/.cshrc, /opt/informix/etc/sqlhosts, /opt/informix/etc/onconfig.hbdb等。
5.1.3 检查所有配置无误,启动Informix 9.3数据库oninit。
5.2 恢复ids93.tar不成功,重新安装Informix 9.3,重建数据库,从热备份或冷备份中恢复数据库
5.2.1 恢复失败,重新安装informix9.3数据库应用软件,重新创建数据库,热备份(on-bar)或冷备份(dbimport)中恢复数据库.
5.2.2 使用ON-Bar恢复数据库
onbar恢复之前,确保重建的数据库的名称和大小符合G网配置.例如:
touch /wourkground/datadb/perfdbschk01
chmod 660 /wourkground/datadb/perfdbschk01
onspaces -c -d perfdbs -p /wourkground/datadb/perfdbschk01 -o 0 -s 1024000
5.2.3 命令格式(onbar –l)
5.2.4 使用dbimport恢复数据库
dbimport恢复不需要创建DBS,导入库时可以指定创建库的位置,例如:
dbimport –c sxperf -i /backup/dbexport/port -d /opt/informix/user/hbperfchk01
6 附录:数据库升级记录
1. 将/opt/informix/*以及/opt/informix/etc/* tar到/usr2/backup目录下;
2. 使用jbpSA将第一步tar的文件备份到磁带上;
3. 检查和验证一致性
oncheck -cr
oncheck –ce
oncheck -cc adapter_bell_corba >oncheck.cc.adapter_bell_corba
oncheck -cc oam>oncheck.cc.oam
oncheck -cc adapter_cap_corba >oncheck.cc.adapter_cap_corba
oncheck -cc offcdb >oncheck.cc.offcdb
oncheck -cc adapter_moto_corba >oncheck.cc.adapter_moto_corba
oncheck -cc sysmaster >oncheck.cc.sysmater
oncheck -cc adapter_zte_corba >oncheck.cc.adpater_zte_corba
oncheck -cc sysuser >oncheck.cc.sysuser
oncheck -cc adpindb >oncheck.cc.adpindb
oncheck -cc sysutils >oncheck.cc.sysutils
oncheck -cc workflow3 >oncheck.cc.workfolow3
oncheck -cc c_unicom >oncheck.cc.c_unicom
oncheck -cc dbmonitor >oncheck.cc.dbmonitor
oncheck -cc gmcookdb >oncheck.cc.gmcookdb
oncheck -cc c_perf >oncheck.cc.c_perf
oncheck -cDI adapter_bell_corba >oncheck.cDI.adapter_bell_corba
oncheck -cDI oam>oncheck.cDI.oam
oncheck -cDI adapter_cap_corba >oncheck.cDI.adapter_cap_corba
oncheck -cDI offcdb >oncheck.cDI.offcdb
oncheck -cDI adapter_moto_corba >oncheck.cDI.adapter_moto_corba
oncheck -cDI sysmaster >oncheck.cDI.sysmater
oncheck -cDI adapter_zte_corba >oncheck.cDI.adpater_zte_corba
oncheck -cDI sysuser >oncheck.cDI.sysuser
oncheck -cDI adpindb >oncheck.cDI.adpindb
oncheck -cDI sysutils >oncheck.cDI.sysutils
oncheck -cDI workflow3 >oncheck.cDI.workfolow3
oncheck -cDI c_unicom >oncheck.cDI.c_unicom
oncheck -cDI dbmonitor >oncheck.cDI.dbmonitor
oncheck -cDI gmcookdb >oncheck.cDI.gmcookdb
oncheck -cDI c_perf >onchec.cc.c_perf
------正确的命令应该为oncheck -cc c_perf >oncheck.cDI.c_perf
生成的文件存放在/usr2/backup/check_20060417_log目录下
检查耗时:20060417 22:37分~
2009-01-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人