存档

‘Unix&Linux’ 分类的存档,文章数:30

--gcc安装---
1 查看sun os版本
uname -a的命令查看系统版本。得知是SunOS 5.8。
SunOS 5.8 叫做Solaris 8
SunOS 5.9 叫做Solaris 9,以后就没有5.x的说法了,到Solaris 10了。。。

2 安装gcc
1. 到www.sunfreeware.com下载gcc-3.4.6-sol8-sparc-local.gz
2. gunzip gcc-3.4.6-sol8-sparc-local.gz
3. pkgadd -d gunzip gcc-3.4.6-sol8-sparc-local
4. 手工设置root环境变量,添加PATH 、LD_LIBRARY_PAT
export PATH=$PATH: /usr/local/bin
export LD_LIBRARY_PATH=$ LD_LIBRARY_PATH: /usr/local/lib
完毕后发现gcc -v报错:ld.so.1: gcc: fatal: libintl.so.3: open failed: No such file or directory,那么要安装libintl库

3 安装libintl库
1. 从www.sunfreeware.com下载libintl-3.4.0-sol8-sparc-local.gz
2. gunzip libintl-3.4.0-sol8-sparc-local.gz
3. pkgadd -d libintl-3.4.0-sol8-sparc-local

完毕后发现gcc -v报错:ld.so.1: gcc: fatal: libiconv.so.2: open failed: No such file or directory,那么要安装libiconv库

1、编辑/etc/ssh/sshd_config;把 PermitRootLogin no改成 PermitRootLogin yes

2、svcadm restart network/ssh

请参考:

             aix与solaris中mount一个iso文件的方法

 

Linux系统在使用光盘、软盘或U盘时,必须先执行挂载(mount)命令。挂载命令会将这些存储介质指定成系统中的某个目录,以后直接访问相应目录即可读写存储介质上的数据。
  
  1.挂载光盘
  
  挂载光盘的命令如下:
  
  # mount -t is09660 /dev/cdrom /mnt/cdrom
  
  该命令将光盘挂载到/mnt/cdrom目录,使用“ls /mnt/cdrom”命令即可显示光盘中数据和文件。
  
  卸载光盘的命令如下:
  
  # umount /mnt/cdrom
  
  2.挂载软盘
  
  将软盘挂载到/mnt/floppy目录的命令如下:
  
  # mount /dev/fd0 /mnt/floppy
  
  卸载软盘的命令如下:
  
  #umount /mnt/floppy
  
  3.挂载U盘挂载U盘相对复杂一些。
  
  首先使用“fdisk -l”命令查看外挂闪存的设备号,一般为/dev/sda1。然后用“mkdir /mnt/usb”命令建立一个挂载U盘用的目录。之后使用如下命令挂载FAT格式的U盘:
  
  # mount -t msdos /dev/sda1 /mnt/usb
  
  使用如下命令挂载FAT32格式的U盘:
  
  # mount -t vfat /dev/sda1 /mnt/usb
  
  4.挂载外挂硬盘分区
  
  挂载外挂硬盘分区(FAT32格式)同样需要先用“fdisk -1”查看外挂的硬盘分区设备号,假设为/dev/hda1。建立/mnt/vfat挂载目录后,使用如下命令进行挂载:
  
  # mount -t vfat /dev/hda1 /mnt/vfat
  
  注意,默认情况下Linux只允许root用户执行mount命令。如果想让一般用户也能挂载,并且希望在系统启动时自动挂载光盘或软盘,需要修改/etc/fstab配置文件,加入以下内容:
  
  LABEL=/ / ext3   defaults  11
  /dev/cdrom/mnt/cdrom iSo9660 auto,owner,kudzu,ro,user 00
  /dev/fdo /mnt/floppy auto auto,owner,kudzu,ro,user 00
  
  其中,“user”表示将mount命令赋予一般用户使用。
  
  /etc/fstab文件在Linux的帮助手册中讲得很详细,读者不妨看一看。

光盘的使用方法

  mount命令用于物理设备中的文件系统挂在到linux文件系统的某个目录中,mount命令不使用任何选项和参数时将显示当前linux系统中已经挂载的文件系统信息。

  #ls -l /media/cdrom/(/media/cdrom/是linux系统默认的挂载点,只有当默认挂载点为total 0,时才能进行挂载。)

  #mount -t iso9660 /dev/cdrom /media/cdrom/(光盘挂载)

  #ls /media/cdrom/(读取光盘内容)

  #cp /dev/cdrom backup.iso(制作光盘镜像)

  #umount /media/cdrom/(卸载光盘)

  #eject(光盘驱动托盘弹出)

  #eject -t(收回)

  #mount -o loop -t iso9660 backup.iso /media/cdrom/(光盘镜像的挂载;backup.iso为光盘的镜像文件。)

  #umount /media/cdrom/(镜像的卸载)

