我有一台旧的Sybase服务器,其数据库正在运行。我尝试过重建文件系统和数据库文件。但问题又回来了。我想替换存储数据库文件和事务文件的硬盘驱动器。我想确定它到底是哪个硬盘因为我不熟悉Unix。此外,我还想看看这些文件是否存储在与操作系统相同的硬盘中;如果是,我将需要重新安装操作系统以及将数据库还原到新的硬盘驱动器。显然,如果数据库文件和事务文件与操作系统不在同一个硬盘驱动器中,这将更好。请帮我确定这两件事。
到目前为止,我已经找到了这些:
(1)我使用 sp_helpdb 命令,发现数据库文件和事务文件存储在这些逻辑设备中:
sybdbs
syblogs
master
sybdbs2
(2)我使用 sp_helpdevice 命令查看上面显示的4个逻辑设备,发现这些逻辑设备在这些物理设备中:
/dev/rdsk/c0t0d0s1
/dev/rdsk/c0t3d0s4
d_master
/dev/rdsk/sybdbs2
(3)当我使用 sp_helpdevice 显示所有物理设备时,我看到了:
device_name physical_name description status cntrltype device_number low high
------------------ ------------------------------------------- ------------------------------------------------ ------ --------- ------------- -------- --------
historydump /export/home/syb11.dump/history.dump disk, dump device 16 2 0 0 0
isproddump /export/home/syb11.dump/isprod.dump disk, dump device 16 2 0 0 0
istestdump /export/home/syb11.dump/istest.dump disk, dump device 16 2 0 0 0
master d_master special, physical disk, 100.00 MB 2 0 0 0 51199
masterdump /export/home/syb11.dump/master.dump disk, dump device 16 2 0 0 0
modeldump /export/home/syb11.dump/model.dump disk, dump device 16 2 0 0 0
prodtestdump /export/home/syb11.dump/prodtest.dump disk, dump device 16 2 0 0 0
sybdbs /dev/rdsk/c0t0d0s1 special, default disk, physical disk, 2000.00 MB 3 0 3 50331648 51355647
sybdbs2 /dev/rdsk/sybdbs2 special, physical disk, 1.00 MB 2 0 5 83886080 83886591
syblogs /dev/rdsk/c0t3d0s4 special, physical disk, 850.00 MB 2 0 4 67108864 67544063
sybscurty /dev/rdsk/c0t3d0s5 special, physical disk, 100.00 MB 2 0 2 33554432 33605631
sybsecuritydump /export/home/syb11.dump/sybsecurity.dump disk, dump device 16 2 0 0 0
sybsystemprocsdump /export/home/syb11.dump/sybsystemprocs.dump disk, dump device 16 2 0 0 0
sysprocsdev /dev/rdsk/c0t0d0s4 special, physical disk, 100.00 MB 2 0 1 16777216 16828415
tapedump1 /dev/rmt4 tape, 625 MB, dump device 16 3 0 0 20000
tapedump2 /dev/rst0 disk, dump device 16 2 0 0 20000
uniface724dump /export/home/syb11.dump/uniface724.dump disk, dump device 16 2 0 0 0
uniface7dump /export/home/syb11.dump/uniface7.dump disk, dump device 16 2 0 0 0
(4)我想更多地了解这些物理设备。我使用 df 命令检查它们:
df -k /dev/rdsk/c0t0d0s1
df -k /dev/rdsk/c0t3d0s4
df -k d_master
df -k /dev/rdsk/sybdbs2
df命令抱怨前三个设备“不是块设备,目录或已安装的资源”。
另一方面,df命令显示最后一个设备的以下信息:
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c0t3d0s0 576558 371019 147889 71% /
在任何情况下,这都不能告诉我这些设备在哪个驱动器上。
(5)当我使用mount命令时,我看到了:
/ on /dev/dsk/c0t3d0s0 read/write/setuid on Mon Jul 6 11:10:46 2015
/usr on /dev/dsk/c0t3d0s6 read/write/setuid on Mon Jul 6 11:10:46 2015
/proc on /proc read/write/setuid on Mon Jul 6 11:10:46 2015
/dev/fd on fd read/write/setuid on Mon Jul 6 11:10:46 2015
/tmp on swap read/write on Mon Jul 6 11:10:49 2015
/export on /dev/dsk/c0t3d0s7 setuid/read/write on Mon Jul 6 11:10:49 2015
/freespace on /dev/dsk/c0t0d0s5 setuid/read/write on Mon Jul 6 11:10:49 2015
/sybase on /dev/dsk/c0t0d0s0 setuid/read/write on Mon Jul 6 11:10:49 2015
/usr/openwin on /dev/dsk/c0t3d0s3 setuid/read/write on Mon Jul 6 11:10:49 2015
我无法弄清楚上面安装的设备与数据库文件和事务文件的物理设备之间的连接。我也无法将上面安装的设备链接到下一节中显示的硬盘驱动器。
(6)当我使用 cat / etc / vfstab 命令时,我看到了这些:
#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot options
#
#/dev/dsk/c1d0s2 /dev/rdsk/c1d0s2 /usr ufs 1 yes -
/proc - /proc proc - no -
fd - /dev/fd fd - no -
swap - /tmp tmpfs - yes -
/dev/dsk/c0t3d0s0 /dev/rdsk/c0t3d0s0 / ufs 1 no -
/dev/dsk/c0t3d0s6 /dev/rdsk/c0t3d0s6 /usr ufs 1 no -
/dev/dsk/c0t3d0s7 /dev/rdsk/c0t3d0s7 /export ufs 2 yes -
/dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5 /freespace ufs 2 yes -
/dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 /sybase ufs 2 yes -
/dev/dsk/c0t3d0s3 /dev/rdsk/c0t3d0s3 /usr/openwin ufs 2 yes -
/dev/dsk/c0t3d0s1 - - swap - no -
# The following lines have been commented-out to allow Sybase to access these
# partitions and Raw Partitions. Nov-24-1999
# /dev/dsk/c0t0d0s3 /dev/rdsk/c0t0d0s3 /master ufs 2 yes -
# /dev/dsk/c0t0d0s1 /dev/rdsk/c0t0d0s1 /sybdbs ufs 2 yes -
# /dev/dsk/c0t3d0s4 /dev/rdsk/c0t3d0s4 /syblogs ufs 2 yes -
# /dev/dsk/c0t3d0s5 /dev/rdsk/c0t3d0s5 /sybscurty ufs 2 yes -
# /dev/dsk/c0t0d0s4 /dev/rdsk/c0t0d0s4 /sybtemproc ufs 2 yes -
(7)当我使用格式命令时,我看到这两个硬盘:
AVAILABLE DISK SELECTIONS:
0. c0t0d0 <IBM-DNES-309170-SA30 cyl 11195 alt 2 hd 5 sec 320>
/iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@0,0
1. c0t3d0 <SEAGATE-ST34520N-1206 cyl 9004 alt 2 hd 4 sec 246>
/iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@3,0
(8)我没有看到任何外部设备连接到Sybase服务器。话虽如此,但有一个备份Sybase服务器,备份Sybase服务器连接了一个外部设备(通过SCSI电缆)。此时,我假设数据库文件和事务文件都存储在Sybase服务器中。
顺便说一句,Sybase服务器使用这个Unix操作系统:
SunOS <my-server-name> 5.4 Generic_101945-62 sun4m sparc
Sybase版本是:
SQL Server/11.0.3.2/P/Sun_svr4/OS 5.4/SWR 7578 Rollup/OPT/Mon Nov 3 22:19:21 PST 1997
顺便说一句,到目前为止,我尝试修复数据库的是:
•尝试 dbcc checkalloc(,修复)。不幸的是,这个命令无法修复,无法完成。
•尝试 drop-db / add-new-db / restore-db-from-backup 。不幸的是,恢复未能完成。
•尝试 fsck-to-fix-the-devices 。它无法完成并抱怨“MAGIC NUMBER WRONG”。
•尝试 Analyze-option-in-format-command-to-repair-Disk-0,然后添加-new-db和restore-db-from-backup 。这种方法似乎有效。但是经过一周左右的时间,我发现一张表有I / O错误。老实说,我甚至不知道数据库是否真的在Disk-0中。
请帮我确定哪些硬盘驱动器存储了这些数据库文件和事务文件,以及它们是否与Unix操作系统位于同一硬盘驱动器中。
提前致谢。
杰伊陈