马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?站点注册
×
第1章 前期备份和准备工作
1.1 备份原所有数据文件
isql –U sa –P password –S SYBASE
/**password为sa的密码,服务名暂且定为SYBASE,后同***/
dump database master to ‘/cwback8000/master’
/***/cwback8000/为本次迁移备份目录*****/
dump database model to ‘/cwback8000/model’
dump database sybsystemdb to‘/cwback8000/sybsystemdb’
dump database sybsystemprocs to‘/cwback8000/sybsystemprocs’
dump database tempdb to ‘/cwback8000/tempdb’
dump database testdata to ‘/cwback8000/testdata’
go
1.2 备份配置文件
数据库配置文件位置
file:/sybase/ASE-12_5/SYBASE.cfg
#cp /sybase/Sybase-12.5/SYBASE.cfg /cwback8000/
1.3 备份数据库用户权限、角色等重要信息
重新建库后如果采取恢复master数据库的办法,由于恢复后的master库记录着原有的库以及设备等很多信息,强行启动数据库可能导致很多错误,甚至无法正常启动,所以不能直接恢复master库,最好是重建,然后导入需要的数据和用户登录信息并且新建设备和库。
isql –U sa –P password –S SYBASE
shutdown
go
/sybase/sybase-12.5/ASE-12_5/install/startserver -f /sybase/sybase-12.5/ASE-12_5/insta
ll/RUN_SYBASE –m
isql –U sa –P password –S SYBASE
bcp master..syslogins out /cwback8000/logins -Usa -P password -c -S SYBASE
bcp master..sysloginroles out /cwback8000/loginroles -Usa -P password -c -S SYBASE
bcp master..sysroles out /cwback8000/roles -Usa -P password -c -S SYBASE
bcp master..syssrvroles out /cwback8000/srvroles -Usa -P password -c -S SYBASE
bcp master..sysusers out /cwback8000/users -Usa -P password -c -S SYBASE
1.4 记录其它重要信息
1、查看服务器端字符集:
在isql环境中执行:
1>sp_helpsort
2>go
2、查看客户端字符集:
在isql环境中执行:
1>select @@client_csname
2>; go
3、查看数据库page size信息
在isql环境中执行:
1>select @@maxpagesize
2>go
3、记录数据库信息
$scjview
进入管理界面,记录下原来数据库的名称、数据和日志设备大小、位置、名称、路径等信息
4、记录数据库服务名和备份服务名
第2章 恢复数据和系统
2.1 通过重新建立数据库的方法
2.1.1 创建新的数据库
在/Sybase/Sybase-12.5/ASE-12_5/bin下执行
./srvbuild
将Adaptive Server 和 Backup Server选中,在Adaptive Server中输入SYBASE
单击上图《OK》按钮,弹出Adaptive Server配置对话框
单击srvbuild介面的《OK》按钮,进入backup server配置
Adaptive Server ,Backup Server参数配置,单击上图的《Build Server》按钮完成创建服务器。
2.1.2 修改和优化新数据库参数
使用/sybase/Sybase-12.5/OCS-12_5/bin/isql –Usa –P –S SYBASE登陆数据库,配置以下参数,用户也可以用vi更改/sybase/Sybase-12.5/ASE-12_5/SYBASE.cfg配置文件来改参数,或可以实用原有备份配置文件进行恢复。
(1) 配置sybase的max memory
单位:Metebytes
一般将物理内存的60-70%分配给SYBASE,其余的用于操作系统以及其他应用软件,这样使sybase有足够的内存来快速的完成查询,统计任务.我们采用的服务器内存为4GB,这样我们分配2.65GB为max memory。
1> sp_configure “max memory”,1356800
2> go
此项为dynamic,不必重启动SYBASE
(2)扩充临时数据库(tempdb)的大小
由于查询时需调出大量的数据表,使用临时数据库可以加快数据的查询任务。
3> disk init
4> name=”tempdb_add”,
5> physname=”/cwdata/data/tempdb_add.dat”,
6> vdevno=10,
7> size=512000
8> go
1> alter database tempdb on tempda_add=1024000
2> go
此项为dynamic,不必重启动SYBASE
(3)增加sybase锁的个数
增加sybase锁的个数使得在查询过程中不会出现死锁的现象
1> sp_configure “number of locks”,30000
2> go
此项为dynamic,不必重启动SYBASE
(4)配置sybase中default data cache
增大default data cache的大小使得系统可以动态的利用该资源,使得查询任务的速度提高
sp_cacheconfig “default data cache”,”1000M”
3> go
此项必须要求重新启动SYBASE才可生效
(5)调整Number of open databases,将参数设置如下
sp_configure “number of open databases”,50
3> go
此项为dynamic,不必重启动SYBASE
(6)调整Number of open objects,将参数设置如下
1>sp_configure “number of open objects”,2000
2>go
此项为dynamic,不必重启动SYBASE
(7)配置CPU,使负载均衡,参数如下:
1>sp_configure “max online engines”,2
2>sp_configure “number of engines at startup”,2
此项为dynamic,不必重启动SYBASE
(8)调整Number of devices,参数设置如下
1>sp_configure “number of devices”,40
2>go
此项为dynamic,不必重启动SYBASE
(9)配置过程cache,参数配置如下:
sp_configure “procedure cache size”, 271360
1> go
此项必须要求重新启动SYBASE才可生效
(10)绑定临时库cache,参数配置如下:
sp_cacheconfig tempdb_cache,”500M”
1> go
绑定到临时库
sp_bindcache tempdb_cache,tempdb
1> go
此项必须要求重新启动SYBASE才可生效
(11)索引数配置:
sp_configure 'number of open indexes', 10000
1> go
此项为dynamic,不必重启动SYBASE
(12)增加用户连接个数
sp_configure “number of user connections”,100
1> go
此项为dynamic,不必重启动SYBASE
2.1.3 导入数据库model、sybsystemdb、sybsystemprocs
isql –U sa –P –S SYBASE
load database model from '/cwback8000/model'
load database sybsystemprocs from '/cwback8000/sybsystemprocs'
load database sybsystemdb from '/cwback8000/sybsystemdb'
online database sybsystemprocs
online database sybsystemdb
online database model
注意导入sybsystemdb数据库的时候需要修改参数:
sp_configure 'enable xact coordination',0
导入数据库后重新修改参数
sp_configure 'enable xact coordination',1
2.1.4 导入系统用户权限、角色等信息
1> sp_dboption database dbname ,"select into/bulkcopy",true
2> go
1> sp_dboption database dbname,"trunc log on chkpt",true
sp_configure "allow updates to system tables", 1
go
bcp master..sysloginroles in /cwback8000/loginroles -U sa -P -b 1 -c -S ibmserver(34,4)
bcp master..syslogins in /cwback8000/logins -U sa -P -b 1 -c -S ibmserver(135,2)
bcp master..sysroles in /cwback8000/roles -U sa -P -b 1 -c -S ibmserver(0,9)
bcp master..sysusers in /cwback8000/users -U sa -P -b 1 -c -S ibmserver(0,)
bcp master..syssrvroles in /cwback8000/srvroles -Usa -P -b 1 -c -S ibmserver(0,)
2.1.5 创建用户数据和日志设备
1、创建用户数据文件设备
disk init name ='testdata ',physname='/sybase/cwhadata/testdata.dat',size=1024000
disk init name=’tempda_add’,physname=’/sybase/cwhadata/tempda_add.dat’,size=1024000
disk init name=’tempda_add1’,physname=’/sybase/cwhadata/tempda_add1.dat’,size=1024000
2、创建用户日志设备
disk init name='testdatalog',physname='/sybase/cwhadata/testdatalog.dat',size=256000
2.1.6 创建用户数据库
create database testdata on testdata =1024000 log on testdatalog=256000
2.1.7 导入用户数据文件
load database testdata from '/cwback8000/testdata '
2.1.8 恢复用户数据库在线
online database testdata
2.2 通过打包迁移系统和数据文件的方法
本迁移方法是直接将原有安装目录以及数据目录进行tar打包,然后在新的文件系统上解包,相当于仅仅目录发生变化,实际的系统文件、配置文件和数据文件均未发生变化,如果数据库正常启动,相当于所有数据和配置未发生变化,这种应该是比较安全、对系统影响最小的解决方案,但需要解决的是部分数据文件目录发生变化,需要重新修改系统表里关于设备位置的参数。
2.2.1 原来系统和数据打包
打包并压缩存储上的文件系统:
#tar czvf sybase.tar.gz /Sybase
#tar czvf testdata.tar.gz /testdata
2.2.2 创建文件系统mount点
新盘的挂载点为/sybdata,然后在下分别创建目录testdata,生成后的目录为/sybdata/testdata。
2.2.3 释放压缩文件到新的文件系统上
#tar zxvf sybase.tar.gz /Sybase/
#tar zxvf testdata.tar.gz /sybdata/testdata/
2.2.4 启动数据库
以单用户模式启动数据库
/sybase/sybase-12.5/ASE-12_5/install/startserver -f /sybase/sybase-12.5/ASE-12_5/insta
ll/RUN_SYBASE –m
启动数据库后明显可以看到除了系统库外的所有在用帐套和历史帐套均显示状态可疑,无法正常使用。
2.2.5 解决文件更改的故障
数据库建立设备时,每个设备文件不仅仅只是一个单纯的文件,还包含了文件的分配信息,磁盘块的划分等,所以挂载数据库设备文件时显示状态可疑或挂起的时候,需要进行解决:
1、重新构建 master..sysdevices 数据中的位置信息
sp_configure 'allow updates', 1
go
begin tran
go
update sysdevices set phyname=”new_dev_path”,where name =”old_dev_name”
go
commit tran
go
如果采取的新建设备的时候,特别注意要大小一致
如果位置未变,但是文件发生变化,可以使用如下命令:
disk reinit name="device_name", physname="full_path_of_device", vdevno=device_no,size=size_of_device
2、重新构建 master..sysusages 数据
disk refit
/****或者也可以直接修改sysdatabases、sysusages和master..sysdevices表。
3、重新启动数据库
2.3 通过数据设备镜像的方法
本迁移方法是首先在生产库在线的情况下,将数据库设备在线实现镜像到不同的目录或不同的设备上,然后卸载主设备,实际相当于迁移了数据文件或设备,但由于sybase系统文件也在原来的存储上,仅仅需要将系统文件打包备份,然后将sybase系统安装目录所在的存储卸载,在服务器本机硬盘建立相同的目录/sybase,然后将打包的系统安装文件解包,这样就使实现了系统文件和数据文件的迁移,这种方案安全性极高,对数据文件的操作最少,是针对本次迁移的最安全、最可靠和效率最高的一种方式。
2.3.1 在线镜像数据文件文件
1、修改系统参数使设备文件能够实现镜像
sp_configure 'disable disk mirroring',0
2、重新启动数据库:
1>shutdown
/sybase/sybase-12.5/ASE-12_5/install/startserver -f /sybase/sybase-12.5/ASE-12_5/install/RUN_SYBASE
3、在线镜像testdata数据库设备和日志设备
USE master
go
disk mirror name=' testdata ', mirror='/sybdata/testdata.dat', writes='noserial'
go
disk mirror name='testdata log', mirror='/sybdata/testdata log.dat', writes='noserial'
go
相应的镜像所有需要迁移的所有数据库数据和日志设备。
2.3.2 卸载旧存储上的设备
USE master
go
disk unmirror name='testdata ', side='primary', mode=remove
go
disk unmirror name='testdata log', side='primary', mode=remove
go
旧设备卸载后,相当于数据和日志设备自动迁移到了新的文件系统。
相应的卸载所有需要迁移的所有数据库数据和日志设备。至此整个所有数据和日志设备迁移成功。
但特别需要注意的是如果镜像master设备,则一定需要修改RUN_SYBASE文件,否则数据库无法启动。
2.3.3 打包所有sybase系统安装目录
#tar czvf sybase.tar.gz /Sybase
打包完成后拷贝tar包到备份目录/cwback8000/下存放
2.3.4 恢复sybase系统安装目录
在/分区下新建/Sybase目录,同时修改目录权限
#chown –R Sybase:sybase /Sybase
#tar zxvf sybase.tar.gz
2.3.5 启动数据库
/sybase/sybase-12.5/ASE-12_5/install/startserver -f /sybase/sybase-12.5/ASE-12_5/insta
ll/RUN_SYBASE
至此数据库完全迁移成功,包括sybase系统安装文件和数据文件。
2.3.6 恢复备份、维护等其它信息
按照对应的将备份脚本、维护脚本类信息拷贝到新的目录下,从而保证系统能够按照平时一样正常运行。
|