--------------------------------------------------------------------------

在虚拟机上redhat 5.4 64bit上面,光驱的设备名为:./dev/hdc

挂载用:

            mkdir -p /mnt/cdrom

            mount /dev/hdc /mnt/cdrom 或者: mount -t iso9660 /dev/hdc /mnt/cdrom

卸载用:

            unmount /mnt/cdrom

以下操作均由sybase用户来做:

新建一个脚本文件,譬如/sybase/script/dump.sh
类容如下

$ cat dump.sh
/sybase/OCS-12_5/bin/isql -Usa -P******* -S******* -i /sybase/script/dump.sql -o /sybse/script/dump.log
mv /caiwubackup/backup/cwbase1.bak /caiwubackup/backup/cwbase1_`date +%Y%m%d`.bak
mv /caiwubackup/backup/cwbase2.bak /caiwubackup/backup/cwbase2_`date +%Y%m%d`.bak
mv /caiwubackup/backup/cwbase3.bak /caiwubackup/backup/cwbase3_`date +%Y%m%d`.bak
mv /caiwubackup/backup/cwmaster.bak /caiwubackup/backup/cwmaster_`date +%Y%m%d`.bak
mv /caiwubackup/backup/master.bak /caiwubackup/backup/master_`date +%Y%m%d`.bak

