首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用内存盘提高OLTP数据库的性能和可用性(2)使用内存盘提高数据库性能-1

使用内存盘提高OLTP数据库的性能和可用性(2)使用内存盘提高数据库性能-1

DB2 UDB 数据库的数据存放在表空间中,日志存放在日志文件中。通常,表空间的所有容器、所有的日志文件,都存放在磁盘 ( 或磁盘构成的存储设备 ) 上。这样,访问数据时需要大量的磁盘 IO。磁盘 IO 往往成为高负载数据库的瓶颈。本章探讨通过将数据容器和日志文件存放到内存盘中,从而提高数据库的性能。
使用内存盘创建数据库  创建 DB2 数据库时,可以指定将数据库创建在哪个目录上。此时,数据库的容器和日志文件都在指定的目录下。如果该目录实际上是内存盘的挂接点,或挂接点的子目录,那么数据库实际上就是建立在内存盘上。所有的数据库操作都不会引起磁盘 IO。
用户可以使用如下命令将数据库建立在特定目录上 ( 该命令需要具有 DBA 权限的用户执行 ):
db2 “create db testdb on /db2data”
运行上面的命令,会在 /db2data 目录上,建立一个名为 testdb 的数据库。关于 create db 更详细的用法和参数,用户可以参考 DB2 Information Center。
如果用户已按照上文的描述建立了内存盘,并挂接到 /db2data 上,那么新建立的 testdb 数据库就在内存盘上。只要不重启机器,不 umount 内存盘,那么就可以象操作在磁盘上数据库的一样,对 testdb 数据库进行各种操作。
但当用户需要重启机器,或者 umount 内存盘。用户有两种方法保存内存盘上的数据。
使用数据库的 backup/restore,保存内存盘上的数据
DB2 数据库可以在脱机或联机状态下对数据库进行备份。这些数据库备份文件,可以用于恢复数据库。用户如果使用这种方式保存内存盘上的数据,在重启或 umount 内存盘前,应进行如下操作:
1. 关闭所有数据库连接
db2 “force application all”
2. Backup 数据库
db2 “backup db testdb to /db2backup”
3. 备份日志文件 ( 可以通过 db2 get db cfg 查看日志所在目录,并将日志文件拷贝到磁盘上 )
db2 “get db cfg for testdb”
4. 停止数据库服务器
db2stop
重启或重新 mount 内存盘后,可以使用数据库的备份文件恢复内存盘上的数据库。具体操作如下:
1. 启动数据库服务器
db2start
2. Restore 数据库
db2 “restore db testdb from /db2backup”
3. 恢复日志文件 ( 可以通过 db2 get db cfg 查看日志所在目录,并把日志文件从备份处拷贝到日志目录 ) 前滚
db2 “rollforward db testdb to end of logs”db2 “rollforward db testdb complete”
通过数据库的 backup/restore 保存内存盘的数据。DB2 数据库生成的备份文件的大小和备份前表空间占用的大小几乎相同。备份文件可以在脱机或联机的状态下生成。该文件除了用来保存数据库数据外,还是支持高可用性配置的基础。( 本文将在后面介绍使用内存盘提高数据库的高可用性。)
使用操作系统的命令,保存内存盘上的数据
用户还可以选择使用操作系统的命令备份内存盘中的数据。如果选用这种方式备份数据,在重启或 umount 内存盘前,用户应进行如下操作:
1. 停止数据库服务器
db2stop
2. 使用操作系统命令备份数据 ( 示例:使用 tar 备份数据库 )
tar –cvzf /db2backup/testdb.tar.gz /db2data
重启或重新 mount 内存盘后,使用备份的文件恢复内存盘上的数据。具体操作如下:
1. 首先确认数据库服务器是关闭的,清空数据库所在目录
rm –fr /db2data/*
2. 使用操作系统命令恢复数据
cd /db2datatar –xvzf /db2backup/testdb.tar.gz
3. 启动数据库
db2start
使用 tar –cvzf 可以生成压缩后的打包文件。采用这种方法生成的打包文件的大小比数据库的备份文件的大小要小的多。生成也比数据库的 backup 要快,操作相对简单。缺点是,这个命令只能在数据库服务器停止或暂挂的时候运行,并且缺乏对高可用性配置的支持。另外,使用 tar 命令是需要特别注意数据库目录的权限。
注:在一些版本的 linux 上,重启或重现 mount 内存盘,可能改变挂接点的权限。mount 以后,需要把挂接点的权限,修改为正常值。
返回列表