给aix 系统增加中文字符集,该怎么处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给aix 系统增加中文字符集,该怎么处理相关的知识,希望对你有一定的参考价值。

参考技术A 在linux系统下经常遇到不支持中文问题,进行以下操作试试(如果是自己练习用的话,否则千万别乱来):

解决oracle数据库中的中文乱码显示问题:
在Redhat上安装Oracle 10g没有设定字符集,采用的是操作系统默认字符集:WE8ISO8859P1,将字符集修改为:ZHS16GBK。由于过程不可逆,首先需要备份数据库。
1.数据库全备(一般刚安装的数据库没什么可备份的,这只上针对使用很久的数据库而言)

2.查询当前字符集
SQL> select * from nls_database_parameters where parameter='NLS_CHARACTERSET';
PARAMETER VALUE
---------------------------------------- ----------------------------------------
NLS_CHARACTERSET WE8ISO8859P1

3.关闭数据库
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

4.启动数据库到mount状态
SQL> startup mount
ORACLE instance started.
Total System Global Area 205520896 bytes
Fixed Size 1266608 bytes
Variable Size 100666448 bytes
Database Buffers 100663296 bytes
Redo Buffers 2924544 bytes
Database mounted.

5.限制session
SQL> alter system enable restricted session;
System altered.

6.查询相关参数并修改
SQL> sh

ow parameter job_queue_processes;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes integer 10

SQL> show parameter aq_tm_processes;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 0

SQL> alter system set job_queue_processes=0;
System altered.

7.打开数据库
SQL> alter database open;
Database altered.

8.修改字符集

SQL> alter database character set ZHS16GBK;
alter database character set ZHS16GBK
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set

出现错误提示,新字符集必须是老字符集的超集,也就原来字符集是新字符集的子集,可以再Oracle官方文档上查询字符集包含关系。下面使用Oracle内部命令internal_use,跳过超集检查,生产环境不建议使用此方法。

SQL> alter database character set internal_use ZHS16GBK;
Database altered.

9.查询当前字符集
SQL> select * from nls_database_parameters where parameter='NLS_CHARACTERSET';
PARAMETER VALUE
---------------------------------------- ----------------------------------------
NLS_CHARACTERSET ZHS16GBK

10.关闭数据库

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

11.启动数据库到mount状态
SQL> startup mount
ORACLE instance started.
Total System Global Area 205520896 bytes
Fixed Size 1266608 bytes
Variable Size 100666448 bytes
Database Buffers 100663296 bytes
Redo Buffers 2924544 bytes
Database mounted.

12.将相关参数改回原来值
SQL> alter system set job_queue_processes=10;
System altered.

13.打开数据库
SQL> alter database open;
Database altered
参考技术B 1、环境
服务器 AIX:编码"ISO-8859-1"
数据库 informix:编码"ISO-8859-1"
页面编码:"ISO-8859-1"
2、Excel导入文乱码问题
问题描述:
Excel文件通jxl框架导入数据库乱码显示页面乱码
原析:
能Excel文件编码gb2312GBK或UTF-8导入数据库"ISO-8859-1"间没进行转码
导致存数据库乱码页面编码"ISO-8859-1"读数据库内容乱码
解决办:
Excel数据导入数据库前先进行转码
new String(shortname.getBytes("gb2312"),"ISO-8859-1")
该构造JDK API描述
String(byte[] bytes, String charsetName)
构造新 String使用指定字符集解码指定字节数组

备注:
String(byte[] bytes, String charsetName) 解决其乱码问题同效本回答被提问者采纳

aix系统命令