(注意:`号是在键盘左上角和波浪线在一起的那个键上,不是单引号)

在同一个目录下新建脚本dump.sql
类容如下

$ cat dump.sql

dump database cwbase1 to "/caiwubackup/backup/cwbase1.bak"
go
dump database cwbase2 to "/caiwubackup/backup/cwbase2.bak"
go
dump database cwbase3 to "/caiwubackup/backup/cwbase3.bak"
go
dump database cwmaster to "/caiwubackup/backup/cwmaster.bak"
go
dump database master to "/caiwubackup/backup/master.bak"
go

制定一个定时计划,每天晚上23点30开始备份数据库

$crontab -e
30  23 *  *  *  /sybase/script/dump.sh

根据你本机的实际情况,修改相关数据库名称和路径。

AIX下mount一个iso文件的步骤:

mklv -y cdaix -s n -L /dev/cdaix rootvg 384M hdisk0
dd if=/sybase/sybaseAIX64BIT.iso of=/dev/cdaix bs=10m
mkdir /mnt/cdaix
mount -v cdrfs -o ro /dev/cdaix /mnt/cdaix

完成,加载点/mnt/aix内即为iso的内容。

Solaris下mount一个iso文件的步骤:

lofiadm (显示已用的设备名)

lofiadm -a /db/sybdata/rs1520solx64zhja.ISO /dev/lofi/2

lofiadm /dev/lofi/2   (查看刚才创建的附属的块设备)

mount -F hsfs -o ro /dev/lofi/2 /mnt  (用mount命令mount映像文件)

完成,加载点/mnt内即为iso的内容。

Linux下mount一个iso文件的步骤:

mount -t iso9660  -o loop ./wary-5.1.4.iso  /mnt/remove/

 

————————————————————————————————-
—- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
—- 转载务必注明原始出处 : http://www.dbainfo.net
—- 关键字: aix solaris mount iso mklv dd lofiadm
————————————————————————————————-

此篇为对以前的问题的整理。

solaris 10 64-bit上安装Sybase15.0.3 ESD#1,程序安装好了后用资源文件 resource-files来创建服务 。但是老是报不能创建共享内存 的错误。
Solaris环境为: 
Sun OS 5.10 Generic_127111-11 sun4v sparc SUNW,SPARC-Enterprise-T5120
16G内存,64核CPU

共享内存已经配置为如下,故没有调整。

root@SERVER # more /etc/system | grep shm
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
set shmsys:shminfo_shmmax=4294967295
*               exclude: sys/shmsys
set shmsys:shminfo_shmmax=10294967295
set shmsys:shminfo_shmmin=1
* set shmsys:shminfo_shmmni=100
* set shmsys:shminfo_shmseg=10
*       set shmsys:shminfo_shmmax = 268435456
*       set shmsys:shminfo_shmseg = 1024
*       set shmsys:shminfo_shmmni = 1024
        set shmsys:shminfo_shmmni = 4096

其中曾经重启过一次服务器

但是用资源文件创建服务时,srvbuildres -I /app/sybase/interfaces -r /app/sybase/srvbuild-adaptiveserver.res
一直下面的报错。

-bash-3.00$ more srvbuild0111.017
Mon Jan 11 22:55:57 2010: srvbuild/15.0.3 ESD #1/P/Sun_svr4/SunOS 5.8/EBF 16556/OPT/Mon Ma
r  9 02:14:53 PDT 2009
Mon Jan 11 22:55:57 2010: Getting attribute values from sybinit resource file `/app/sybase
/srvbuild.adaptive_server.rs'.
Mon Jan 11 22:55:57 2010:
Mon Jan 11 22:55:57 2010:
Mon Jan 11 22:55:57 2010:
Mon Jan 11 22:55:57 2010:
type = 1
application_type = MIXED
server_page_size = 4k
master_device_physical_name = /app/sybdata/master.dat
master_device_size = 200
master_database_size = 160
sybsystemprocs_device_physical_name = /app/sybdata/rsystemprocs.dat
sybsystemprocs_device_size = 200
sybsystemprocs_database_size = 200
errorlog = /app/sybase/ASE-15_0/install/SYBASE.log
configfile = /app/sybase/ASE-15_0/SYB_XXXX_TEST.cfg
sybsystemdb_device_physical_name = /app/sybdata/rsystemdb.dat
sybsystemdb_device_size = 20
sybsystemdb_database_size = 20
tempdb_device_physical_name = /app/sybdata/tempdbdev.dat
tempdb_device_size = 100
tempdb_database_size = 100
shmem = /app/sybase/ASE-15_0
default_backup_server = SYB_XXXX_TEST_BS
ifiledir = /app/sybase
addl_cmdline_parameters =
do_configure_pci = no
sybpcidb_device_physical_name = PUT_THE_PATH_OF_YOUR_SYBPCIDB_DATA_DEVICE_HERE
sybpcidb_device_size = 48
sybpcidb_database_size = 48
server_name = SYB_XXXX_TEST
force_buildmaster = no
do_optimize_config = no
Mon Jan 11 22:55:57 2010: (Shell command) /app/sybase/ASE-15_0/bin/dataserver -d/app/sybda
ta/master.dat -b200M -z4k -sSYB_XXXX_TEST -e/app/sybase/ASE-15_0/install/SYBASE.log -T1623
> /tmp/sbAAAjCaGrf 2>&1
dataserver: master device size for this server: 200.0 Mb
dataserver: master database size for this server: 26.0 Mb
dataserver: model database size for this server: 6.0 Mb
00:00000:00000:2010/01/11 22:55:57.87 kernel  SySAM: Using licenses from: /app/sybase/SYSA
M-2_0/licenses
00:00000:00000:2010/01/11 22:55:57.96 kernel  SySAM: Checked out license for 1 ASE_CORE (2
009.1231/permanent/19B3 47BC 0B7E 8DC3).
00:00000:00000:2010/01/11 22:55:57.96 kernel  This product is licensed to: ASE Developer E
dition - For Development and Test use only
00:00000:00000:2010/01/11 22:55:57.96 kernel  Checked out license ASE_CORE
00:00000:00000:2010/01/11 22:55:57.96 kernel  Adaptive Server Enterprise (Developer Editio
n)
00:00000:00000:2010/01/11 22:55:57.97 kernel  Initializing device /app/sybdata/master.dat
from offset 0 with zeros.
00:00000:00000:2010/01/11 22:56:00.46 kernel  Finished initialization.
00:00000:00000:2010/01/11 22:56:00.47 kernel  Using config area from primary master device
.
00:00000:00000:2010/01/11 22:56:00.47 server  Configuration Error: Configuration file, '/a
pp/sybase/SYB_XXXX_TEST.cfg', does not exist.
00:00000:00000:2010/01/11 22:56:00.66 kernel  Warning: A configuration file was not specif
ied and the default file '/app/sybase/SYB_XXXX_TEST.cfg' does not exist. ASE creates the d
efault file with the default configuration.
00:00000:00000:2010/01/11 22:56:00.68 kernel  Warning: Using default file '/app/sybase/SYB
_XXXX_TEST.cfg' since a configuration file was not specified. Specify a configuration file
name in the RUNSERVER file to avoid this message.
00:00000:00000:2010/01/11 22:56:00.69 kernel  os_create_region: can't allocate 70795264 by
tes

00:00000:00000:2010/01/11 22:56:00.69 kernel  kbcreate: couldn't create kernel region.
00:00000:00000:2010/01/11 22:56:00.69 kernel  kistartup: could not create shared memory
Mon Jan 11 22:56:00 2010: Buildmaster return code: 0.
sybdata/master.dat -e/app/sybase/ASE-15_0/install/SYBASE.log -c/app/sybase/ASE-15_0/SYB_XXXX_TEST.cfg -M/app/sybase/ASE-15_0 -i/app/sybase -sSYB_XXXX_TEST -T1623 > /dev/null 2>&1
-bash-3.00$

是共享内存的问题吗?我不是已经按照安装文档上的说明修改了solaris的共享内存了吗?

后来,经过咨询solaris工程师,原来是solaris10和以前的solaris9在共享内存上有些不同。solaris10修改了共享内存方式,针对用户级别可以设置用户所能共享的内存段。

为sybase用户在项目数据库中添加一条记录,命令如下:

projadd -U sybase -p 1233 -c "sybase parameters" user.sybase
projmod -sK "project.max-shm-memory=(priv,6G,deny)" user.sybase
projmod -sK "project.max-sem-ids=(priv,100,deny)" user.sybase
projmod -sK "process.max-sem-nsems =(priv,256,deny)" user.sybase

另外,可以查看文件/etc/project来检查上面的配置是否生效。

修改完之后,再次执行srvbuildres命令创建sybase主服务,成功!

————————————————————————————————-
—- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
—- 转载务必注明原始出处 : http://www.dbainfo.net
—- 关键字:ASE solaris 10 shared memory projadd 共享内存 couldn't create kernel region
————————————————————————————————-

在ibm-aix5.3下用tar打包一个文件夹时报错:tar: 0511-194 Reached end-of-file before expected.

用的命令是:tar -cvf /tmp/sybase12503.tar /sybase/sybase12x

解决方法:

执行ulimit -f 返回结果为:2097151,说明系统对用户所能用的文件大小限制为:2097151*512=1G

此时查看没有成功打包完成的/tmp/sybase12503.tar文件,发现其大小正好是:1073741312 (bytes).

可通过改 /etc/security/limits 文件中的fsize来设置为无限制:

default:
    fsize = -1

为使 /etc/security/limits 文件的更改生效,用户必须注销当前登录会话并重新登录。
 
重新登录后,执行ulimit -a 返回结果为:unlimited。此时更改已经生效,对用户所能用的文件大小不加限制。但是,
无论 ulimit 设置如何,AIX 上的标准文件系统都有2GB文件大小限制,如果需要建大于2GB的文件需要启用大文件 选项创建文件系统。
 
然后,再次执行:tar -cvf /tmp/sybase12503.tar /sybase/sybase12x
成功将/sybase/sybase12x打包成/tmp/sybase12503.tar。
-bash-3.2$ ls -al /tmp/sybase12503.tar
-rw-r--r--    1 root     system   1142118400 May 12 11:17 /tmp/sybase12503.tar
 
补充:在网上搜到用tar打包的文件超过2G的时候,也是报同样的错误。此时就是文件系统的原因了。应该不是jfs2或者big file enable的jfs文件系统。
-bash-3.2$ lsfs -q /tmp
Name            Nodename   Mount Pt               VFS   Size    Options    Auto Accounting
/dev/hd3        --         /tmp                   jfs2  20971520 --         yes  no
本机的/tmp文件系统为jfs2,应该可以支持2G以上的文件。
 
————————————————————————————————-
—- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
—- 转载务必注明原始出处 : http://www.dbainfo.net
—- 关键字:tar aix ulimit jfs2 打包 压缩 解压
————————————————————————————————-

前些日子在ibm-aix下安装sybase15.0.3时遇到了一个su切换用户时不能加载该用户环境变量的问题。现在问题情况及解决方法整理一下。

在aix下用sybase用户安装并配置完服务后,要设定成开机自动启动。

startsybase.sh的脚本为:

     su  - sybase -c "startserver -f RUN_servername -f RUN_servername_BS "

这句脚本的意思是:从当前用户(root)切换到sybase用户下,并以sybase用户的身份执行startserver -f RUN_servername -f RUN_servername_BS。


遗憾的是:执行该脚本的时候,提示找不到找不到SYBASE环境变量。 导致不能启动sybase主服务和备份服务器。

上面的语句在Linux运行没有任何问题,但在AIX环境就会报错

然而,用su - sybase手动切换到sybase用户下,再执行env却能够看到所有SYBAE,SYBAE_ASE,SYBASE_OCS等相关的环境变量。

也就是说用su手动切换到sybase用户时,自动加载了sybase的环境变量。在脚本中执行su - sybase -c  ..... 不会自动加载环境变量。

经过苦苦的搜索和自己的实验,最后问题解决了。如果想要加载sybase用户的环境变量,需加一个参数:-l

          su - sybase -l -c "startserver -f RUN_servername -f RUN_servername_BS "

但是很奇怪的是: -l这个参数在AIX下的man su 中根本就没有提到。

这么一个小小的问题的确苦恼了我很长时间。最后终于解决了。 

参考:http://linux.chinaunix.net/bbs/viewthread.php?tid=1059910&extra=&page=1