- 论坛徽章:
- 0
|
如果要将sybase11以前的数据库升级到12.0的方法。按照如下步骤你可以轻松的做到。
1、首先使用sp_helpdevice 命令,将所显示的所有信息保存下来。
例如:
device_name physical_name
description
status cntrltype device_number
low
high
------------------------------ ----------------------------------------------
----------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------
------ --------- -------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
staticdb /dev/rvol/dg2/vol03
special, physical disk, 200.00 MB
2 0 2
33554432
33656831
staticdb_log /dev/rvol/dg2/vol04
special, physical disk, 50.00 MB
2 0 3
50331648
2、使用sp_helpdb命令,同样保存所有的显示信息。
name db_size owner dbid
created
status
------------------------ ------------- ------------------------ ------
--------------
------------------------------------------------------------------------------------------------------
staticdb 250.0 MB sa 5
Nov 16, 1999
no options set
3、使用sp_helpdb db_name,这里db_name 是使用sp_helpdb显示结果中的信息。保存所有数据库的查询信息。以防不测。^_^
如:sp_helpdb staticdb
1>; sp_helpdb staticdb
2>; go
name db_size owner dbid
created
status
------------------------ ------------- ------------------------ ------
--------------
------------------------------------------------------------------------------------------------------
staticdb 250.0 MB sa 5
Nov 16, 1999
no options set
device_fragments size usage free kbytes
------------------------------ ------------- -------------------- -----------
staticdb 200.0 MB data only 200832
staticdb_log 50.0 MB log only 51184
(return status = 0)
4、dump 数据库信息.dump database db_name to "device path" .这里device path必须是一个sybase用户具有可写权限的目录。
建议新建一个目录。例如:”/usr/users/xxxxx"。(什么?不能dump?拿板砖砸你,backup_server有没有起起来。)
如果你没有做1-4中的任何一步,当你的数据库升级失败(致命的失败)的时候你只能说“如果上天再给我一次机会,我一定.........."。
我还是只能用板砖砸你。此时你基本上只有祈求奇迹的发生了。^_^
5、转储事务日志:
dump tran db_name with no_log
6、bcp系统表的信息。
select name form sysobjects where type='U',将显示结果保存。之后bcp出来所有系统表的信息。
bcp master..db_name out bcp_db_name -Sserver_name -Usa -Ppasswd -c -t@
6、12.0要求master,model,和tempdb的数据库的大小分别是7,3,3m的大小。所以下面要进行的就是数据库的扩充的问题。
alter database master on master=xx 单位是兆M。
alter database model on dev_name=xx
alter database tempdb on dev_name=xx
7、在12.0及以后版本的数据库中必须要有一个sybsystemdb数据库。所以要在现有的数据库server中创建一个这样的数据库。
首先初始化一个设备。
1>;disk init
2>;name='dev_name',physname='/dev/rvol/dg2/vol19',vdevno=18,size=512000 (ggjjddmm们能看懂吧??^_^)
3>;go
8、在刚才新初始化的设备上创建新的数据库sybsystemdb。
1>; create database sybsystemdb
2>; on dev_name=5
3>; log on dev_name=15 WITH OVERRIDE
4>;go
CREATE DATABASE: allocating 2560 pages on disk 'dev_name'
CREATE DATABASE: allocating 7680 pages on disk 'dev_name'
Msg 5018, Level 17, State 1:
Line 1:
Caution: You have set up this database to include space on disk 18 for both
data and the transaction log. This can make recovery impossible if that disk
fails.
9、关闭数据库中除tempdb库的"select ...."外的每个数据库的选项。
1>;sp_dboption db_name ,"option name" ,false
2>;go
1>;use db_name
2>;go
1>;checkpoint
2>;go
是对数据库的修改生效。
10、停止所有可能连接数据库的应用程序。
11、停止在后台或在crontab中设置的可能连接数据库的应用程序。
12、以sa登陆,使用sp_who 检查当前用户的个数。必须显示是只有一个用户,即自己。
13、编辑使用sqlupgraderes 使用的脚本文件。此文件在
$SYBASE/ASE-12_0/init/sample_resource_files/upgrade.rs,最好将upgrade.rs文件做一个拷贝并且重新命名,例如:
upgrade_servername.rs,文件中的相关设置其中的相关说明,应可以明白。
使用sqlupgraderes命令升级数据库。
sqlupgraderes -r $SYBASE/ASE-12_0/init/sample_resource_files/upgrade_servername.rs
到此你最好祈求上帝保佑你。祝你一切顺利。如果你看到10%字样出现的话,那么祝贺你,你的数据库升级已经成功了。当然这个
升级的过程比较慢,我升级的过程大概花费了10分钟左右。千万不可因为性急而中断。那样你只能扇自己的脸了。^_^
哦。忘了说在进行这些之前你一定正确安装了sybase12.0了吧。这里可能要说明一点就是,在安装之前你要将要升级的数据库额
.cshrc文件修改一下,将新的SYBASE 的路径设为新安装的数据库的路径,并在其中增加一个OLDSYBASE的环境变量。不用说你也知道这
个环境变量的用处是干什么的了吧!
好了,不罗嗦了,祝你数据库升级一帆风顺。 |
|