参考技术A

  AIX(Advanced Interactive eXecutive)是 IBM开发的一套 UNIX操作系统。而 AIX 命令是对AIX系统进行管理和操作的命令。下面就让我给大家分享一些aix的常用命令和进阶命令吧。

  aix常用命令

  查看 交换区信息:

  lsps -a 显示 交换区的分布信息

  lsps -s 显示 交换区的使用信息

  slibclean 清除处理程序遗留的旧分页信息

  smit mkps 建立交换区空间信息

  swapon -a 启动所有的分页空间

  /etc/swapspaces 存放分页空间表格信息

  显示卷信息:

  lsvg 显示卷的名称

  lsvg -l rootvg 显示rootvg卷的详细信息

  mount卷的方法:

  varyonvg datavg 加载datavg卷

  mount /dev/data1 加载datavg下的一个data1卷

  mount光盘

  mount -rv cdrfs /dev/cd0 /cdrom

  裸设备类型:raw,jfs jfs可以转变成文件系统,而raw则不行

  smit快速路径名称:(smit:图形方式,smitty:字符方式)

  dev 设备管理

  diag 诊断

  jfs 定期档案管理系统

  lvm 逻辑卷册系统管理员管理

  nfs NFS管理

  sinstallp 软件安装及维护

  spooler 列印队列管理

  system 系统管理

  tcpip TCP/IP管理

  USER 使用者管理

  clstart,clstop:启动和停止cluster

  lssrc -g cluser:查看cluser的状态

  查看已安装的软件信息:

  ls -aF /usr/lpp (lpp:Licensed Program Products)

  查看安装媒体内容:

  installp -q -d /dev/cdrom -l

  查看操作系统补丁

  instfix -a

  查看 错误日志信息:

  errpt -a

  有关TCP/IP的命令

  网路卡:

  smit chgenet,chgtok,chgfddi,opschange,mktty:adptr架构快速路径

  smit mkinet,ppp:slip与ppp快速路径

  ifconfig:config界面

  位址:

  /etc/hosts 静态 主机表

  /etc/resolv.conf 位址解析的名称 服务器

  /etc/named.boot 名称 服务器架构

  /etc/named. c a 根名称 服务器快取 (去掉空格)

  /etc/named.data 位址列表

  /etc/named.rev 反转指标列表

  nslookup 查询名称 服务器资讯

  网络 路由:

  route 管理路由

  netstat -rn 列出定义的 路由

  routed 路由(daekmin rip)

  gated 路由(daekmin rip、egp、hello)

  /etc/gateways 已知网关

  /etc/networks 已知网路

  服务:

  /etc/services

  /etc/inetd.conf

  TCP/IP群组子系统:

  /etc/rc.n e t (去掉空格)

  startsrc -g tcpip 启动全部的tcpip子系统

  startsrc -s inetd 启动主要internet

  除错:

  iptrace 启动封包追踪

  ipreport 追踪结果格式化输出

  netstat 网络统计

  ping 检查是否可以到达

  查看HACMP,外部硬盘信息:

  lscfg -v

  lsdev -Cc adapter

  对等机器信息:

  /etc/.rhosts

  /etc/hosts.equiv

  /etc/hosts

  查看内存

  /etc/lsattr -El mem0

  显示以 KB 为单位的实际内存

  bootinfo -r

  或

  lsattr -El sys0 -a realmem

  查看SWAP空间

  lsps -l

  查看操作系统文件系统

  lslpp -l [fileset_name]

  查看系统内核,进程,硬盘等性能前几位

  topas

  要显示 内核启用的是 32 位还是 64 位:

  bootinfo -K

  显示硬件 32 位还是 64 位:

  bootinfo -y

  显示系统上的处理器数量

  lscfg | grep proc

  显示系统上的硬盘数量,可输入以下命令:

  lspv

  系统的详细配置

  lscfg

  axi进阶命令

  如何知道自己在运行单处理器还是多处理器 内核?

  /unix 是指向已启动 内核的 符号链接。要了解正在运行什么内核模式,可输入 ls -l /unix 并查看 /unix 链接到什么文件。下面是 ls -l /unix 命令的三种可能输出及其对应的 内核:

  /unix -> /usr/lib/boot/unix_up # 32 bit uniprocessor kernel

  /unix -> /usr/lib/boot/unix_mp # 32 bit multiprocessor kernel

  /unix -> /usr/lib/boot/unix_64 # 64 bit multiprocessor kernel

  从一种内核模式更改为另一种内核模式

  在安装过程期间,会缺省启用一种适合该 AIX 版本和操作中的硬件的 内核。让我们使用前一个问题中的方法并假设启用了 32 位 内核。我们还假设您希望在 64 位内核模式下启动。这可以通过按 顺序执行以下命令来实现:

  ln -sf /usr/lib/boot/unix_64 /unix

  ln -sf /usr/lib/boot/unix_64 /usr/lib/boot/unix

  bosboot -ad /dev/hdiskxx

  shutdown -r

  /dev/hdiskxx 目录是启动逻辑卷 /dev/hd5 所在的位置。要弄清 hdiskxx 中有哪些 xx,可运行以下命令:

  lslv -m hd5

  在 裸设备上安装oracle系统:

  修改 裸设备的权限,如裸设备名为system01,安装 数据库用户为oracle

  chown oracle:dba /dev/system01

  chown oracle:dba /dev/rsystem01

  在使用文件时必须用rsystem01

  启动时自动加载文件系统信息:

  需要加载的信息存放在/etc/filesystems

  mount -t nf 加载所有在/ect/filesystems中定义type=nfs的文件系统

  显示已加载的文件系统及状态: df -v,mount

  如何知道我的 计算机是否基于 CHRP?

  运行 prtconf 命令。如果是 CHRP 计算机,则字符串 chrp 会出现在 Model Architecture 行上。

  系统中的设备属性值是什么?

  要列出磁带设备 rmt0 的当前属性值,可输入以下命令:

  lsattr -l rmt0 -E

  要列出磁带设备 rmt0 的缺省属性值,可输入以下命令:

  lsattr -l rmt0 -D

  要列出 TTY 设备 tty0 的可能登录属性值,可输入以下命令:

  lsattr -l tty0 -a login -R

  要显示系统级别的属性,可输入以下命令:

  lsattr -E -l sys0

  列出有关特定物理卷的信息?

  举例来说,若要了解有关 hdisk1 的详细信息,可运行如下命令:

  lspv hdisk1

  获得系统的详细配置?

  输入以下命令:

  lscfg

  下列选项可以提供特定的信息:

  -p 显示特定于平台的设备信息。该标志适用于 AIX 4.2.1 或更高版本。

  -v 显示在自定义 VPD 对象类中找到的重要产品数据库(Vital Product Database,VPD)。

  例如,要显示有关磁带驱动器 rmt0 的详细信息,可输入以下命令:

  lscfg -vl rmt0

  通过运行 prtconf 命令也可以获得非常类似的信息。

  如何确定芯片类型、系统名称、节点名称、型号,等等?

  uname 命令可以提供关于系统的详细信息。

  uname -p 显示系统的芯片类型。例如,PowerPC。

  uname -r 显示操作系统的版本号。

  uname -s 显示系统名称。例如,AIX。

  uname -n 显示节点名称。

  uname -a 显示系统名称、节点名称、版本、 计算机 ID。

  uname -M 显示系统型号名称。例如,IBM, 9114-275。

  uname -v 显示操作系统版本。

  uname -m 显示运行系统的硬件的 计算机 ID 编号。

  uname -u 显示系统 ID 编号。

  AIX

  我的系统上在运行什么 AIX 主要版本、次要版本和维护级?

  输入以下命令之一:

  oslevel -r

  lslpp -h bos.rte

  观察进程内存使用情况:

  ps aux 观察参数%mem:内存使用百分比 RSS:实际使用内存

  vmstat free的单位为块,缺省值为4096bytst

  创建raw设备时选择的类型:

  raw_lv

  裸设备的备份

  dd if=/dev/raw1 of=/dev/rmt0 bs=16k

  AIX系统所需要补丁

  IX72696,IX85104,IX81863,IX87313,IX89087,IX89522,IY02407,IY03412,IY05995,IY07276,IY01050

  # lspv *列出设备名称

  hdisk0 0006fa7f212ee586 rootvg

  hdisk1 0006fa7f7dc2b8a8 oradata

  如想删除设备,则用rmdev -dl hdisk1...

  smit ssaraid(首先创建RAID阵列)

  再创建VG smit vg

  然后在VG中创建lv(也即 裸设备)

  此时便可以创建数据库了,或者可以在此时创建FS: smit fs

  创建文件系统

  以下命令将在卷组 testvg 中创建一个大小为 10MB、安装点为 /fs1 的 jfs 文件系统:

  crfs -v jfs -g testvg -a size=10M -m /fs1

  安装所有缺省文件系统(/etc/filesystems 文件中标记有 mount=true 属性的所有标准文件系统)

  以下命令将安装所有此类文件系统:

  mount -a|all

  显示已安装的文件系统

  输入以下命令可以显示有关所有当前已安装的文件系统的信息:

  mount

  卸载文件系统

  输入以下命令可以卸载 /test 文件系统:

  umount /test

  删除文件系统

  输入以下命令可以删除 /test 文件系统:

  rmfs /test

  对文件系统进行碎片整理

  可以使用 defragfs 命令来改善或报告文件系统中的连续空间状态。例如,若要对文件系统 /home 进行碎片整理,可以使用以下命令:

  defragfs /home

  更改文件系统的大小

  若要将 /usr 文件系统的大小增加 1000000 个 512 字节的块,可输入以下命令:

  chfs -a size=+1000000 /usr

  #lscfg –v (显示所有已安装的系统资源)

  #lsattr –E -l sys0 (显示系统初始参数设置)

  #lsdev –CH(显示 系统资源状态)

  #df –k (文件系统使用情况)

  #

  #bootinfo -y 操作系统环境(位数)

  #bootinfo -m 硬件环境

  更改每个VG中LV的个数 默认值=vg size/pp

  #chvg -t

  #chlv -x number

  'lsps -a' Lists the status of defined paging spaces.

  'lslpp -h' Used to determine the version of AIX you are running as well as the version of ALL Licensed Program Products.

  'lsattr -E -lsys0' Useful in determining how much real memory resides on the system.

  'lsdev -C' Used to determine what devices are defined to the system.

  'ps av' Gives a ballpark estimate of the percentage of cpu and memory utilized by each process currently running.

  'vmstat 3 20' Useful for determining how much paging activity is taking place on the system. Also gives useful cpu usage info.

  'iostat 3 20' Useful in determining disk utilization for each hard drive

  验证文件集是否有必需的先决条件和是否已完全安装

  要显示需要安装或纠正哪些文件集,可输入以下命令:

  lppchk -v

  如何获得符号表示中的 loader 节头和符号条目的转储?

  输入以下命令:

  dump -Htv

  确定已分配和使用的分页空间量

  输入以下命令:

  lsps -a

  增加分页空间

  可以使用 chps -s 命令来动态增加分页空间的大小。例如,如果希望将 hd6 的大小增加 3 个 逻辑分区,您可以执行以下命令:

  chps -s 3 hd6

  减少分页空间

  可以使用 chps -d 命令来动态减少分页空间的大小。例如,如果希望将 hd6 的大小减少四个 逻辑分区,您可以执行以下命令:

  chps -d 4 hd6

  备份裸设备

  #dd if=/dev/raw_divice of=/dev/rmt0.1 bs=256k

  从磁带还原裸设备

  #dd if=/dev/rmt0.1 of=/dev/raw_device count=63 seek=1 skip=1 bs=4k

  #mt -f /dev/rmt0.1 bsf 1

  #dd if=/dev/rmt0.1 of=/dev/raw_device seek=1 skip=1 bs=256k

  #dd if=/dev/rsystem of=/dev/rsystem_bak bs=8192

  如何知道我的系统是否能够使用 同步多线程(Simultaneous Multi-threading,SMT)?

  如果您的系统是运行 AIX 5L Version 5.3 的基于 POWER5 的系统,则它就能使用 SMT。

  如何知道我的系统是否启用了 SMT?

  如果不带任何选项运行 smtctl 命令,它将告诉您是否启用了 SMT。

  32 位 内核是否支持 SMT?

  是的,32 位和 64 位 内核都支持 SMT。

  如何启用或禁用 SMT?

  可以通过运行 smtctl 命令来启用或禁用 SMT。下面是该命令的语法:

  smtctl [ -m off | on [ -w boot | now]]

  怎样镜像rootvg?

  现举例如下:

  1. 添加新硬盘到rootvg

  #extendvg rootvg hdisk1

  2. 镜像rootvg

  #mirrorvg -c 2 rootvg hdisk1

  3. 重新生成 boot image

  #bosboot -ad /dev/hdisk0

  4. 更新bootlist

  #bootlist -m normal hdisk0 hdisk1 cd0

  5. 重起系统

  #shutdown –Fr

  网络

  如何显示或设置网络参数值?

  no 命令设置或显示网络优化参数的当前或下一次启动时的值。

  如何获得我 计算机的 IP 地址?

  输入以下命令之一:

  ifconfig -a

  或

  host Fully_Qualified_Host_Name

  例如,输入 主机 cyclop.austin. ibm.c o m。

  如何确定 服务器上的网络接口?

  以下两个命令中的任何一个都将显示网络接口:

  lsdev -Cc if

  或

  ifconfig -a

  若要获得有关某个特定网络接口(例如,tr0)的信息,可以运行以下命令:

  ifconfig tr0

  如何激活网络接口?

  若要激活网络接口 tr0,可以运行以下命令:

  ifconfig tr0 up

  如何禁用网络接口?

  举例来说,若要禁用网络接口 tr0,可以运行以下命令:

  ifconfig tr0 down

  系统备份

  用以下菜单命令形成可启动磁带,用于系统恢复。

  # smit mksysb

  #lsattr -E -l sys0 (显示系统初始参数设置)

  #lsdev -CH(显示 系统资源状态)

  cplv的用法:fs的拷贝

  如在lv00中有文件系统/dev/lv00,mount点/testfs

  cplv -v vgname -y newly oldlv(此命令自动创建newlv)

  删去oldlv

  修改/etc/filesystems下/testfs,将dev定为/dev/newlv

  fsck /testfs

  mount /testfs 则原文件系统的内容都能访问

  禁止终端上的中断键(CTRL+C)

  在很多应用系统中,系统管理员希望普通用户只运行自己的应用程序,不能进入系统的shell提示符下,但缺省情况下当用户在 终端上按CTRL+C键时就会退到系统提示符下。由于用户终端一般没有固定的端口号,为了禁止使用中断键,可采取下面办法:

  (1)如果使用ksh, 可在$HOME/.profile中第一行加入如下内容:

  trap "echo 'Abnormal operation'; exit" 123915

  (2)如果使用csh(ksh亦可),可用如下命令:

  % stty intr ^!

  如果恢复正常情况,键入下列命令:

  % stty intr ^c

  在shell中不 回显(echo) 字符

  在实际应用中,一般当我们在键盘上键入口令时不希望将其显示在 屏幕上,为此可采用下面的两种办法:

  ·使用 stty 命令

  stty -echo # do not display password

  echo "Enter password: \\c"

  read PASSWD #get the password

  stty echo # restore standard configuration

  ·使用echo命令

  设置保密属性:echo "\\033[8m"

  取消保密属性:echo "\\033[m"

  在某个目录及其所属子目录的所有文件中查找字符串

  在程序维护过程中,有时需要在某个目录及其所属子目录的所有文件中查找某一个字符串,为此可用下面两种方法(假设在*.cp文件中查找字符串"abc",结果放在文件out中):

  (1)cat /dev/null > out

  find ./ -name "*.cp" -exec grep "abc" >> out

  (2)find ./ -name "*.cp" | xargs grep "abc" > out

  推荐使用第二种方法,因其系统开销小、速度快。

  对/etc/inittab文件中的一行进行注释

  我们都知道在shell中使用"#"作为注释符号,但在/etc/inittab中注释一行的方法是在第一个 字符前插入字符":"。

  转换DOS和AIX两种格式的文本文件

  如欲转换DOS和AIX两种格式的文本文件,有两种方法:

  (1)用ftp命令:设置ASCII传输类型,在一台运行AIX的机器和另外一台运行Windows的机器之间互相传送,这里不再赘述。

  (2)使用 aix2dos或dos2aix命令

  如将DOS格式的文本文件转换为AIX格式,可用命令A:dos2 aix inputfile outfile,反之可用命令:aix2dos inputfile outfile,关于dos2aix和aix2dos命令的详细用法可参阅"dos2aix -h "和"aix2dos -h "。注意要使用这两个命令,必须首先安装文件集bos.pci。

  解决某一PV上的VGDA与ODM库不一致的问题

  在 系统维护过程中,因为操作错误或其他特殊原因,有可能使某一PV上的LVCB和VGDA与其对应的ODM库不一致,导致ODM库紊乱,对PV的有关操作无法进行,这时可采用如下两个AIX命令加以解决:

  redefinevg -d hdisk_name vg_name

  该命令以指定PV上的LVM信息重新定义给定VG的ODM库。

  或:synclvodm -P -v vgname

  该命令同步或重建给定VG的ODM库和LVM信息。

  设置用户的文件大小限制

  在AIX系统中,用户使用 系统资源是有一定限制的。如用户缺省可创建或扩展的最大文件为1G(参见/etc/security/limits: fsize = 2097151, fsize_hard=fsize 512-bytes blocks)。

  如欲修改,可使用smit:

  # smit chuser 选择用户,修改下面两项:

  Soft FILE size [4194302]

  # (2G,可根据需要设定)

  Hard FILE size [4194302]

  # (2G, 可根据需要设定)

  用该用户身份登录,使用"ulimit -f "和"ulimit -Hf"可分别显示其fsize、fsize_hard的大小。

  按文件大小排序列出一个文件系统下的文件

  当监控某一文件系统的空间使用情况时,如果该文件系统剩余空间较少或已使用空间增长较快,则有必要排序列出该文件系统中所有大于某一给定字节数的文件,以便进一步维护管理。为此,可用如下命令:

  # find [filesystem_name] -xdev -size +[512-bytes bloks] -ls | sort -r -n -k7

  文件系统是否满

  方法: df –k 可以以K为单位检查文件系统的使用率。(90%以上,需要调整)

  检查系统出错 日志 使用errpt |more来检查

  清除现有的log: Errclear 0

  检查系统合法/非法登陆情况

  使用Last命令来检查来自登陆的地方。

  检查系统是否有巨大的Core文件生成

  使用 find / -name core –print来检查。对Core文件,一般直接删除就可以了。

  系统性能检查:

  a) CPU性能:使用Vmstat, topas来检查

  b) 内存使用情况:也是使用 topas, vmstat来检查

  c) 检查IO平衡使用情况:使用iostat来检查

  d) 交换空间使用情况:使用lsps –a来检查

  6. Mail检查

  Diag 一个月一次

  用命令SVMON来监控 服务器,

  如

  root@AIX1 [/]# svmon

  size inuse free pin virtual

  memory 1048566 1023178 4976 55113 251293

  pg space 524288 10871

  work pers clnt

  pin 55116 0 0

  in use 250952 772224 2

  用SVMON可以具体指定进程号,如

以上是关于给aix 系统增加中文字符集,该怎么处理的主要内容,如果未能解决你的问题,请参考以下文章

AIX中怎么用sed把某字符转换成换行符

使用 linux 和 AIX 的正则表达式替换 bash 脚本中的字符串

增加文件系统AIX6.0的分配内存

在多个目录中的文件中查找和替换包含引号的字符串 - unix aix

查找并打印出字符串中特定字符的出现次数 (shell/AIX)

如何一次读取一个字符的字符串或文件并将该字符的 ASCII 值分配给 CMD 批处理中的变量? [复制]