我使用 PostgreSQL 11 并有两列。一个是不知道闰秒的 unix 时间戳和一个知道闰秒的 utc 时间戳。
有没有办法找到 unix 时间戳(没有闰秒)和 utc 时间戳(有闰秒)之间的闰秒数?
或者有没有办法将 utc 时间戳(有闰秒)转换为 unix 时间戳(没有闰秒)?
我在另一个论坛上发布了以下问题。有人告诉我这个问题与 Sybase 有关(与我们可能使用原始分区有关)。这就是为什么我在这里重新发布这个问题。对不起,多个帖子。
我有一个旧的 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% /
似乎 Unix 对前 3 个物理设备一无所知。似乎它们是只有 Sybase 知道的东西(有人向我建议它们是“原始分区”)。第 4 个设备是 Unix 知道的,它在“/dev/dsk/c0t3d0s0”中。不过,我无法告诉我这些设备在哪个驱动器上。
(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(, fix)。不幸的是,此命令无法修复且无法完成。
• 试过drop-db/add-new-db/restore-db-from-backup。不幸的是,恢复未能完成。
• 试过fsck-to-fix-the-devices。它无法完成并抱怨“MAGIC NUMBER WRONG”。
• 试过Analyze-option-in-format-command-to-repair-all-disks,然后 add-new-db 和 restore-db-from-backup。这个方法似乎奏效了。但是大约一个星期后,我发现一个表有 I/O 错误。
请帮我确定那些数据库文件和事务文件存储在哪个硬盘上,以及它们是否与Unix操作系统在同一个硬盘上。
提前致谢。
陈杰
我们使用的是在 Solaris 上运行的 Oracle Enterprise 11rR2。
如何使用 删除/删除分配的共享内存段ipcrm
?
我收到此错误:
ORA-01041: internal error. hostdef extension doesn't exist
我意识到这是一个更主观的问题,但我正在寻求社区的指导。
我们公司刚开始拥有 DBA。我们曾经在 IBM 的 iSeries 服务器上使用 DB2 for i,因此实际上不需要 DBA(至少在操作上),因为操作系统几乎为我们管理了一切。在过去的几年里,我们开始迁移到 AIX 上的 DB2 LUW。因此,对 DBA 的需求诞生了。我们中的三个人有兴趣将职业从开发人员转变为 DBA(我是其中之一)。
因为我们在 AIX 上,所以我们默认使用 ksh 作为数据库管理功能(创建、部署、操作等)的脚本语言。我发现 ksh 非常强大,但我需要执行的一些功能却变得相当复杂。这方面的一个例子是我关于 Unix 和 Linux StackExchange 的问题。
基于这个问题,以及阅读其他 DB2 管理员的博客,我看到一个普遍的建议,即 Perl 比 ksh 更适合管理脚本。
我知道 Unix/Linux 论坛对这样的事情会有他们自己的想法,但我希望从数据库管理的角度来解决这个问题。
不管 DBMS,哪种脚本语言似乎更适合在 Unix/Linux 平台上进行管理?佩尔?克什?(或者其他?)。作为 DBA,您在使用脚本语言时遇到过哪些优势和劣势?您为什么选择所使用的语言?
我不想要的是一场关于“我的语言比你的语言更好!”的高度主观的口水战。类似的东西,就像我以前在开发社区看到的关于 Java 与 Ruby 等的内容一样。我正在寻找诚实的、尽可能客观的关于什么最适合数据库管理员需求的信息。