999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Linux平臺下Sybase數據庫備份的方法分析

2018-06-07 06:48:48劉君堯王輝靜劉云霞
無線互聯科技 2018年1期

劉君堯 王輝靜 劉云霞

摘 要:對于從事信息系統管理的人員來說,掌握數據庫的備份方法在工作中尤為重要。當本地數據出錯或者磁盤損壞時,可以利用備份的數據恢復數據庫系統,從而保證系統的正常運行。文章以Linux平臺下的Sybase數據庫為例,給出兩種不同備份的實現方法。

關鍵詞:Linux平臺;Sybase;數據庫備份

對于從事信息管理系統的人員來說,掌握數據庫的備份是必備的技能。當本地數據出錯、人為誤操作或者磁盤/文件損壞時,可以利用備份的數據進行恢復,從而保證系統的正常運行[1]。本文以Linux平臺下Sybase數據庫的備份為例,給出兩種備份的實現方法,并對這兩種方法實現的操作專業程度、時間性能、可擴展性等方面進行比較說明,以供信息系統管理人員進行相應管理操作使用。Linux平臺下Sybase數據庫備份的方法主要有兩種:(1)整庫二進制備份;(2)整表文本備份。下面針對這兩種備份方法進行詳細描述,并給出客觀的對比結論。

1 整庫二進制備份恢復

1.1整庫二進制備份

整庫二進制備份主要采用轉儲數據庫的方式進行,就是為整個數據庫(包括數據、表結構、觸發器、游標、存儲過程、事務日志等)做一次完整的物理備份。

Sybase進行數據庫轉儲時,Sybase系統自動執行一次Checkpoint(所謂的Checkpoint是將日志和數據從內存緩沖區寫入到硬盤中(只針對改動過的數據進行寫入,即臟頁寫入),把己被分配的日志頁和數據頁也寫入到磁盤中,確保進行數據庫轉儲時數據的正確性。 通過整庫二進制備份,可以將整個數據庫的運行環境完整復制一份,包括數據庫的結構、臟頁和碎片,在使用load命令恢復時,只能恢復到同樣大小的數據庫中(數據和日志的大小都只能和原來完全一致),可以確保真正地還原,恢復后數據庫準確無誤。

可以采用如下的方式進行Sybase的整庫二進制備份:使用Sybase數據庫提供的isql命令登錄數據庫服務器,并使用dump命令進行備份。具體的命令實現為:

dbuser> isql -S{DBServerName)-U{username) -P{password)

dump database {dbname) to “path/filename” withcompression={level)

dump transaction {dbname) to“path/filename"

go

其中“path/filename”為備份出來的文件放置的目錄以及文件名。compression為備份時是否進行壓縮,取值范圍:0-9以及100或者101。其中0表示不壓縮,9表示最高壓縮比進行壓縮。100表示提供更快速度的壓縮;101表示提供壓縮比更高的壓縮,一般根據磁盤的情況以及壓縮的時長,來決定具體的壓縮等級。

1.2整庫二進制恢復

整庫二進制恢復可以將整庫二進制備份方式下備份出來的數據庫物理備份進行恢復。采用整庫二進制恢復,可以確保數據庫恢復到備份時的情況,包括數據庫結構、數據、頁和碎片等。整庫二進制恢復在進行恢復前,需要確保要恢復的數據庫設備存在,并且要比備份的容量相等或者更大。以便可以完整地進行物理恢復。整庫二進制恢復分3步進行。

第一步:創建準備恢復的數據庫設備(包括數據設備和日志設備)以及數據庫。

可以采用如下命令,創建恢復所需的數據庫設備:

dbuser> isql -S{DBServerName)-U{username) -P{password)

disk init name=datadev, physname=/opt/Sybase/data/datadev.dat. size=150m'

disk init name=logdev, physname=/opt/Sybase/data/logdev.dat, size=300m'

go

datadev為數據設備,用于放置實際的數據;logdev為日志設備,用于放置日志數據,disk init命令用于創建數據庫所需的數據設備和日志設備。上面命令表示,創建一個數據設備,容量大小為150 M,設備名稱為datadev;創建一個日志設備,容量大小為300 M,設備名稱為logdev。

可以采用如下命令,創建恢復所需的數據庫:

dbuser> isql -S{DBServerName)-U{username) -P{password)

create database dbname on datadev=150m' log onlogdev=300m

go

上面的命令表示,在數據設備datadev以及日志設備logdev(這兩個設備由disk init命令創建)上創建數據庫dbname,數據庫大小為:數據容量大小150 M,日志容量大小300 M。創建的數據庫容量(包括數據容量和日志容量)以及數據庫用到的數據設備、日志設備數量、大小,都要與備份的數據庫保持一致。

第二步:進行物理恢復,可以采用如下命令,在第一步創建的數據庫上進行數據恢復。

dbuser> isql -S{DBServerName} -U{username}P{password}

load database dbname from "path/filename"

go

上述命令表示從path/filename備份文件中,將數據直接導入到數據庫dbname。

第三步:激活數據庫,可以采用如下命令,在第二步導入數據庫后進行數據庫激活。

dbuser> isql -S{DBServerName)-U{username) -P{password)

online database dbname

go

2 整表文本備份恢復

2.1整表文本備份

整表文本備份主要采用文本導出的方式,將數據庫中數據表的數據,按照csv格式導出為文本文件。整表文本備份只能進行數據表的數據的備份,無法將數據庫結構、頁面信息、數據庫日志等信息導出。

整表文本備份,可以使用Sybase數據庫提供的bcp命令進行,具體的命令實現為:

dbuser> isql -S{DBServerName)-U{username) -P{password)

use dbname

go

checkpoint

90

quit

dbuser>bcp {tablename) out “path/filename" 一c -t{字段間隔符)-r{記錄間隔符)-S{DBServerName) -U{username)-P{password)

默認的字段間隔符為\t;默認的記錄間隔符為\n。如果表中字段本身有\t\n等特殊字符,可以采用較為復雜的字符串作為字段間隔符或者記錄間隔符,以避免出現恢復失敗。

如果要對整個數據庫進行備份,需要對數據庫中所有的數據表逐個執行bcp命令進行備份,可以用一個命令來生成備份的語句,實現對一個數據庫的所有數據表進行備份:

dbuser> isql -S{DBServerName)-U{username) -P{password)

select 'bcp ‘+name+out ‘+path/filename -c -t{字段間隔符)-r{記錄間隔符)- S{DBServerName) -63U{username) -P{password) from sysobjects where type='U'

go

2.2整表文本恢復

當數據庫中某個數據表,或者整個數據庫出現故障需要恢復時,可以采用整表文本恢復的方式進行恢復。采用整表文本恢復,需要的前提是:(1)數據庫已經存在;(2)數據表已經創建,并且和備份時的字段名稱、順序完全相同。

因此,整表文本恢復需要如下4個步驟。

第一步:創建準備恢復的數據庫設備(包括數據設備和日志設備)以及數據庫,如果數據庫已經存在,則可以跳過。具體創建數據庫設備和數據庫的命令,可以參考“整庫二進制恢復”的內容。

第二步:創建要恢復的數據表,如果該數據表已經存在,則可以跳過。可以采用如下命令,在第一步創建的數據庫上創建數據表。

dbuser> isql -S{DBServerName)-U{username) -P{password)

use dbname

90

create tabletablename}

90

創建數據表的create table命令格式如下:

CREATE TABLE table-name

{{ column-definition I table-constraint(pctfree)….)

[{ IN(ON) dbspace-name]

[ ENCRYPTED]

[ ON COMMIT{ DELETE(PRESERVE) ROWS

[NOT TRANSACTIONAL]

[ AT location-string]

[ SHARE BY ALL]

column- definition:

column-name data-type

[ COMPRESSED]

[ INLINE{ inline-length I USE DEFAULT)]

[ PREFIX{ prefix-length l USE DEFAULT)]

[[ NO] INDEX]

[[ NOT] NULL]

[ DEFAULT default-value|IDENTITY]

[ column-constraint…]

column-constraint:

[ CONSTRAINT constraint-name]{

UNIQUE[ CLUSTERED]

[PRIMARY KEY[ CLUSTERED][ASC | DESC]

[REFERENCES table-name[(column-name)]

[ MATCH[ UNIQUE]{SIMPLE[ FULL)]

[ action-list][CLUSTERED]

[CHECK( condition)

}

COMPUTE ( expression )table-constraint :

[ CONSTRAINT constraint-name]{

UNIQUE[ CLUSTERED](column-name[ ASC『DESC]….)

[PRIMARY KEY[ CLUSTERED](column-name[ASC[ DESC]….)

[CHECK( condition)

[foreign-key-constraint

}

foreign-key-constraint:

[ NOT NULL] FOREIGN KEY[ role-name]

[( column-name[ ASC[DESC]….)]

REFERENCES table-name

[(coluinn-name,.)]

[ MATCH[ UNIQUE]{ SIMPLE l FULL)]

[ action-list][CHECK ON COMMIT][CLUSTERED][FOR OLAP WORKLOAD]

第三步:刪除表中已有的數據,避免導入沖突,此步驟在表中已有數據的情況下執行即可,如果是新建的表,可以跳過此步驟。可以采用如下命令,將表中的數據清空。

dbuser> isql -S{DBServerName)-U{username) -P{password)

truncate table {tablename)

go

第四步:將數據導入,可以采用如下命令,將備份出的整表文本數據導入數據庫中指定的數據表中。

bcp{dbname}.{tablename} in“path/filename”一c -t{字段間隔符)-r{記錄間隔符)-S{DBServerName) -U{username)-P{password

3 兩種備份方法的對比分析

整庫二進制備份,可以對Sybase數據庫的數據、相關的表結構和數據庫事務日志都進行備份,但是備份的文件容量比較大,一般約等于數據庫的真實容量(不做壓縮情況下),同時由于采用整庫備份(也支持數據庫事務日志備份),因此,在備份效率、備份一致性以及信息完整性上有明顯優勢。

整表文本備份,只針對數據表中存儲的數據進行備份,因此備份的文件容量較小,一般約等于數據庫真實容量的20% -50%(一般文本數據,不做壓縮情況下),由于采用數據表粒度進行備份,因此,可以靈活選擇需要備份的內容進行備份,甚至對備份的數據進行調整和處理,同時也可以針對不同重要程度的數據表進行有差異的備份(比如不同的備份周期,重要的數據表以較短的備份周期進行備份)。但是采用整表文本備份也有明顯的缺陷,如果數據庫的數據表結構發生損壞,通過此備份方式將無法恢復,需要先恢復或者重建表結構;另外對于數據庫中Image,Blob等二進制存儲類型的數據,此方法容易產生亂碼,不建議使用。

如果備份的磁盤空間比較大,建議可以兩種備份方式都采用,在恢復的時候,根據具體的需要采取恢復的手段。4實驗測試結果

具體的實驗環境為:服務器:CPU 2*Xeon E5 4650;內存128 G;磁盤容量2T(磁盤陣列RAID l+0);操作系統:RedHat Linux 7;數據庫服務器:Sybase ASE 15.7;數據庫容量:約50 G; 336個數據表。實驗效果如表所示,需要注意的是,不同的存儲內容以及存儲格式對備份時長及備份文件大小有一定的影響。兩種數據庫備份方法的比較如表1所示。

5結語

Linux平臺下Sybase數據庫備份的兩種方法各有優劣勢,也有不同的應用場景,信息系統管理人員在進行數據備份時,可以因地制宜,選擇合適的備份方法進行數據備份。

[參考文獻]

[1]王暉媛SQL Server中數據庫備份和恢復方法的研究[J]計算機光盤軟件與應用,2011(2):112-113

主站蜘蛛池模板: 91丝袜在线观看| 免费看一级毛片波多结衣| 亚洲国内精品自在自线官| 国产日韩欧美中文| 高h视频在线| 日韩精品欧美国产在线| 欧美一区二区三区国产精品| 日本精品视频| 国产综合另类小说色区色噜噜| 亚洲国产第一区二区香蕉| 九色免费视频| 亚洲乱码在线视频| 国产在线精品人成导航| 亚洲精品无码AV电影在线播放| 国产一二三区视频| 色综合中文字幕| 国产性生大片免费观看性欧美| 日本午夜视频在线观看| 久久鸭综合久久国产| 久久久久久久久18禁秘| 国产特级毛片aaaaaaa高清| 精品无码国产自产野外拍在线| 毛片卡一卡二| AV无码无在线观看免费| 中文字幕中文字字幕码一二区| 日韩欧美视频第一区在线观看| aⅴ免费在线观看| 午夜福利在线观看成人| 欧美精品黑人粗大| 日本欧美成人免费| 国产亚洲精品自在线| 99一级毛片| 青青草一区| 在线日本国产成人免费的| 日a本亚洲中文在线观看| 狼友视频国产精品首页| 天天色综合4| 国产手机在线观看| 丁香婷婷激情综合激情| 亚洲国产精品不卡在线| 久久国产精品77777| 日本午夜三级| 亚洲swag精品自拍一区| 亚洲AV无码精品无码久久蜜桃| 亚洲国产欧美国产综合久久 | 亚洲三级色| 久久96热在精品国产高清| 久久精品丝袜高跟鞋| 亚洲性日韩精品一区二区| 国产成人精品一区二区三在线观看| 中文字幕在线一区二区在线| 国产a网站| 91偷拍一区| 国产va欧美va在线观看| 精品人妻AV区| 国产乱人伦精品一区二区| 亚洲乱码在线视频| 91久久偷偷做嫩草影院电| 亚洲国产精品不卡在线| 久久久久免费精品国产| 又大又硬又爽免费视频| 亚洲人成人无码www| 亚洲天堂日韩在线| 国产成人综合日韩精品无码首页 | 精品撒尿视频一区二区三区| 欧美亚洲国产一区| A级毛片高清免费视频就| 欧美不卡在线视频| 免费午夜无码18禁无码影院| 亚洲国产成人超福利久久精品| 色AV色 综合网站| 国产精品视频a| 91福利免费视频| 999国内精品视频免费| 黄色网站不卡无码| 国产日韩欧美在线播放| av天堂最新版在线| yjizz视频最新网站在线| 欧美日韩成人| 免费xxxxx在线观看网站| 亚洲美女操| 四虎成人免费毛片|